




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、嵌入式系統與接口技術北京理工大學光電學院2020.9122第1章 單片機概述33第1章 單片機概述單片機簡介單片機的發展歷史單片機的特點單片機的應用單片機的發展趨勢MCS-51系列與AT89S5x系列單片機各種衍生品種的8051單片機PIC系列單片機與AVR系列單片機單片機開發過程與調試工具回顧1:計算機系統基本概念與常用術語回顧2:二進制編碼(代碼)44什么是單片機我們生活中處處都會遇到單片機 馮諾依曼計算機的基本組成輸入設備 存儲器 運算器 控制器輸出設備 CPU馮諾伊曼(19031957)1945年提出了“程序內存式”計算機的設計思想。5馮諾依曼存儲程序工作原理數據和程序以二進制代碼的形
2、式不加區別地存放在存儲器中,存放位置由地址指定,地址碼也是二進制形式控制器根據存放在存儲器中的指令序列(即程序)工作,并由一個程序計數器(PC)控制指令的執行。控制器具有判斷能力,能夠根據計算結果選擇不同的動作流程6微型計算機系統通常由多塊印刷電路板制成 主板顯卡聲卡存儲器接口網卡輸入輸出接口內存條CPU7CPUCPU芯片內存條存儲器接口存儲器芯片輸入輸出接口輸入輸出接口芯片定時計數器芯片A/D、D/A芯片單板機 印 刷 電 路 板8 單 硅 晶 片 CPU存儲器控制電路定時器時鐘電路I / O口單片機 在一片半導體硅片集成了中央處理單元(CPU)、存儲器(RAM、ROM)、并行I/O、串行I
3、/O、定時器/計數器、中斷系統、系統時鐘電路及系統總線。 用于測控領域的單片微型計算機,簡稱單片機。91010單片機使用時通常處于測控系統的核心地位并嵌入其中,所以國際上通常把單片機稱為嵌入式控制器(EMCU,Embedded MicroController Unit),或微控制器(MCU,MicroController Unit)。單片機的問世標志著計算機正式形成了通用計算機系統和嵌入式計算機系統兩大分支。按照用途,單片機可以分為:通用型單片機(本課研究的對象):其內部可開發的資源(如存儲器、I/O等各種外圍功能部件等)可以全部提供給用戶。用戶可以根據需要設計一個以通用單片機為核心,再配以外
4、圍接口電路及其它外圍設備,并編寫相應的軟件來滿足各種不同需要的測控系統。11例:各種家用電器中的控制器等。由于用于特定用途,單片機芯片制造商常與產品廠家合作,設計和生產“專用”的單片機芯片。11專用型單片機是專門針對某些產品的特定用途而制作的單片機。SurplusSPCA533A12單片機的發展歷史 單片機按其處理的數據位寬主要分為:4位單片機、8位單片機、16位單片機和32位單片機。發展大致分為4個階段:第一階段(1974年1976年):單片機初級階段。因工藝限制,單片機采用雙片的形式而且功能比較簡單。1974年12月,仙童公司推出了8位的F8單片機,實際上只包括了8位CPU、64B RAM
5、和2個并行口。第二階段(1976年1978年):低性能單片機階段。1976年 Intel的MCS-48單片機(8位)和1977年GI公司的PIC1650等,極大促進了單片機的變革和發展。12PIC165013第三階段(1978年1983年):高性能單片機階段。1978年,Zilog公司推出Z8單片機,1980年,Intel公司在MCS-48系列基礎上推出MCS-51系列,Mortorola推出6801單片機。使單片機的性能及應用躍上新的臺階。13Z86801第四階段(1983年現在):8位單片機鞏固發展及16位單片機、32位單片機推出階段。89S528098MC68HC16MSP43014單片
6、機的特點單片機是集成電路技術與微型計算機技術高速發展的產物。體積小、價格低、應用方便、穩定可靠,因此,給工業自動化等領域帶來了一場重大革命和技術進步。由于體積小,很容易地嵌入到系統之中,以實現各種方式的檢測、計算或控制,這一點,一般微機根本做不到。由于單片機本身就是一個微型計算機,因此只要在單片機的外部適當增加一些必要的外圍擴展電路,就可以靈活地構成各種應用系統,如工業自動檢測監視系統、數據采集系統、自動控制系統、智能儀器儀表等。14151.4 單片機的應用 軟硬件結合、體積小,容易嵌入到各種應用系統中。15工業檢測與控制 工業過程控制、智能控制、設備控制、數據采集和傳輸、測試、測量、監控等。
7、儀器儀表 單片機的使用有助于提高儀器儀表的精度和準確度,簡化結構,減小體積而易于攜帶和使用。消費類電子產品 單片機會大大提高產品功能和性能,實現智能最優化控制。通訊 信息網絡及各種通訊設備中。武器裝備 在現代化的武器裝備中,都有單片機嵌入其中。16各種終端及計算機外部設備 計算機網絡終端(如銀行終端)以及計算機外部設備(如打印機、硬盤驅動器、繪圖機、傳真機、復印機等)汽車電子設備 如:汽車安全系統、汽車信息系統、智能自動駕駛系統、衛星汽車導航系統、汽車緊急請求服務系統、汽車防撞監控系統、汽車自動診斷系統以及汽車黑匣子等。分布式多機系統 在較復雜多節點的測控系統中,常采用分布式多機系統。1617
8、1.5 單片機的發展趨勢 單片機的發展趨勢將是向大容量、高性能化,外圍電路內裝化等方面發展。CPU的改進增加CPU數據總線寬度。(如:各種16位單片機和32位單片機,數據處理能力要優于8位單片機)采用雙CPU結構,以提高數據處理能力。存儲器的發展片內程序存儲器普遍采用閃爍(Flash)存儲器,可不用外擴展程序存儲器,簡化系統結構。加大存儲容量。目前有的單片機片內程序存儲器容量可達128KB甚至更多。1718片內I/O的改進增加并行口驅動能力,以減少外部驅動芯片。有的單片機可以直接輸出大電流和高電壓,以便能直接驅動LED和VFD(熒光顯示器)。有些單片機設置了一些特殊的串行I/O功能,為構成分布
9、式、網絡化系統提供方便條件。引入了數字交叉開關,改變了以往片內外設與外部I/O引腳的固定對應關系。 低功耗 CMOS化,功耗小,配置有等待狀態、睡眠狀態、關閉狀態等工作方式。消耗電流僅在A或nA量級,適于電池供電的便攜式、手持式的儀器儀表以及其它消費類電子產品。外圍電路內裝化 系統的單片化,一片芯片就是一個“測控”系統。1819編程及仿真的簡單化 目前大多數的單片機都支持程序在系統編程ISP(In System Program),只需一條與PC機USB口(或串行口)相連的ISP下載線,就可把仿真調試通過的程序代碼從PC機在線寫入單片機的Flash存儲器內,省去編程器與仿真器。某些機型還支持在線
10、應用編程IAP,即可在線升級或銷毀單片機的應用程序。實時操作系統的使用 單片機可配置實時操作系統RTX51,簡化了對實時事件反應速度要求較高的復雜系統設計、編程和調試,已完全集成到C51編譯器中,使用簡單方便。20MCS-51系列與AT89C5x系列單片機MCS是Intel公司單片機的系列符號。MCS-51系列是在MCS-48系列基礎上于20世紀80年代初發展起來的,在我國得到廣泛應用的單片機主流品種基本型產品主要包括8031、8051、8751(對應的CMOS工藝的低功耗型為80C31、80C51、87C51)和增強型產品8032、8052、8752 2021基本型典型產品:8031/805
11、1/87518031內部包括1個8位CPU、128B RAM,21個特殊功能寄存器(SFR)、4個8位并行I/O口、1個全雙工串行口,2個16位定時器/計數器,5個中斷源,但片內無程序存儲器,需外擴程序存儲器芯片。8051是在8031的基礎上,片內又集成有4KB ROM作為程序存儲器。是一個程序不超過4KB的小系統。ROM內的程序是制作芯片時,代為用戶燒制的。主要用在程序已定且批量大的產品中。8751與8051相比,片內的4KB EPROM取代了8051的4KB ROM來作為程序存儲器。2122增強型 典型產品:8032/8052/8752。內部RAM增到256B,8052、片內程序存儲器擴展
12、到8KB,16位定時器/計數器增至3個,6個中斷源,串行口通信速率提高5倍。222323MCS-51系列設計上的成功,以及較高的市場占有率,已成為許多廠家、電氣公司競相選用的對象。Intel公司以專利形式把8051內核技術轉讓給ATMEL、Philips、Cygnal、ANALOG、LG、ADI、Maxim、DALLAS等公司。生產的兼容機與8051兼容,采用CMOS工藝,因而常用80C51系列單片機來稱呼所有這些具有8051指令系統的單片機,這些兼容機的各種衍生品種統稱為51系列單片機或簡稱為51單片機,是在8051的基礎上又增加一些功能模塊(稱其為增強型、擴展型子系列單片機)。24AT89
13、S5x系列單片機在眾多的衍生機型中,ATMEL公司的AT89C5x/AT89S5x系列,尤其是AT89C51/AT89S51和AT89C52/AT89S52在8位單片機市場中占有較大的市場份額。ATMEL公司1994年以E2PROM技術與Intel公司的80C51內核的使用權進行交換。ATMEL公司的技術優勢是閃爍(Flash)存儲器技術,將Flash技術與80C51內核相結合,形成了片內帶有Flash存儲器的AT89C5x/AT89S5x系列單片機。AT89C5x/AT89S5x系列與MCS-51系列在原有功能、引腳以及指令系統方面完全兼容。此外,某些品種又增加了一些新的功能,如看門狗定時器
14、WDT、ISP(在系統編程也稱在線編程)及SPI串行接口技術等。片內Flash存儲器允許在線(+5V)電擦除、電寫入或使用編程器對其重復編程。AT89C5x/AT89S5x單片機還支持由軟件選擇的兩種節電工作方式,非常適于低功耗的場合。2425AT89S5x系列的時鐘頻率以及運算速度有了較大的提高。例如,AT89C51工作頻率的上限為24MHz,而AT89S51則為33MHz。AT89S51片內集成有雙數據指針DPTR,看門狗定時器,具有低功耗的空閑工作方式和掉電工作方式,還增加了5個特殊功能寄存器。AT89S51與AT89S52差別在于AT89S51片內有4KB Flash存儲器、128B的
15、RAM、5個中斷源以及2個定時器/計數器;而AT89S52片內有8KB的Flash程序存儲器、256B的RAM、6個中斷源、3個定時器(比AT89S51多出1個定時器,且具有捕捉功能)。26AT89xxxx系列單片機的型號說明 AT89xxxx系列單片機的型號編碼由三部分組成:前綴、型號和后綴。前綴 “AT”表示ATMEL公司型號 由“89Cxxxx”或“89LVxxxx”或“89Sxxxx”等表示。8表示單片,9表示內部含有Flash存儲器,C表示CMOS,LV表示低電壓(2.5V)產品,S表示含有串行下載的Flash存儲器,“xxxx”表示器件型號,如51、52等。后綴 由最后的4個“xx
16、xx”參數組成,后綴中第1個“x”表示時鐘頻率后綴中第2個“x”表示封裝后綴中第3個“x”表示芯片的使用溫度范圍如:某一單片機型號為“AT89S52-24PU”,則表示該單片機是ATMEL公司的Flash單片機,CMOS產品,速度為24MHz,封裝塑料雙列直插DIP封裝,是工業級無鉛產品。27各種衍生的8051單片機STC系列單片機 STC系列單片機是國產功能與抗干擾性強的增強型8051單片機。STC12C5410/STC12C2052系列機型主要性能及特點:高速:速度比普通的8051快812倍寬工作電壓:5.53.8V,2.43.8V片內Flash程序存儲器:12KB/10KB/8KB/6K
17、B/4KB,擦寫次數10萬次以上片內的RAM數據存儲器: 512B 可在線編程(ISP)/在應用可編程(IAP),無需編程器8通道的10位ADC,4路PWM輸出4通道捕捉/比較單元,也可用來再實現4個定時器 或4個外部中斷(支持上升沿/下降沿中斷)2個硬件16位定時器,4路可編程計數/定時器陣列 (PCA)還可再實現4個定時器硬件看門狗(WDT)高速SPI串口全雙工異步串行口(UART),兼容普通8051的串口通用I/O口(27/23/15個)中的每個I/O口驅動能力均可達到20mA超強抗干擾能力與高可靠性超低功耗設計2728C8051Fxxx單片機美國Cygnal公司產品,集成度高,8051
18、內核。代表性產品為C8051F020。內部采用流水線結構,大部分指令的完成時間為1或2個時鐘周期,峰值處理能力為25MIPS。C8051F020內部采用流水線結構,大部分指令的執行時間為1或2個時鐘周期,峰值處理能力為25MIPS,與經典的8051單片機相比,可靠性和速度有很大提高。 28片內資源:1個8位ADC、1個12位ADC、1個雙12位DAC;64kB片內Flash程序存儲器,256B RAM,128B SFR;8個IO端口共64根IO口線;5個16位通用定時器;5個捕捉比較模塊的可編程計數定時器陣列(PCA),1個UART串行口、1個SMBus/ I2C串口、1個SPI串行口;2路電
19、壓比較器,VDD監視器(電源監測),內置溫度傳感器。C8051Fxxx單片機最突出的改進是引入了數字交叉開關。改變以往內部功能與外部引腳的固定對應關系。它是一個大的數字開關網絡,允許將內部數字系統資源分配給端口I/O引腳。29ADC812單片機美國ADI(Analog Devicelnc)公司生產的高性能單片機,內部包含高精度的自校準8通道12位模數轉換器,2通道12位數模轉換器以及可編程的8位的與8051單片機兼容的MCU內核,指令系統與MCS-51系列兼容。片內有8KB Flash程序存儲器、640B Flash數據存儲器、256B數據SRAM(支持可編程)。片內集成看門狗定時器、電源監視
20、器以及ADCDMA功能。為多處理器接口和I/O擴展提供了32條可編程的I/O線、包含有與I2C兼容的串行接口、SPI串行接口和標準UART串行接口I/O。30華邦W77系列、W78系列單片機臺灣華邦公司(Winbond) W78系列單片機與AT89C5x系列完全兼容,W77系列為增強型。W77系列對8051的時序作了改進:每個指令周期只需要4個時鐘周期,速度提高了三倍,工作頻率最高可達40MHz。W77系列增加看門狗WatchDog、兩組UART、兩組DPTR數據指針(編寫程序非常便利)、ISP(在系統可編程)等功能。片內集成了USB接口,語音處理等功能,具有6組外部中斷源。31PIC系列單片
21、機 美國Microchip公司的產品。特性如下:性能價格比高 如:6腳單片機 PIC10F322被認為是世界上最小的單片機。而40只引腳的PIC16C74,其內部有4KB 的ROM、192字節RAM、8路A/D、3個8位定時器、2個CCP模塊、3個串行口、1個并行口、11個中斷源、33個I/O腳,可以與其他品牌的高檔型號媲美。31精簡指令集(RISC)。PIC系列8位單片機數據總線和指令總線分離的哈佛總線(Harvard)結構,指令單字長,且允許指令代碼的位數可多于8位的數據位數,這與傳統的采用復雜指令結構(CISC)結構的8位單片機相比,可以達到2:1的代碼壓縮,速度提高4倍。優越的開發環境
22、。PIC推出一款新型號單片機的同時推出相應的仿真芯片,所有的開發系統由 專用的仿真芯片支持,實 時性非常好。引腳通過限流電阻可以接 至220V交流電源,可直接 與繼電器控制電路相連, 無須光電耦合器隔離。32AVR系列單片機 1997年ATMEL公司研發出RISC高速8位單片機。特點如下:廢除了機器周期,拋棄復雜指令(CISC)計算機追求指令完備的做法。采用精簡指令集,以字作為指令長度單位,將操作數與操作碼安排在一字之中,指令長度固定、指令格式與種類相對較少、尋址方式也相對較少,絕大部分指令都為單周期指令。取指周期短,又可預取指令,實現流水作業,故可高速執行指令。片內Flash程序存儲器擦寫可
23、達10000次以上。片內集成有大容量RAM,更有效地支持高級語言開發。豐富的片內外設:定時器/計數器、看門狗電路、低電壓檢測電路BOD,多個復位源(自動上下電復位、外部復位、看門狗復位、BOD復位),可設置的啟動后延時運行程序,增強了單片機應用系統的可靠性。I/O口功能強、驅動能力大。工業級產品,具有大電流(最大可達40mA),驅動能力強,可省去功率驅動器件,直接驅動可控硅SSR或繼電器。32低功耗。具有省電功能(Power Down)及休眠功能(Idle)的低功耗的工作方式。一般耗電在12.5 mA,適用于電池供電。支持程序的ISP編程,開發容易。其中MEGA系列還支持在線應用編程(IAP,
24、可在線升級或銷毀應用程序)。如何利用單片機開發控制系統階段一:需求分析33需求分析是分析功能、確定參數要求的過程。如:一個簡單的單片機控制發光二極管的例子,功能確定為單片機控制一個發光二極管點亮500ms,熄滅500ms,再點亮500ms,再熄滅500ms如此反復。階段二:電路設計34左邊陰影框里就是單片機,右邊的是LED。35單片機程序用匯編語言或C51語言編寫。用匯編或C51語言設計好的單片機程序,將通過一個連接計算機USB口和單片機下載接口的ISP下載器,下載到單片機中。下載完成后,單片機啟動時運行下載的程序就可以實現相應的控制功能了。階段三:程序設計階段四:系統調試36 調試階段,也就
25、是“磨合”軟件和硬件以便它們共同實現系統功能。當程序下載到單片機系統后,啟動單片機運行程序,觀察系統的“反應”和預期設計是不是相符。如:發光二極管以500ms為間隔進行閃爍。當程序設計完成并下載到單片機之后,可能出現的問題是LED不閃爍或閃爍的時間間隔不對。如果出現這些與設計不符的實驗效果,首先在保證硬件電路是正確的前提下,回到程序中找錯誤,修改后再下載到單片機系統中。如此反復,直到系統運轉正常為止。常用MCS-51單片機開發工具Keil 51 集成開發環境集成開發環境,源程序編輯、編譯、鏈接、調試均在IDE環境下支持多種處理器支持C和匯編語言支持源程序調試支持硬件仿真器支持軟件仿真器37Pr
26、oteus仿真軟件特點:可以實現單片機、接口芯片的電路仿真比MutsimEWB小巧且功能一致,可以實現多種單片機(MCS-51、PIC系列、ARM系列)的仿真和程序調試對計算機硬件要求低38回顧1:計算機系統基本概念與常用術語位(Bit) :位是計算中構成信息的最小單位,表示二進制數中的某個數位“0”或“1”字節(Byte) :1字節為8位(bit), 1K=210=1024,1KB=1024Byte字(Word) : 1字為16位(bit)指令(Instruction): 指規定計算機完成某種操作的命令。目前計算機只能直接識別由二進制編碼的指令,即機器碼指令系統(Instnction Set
27、):指一臺計算機所能識別的全部指令的集合程序(Progrom):為完成特定任務而設計的一組指令有序的集合地址(Address):地址指存貯單元的編號時序:就是計算機在工作過程中,CPU控制器所發出的一系列控制信號在時間上的相互關系39回顧2: 二進制編碼(代碼)一、二進制編碼的十進制(二十進制或BCD碼) 8421 BCD碼有10個不同的數字符號,由于它是逢“十”進位的,所以,它是十進制;同時,它的每一位是用4位二進制編碼來表示的。BCD 碼具有二進制和十進制兩種數制的某些特征。 BCD碼分為壓縮BCD碼和非壓縮BCD碼壓縮BCD碼的每一位用4位二進制表示,00001001表示09,一個字節表
28、示兩位十進制數 非壓縮BCD碼用一個字節表示一位十進制數,高4位總是0000,低4位的00001001表示09 要用BCD碼表示十進制數,只要把每個十進制數用適當的二進制4位碼代替即可。例如,十進制整數256用BCD碼表示,則為(0010 0101 0110)BCD40例:將二進制數1011.01轉換成相應的BCD碼。首先將二進制數轉換成十進制數: 1011.01B(123)(022)(121) (120)(02-1)(12-2) 802100.25 11.25D然后,將十進制結果轉換成BCD碼11.25D(0001 0001.0010 0101)BCD41BCD碼十六進制書寫形式十進制數84
29、21碼BCD碼十六進制書寫形式十進制數8421碼0H00000B10H100001 0000B1H10001B11H110001 0001B2H20010B12H120001 0002B3H30011B13H130001 0003B4H40100B14H140001 0004B5H50101B15H150001 0005B6H60110B7H70111B8H81000B9H91001B二、字母與字符的編碼 字母和各種字符在計算機內是按特定的規則用二進制編碼表示的。這些編碼有各種不同的方式。 目前在微機、通訊設備和儀器儀表中廣泛使用的是ASCII(American Standard Code f
30、or Information Interchange)碼-美國標準信息交換碼。 7位ASCII代碼能表示27128種不同的字符,其中包括數碼(09),英文大、小寫字母,標點和控制的附加字符。 7位ASCII碼是由左3位一組和右4位一組組成的。左表表 示這兩組的安排和號碼的順序,位6 是最高位,而位0是最低位。要注意 這些組在碼表的行、列中的排列情 況。4位一組表示行,3位一組表示列。4243 ASCII碼(美國標準信息交換代碼)44數字09的編碼是01100000111001,它們的高3位均是011,后4位正好與其對應的二進制代碼(BCD碼)相符英文字母AZ的ASCII碼從1000001(41
31、H)開始順序遞增,字母az的ASCII碼從1100001(61H)開始順序遞增,這樣的排列對信息檢索十分有利 ASCII碼45漢字編碼 漢字編碼包括輸入編碼、內碼和字模編碼,分別用于輸入、內部處理和輸出。漢字的輸入編碼是為了使用西文標準鍵盤把漢字輸入到計算機中,其編碼方法主要有數字編碼、拼音碼和字形編碼三類。漢字內碼是用于漢字信息的存儲、交換、檢索等操作的機內代碼,它采用兩個字節的二進制形式表示一個漢字。為與英文字符區別,漢字機內代碼中兩個字節的最高位均規定為l1980年,我國頒布了信息交換用漢字編碼字符集(GB 2312-1980)標準,1995年又頒布了漢字編碼擴展規范(GBK),擴充了G
32、B2312-1980的內容,同時在字匯一級支持ISO/IEC10646-1和GB 13000-1的全部中、日、韓(CJK)漢字例:漢(BABA)字(D6D7)編(E0B1)碼(EBC2)46 漢字字型編碼是用來描述漢字字形的代碼,它是漢字的輸出形式。漢字庫有點陣字庫、TrueType字庫、矢量字庫等類型。漢字編碼帶符號數的表示法 一、機器數與真值 在計算機中,為了區別正數或負數,是將數學上的“”“”符號數字化,規定1個字節中的D7位為符號位,D0D6位為數字位。在符號位中,用“0”表示正,“1”表示負,而數字位表示該數的數值部分。例如: 0101101191D 1101101191D 1個數的
33、數值和符號全都數碼化了。我們把1個數(包括符號位)在機器中的一組二進制數表示形式,稱為“機器數”,而把它所表示的值稱為機器數的“真值”。 47二、機器數的種類和表示方法 在機器中表示帶符號的數有3種表示方法:原碼、反碼和補碼。48(一)原碼所謂數的原碼表示,即符號位用0表示正數,而用1表示負數,其余數字位表示數值本身。對于0,可以認為它是(0),也可以認為它是(0)。 0原0 0 0 0 0 0 0 0 0原1 0 0 0 0 0 0 0對于負數 105 原 1 1 1 0 1 0 0 1符號位 數值本身 對于正數 105 原 0 1 1 0 1 0 0 1符號位 數值本身 (二)反碼 正數的
34、反碼表示與其原碼相同,即符號位用“0”表示正,數字位為數值本身。49 負數的反碼是將它的正數按位(包括符號位在內)取反而形成的。 0 反 0 0 0 0 0 0 0 0 4 反 0 0 0 0 0 1 0 0 31反 0 0 0 1 1 1 1 1 127反= 0 1 1 1 1 1 1 1 符號位 數值本身 0反 1 1 1 1 1 1 1 1 4反 1 1 1 1 1 0 1 1 31反 1 1 1 0 0 0 0 0 127反 1 0 0 0 0 0 0 0 符號位 數字位50行數二進制數碼(機器數)對應的十進制數(真值)無符號數帶符號數(原碼)反碼補碼122.1261271280000
35、00000000000100000010.011111010111111001111111012.125126127012.125126127012.1251261270,012.125126127129130131.253254255256100000001000000110000010.11111100111111011111111011111111128129130.252253254255012.124125126127127126125.3210128127126.43218位二進制數的反碼特點:(1)“0”的反碼有兩種表示法:00000000表示0, 11111111表示0。(2)
36、8位二進制反碼能表示的數值范圍為127D127D。(3)當一個帶符號數用反碼表示時,最高位為符號位。若 符號位為0(即正數)時,后面的7位為數值部分;若 符號位為1(即負數)時,一定要注意后面7位表示的 并不是此負數的數值,而必須把它們按位取反以后, 才得到表示這7位的二進制數值。 例:一個8位二進制反碼表示的數10010100B。它是一個負數;但它并不等于20D,而應先將其數字位按位取反,然后才能得出此二進制數反碼所表示的真值: 1101011(1261251231211) (643283) 107D51521. 正數的補碼正數的補碼與其原碼相同,即符號位用“0”表正,其余數字位表示數值本身
37、。 4補 0 0000100 31補 0 0011111 +127補 0 1111111 符號位 數值本身2. 負數的補碼負數的補碼表示為它的反碼加1(即在其低位加1)。 4補 1 1111100 31補 1 1100001 127補 1 0000001 符號位 數字位(三)補碼微機中都是采用補碼表示法,因為用補碼法以后,同一加法電路既可以用于有符號數相加,也可以用于無符號數相加,而且減法可用加法來代替。8位二進制數補碼有如下特點:(1)0補0補00000000(2)8位二進制補碼所能表示的數值為127128。(3)當1個帶符號數用8位二進制補碼表示時,最高位為符 號位。若符號位為“0 ”(即
38、正數)時,其余位即為 此數的數值本身;但當符號位為“1”(即負數)時,一 定要注意其余位不是此數的數值,而必須將它們按 位取反,且在最低位加1,才得到它的數值。例:一個補碼表示的數 補10011011B 是一個負數,但并不等于27D,它的數值為:將數字位0011011按位取反得到1100100,然后再加1,即為1100101。53=1100101 (126125122120 (643241) 101D故54 假設只有4位二進制數來表示整數,二進制從0000到1111共能表示24=16個整數,把它們放到一個有16個刻度的表盤上只表示正整數時原碼表示正負數時反碼表示正負數時補碼表示正負數時同模求余
39、從位模式 1100 走到位模式 1001, 可以走兩條路,逆時針走3格, 或者順時針走13格一圖讀懂原碼/反碼/補碼三、補碼的加減法運算 補碼的加減運算是帶符號數加減法運算的一種。其運算特點是:符號位與數字位一起參加運算,并且自動獲得結果(包括符號位與數字位)。55加法時,兩數補碼的和等于兩數和的補碼。減法時,兩數補碼的差等于兩數差的補碼。例:已知1000000,0001000,求兩數的補碼之和。根據補碼加法:補01000000,補00001000 和數為正,其補碼等于該數原碼,即 補原 = 01001000其真值為72;又因64(8)72,兩者一致則 補01000000 64 )補00001
40、000 ) 8 補補01001000 72所以 補01001000 (mod 28) 四、溢出及其判斷方法(一)什么叫溢出 所謂溢出是指帶符號數的補碼運算溢出。例如:字長為n位的帶符號數,用最高位表示符號,其余n-1位用來表示數值。它能表示的補碼運算的范圍為-2n-1+2n-1-1。如果運算結果超出此范圍,就叫補碼溢出,簡稱溢出。在溢出時,將造成運算錯誤。(二)判斷溢出的方法 判斷溢出的方法較多,例如以上兩例根據參加運算的兩個數的符號及運算結果的符號可以判斷溢出;此外,利用雙進位的狀態也是常用的一種判斷方法。這種方法是利用符號位相加和數值部分的最高位相加的進位狀態來判斷。即利用 V= D7C
41、D6C 判別式來判斷。當D7C與D6C“異或”結果為1,即V1,表示有溢出,當“異或”結果為0,即0,表示無溢出.56(三)溢出與進位 進位是指運算結果的最高位向更高位的進位。如有進位,則Cy=1;無進位,則Cy=0 。當Cy=1 ,即D7C=1時,若D6C=1,則V=D7C D6C=0, 表示無溢出;若D6C=0,則V=D7C D6C=1,表示有溢出。當Cy= 0,即D7C=0時,若D6C1,則V=D7C D6C= 1,表示有溢出;若D6C=0,則V=D7C D6C=0,表示無溢出。可見,進位與溢出是兩個不同性質的概念,不能混淆。 57注兩個有符號數+/-運算時可能會溢出的情況:運算情況可能
42、溢出否運算情況可能溢出否正數+正數(如7FH+7FH)正數-正數正數+負數正數-負數(如7FH-81H)負數+正數負數-正數(如81H-7FH)負數+負數(如81H+81H)負數-負數58第2章 AT89S52單片機 硬件結構59第2章 AT89S52單片機的片內硬件結構 單片機的結構特點AT89S52單片機的硬件組成AT89S52的引腳功能AT89S52的CPUAT89S52的存儲器結構AT89S52的并行I/O端口時鐘電路與時序復位操作和復位電路AT89S52單片機的最小應用系統看門狗定時器(WDT)功能簡介低功耗節電模式59普林斯頓結構 哈佛結構單片機的結構特點普林斯頓結構 一種是在通用
43、微型計算機中廣泛采用的將程序存儲器和數據存儲器合用一個存儲空間的結構,稱為普林斯頓(Princeton)結構或稱馮諾依曼結構,如Intel的MCS-96、8086系列。哈佛結構 另一種是將程序存儲器和數據存儲器截然分開,分別尋址的結構,稱為哈佛(Harvard)結構。Intel公司的MCS-51和80C51系列單片機采用的是哈佛結構。目前的單片機以采用程序存儲器和數據存儲器分開的結構較多。60單片機CPU的特點 單片機的中央處理器(CPU)和通用微處理器基本相同,只是增設了“面向控制”的處理功能。例如:位處理、查表、多種跳轉、乘除法運算、狀態檢測、中斷處理功能等,增強了控制的實用性和靈活性。6
44、162AT89S52單片機的硬件組成基本結構依舊是CPU 加上外圍芯片的傳統馮 諾依曼微機結構,片內各功能部件通過片內單一總線連接而成。62CPU對各種功能部件的控制是采用特殊功能寄存器(SFR,Special Function Register)的集中控制方式。內各功能部件:(1)CPU(微處理器) 8位的CPU,與通用CPU基本相同,同樣包括了運算器和控制器兩大部分,還有面向控制的位處理功能。6363(2)數據存儲器(RAM)片內256B,片外最多可擴64KB。(3)程序存儲器(Flash ROM) 用來存儲程序。AT89S52 片內有8KB的Flash存儲器。如果不夠,片外最多可外擴至6
45、4KB程序存儲器(片內+片外)。 (4)定時器/計數器片內有3個16位的定時器/計數器,具有4種工作方式。 (5)中斷系統具有6個中斷源,2級中斷優先權。(6)串行口 1個全雙工的異步串行口,4種工作方式。(7)P0口、P1口、P2口和P3口 4個8位并行I/O口。(8)特殊功能寄存器(SFR)共32個SFR,位于片內RAM區80HFFH的地址區間內,用于CPU對片內各外設部件進行管理、控制和監視。(9)1個看門狗定時器WDT當單片機由于干擾而使程序陷入死循環或跑飛狀態時,可引起單片機復位,使程序恢復正常運行。6464AT89S52的引腳功能 AT89S52單片機多采用40引腳的DIP封裝(雙
46、列直插),以及44引腳的PLCC和TQFP封裝方式65引腳圖DIP-40封裝 PLCC44封裝TQFP44封裝65引腳按其功能可分為如下3類:(1)電源及時鐘引腳VCC、VSS;XTAL1、XTAL2。(2)控制引腳 PSEN*、ALE/PROG*、EA* /VPP、RST(3)I/O口引腳P0、P1、P2、P3,為4個8位I/O口電源及時鐘引腳1電源引腳(1)VCC(40腳):+5V電源。(2)VSS(20腳):數字地。2時鐘引腳 (1)XTAL1(19腳):片內振蕩器反相放大器和時鐘發生器電路輸入端。(2)XTAL2(18腳):片內振蕩器反相放大器的輸出端。66控制引腳(1)RST (RE
47、SET,9腳) 復位信號輸入,在引腳加上持續時間大于2個機器周期的高電平,可使單片機復位。正常工作,此腳電平應 0.5V。當看門狗定時器溢出輸出時,該腳將輸出96個時鐘振蕩周期的高電平。(2) EA*/VPP (Enable Addr./Volt. Pulse of Prog.,31腳) EA*:引腳第一功能:外部程序存儲器訪問允許控制端。 EA*=1,在PC值不超出1FFFH(即不超出片內8KB Flash存儲器的地址范圍)時,單片機讀片內程序存儲器(8KB)中的程序,PC值超出1FFFH 時,將自動轉向讀取片外(2000H-FFFFH)程序存儲器空間中的程序。67 EA*=0,只讀取外部的
48、程序存儲器中的內容,讀取的地址范圍為0000HFFFFH,片內Flash 程序存儲器不起作用。 VPP:引腳第二功能,對片內Flash編程,接編程電壓。67(3)ALE/PROG*(Addr. Latch Enable/PROGram.,30腳) ALE為地址鎖存控制信號端,為第一功能。由于引腳數目有限,P0口是作為低8位地址總線與8位數據總線分時復用的。6868注鎖存器是什么神器? 74HC373包含8個具有三態輸出的D 型透明鎖存器。當LE為高時,數據從Dn輸入到鎖存器,在此條件下,鎖存器進入透明模式,也就是說,鎖存器的輸出狀態將會隨著對應的D輸入每次的變化而改變。當LE為低時,鎖存器將存
49、儲D輸入上的信息一段就緒時間,直到LE的下降沿來臨。74HC37369單片機正常運行時,ALE端一直有正脈沖信號輸出,此頻率為時鐘頻率fosc的1/6。可用作外部定時或觸發信號。注 每當AT89S52訪問外部RAM時(執行MOVX類指令),要丟失一個ALE脈沖。如不需要ALE端輸出脈沖信號,可將特殊功能寄存器AUXR(地址為8EH)的第0位(ALE禁止位)置1,來禁止ALE操作,但執行訪問外部程序存儲器或外部數據存儲器指令“MOVC”或“MOVX”時,ALE仍然有效。即ALE禁止位不影響對外部存儲器的訪問。PROG*:引腳第二功能,對片內Flash編程,編程脈沖輸入腳。70(4)PSEN*(P
50、rogram Strobe ENable,29腳) 片外程序存儲器讀選通信號,低電平有效。70并行I/O口引腳(1)P0口:P0.7P0.0引腳 為漏極開路的8位并行雙向I/O口。作為輸出口時,每個引腳可驅動8個LS型TTL負載。當AT89S52擴展外部存儲器及I/O接口芯片時,P0口為分時復用的低8位地址/數據總線。在向P0口寫入“1”后就成為高阻態的輸入口。當P0口作為通用I/O口使用時,需外加上拉電阻成準雙向口。在對Flash程序存儲器編程時,P0口接收字節代碼,程序校驗時P0口輸出字節代碼,程序校驗期間應外接上拉電阻。7171(2)P1口:P1.7P1.0引腳 準雙向I/O口,具有內部
51、上拉電阻,可驅動4個LSTTL負載。在對片內Flash編程和校驗時定義為低8位地址線。P1口某些引腳的第二功能如下:P1.0/T2:T2腳為定時器T2的外部計數信號輸入端T2P1.1/T2EX:T2EX為T2的捕捉/重新裝載觸發及方向控制T2EXP1.5/MOSI:MOSI用于對片內Flash存儲器串行編程和校驗P1.6/MISO:MISO用于對片內Flash存儲器串行編程和校驗P1.7/SCK:SCK用于對片內Flash存儲器的串行編程和校驗的移位脈沖輸入引腳72(3)P2口:P2.7P2.0引腳準雙向I/O口,引腳內部接有上拉電阻,可驅動4個LSTTL負載。當AT89S52訪問外部存儲器及
52、I/O口時,P2口作為高8位地址總線使用,輸出高8位地址。當P2口不作為高8位地址總線時,可作為通用的I/O口使用。73(4)P3口:P3.7P3.0 準雙向I/O口,具有內部上拉電阻。P3口的第一功能是作為通用的I/O口使用,可驅動4個LS型TTL負載。P3口還可提供第二功能。74綜上所述:P0口可作為總線口,為雙向口。P0口作為通用的I/O口使用時,為準雙向口,這時需加上拉電阻。P1口、P2口、P3口均為準雙向口。74注準雙向口與雙向口的差別準雙向口僅有兩個狀態(少了高阻的“懸浮” 狀態)。而P0口作為總線使用,口線內無上拉電阻,處于高阻“懸浮”態。(思考)為什么P0口要有高阻“懸浮”態?
53、另外,準雙向口作通用I/O的輸入口使用時,一定要向該口先寫入“1”。7575AT89S52的CPUCPU由運算器和控制器構成。 運算器對操作數進行算術、邏輯和位操作運算。主要包括算術邏輯運算單元ALU累加器A位處理器程序狀態字寄存器PSW兩個暫存器等1算術邏輯運算單元ALU可對8位變量邏輯運算(與、或、異或、循環、求補和清零),還可算術運算(加、減、乘、除)ALU還有位操作功能,對位變量進行位處理,如置“1”、清“0”、求補、測試轉移及邏輯“與”、“或”等。76762累加器A使用最頻繁的寄存器,也寫為Acc。作用如下:ALU單元輸入數據源之一和運算結果存放單元。數據傳送大多都通過累加器A進行。
54、A的進位標志Cy是特殊的,因為它同時又是位處理機的位累加器77773程序狀態字寄存器PSW(Program Status Word) PSW位于片內特殊功能寄存器區,字節地址為D0H。包含了程序運行狀態的信息,其中4位保存當前指令執行后的狀態,供程序查詢和判斷。PSW的格式PSW中各個位的功能(1)Cy(PSW.7)進位標志位,或寫成C在算術和邏輯運算時,若有進位/借位,Cy1;否則,Cy0。在位處理器中,它是位累加器。(2)Ac(PSW.6)輔助進位標志位 在BCD碼運算時,用作十進位調整。當D3位向D4位產生進位或借位時,Ac1;否則,Ac0。(3)F0(PSW.5)用戶設定標志位 由用戶
55、使用的一個狀態標志位,可用指令來使它置1或清0,控制程序的流向。 (4)RS1、RS0(PSW.4、PSW.3)4組工作寄存器區選擇7878(5)OV(PSW.2)溢出標志位 當執行算術指令時,用來指示運算結果是否產生溢出。如果結果產生溢出,OV=1;否則,OV=0。(6)PSW.1位:保留位(7)P(PSW.0)奇偶標志位 指令執行完,累加器A中“1”的個數是奇數還是偶數。 P=1,表示A中“1”的個數為奇數。 P=0,表示A中“1”的個數為偶數。 此標志位對串行通信有重要的意義,常用奇偶檢驗的方法來檢驗數據串行傳輸的可靠性。797980控制器 任務識別指令,并根據指令的性質控制單片機各功能
56、部件,從而保證單片機各部分能自動協調地工作。 控制器功能是控制指令的讀入、譯碼和執行,從而對各功能部件進行定時和邏輯控制,具體包括:程序計數器指令寄存器指令譯碼器定時及控制邏輯電路等。程序計數器PC是一個獨立的 16位計數器,不可訪問。復位 時內容為0000H,從程序存儲 器0000H單元取指令開始執行。PC工作過程:CPU讀指令時, PC的內容作為所取指令地址, 程序存儲器按此地址輸出指令字節,同時PC自動加1。PC中內容變化決定程序流程。當順序執行程序時自動加1;執行轉移程序或子程序、中斷子程序調用時,自動更改成所要轉移的目的地址。PC的計數寬度決定了程序存儲器的地址范圍( 64KB =2
57、16B )。80AT89S52存儲器的結構存儲器空間可分為4類。8181.程序存儲器空間 分為片內和片外兩部分。片內4KB Flash ,編程和擦除完全是電氣實現。可用通用編程器對其編程,也可在線編程。當片內4KB Flash 存儲器不夠用時,可片外擴展,最多可擴展至64KB程序存儲器。.數據存儲器空間也分為片內與片外兩部分。片內有256B RAM。片內RAM 不夠用時,在片外可擴展至64KB RAM 。.特殊功能寄存器SFR (Special Function Register) 片內各功能部件的控制寄存器及狀態寄存器。綜合反映了整個單片機基本系統內部實際的工作狀態及工作方式。.位地址空間
58、共有219個可尋址位,構成了位地址空間。位于片RAM區字節地址20H2FH(共128位)和特殊功能寄存器區(片內RAM區字節地址80HFFH區間內,共定義了91個可尋址位)。程序存儲器空間 存放程序和表格之類的固定常數。片內為8KB的 Flash ,地址為0000H1FFFH。16位地址線,可外擴的程序存儲器空間最大為64KB,地址為0000HFFFFH。8282(1)分為片內和片外兩部分,訪問片內的還是片外的程序存儲器,由EA*引腳電平確定。(2)程序存儲器有若干固定單元用于各中斷源中斷服務程序入口, 其中有6個分別對應于5個中斷源的中斷入口地址。數據存儲器空間 片內與片外兩部分。1. 片內
59、數據存儲器 AT89S52的片內RAM共有256個單元,地址為00HFFH。地址為80HFFH為SFR區,與片內高128B RAM單元統一編址,但屬于另一專用空間區域00H1FH 的32個單元是4組通用工作寄存器區,每區包含8B,為R7R0。可通過指令改變RS1、RS0兩位來選擇。20H2FH的16個單元的128位可位尋址,也可字節尋址。30HFFH的單元只能字節尋址,用作存數據以及作為堆棧區。對地址為80HFFH的RAM區,只能采用間接尋址方式訪問,而對地址為80HFFH的特殊功能寄存器區訪問只能采用直接尋址方式。對于低128B(地址00H7FH)RAM區,即可采用直接尋址方式也可采用間接尋
60、址方式來訪問。8383片內數據存儲器RAM的結構.片外數據存儲器 當片內256B的RAM不夠用時,最多可外擴64KB的RAM。片內RAM與片外RAM兩個空間是相互獨立的片內RAM與片外RAM的低256B的地址是相同的,但由于使用的是不同的訪問指令,所以不會發生沖突。84特殊功能寄存器(SFR) SFR映射在片內RAM的 80HFFH 區域中,共32個。8585特殊功能寄存器(SFR) SFR寄存器有些可位尋址(字節地址末位只能是0H或8H)堆棧指針SP 堆棧只能設在片內RAM區,SP指示堆頂的位置。堆棧結構向上生長型。單片機復位后,SP為07H,使得堆棧實際上從08H單元開始。 堆棧是為子程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 婦科護理試題庫及答案
- 了解考點分析紡織品設計師證書考試試題及答案
- 2024年紡織行業數字營銷的實施案例試題及答案
- 刺猬原理面試題及答案
- 廣告設計師考試2024年操作技能試題及答案
- 助理廣告師效果監測試題及答案解讀
- 2024年國際商業美術設計師考試試題及答案解讀
- 寶安美術面試題及答案
- 2024廣告設計師考試重點試題及答案
- 2024年紡織品檢驗員技能提升措施試題及答案
- 2024年放射工作人員放射防護培訓考試題及答案
- 《第七天》讀書分享交流會
- 比亞迪財務分析
- 2021年中國中車公司組織架構和部門職能
- 工程設計資質專業人員專業對照表
- 開放大學辦學組織體系建設的困境與突破路徑
- 立式機組軸線調整及瓦間隙計算
- 胸痛中心培訓課件胸痛中心的時鐘統一及時間管理胸痛中心時間節點管理要求
- 孕期艾滋病檢測及服務流程
- 重癥肺炎患者護理查房PPT
- 教育調查報告3000字小學
評論
0/150
提交評論