版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1單片機原理與應用設計(C51編程+Proteus仿真)第1章
單片機概述第2章
硬件結構第3章C51語言編程基礎第4章
開發(fā)與仿真工具第5章與顯示器、開關、鍵盤接口設計第6章
中斷系統(tǒng)第7章AT89S51單片機的定時器計數(shù)器第8章AT89S51單片機的串行口第9章
系統(tǒng)并行擴展第10章
串行擴展第11章DAC與ADC第12章
應用系統(tǒng)設計全套可編輯PPT課件
2第1章單片機概述
全套可編輯PPT課件
3內容概要介紹單片機基礎知識、發(fā)展歷史、應用領域以及發(fā)展趨勢。8位單片機的主流機型,MCS-51系列單片機及其兼容的單片機(統(tǒng)稱為8051單片機)對目前流行的8051單片機的代表性機型:美國ATMEL公司的AT89C5x/AT89S5x系列單片機及代表性產品AT89S51詳細介紹。結構清晰,易掌握,初學者入門機型。簡要介紹其它類型的單片機。初步了解嵌入式處理器:單片機,數(shù)字信號處理器(DSP)、嵌入式微處理器420世紀70年代問世,廣泛應用:工業(yè)自動化、自動檢測與控制、智能儀器儀表、機電一體化設備、汽車電子、家用電器等各個方面。什么是單片機?1.1單片機簡介一片半導體硅片集成:中央處理單元(CPU)、存儲器(RAM、ROM)、并行I/O、串行I/O、定時器/計數(shù)器、中斷系統(tǒng)、系統(tǒng)時鐘電路及系統(tǒng)總線的微型計算機。具有微型計算機屬性,因而被稱為單片微型計算機,簡稱單片機。5主要應用測控領域。單片機處于測控系統(tǒng)的核心地位并嵌入其中,所以國際上通常把單片機稱為嵌入式控制器(EMCU,EmbeddedMicroControllerUnit),或微控制器(MCU,MicroControllerUnit)。我國習慣于使用“單片機”這一名稱。單片機是計算機技術發(fā)展史上重要里程碑,標志著計算機正式形成了通用計算機系統(tǒng)和嵌入式計算機系統(tǒng)兩大分支。單片機體積小、成本低,嵌入到工業(yè)控制單元、機器人、智能儀器儀表、汽車電子系統(tǒng)、武器系統(tǒng)、家用電器、辦公自動化設備、金融電子系統(tǒng)、玩具、個人信息終端及通訊產品中。6按用途可分為通用型和專用型兩大類。(1)通用型
內部可開發(fā)資源(如存儲器、I/O等各種外圍功能部件等)可全部提供給用戶。
根據(jù)需要,設計一個以通用單片機芯片為核心,再配以外圍接口電路及外圍設備,并編寫相應軟件來滿足各種不同需要的測控系統(tǒng)。通常所說和本書介紹的是指通用型單片機。(2)專用型
專門針對某些產品的特定用途而制作的。例如,各種家用電器中的控制器等。由于特定用途,單片機芯片制造商常與產品廠家合作,設計和生產“專用”的單片機。在設計中,已對“專用”單片機的系統(tǒng)結構最簡化、可靠性和成本的最佳化等做了全面綜合考慮,所以“專用”單片機具有十分明顯的綜合優(yōu)勢。無論“專用”單片機在用途上有多么“?!保浠窘Y構和工作原理都是以通用單片機為基礎。71.2單片機的發(fā)展歷史按處理二進制位數(shù)主要分為:4位單片機、8位單片機、16位單片機和32位單片機。發(fā)展大致分為4個階段。第一階段(1974年~1976年):單片機初級階段。因工藝限制,雙片形式且功能較簡單。1974年12月,仙童公司推出了8位的F8單片機,實際只包括了8位CPU、64BRAM和2個并行口。第二階段(1976年~1978年):低性能單片機階段。1976年Intel的MCS-48單片機(8位)極大地促進了單片機變革和發(fā)展,81977年GI公司推出PIC1650,但這個階段仍處于低性能階段。第三階段(1978年~1983年):高性能單片機階段。1978年,Zilog公司推出Z8單片機,1980年,Intel公司在MCS-48系列基礎上推出MCS-51系列,Mortorola推出6801單片機。使單片機性能及應用躍上新臺階。此后,各公司8位單片機迅速發(fā)展。推出的單片機普遍帶有串行I/O口、多級中斷系統(tǒng)、16位定時器/計數(shù)器,片內ROM、RAM容量加大,且尋址范圍可達64KB,有的片內還帶有A/D轉換器。由于這類單片機性/價比高,得到廣泛應用,是目前應用數(shù)量最多的單片機。9第四階段(1983年~現(xiàn)在):8位單片機鞏固發(fā)展及16位單片機、32位單片機推出階段。20世紀90年代單片機大發(fā)展時期,Mortorola、Intel、ATMEL、德州儀器(TI)、三菱、日立、飛利浦、LG等公司開發(fā)一大批性能優(yōu)越的單片機,極大推動單片機應用。近年,不少新型高集成度的單片機涌現(xiàn)。目前,除8位單片機得到廣泛應用外,16位單片機、32位單片機也得到廣大用戶青睞。101.3單片機的特點單片機是集成電路技術與微型計算機技術高速發(fā)展的產物。體積小、價格低、應用方便、穩(wěn)定可靠,因此,給工業(yè)自動化等領域帶來了一場重大革命和技術進步。由于體積小,很容易地嵌入到系統(tǒng)之中,以實現(xiàn)各種方式的檢測、計算或控制,這一點,一般微機根本做不到。由于單片機本身就是一個微型計算機,因此只要在單片機的外部適當增加一些必要的外圍擴展電路,就可靈活構成各種應用系統(tǒng),如工業(yè)自動檢測監(jiān)視系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、自動控制系統(tǒng)、智能儀器儀表等。11為什么應用廣泛?由于具有以下優(yōu)點:(1)簡單方便,易普及。單片機技術是易掌握技術。應用系統(tǒng)設計、組裝、調試已經是一件容易的事情,工程技術人員通過學習可很快掌握其應用設計技術。(2)功能齊全,應用可靠,抗干擾能力強。(3)發(fā)展迅速,前景廣闊。短短幾十年,單片機經過4位機、8位機、16位機、32位機等幾大發(fā)展階段。集成度高、功能日臻完善的單片機不斷問世,使單片機在工業(yè)控制及工業(yè)自動化領域獲得長足發(fā)展和大量應用。目前,單片機內部結構愈加完美,片內外圍功能部件越來越完善,向更高層次和更大規(guī)模的發(fā)展奠定堅實基礎。12(4)嵌入容易,用途廣泛,體積小、性/價比高,應用靈活性強等特點在嵌入式微控制系統(tǒng)中具有十分重要地位。單片機問世前,制作一套測控系統(tǒng),大量模擬電路、數(shù)字電路、分立元件完成,以實現(xiàn)計算、判斷和控制功能。系統(tǒng)體積龐大,線路復雜,連接點多,易出故障。單片機出現(xiàn)后,絕大部分測控功能由單片機軟件程序實現(xiàn),其它電子線路則由片內外圍功能部件替代。1.4單片機的應用軟硬件結合、體積小,容易嵌入到各種應用系統(tǒng)中。得到廣泛應用。131.工業(yè)檢測與控制主要應用:工業(yè)過程控制、智能控制、設備控制、數(shù)據(jù)采集和傳輸、測試、測量、監(jiān)控等。在工業(yè)自動化領域中,機電一體化技術將發(fā)揮愈來愈重要的作用,在這種集機械、微電子和計算機技術為一體的綜合技術(如機器人技術)中,單片機發(fā)揮著非常重要作用。2.儀器儀表目前對儀器儀表的自動化和智能化要求越來越高。單片機的使用有助于提高儀器儀表的精度和準確度,簡化結構,減小體積而易于攜帶和使用,加速儀器儀表向數(shù)字化、智能化、多功能化方向發(fā)展。143.消費類電子產品例如,洗衣機、電冰箱、空調機、電風扇、電視機、微波爐、加濕機、消毒柜等。嵌入了單片機后,功能和性能大大提高,并實現(xiàn)智能化、最優(yōu)化控制。4.通信在調制解調器、各類手機、傳真機、程控電話交換機、信息網絡及各種通訊設備中,單片機也已得到廣泛應用。5.武器裝備現(xiàn)代化武器裝備,如飛機、軍艦、坦克、導彈、魚雷制導、智能武器裝備、航天飛機導航系統(tǒng),都有單片機嵌入其中。156.各種終端及計算機外部設備計算機網絡終端(如銀行終端)及計算機外部設備(如打印機、硬盤驅動器、繪圖機、傳真機、復印機等)中都使用了單片機作為控制器。7.汽車電子設備已廣泛應用在各種汽車電子設備中,如汽車安全系統(tǒng)、汽車信息系統(tǒng)、智能自動駕駛系統(tǒng)、衛(wèi)星汽車導航系統(tǒng)、汽車緊急請求服務系統(tǒng)、汽車防撞監(jiān)控系統(tǒng)、汽車自動診斷系統(tǒng)及汽車黑匣子等。8.分布式多機系統(tǒng)在較復雜多節(jié)點測控系統(tǒng)中,常采用分布式多機系統(tǒng)。16一般由若干臺功能各異的單片機組成,各自完成特定的任務,它們通過串行通信相互聯(lián)系、協(xié)調工作。在這種系統(tǒng)中,單片機往往作為一個終端機,安裝在系統(tǒng)某些節(jié)點上,對現(xiàn)場信息進行實時測控。
從工業(yè)自動化、自動控制、智能儀器儀表、消費類電子產品等方面,直到國防尖端技術領域,單片機都發(fā)揮十分重要作用。1.5單片機的發(fā)展趨勢
單片機發(fā)展趨勢將是向大容量、高性能化,外圍電路內裝化等方面發(fā)展。為滿足不同用戶要求,各公司競相推出能滿足不同需要的產品。1.CPU的改進
(1)增加CPU數(shù)據(jù)總線寬度。例如,各種16位單片機和32位單片機,數(shù)據(jù)處理能力要優(yōu)于8位單片機。另外,8位單片機內部采用16位數(shù)據(jù)總線,其數(shù)據(jù)處理能力明顯優(yōu)于一般8位單片機。
(2)采用雙CPU結構,以提高數(shù)據(jù)處理能力。182.存儲器的發(fā)展(1)片內程序存儲器普遍采用閃存??刹挥猛鈹U展程序存儲器,簡化系統(tǒng)結構。(2)加大存儲容量。目前有的單片機片內程序存儲器容量可達128KB甚至更多。3.片內I/O的改進(1)增加并行口驅動能力,以減少外部驅動芯片。有的單片機可直接輸出大電流和高電壓,以便能直接驅動LED和VFD(熒光顯示器)。(2)有些單片機設置了一些特殊的串行I/O功能,為構成分布式、網絡化系統(tǒng)提供方便條件。194.低功耗CMOS化,功耗小,配置有等待狀態(tài)、睡眠狀態(tài)、關閉狀態(tài)等工作方式。消耗電流僅在μA或nA量級,適于電池供電的便攜式、手持式的儀器儀表及其它消費類電子產品。5.外圍電路內裝化
眾多外圍電路全部裝入片內,即系統(tǒng)的單片化是目前發(fā)展趨勢之一。例如,美國Cygnal公司的C8051F0208位單片機,內部采用流水線結構,大部分指令的完成時間為1或2個時鐘周期,峰值處理能力為25MIPS。片上集成有8通道A/D、兩路D/A、兩路電壓比較器,內置溫度傳感器、定時器、可編程數(shù)字交叉開關和64個通用I/O口、電源監(jiān)測。206.編程及仿真的簡單化目前大多數(shù)單片機都支持程序的在線編程,也稱在系統(tǒng)編程ISP(InSystemProgram),只需一條ISP并口下載線,就可把仿真調試通過的程序從PC機寫入單片機的Flash存儲器內,省去編程器。某些機型還支持在線應用編程(IAP),可在線升級或銷毀單片機應用程序,省去了仿真器。
綜上所述,單片機正在向多功能、高性能、高速度(時鐘達40MHz)、低電壓(2.7V即可工作)、低功耗、低價格(幾元錢)、外圍電路內裝化以及片內程序存儲器和數(shù)據(jù)存儲器容量不斷增大的方向發(fā)展。1.6MCS-51系列與AT89C5x系列單片機20世紀80年代以來,單片機發(fā)展非常迅速,其中Intel公司的MCS-51系列單片機是一款設計成功、易于掌握并在世界范圍得到廣泛使用的機型。
1.6.1MCS-51系列單片機MCS是Intel公司單片機的系列符號,如MCS-48、MCS-51、MCS-96系列單片機。22MCS-51系列是在MCS-48系列基礎上于20世紀80年代初發(fā)展起來的,是最早進入我國,并在我國得到廣泛應用的單片機主流品種。MCS-51系列單片機主要包括
基本型:8031/8051/8751(低功耗型80C31/80C51/87C51)
增強型:8032/8052/8752。
已為我國廣大技術人員所熟悉和掌握。上世紀80年代和90年代,MCS-51系列是在我國應用最為廣泛的機型之一。MCS-51系列品種豐富,經常使用的是基本型和增強型。23基本型
典型產品:8031/8051/8751。8031內部包括1個8位CPU、128BRAM,21個特殊功能寄存器(SFR)、4個8位并行I/O口、1個全雙工串行口,2個16位定時器/計數(shù)器,5個中斷源,但片內無程序存儲器,需外擴程序存儲器芯片。8051是在8031的基礎上,片內又集成有4KBROM作為程序存儲器。所以8051是一個程序不超過4KB的小系統(tǒng)。ROM內的程序是公司制作芯片時,代為用戶燒制的。8751與8051相比,片內集成的4KBEPROM取代了8051的4KBROM來作為程序存儲器。242.增強型
Intel公司在基本型基礎上,推出增強型-52子系列,典型產品:8032/8052/8752。內部RAM增到256B,8052、片內程序存儲器擴展到8KB,16位定時器/計數(shù)器增至3個,6個中斷源,串行口通信速率提高5倍。
表1-1列出了基本型和增強型的MCS-51系列單片機片內的基本硬件資源。
1.6.2AT89C5x(AT89S5x)系列單片機
MCS-51系列單片機代表性產品為8051,其他單片機都是在8051內核基礎上進行了功能增減。20世紀80年代中期以后,Intel公司已把精力集中在高檔CPU芯片的研發(fā)上,逐漸淡出單片機芯片的開發(fā)和生產。27MCS-51單片機設計上的成功及較高的市場占有率,已成為許多廠家、公司競相選用的對象,并以此為基核。因此,Intel公司以專利轉讓或技術交換形式把8051內核技術轉讓給許多半導體芯片生產廠家,如ATMEL、Philips、Cygnal、ANALOG、LG、ADI、Maxim、DEVICES、DALLAS等公司。各廠家的兼容機型均采用8051內核、指令系統(tǒng)相同,采用CMOS工藝;有的公司還在8051內核基礎上增加一些片內功能模塊,集成度更高,功能和市場競爭力更強。人們常用8051(80C51,“C”表示采用CMOS工藝)來稱呼所有這些具有8051內核,且使用8051指令系統(tǒng)的單片機,也習慣把這些兼容機等各種衍生品種統(tǒng)稱為8051單片機。
眾多衍生機型中,ATMEL公司的AT89C5x/AT89S5x系列,在8位單片機市場中占有較大的市場份額。ATMEL公司1994年以E2PROM技術與Intel公司80C51內核的使用權進行交換。ATMEL公司技術優(yōu)勢是閃爍(Flash)存儲器技術,將Flash技術與80C51內核相結合,形成了片內帶有Flash存儲器的AT89C5x/AT89S5x系列單片機。28AT89C5x/AT89S5x系列與MCS-51系列在原有功能、引腳以及指令系統(tǒng)方面完全兼容。
此外,某些品種又增加一些新功能,如看門狗定時器WDT、ISP(在系統(tǒng)編程也稱在線編程)及SPI串行接口技術等。片內Flash存儲器允許在線(+5V)電擦除、電寫入或使用編程器對其重復編程。AT89C5x/AT89S5x單片機還支持由軟件選擇的兩種節(jié)電工作方式,適于低功耗場合。AT89S51與87C51相比,AT89C51/AT89S51單片機片內的4KBFlash存儲器取代87C51片內的4KBEPROM。AT89S51片內的Flash存儲器可在線編程或使用編程器重復編程,且價格較低。29AT89C51/AT89S51單片機作為8051單片機的代表性產品受到用戶歡迎。
AT89S51與AT89S52單片機的差別體現(xiàn)在,AT89S51內部有4KBFlash存儲器和128BRAM,以及5個中斷源、兩個定時/計數(shù)器。而AT89S52內部有8KBFlash存儲器和256BRAM,以及6個中斷源、3個定時/計數(shù)器(比AT89S51多出的一個定時/計數(shù)器,具有捕捉功能)。
本書重點介紹AT89S51原理及應用設計?!癝”檔系列是ATMEL公司繼AT89C5x系列之后推出的新機型,表示含有串行下載的Flash存儲器,代表性產品為AT89S51和AT89S52。AT89C51單片機已不再生產,可用AT89S51直接代換。
在我國,除8位單片機廣泛應用外,16位單片機也得到廣大用戶的青睞,例如,美國TI公司的16位單片機MSP430。本身帶有A/D轉換器,一片芯片就構成了一個數(shù)據(jù)采集系統(tǒng)。設計使用非常方便。盡管這樣,16位單片機還遠遠沒有8位單片機應用的廣泛和普及,因為目前的主要應用中,8位機的性能已能夠滿足大部分的實際需求,況且8位機的性能價格比較好。
在眾多廠家各種不同的8位機中,各種兼容的8051單片機,目前仍是8位單片機主流品種,若干年內仍是自動化、機電一體化、儀器儀表、工業(yè)檢測控制應用主角。311.7各種衍生品種的51單片機除AT89S5x系列單片機外,世界各器件廠家推出的以8051為內核、各種集成度高、功能強的單片機,也得到廣大用戶青睞。
1.7.1STC系列單片機STC系列具有我國獨立自主知識產權,功能與抗干擾性強的增強型8051單片機,多種子系列,幾百個品種,以滿足不同需要。其中的STC12C5410/STC12C2052系列的主要性能及特點如下。32(1)高速:傳統(tǒng)8051為每個機器周期為12個時鐘,而STC可為每機器周期1個時鐘,指令執(zhí)行速度大大提高,速度比普通8051快8~12倍。(2)寬工作電壓:5.5~3.8V,2.4~3.8V。(3)12KB/10KB/8KB/6KB/4KB片內Flash程序存儲器,擦寫次數(shù)10萬次以上。(4)512B片內的RAM數(shù)據(jù)存儲器。(5)可在線編程(ISP)/在應用可編程(IAP),無需編程器/仿真器,可遠程升級。(6)8通道10位ADC,4路PWM輸出。(7)4通道捕捉/比較單元,也可用來再實現(xiàn)4個定時器或4個外部中斷。(8)2個硬件16位定時器,兼容8051定時器。4路PCA還可再實現(xiàn)4個定時器。(9)硬件看門狗(WDT)。(10)高速SPI串口。(11)全雙工異步串行口(UART),兼容普通8051的串口。(12)通用I/O口(27/23/15個),復位后為:準雙向口/弱上拉(與8051的I/O接口相似)??稍O置成四種模式:準雙向口/弱上拉,推挽/強上拉,僅為輸入/高阻,開漏,每個I/O口驅動能力均可達到20mA,但整個芯片最大不可超過55mA。(13)超強抗干擾能力與高可靠性:高抗靜電;寬電壓,不怕電源抖動;寬溫度范圍:?40℃~+85℃;I/O口經過特殊處理;(14)采取了降低單片機時鐘對外部電磁輻射的措施:可禁止ALE輸出;如選每個機器周期為6個時鐘,外部時鐘頻率可降一半;單片機時鐘振蕩器增益可設為Gain。(15)超低功耗設計掉電模式:典型功耗<0.1μA;空閑模式:典型功耗為2mA;正常工作模式:典型功耗為4mA~7mA;掉電模式可由外部中斷喚醒,適用于電池供電系統(tǒng),如水表、氣表、便攜設備等。STC可直接替換ATMEL、Philips、Winbond(華邦)等公司的8051兼容產品。由上所述,是一款高性能、高可靠性的機型,尤其具有較高的抗干擾特性,應給予足夠重視。1.7.2C8051Fxxx單片機美國Cygnal公司產品,集成度高,8051內核的8位單片機,代表性產品為C8051F020。C8051F020內部采用流水線結構,大部分指令時間為1或2個時鐘周期,峰值處理能力為25MIPS,與經典的8051單片機比,可靠性和速度有很大提高。片內集成1個8位ADC、1個12位ADC、1個雙12位DAC;64KB片內Flash程序存儲器、256BRAM、128BSFR;8個I/O端口共64根I/O口線;5個16位通用定時器;5個捕捉/比較模塊的可編程計數(shù)/定時器陣列(PCA),1個UART串口、1個SMBus/I2C串口、1個SPI串行口;2路電壓比較器、電源監(jiān)測器、內置溫度傳感器。C8051F×××最突出改進引入數(shù)字交叉開關(C8051F2××除外)。1.7.3ADμC812單片機美國ADI(AnalogDeviceInc)公司的高性能單片機,內部集成高精度自校準8通道12位模數(shù)轉換器(ADC),2通道12位數(shù)模轉換器(DAC),指令系統(tǒng)與8051兼容。片內有8KBFlash程序存儲器、640BFlash數(shù)據(jù)存儲器、256B數(shù)據(jù)SRAM(支持可編程)。片內集成看門狗定時器、電源監(jiān)視器以及ADC
DMA功能。為多處理器接口和I/O擴展提供了32條可編程的I/O線、包含有與I2C兼容的串行接口、SPI串行接口和標準UART串口。
ADμC812的MCU內核和模數(shù)轉換器均設有正常、空閑和掉電工作模式,軟件可控制從正常模式到空閑模式,也可切換到更省電的掉電模式。掉電模式,消耗總電流約5μA。1.7.4臺灣華邦公司W77系列和W78系列單片機臺灣華邦公司(Winbond)
W78系列與AT89C5x系列完全兼容,W77系列為增強型。W77系列對8051時序作了改進:每個指令周期只需要4個時鐘周期,速度提高3倍,工作頻率最高可達40MHz。W77系列增加看門狗WatchDog、兩組UART、兩組DPTR數(shù)據(jù)指針(編寫程序非常便利)、ISP(在系統(tǒng)可編程)等功能。片內集成了USB接口,語音處理等功能,具有6組外部中斷源。W741系列的4位單片機帶液晶驅動,在線燒錄,保密性高,低工作電壓(1.2V-1.8V)。1.8PIC系列單片機與AVR系列單片機
除8051外,其它8位機型也得到較廣泛的應用。目前我國使用較為廣泛的是PIC系列與AVR系列單片機,這兩種機型博采眾長,又具獨特技術,已占有較大的市場份額。1.8.1PIC系列單片機
美國Microchip公司產品。特性如下:
(1)從實際出發(fā),重視性能價格比,已開發(fā)出多種型號來滿足應用需求。例如,一個摩托車點火器需要一個I/O較少、RAM及程序存儲空間不大、可靠性較高的小型單片機,若用40腳功能強的單片機,投資大,使用也不方便。PIC系列從低到高有幾十個型號。其中,PIC10F22單片機僅有6個引腳,是世界最小的單片機。8腳PIC12C508有512字節(jié)ROM、25字節(jié)RAM、一個8位定時器、一根輸入線、5根I/O線,價格非常便宜。用在摩托車點火器非常適合。PIC的高檔型,如PIC16C74(尚不是最高檔型號)有40個引腳,其內部資源為ROM共4K、192字節(jié)RAM、8路A/D、3個8位定時器、2個CCP模塊、3個串行口、1個并行口、11個中斷源、33個I/O腳。可與其它品牌的高檔型號媲美。(2)精簡指令集--執(zhí)行效率大為提高。PIC系列8位單片機采用精簡指令集(RISC),數(shù)據(jù)總線和指令總線分離的哈佛總線(Harvard)結構,指令單字長,且允許指令代碼的位數(shù)可多于8位的數(shù)據(jù)位數(shù),這與傳統(tǒng)的采用復雜指令結構(CISC)結構的8位單片機相比,可達到2:1的代碼壓縮,速度提高4倍。(3)
優(yōu)越的開發(fā)環(huán)境。PIC推出一款新型號單片機的同時推出相應的仿真芯片,所有的開發(fā)系統(tǒng)由專用的仿真芯片支持,實時性非常好。(4)引腳具有防瞬態(tài)能力,通過限流電阻可接至220V交流電源,直接與繼電器控制電路相連,無須光耦隔離,給應用帶來極大方便。PIC單片機分低檔型、中檔型和高檔型:(1)低檔8位單片機PIC12C5XXX/16C5X系列。PIC16C5X系列最早在市場上得到發(fā)展,價格低,有較完善的開發(fā)手段,因此在國內應用最為廣泛;而PIC12C5XX是世界第一個8腳低價位單片機可用于簡單的智能控制等要求體積小的場合,前景廣闊。(2)中檔8位單片機PIC12C6XX/PIC16CXXX系列。品種最為豐富,其性能比低檔產品有所提高,增加了中斷功能,指令周期可達到200ns,帶A/D,內部E2PROM數(shù)據(jù)存儲器,雙時鐘工作,比較輸出,捕捉輸入,PWM輸出,I2C和SPI接口,異步串行接口(UART),模擬電壓比較器及LCD驅動等等,其封裝從8腳到68腳,可用于高、中、低檔的電子產品設計中,價格適中,廣泛應用在各類電子產品中。(3)高檔8位單片機PIC17CXX系列。適合高級復雜系統(tǒng)開發(fā)的產品,在中檔位單片機的基礎上增加了硬件乘法器,指令周期可達成160ns,它是目前世界上8位單片機中性價比最高的機種,可用于高、中檔產品的開發(fā),如電機控制等。此外,Microchip公司還推出高性能的16位和32位單片機。1.8.2AVR系列單片機1997年ATMEL公司利用Flash新技術,研發(fā)的精簡指令集(ReducedInstructionSetComputer,RISC)的高速8位機。
特點如下:
(1)廢除機器周期,拋棄復雜指令計算機(CISC)追求指令完備的做法,采用精簡指令集。以字為指令長度單位,將操作數(shù)與操作碼安排在一字之中,指令長度固定、格式與種類相對較少、尋址方式也相對較少,絕大部分指令都為單周期指令。取指周期短,又可預取指令,實現(xiàn)流水作業(yè),故可高速執(zhí)行指令,當然這種“高速度”是以高可靠性來保障的。(2)新工藝AVR器件的Flash存儲器擦寫可達10
000次以上。片內較大容量RAM,不僅能滿足一般場合的使用,同時也更有效的支持高級語言開發(fā)系統(tǒng)程序,并可像MCS-51單片機那樣很容易地擴展外部RAM。(3)豐富的外設。片內有定時器/計數(shù)器、看門狗、低電壓檢測電路BOD,多個復位源(自動上下電復位、外部復位、看門狗復位、BOD復位),可設置的啟動后延時運行程序,增強應用系統(tǒng)可靠性。片內UART,面向字節(jié)的高速硬件串口TWI(與I2C兼容)、SPI串口。還有ADC、PWM等片內外設。48(4)I/O口功能強、驅動能力大。工業(yè)級產品具有大電流(最大可達40mA),可省去功率驅動器件,直接驅動可控硅SSR或繼電器。AVR單片機的I/O口是真正的I/O口,能正確反映I/O口輸入/輸出的真實情況。I/O口的輸入可設定為三態(tài)高阻抗輸入或帶上拉電阻輸入,便于滿足各種多功能I/O口應用的需要,具備10mA~20mA灌電流的能力。(5)低功耗。有省電功能(PowerDown)及休眠功能(Idle)低功耗工作方式。一般耗電在1~2.5mA;對典型功耗情況,WDT關閉時為100nA,更適于電池供電。有的器件最低1.8V即可工作。(6)支持在線編程,只需一條ISP下載線,就可把程序寫入AVR單片機,無需編程器。其中MEGA系列還支持在線應用編程IAP(可在線升級或銷毀應用程序),省去仿真器。AVR系列齊全,3個檔次,可適于各種不同場合要求:低檔Tiny系列:有Tiny11/12/13/15/26/28等;中檔AT90S系列:有AT90S1200/2313/8515/8535等;高檔
Atmega
系列
:主要有ATmega8/16/32/64/128(存儲容量為8KB/16KB/32KB/64KB/128KB)及ATmega8515/8535等。501.9其它的嵌入式處理器簡介以各類嵌入式處理器為核心的嵌入式系統(tǒng)的應用,已成為當今電子信息技術應用的一大熱點。嵌入式處理器按體系結構主要分為如下幾類:嵌入式微控制器(單片機)、嵌入式數(shù)字信號處理器(簡稱DSP)及嵌入式微處理器。1.9.1嵌入式DSP處理器(DSP)DSP(數(shù)字信號處理器)是擅長高速實現(xiàn)各種數(shù)字信號處理運算(如數(shù)字濾波、FFT、頻譜分析等)的嵌入式處理器。DSP的硬件結構和指令經過了特殊設計,使其能夠高速完成各種數(shù)字信號處理運算。1981年,美國TI公司研制了著名的TMS320系列的第一個低成本、高性能DSP芯片—TMS320C10,使DSP技術向前跨出了意義重大的一步。20世紀90年代,由于無線通信、網絡通信、多媒體技術的普及和應用,以及高清晰度數(shù)字電視的研究,極大地刺激了DSP的推廣與應用。由此,DSP大量進入嵌入式領域。推動DSP快速發(fā)展的是嵌入式系統(tǒng)的智能化,例如,各種帶有智能邏輯的消費類產品、生物信息識別終端、
52實時語音壓解系統(tǒng)、數(shù)字圖像處理等。這類智能化算法運算量一般較大,特別是向量運算、指針線性尋址等較多,而這些正是DSP的長處所在。但在一些實時性要求很高的場合,單片DSP的處理能力還是不能滿足要求。因此,各大公司又研制出多總線、多流水線和并行處理的包含多個DSP的芯片,大大提高了系統(tǒng)的性能。DSP所具有的實現(xiàn)高速運算的硬件結構與指令系統(tǒng)及多總線結構,尤其是DSP處理的數(shù)字信號處理運算的復雜度和大的數(shù)據(jù)處理流量,這些都是單片機不能企及的。DSP廠商主要有TI、ADI、Motorola、Zilog等公司。其中,TI公司的產品位居榜首,占全球DSP產品市場約60%的份額。TI公司的DSP代表性產品是TMS320系列,其中包括用于控制的2000系列,用于移動通信的5000系列,用于網絡、多媒體及圖像處理的6000系列等。今天,隨著全球信息化和Internet的普及,多媒體技術的廣泛應用,尖端技術向民用領域的迅速轉移,DSP已大范圍進入消費類電子產品。DSP產品不斷更新?lián)Q代,性能指標不斷提高,價格不斷下降,已成為新興科技領域—通信、多媒體系統(tǒng)、消費電子、醫(yī)用電子等飛速發(fā)展的主要推動力。市場調查研究公司ForwardConcepts發(fā)布的一份統(tǒng)計和預測報告顯示,目前世界DSP產品市場每年正以30%的幅度增長,是目前最有發(fā)展和應用前景的嵌入式處理器之一。1.9.2嵌入式微處理器嵌入式微處理器(EmbeddedMicroProcessorUnit,EMPU)的基礎是通用計算機中的CPU。雖在功能和標準微處理器基本一樣,但由于只保留和嵌入式應用有關的功能,這樣可大幅度減小系統(tǒng)體積和功耗,同時在工作溫度、抗電磁干擾、可靠性等方面一般都做了各種增強處理。54嵌入式微處理器代表性產品為ARM系列,主要5個產品系列:ARM7、ARM9、ARM9E、ARM10和SecurCore。以ARM7為例,地址線32條,能擴展的存儲器空間要比單片機存儲器空間大得多,可配置實時多任務操作系統(tǒng)(RTOS),而RTOS則是嵌入式應用軟件的基礎和開發(fā)平臺。常用的RTOS為Linux(數(shù)百KB)和VxWorks(數(shù)MB)以及μC-OSⅡ。由于嵌入式實時多任務操作系統(tǒng)具有高度靈活性,可很容易對它進行定制或開發(fā),即“裁剪”、“移植”和“編寫”,從而設計出用戶所需的應用程序。55
由于能運行實時多任務操作系統(tǒng),所以能處理復雜的系統(tǒng)管理任務和處理工作。因此,在移動計算平臺、媒體手機、工業(yè)控制和商業(yè)領域(例如,智能工控設備、ATM機等)、電子商務平臺、信息家電(機頂盒、數(shù)字電視)等方面,甚至軍事上的應用,具有巨大的吸引力。以嵌入式微處理器為核心的嵌入式系統(tǒng)的應用,已經成為繼單片機、DSP之后的電子信息技術應用的又一大熱點。56
這里要對“嵌入式系統(tǒng)”這個名稱作進一步說明。從更廣泛意義講,凡是系統(tǒng)中嵌入了“嵌入式處理器”,如單片機、DSP、嵌入式微處理器,都稱其為“嵌入式系統(tǒng)”。但目前較為流行的說法是,僅把“嵌入”嵌入式微處理器的系統(tǒng),稱為“嵌入式系統(tǒng)”。目前“嵌入式系統(tǒng)”還沒有一個嚴格和權威定義,但通常所說的“嵌入式系統(tǒng)”,多指后種。5758第2章AT89S51單片機
硬件結構
59單片機應用特點是編寫程序來控制硬件,讀者應首先熟知并掌握AT89S51片內硬件的基本結構和特點。2.1AT89S51單片機的硬件組成
片內結構如圖2-1所示。把作為控制應用所必需的基本功能部件都集成在一個集成電路芯片上。
下面對圖2-1中的各部件進行簡單介紹。(1)8位微處理器(CPU);(2)數(shù)據(jù)存儲器(RAM):內部為128B(增強型的52子系列為256B),外部最多還可外擴64KB的數(shù)據(jù)存儲器。(3)程序存儲器(Flash存儲器):用來存儲程序。AT89S51內部有4KB的Flash存儲器(AT89S52內部有8KB的Flash存儲器;AT89S53/AT89S54/圖2-1AT89S51單片機片內結構61AT89S55內部集成了12KB/20KB/20KB的Flash存儲器)。如果內部程序存儲器容量不夠,外部最多可外擴至64KB程序存儲器。(4)中斷系統(tǒng)有5個中斷源,對應5個中斷向量;(5)2個可編程的16位定時器/計數(shù)器;(6)1個全雙工的異步串行口;(7)4個8位可編程并行I/O口(P0口、P1口、P2口、P3口);(8)特殊功能寄存器(SFR):共有26個特殊功能寄存器,用于CPU對內部各外圍部件進行管理、控制和監(jiān)視。特殊功能寄存器實際上是內部各外圍部件的控制寄存器和狀態(tài)寄存器,這些特殊功能寄存器映射在內部RAM區(qū)的80H~FFH的地址區(qū)間內。(9)看門狗定時器(WDT):當單片機由于干擾而使程序陷入死循環(huán)或跑飛狀態(tài)時,看門狗定時器可引起單片機復位,使程序恢復正常運行。2.2AT89S51的引腳功能
先了解引腳,牢記各引腳功能。AT89S51與各種8051芯片的引腳兼容。目前多采用40只引腳雙列直插,如圖2-2。此外,還有44引腳的PLCC和TQFP封裝方式的芯片。
引腳按其功能可分為如下3類:(1)電源及時鐘引腳—VCC、VSS;XTAL1、XTAL2。(2)控制引腳—PSEN*、ALE/PROG*、EA*/VPP、RST(RESET)(3)I/O口引腳——P0、P1、P2、P3,為4個8位I/O口
下面結合圖2-2介紹各引腳的功能。622.2.1電源及時鐘引腳1.電源引腳(1)VCC(40腳):+5V電源。(2)VSS(20腳):數(shù)字地。63圖2-2AT89S51雙列直插封裝方式的引腳2.時鐘引腳
(1)XTAL1(19腳):片內振蕩器反相放大器和時鐘發(fā)生器電路輸入端。用片內振蕩器時,該腳接外部石英晶體和微調電容。外接時鐘源時,該腳接來自外部時鐘振蕩器的信號。
(2)XTAL2(18腳):片內振蕩器反相放大器的輸出端。當使用片內振蕩器,該腳接外部石英晶體和微調電容。當使用外部時鐘源時,本腳懸空。2.2.2控制引腳(1)RST(RESET,9腳)
復位信號輸入,在引腳加上持續(xù)時間大于2個機器周期的高電平,可使單片機復位。正常工作,此腳電平應≤0.5V。64
當看門狗溢出時,該腳將輸出96個時鐘振蕩周期的高電平。(2)EA*/VPP(EnableAddress/VoltagePulseofPrograming,31腳)
EA*:第一功能:外部程序存儲器訪問允許控制端。EA*=1,在PC值≤0FFFH(不超出片內4KBFlash存儲器地址范圍)時,單片機讀片內Flash存儲器(4KB)中的程序,但PC值>0FFFH
(超出片內4KBFlash地址范圍)時,將自動轉向讀取片外60KB(1000H~FFFFH)程序存儲器空間中的程序。EA*=0,只讀取片外程序存儲器中內容,讀取地址范圍為0000H~FFFFH,片內的4KBFlash程序存儲器不起作用。VPP:引腳第二功能,對片內Flash編程,接編程電壓。(3)ALE/PROG*(AddressLatchEnable/PROGramming,30腳)ALE:為CPU訪問外部程序存儲器或外部數(shù)據(jù)存儲器提供地址鎖存控制信號,將低8位地址鎖存在片外的地址鎖存器中。
66此外,單片機正常運行時,ALE端一直有正脈沖信號輸出,此頻率為fosc的1/6。該信號可作外部定時或觸發(fā)信號使用。
注意:每當AT89S51訪問外部RAM或I/O時,要丟失一個ALE脈沖,所以ALE引腳的輸出信號頻率并不是準確的1/6
fosc。
如不需要ALE端輸出脈沖信號,可將特殊功能寄存器AUXR(地址8EH,本章后面介紹)的第0位(ALE禁止位)置1,來禁止ALE操作,但在執(zhí)行訪問外部程序存儲器或外部數(shù)據(jù)存儲器操作時,ALE仍然有效,即ALE禁止位不影響對單片機對外部存儲器的訪問。PROG*:引腳第二功能,對片內Flash編程,加編程脈沖輸入。(4)PSEN*
(ProgramStrobeENable,29腳)
片外程序存儲器讀選通信號,低有效。2.2.3并行I/O口引腳(1)P0口:P0.7~P0.0腳,8位,漏極開路的雙向I/O口
當外擴存儲器及I/O接口芯片時,P0口作為低8位地址總線及數(shù)據(jù)總線的分時復用端口。P0口也可作通用的I/O口用,需加上拉電阻,這時為準雙向口。如作輸入,應先向端口寫1??沈寗?個LS型TTL負載。(2)P1口:P1.7~P1.0腳,8位,準雙向I/O口,內部有上拉電阻。
準雙向I/O口,作通用I/O輸入時,應先向端口鎖存器寫1,68P1口可驅動4個LS型TTL負載。P1.5/MOSI、P1.6/MISO和P1.7/SCK也可用于對片內Flash存儲器串行編程和校驗,分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。(3)P2口:P2.7~P2.0腳,8位,準雙向I/O口,具有內部上拉電阻。
當AT89S51擴展外部存儲器及I/O口時,P2口作為高8位地址總線輸出高8位地址。P2口也可作普通I/O使用。當作通用I/O輸入時,應先向端口輸出鎖存器寫1??沈寗?個LS型TTL負載。(4)P3口:P3.7~P3.0腳,8位,準雙向I/O口,具有內部上拉電阻。
可作為通用的I/O口使用。作為通用I/O輸入,應先向端口輸出鎖存器寫入1??沈寗?個LS型TTL負載。P3口還可提供第二功能。第二功能定義如表2-1,應熟記。
綜上所述,P0口作為總線口時,為雙向口,作通用I/O用時,為準雙向口,需加上拉電阻。P1、P2、P3口均為準雙向口。7071注意:準雙向口與雙向口的差別。準雙向口僅有兩個狀態(tài)。而P0口作為總線使用,口線內無上拉電阻,處于高阻“懸浮”態(tài)。故為雙向三態(tài)I/O口。為什么P0口要有高阻“懸浮”態(tài)?因為P0口作為數(shù)據(jù)總線用時,多個數(shù)據(jù)源都掛在數(shù)據(jù)總線上,當P0口不需要讀寫其他數(shù)據(jù)源時,需要與數(shù)據(jù)總線高阻“懸浮”隔離。準雙向I/O口則無高阻“懸浮”態(tài)。另外,準雙向口作通用I/O輸入使用時,需先向該口先寫入“1”。準雙向口與雙向口的差別,學習2.5節(jié)的P0~P3口內部結構后,會有更深入了解。
72至此,40只引腳已介紹,應熟記每一引腳功能,對應用系統(tǒng)硬件電路設計十分重要。2.3AT89S51的CPU由圖2-1,由運算器和控制器構成。2.3.1運算器對操作數(shù)進行算術、邏輯和位操作運算。主要包括算術邏輯運算單元ALU、累加器A、位處理器、程序狀態(tài)字寄存器PSW及兩個暫存器等。1.算術邏輯運算單元ALU可對8位變量進行邏輯運算(與、或、異或、循環(huán)、求補和清零),還可進行算術運算(加、減、乘、除)73ALU還有位操作功能,對位變量進行位處理,如置“1”、清“0”、求補、測試轉移及邏輯“與”、“或”等。2.累加器A累加器A是CPU中使用頻繁的一個8位寄存器。
作用如下:(1)ALU單元的輸入數(shù)據(jù)源之一,又是ALU運算結果存放單元(2)數(shù)據(jù)傳送大多都通過累加器A,相當于數(shù)據(jù)的中轉站。為解決“瓶頸堵塞”問題,AT89S51增加了一部分可不經過累加器的傳送指令。74A的進位標志Cy是特殊的,因為它同時又是位處理機的位累加器3.程序狀態(tài)字寄存器PSWPSW(ProgramStatusWord)位于片內特殊功能寄存器區(qū),字節(jié)地址D0H。
包含了程序運行狀態(tài)的信息,其中4位保存當前指令執(zhí)行后的狀態(tài),供程序查詢和判斷。格式如圖2-3。
圖2-3PSW的格式75PSW中各位功能:(1)Cy(PSW.7)進位標志位可寫為C。在算術和邏輯運算時,若有進位/借位,Cy=1;否則,Cy=0。在位處理器中,它是位累加器。(2)Ac(PSW.6)輔助進位標志位在BCD碼運算時,用作十進位調整。即當D3位向D4位產生進位或借位時,Ac=1;否則,Ac=0。(3)F0(PSW.5)用戶設定標志位由用戶使用的一個狀態(tài)標志位,可用指令來使它置“1”或清“0,控制程序的流向。用戶應充分利用。76(4)RS1、RS0(PSW.4、PSW.3)4組工作寄存器區(qū)選擇
選擇片內RAM區(qū)中的4組工作寄存器區(qū)中的某一組為當前工作寄存區(qū)。如表2-2。77RS1RS0所選的4組寄存器000區(qū)(內部RAM地址00H~07H)011區(qū)(內部RAM地址08H~0FH)102區(qū)(內部RAM地址10H~17H)113區(qū)(內部RAM地址18H~1FH)表2-2RS1、RS0與4組工作寄存器區(qū)的對應關系(5)OV(PSW.2)溢出標志位
當執(zhí)行算術指令時,用來指示運算結果是否產生溢出。如果結果產生溢出,OV=1;否則,OV=0。(6)PSW.1位:保留位。(7)P(PSW.0)奇偶標志位
指令執(zhí)行后,累加器A中“1”的個數(shù)是奇數(shù)還是偶數(shù)。
P=1,A中“1”的個數(shù)為奇數(shù)。
P=0,A中“1”的個數(shù)為偶數(shù)。
此標志位對串行通信有重要意義,常用奇偶檢驗來檢驗數(shù)據(jù)串行傳輸?shù)目煽啃浴?92.3.2控制器任務:識別指令,并根據(jù)指令的性質控制單片機各功能部件,從而保證單片機各部分能自動協(xié)調地工作。控制器包括:程序計數(shù)器、指令寄存器、指令譯碼器、定時及控制邏輯電路等。功能是控制指令的讀入、譯碼和執(zhí)行,從而對各功能部件進行定時和邏輯控制。程序計數(shù)器PC是一個獨立的16位計數(shù)器,指令不可直接訪問。單片機復位時,PC內容為0000H,從程序存儲器0000H單元取指令,開始執(zhí)行程序。PC工作過程:CPU讀指令時,PC的內容作為所取指令的地址,程序存儲器按此地址輸出指令字節(jié),同時PC自動加1。PC內容變化軌跡決定程序流程。當順序執(zhí)行程序時自動加1;執(zhí)行轉移程序或子程序、中斷子程序調用時,自動將其內容更改成所要轉移的目的地址。PC計數(shù)寬度決定了程序存儲器的地址范圍,16位,故可對64KB(=216B)尋址。2.4AT89S51存儲器的結構存儲器結構特點之一是將程序存儲器和數(shù)據(jù)存儲器分開(哈佛結構),并有各自的訪問指令。存儲器空間可分為4類。801.程序存儲器空間
片內、片外兩部分。片內程序存儲器為4KB的Flash存儲器,編程和擦除全是電氣實現(xiàn),且速度快??赏ㄓ镁幊唐骶幊?,也可在線編程。當片內4KB的Flash存儲器不夠用時,可在片外擴展程序存儲器,最多可擴展至64KB程序存儲器。2.數(shù)據(jù)存儲器空間
片內、片外兩部分。
片內有128BRAM(52子系列為256B)。
片內RAM不夠用時,在片外可擴展至64KBRAM
。813.特殊功能寄存器SFR
(SpecialFunctionRegister)片內共有26個特殊功能寄存器SFR(SpecialFunctionRegister)。SFR實質是各外圍部件的控制寄存器及狀態(tài)寄存器,綜合反映單片機內部實際的工作狀態(tài)及工作方式。4.位地址空間共211個可尋址位,構成了位地址空間。它們位于內部RAM(共128位)和特殊功能寄存器區(qū)(共83位)中。2.4.1程序存儲器空間存放程序和表格之類的固定常數(shù)。片內為4KBFlash,地址為0000H~0FFFH。16位地址線,可外擴的程序存儲器空間最大為64KB,地址為0000H~FFFFH。使用應注意以下問題82(1)分片內和片外兩部分,訪問片內的還是片外的程序存儲器,由EA*腳電平確定。
EA*=1,CPU從片內0000H開始取指令,當PC值≤0FFFH時,只訪問片內Flash存儲器,當PC值>0FFFH自動轉向讀片外程序存儲器空間1000H~FFFFH內的程序。EA*=0,只執(zhí)行片外程序存儲器(0000H~FFFFH)中的程序。不理會片內4KBFlash存儲器。(2)程序存儲器某些固定單元用于各中斷源中斷服務程序入口。838464KB程序存儲器空間5個特殊單元分別對應于5個中斷源的中斷入口地址,見表2-3。通常這5個中斷入口地址處都放一條跳轉指令跳向對應的中斷服務子程序,而不是直接存放中斷服務子程序。這是因為兩個中斷入口間隔僅有8個單元,如果存放中斷服務子程序,往往不夠用。
AT89S51復位后,程序存儲器地址指針PC為0000H,程序從程序存儲器地址0000H開始執(zhí)行程序。由于外部中斷0的中斷服務程序入口地址為0003H,為使主程序不與外部中斷0的中斷服務程序發(fā)生沖突,用匯編語言編程時,一般在0000H單元存放一條跳轉指令,轉向主程序的入口地址。上述問題,在使用C51語言編程時,用戶只需正確書寫中斷函數(shù)即可,其他由C51編譯時自動處理,不會發(fā)生沖突。2.4.2數(shù)據(jù)存儲器空間
片內與片外兩部分。1.片內數(shù)據(jù)存儲器
片內數(shù)據(jù)存儲器(RAM)共128個單元,字節(jié)地址00H~7FH。圖2-4為片內數(shù)據(jù)存儲器的結構。86圖2-4AT89S51片內RAM結構00H~1FH的32個單元是4組通用工作寄存器區(qū),每區(qū)包含8B,為R7~R0。可通過指令改變RS1、RS0兩位來選擇。20H~2FH的16個單元的128位可位尋址,也可字節(jié)尋址。30H~7FH單元只能字節(jié)尋址,用作存數(shù)據(jù)以及作為堆棧區(qū)。2.片外數(shù)據(jù)存儲器
當片內128B的RAM不夠用時,需外擴,最多可外擴64KB的RAM。注意,片內RAM與片外RAM兩個空間是相互獨立的,片內RAM與片外RAM的低128B的地址是相同的,但由于使用不同的訪問指令,所以不會發(fā)生沖突。882.4.3特殊功能寄存器(SFR)
特殊功能寄存器映射在片內RAM
80H~FFH
區(qū)域中,共26個。表2-4是名稱及分布。有些還可位尋址,位地址見表2-4。
凡是可位尋址的SFR,字節(jié)地址末位只能是0H或8H。另外,若讀/寫未定義單元,將得到一個不確定的隨機數(shù)。累加器A和PSW前面已介紹。下面簡單介紹某些SFR,余下的SFR與片內外圍部件密切相關,將在后續(xù)介紹片內外圍部件時進行說明。89901.堆棧指針SP
指示堆棧頂部在內部RAM塊中的位置。
堆棧結構--向上生長型。單片機復位后,SP為07H,使得堆棧實際上從08H單元開始,由于08H~1FH單元分別屬于1~3組的工作寄存器區(qū),最好在復位后把SP值改為60H或更大值,避免堆棧與工作寄存器沖突。
堆棧主要是為子程序調用和中斷操作而設。用于保護斷點和現(xiàn)場。
(1)保護斷點。無論子程序調用還是中斷服務子程序調用,最終都要返回主程序。應預先把主程序的斷點在堆棧中保護起來,為程序正確返回做準備。92(2)現(xiàn)場保護。執(zhí)行子程序或中斷服務子程序時,要用到一些寄存器單元,會破壞原有內容。要把有關寄存器單元的內容送入堆棧,保存起來,即“現(xiàn)場保護”。兩種操作:數(shù)據(jù)壓入(PUSH)堆棧,數(shù)據(jù)彈出(POP)堆棧。數(shù)據(jù)壓入堆棧,SP自動加1;數(shù)據(jù)彈出堆棧,SP自動減1。2.寄存器B為執(zhí)行乘法和除法而設。在不執(zhí)行乘、除法操作的情況下,可把它當作一個普通寄存器來使用。乘法:兩乘數(shù)分別在A、B中,執(zhí)行乘法指令后,乘積在BA中除法:被除數(shù)取自A,除數(shù)取自B,商存放在A中,余數(shù)存B中。93943.AUXR寄存器AUXR是輔助寄存器,其格式如圖2-5:圖2-5AUXR寄存器的格式95其中:DISALE:ALE的禁止/允許位。
0:ALE有效,發(fā)出脈沖;
1:ALE僅在執(zhí)行MOVC和MOVX類指令時有效,不訪問外部存儲器時,
ALE不輸出脈沖信號;DISRTO:禁止/允許WDT溢出時的復位輸出。
0:WDT溢出時,在RST引腳輸出一個高電平復位脈沖;
1:禁止WDT,RST引腳僅為輸入腳。WDIDLE:WDT在空閑模式下的禁止/允許位。
0:WDT在空閑模式下繼續(xù)計數(shù);
1:WDT在空閑模式下暫停計數(shù)。。964.數(shù)據(jù)指針DPTR0和DPTR1雙數(shù)據(jù)指針寄存器,便于訪問數(shù)據(jù)存儲器。DPTR0:AT89C51單片機原有的數(shù)據(jù)指針,DPTR1:新增加的數(shù)據(jù)指針。AUXR1的DPS位用于選擇兩個數(shù)據(jù)指針。DPS=0時,選用DPTR0;DPS=1時,選用DPTR1。AT89S51復位時,默認選用DPTR0。
數(shù)據(jù)指針可作為一個16位寄存器來用,也可作為兩個獨立的8位寄存器DP0H(或DP1H)和DP0L(或DP1L)來用。975.AUXR1寄存器AUXR1是輔助寄存器,格式如圖2-6:
DPS:數(shù)據(jù)指針寄存器選擇位。
0:選擇數(shù)據(jù)指針寄存器DPTR0;
1:選擇數(shù)據(jù)指針寄存器DPTR1。圖2-6AUXR1寄存器的格式6.看門狗定時器WDT包含1個14位計數(shù)器和看門狗定時器復位寄存器(WDTRST)。當CPU由于干擾,程序陷入死循環(huán)或跑飛狀態(tài)時,WDT提供了一種使程序恢復正常運行的有效手段。有關WDT的應用以及低功耗模式下運行的狀態(tài),將在本章2.9節(jié)介紹。
上面介紹的特殊功能寄存器,除SP和B以外,其余的均為AT89S51在AT89C51基礎上新增加的SFR。982.4.4位地址空間211個尋址位,位地址為00H~FFH,其中00H~7FH128位處于片內RAM字節(jié)地址20H~2FH
單元中,如表2-5所示。其余83個可尋址位分布在特殊功能寄存器SFR中,見表2-6??杀晃粚ぶ返奶厥饧拇嫫饔?1個,共有位地址88個,5個位未用,其余83個位的位地址離散地分布于片內數(shù)據(jù)存儲器區(qū)字節(jié)地址為80H~FFH的范圍內,其最低的位地址等于其字節(jié)地址,且其字節(jié)地址的末位都為0H或8H。99字節(jié)地址位
地
址D7D6D5D4D3D2D1D02FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H字節(jié)地址位
地
址D7D6D5D4D3D2D1D024H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00H表2-5內部RAM中的可尋址位及其位地址101特殊功能寄存器位地址字節(jié)地址D7D6D5D4D3D2D1D0BF7HF6HF5HF4HF3HF2HF1HF0HF0HAccE7HE6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1HD0HD0HIP———BCHBBHBAHB9HB8HB8HP3B7HB6HB5HB4HB3HB2HB1HB0HB0HIEAFH——ACHABHAAHA9HA8HA8HP2A7HA6HA5HA4HA3HA2HA1HA0HA0HSCON9FH9EH9DH9CH9BH9AH99H98H98HP197H96H95H94H93H92H91H90H90HTCON8FH8EH8DH8CH8BH8AH89H88H88HP087H86H85H84H83H82H81H80H80H表2-6SFR中的位地址分布
作為AT89S51存儲器結構的總結,圖2-7為各類存儲器的結構圖。可清楚看出各類存儲器在存儲器空間的位置。102圖2-7AT89S51單片機的存儲器結構2.5AT89S51的并行I/O端口4個雙向的8位并行I/O端口:P0~P3,表2-4中的特殊功能寄存器P0、P1、P2和P3就是這4個端口的輸出鎖存器。4個端口除按字節(jié)輸入/輸出外,還可以按位尋址,以便位控功能的實現(xiàn)。2.5.1P0口8位并行端口,字節(jié)地址為80H,位地址為80H~87H。P0口的位電路結構如圖2-8。1.P0口的工作原理103(1)P0口用作系統(tǒng)的地址/數(shù)據(jù)總線用AT89S51外擴存儲器或I/O時,P0口作為系統(tǒng)復用的地址/數(shù)據(jù)總線用。此時,圖2-8中的“控制”信號為1,硬件自動使轉接開關MUX打向上面,接通反相器輸出,同時使“與門”處于開啟狀態(tài)。當輸出的“地址/數(shù)據(jù)”信息為1時,“與門”輸出為1,上方的場效應管導通,下方的場效應管截止,P0.x引腳輸出為1;當輸出的“地址/數(shù)據(jù)”信息為0時,上方的場效應管截止,下方的場效應管導通,P0.x引腳輸出為0。可見P0.x引腳的輸出狀態(tài)隨“地址/數(shù)據(jù)”狀態(tài)的變化而變化。上方場效應管起到內部上拉電阻作用。105圖2-8P0口某一位的位電路結構當P0口作為數(shù)據(jù)線輸入時,僅從外部存儲器(或外部I/O)讀入信息,對應“控制”信號為0,MUX接通鎖存器的Q*端。由于P0口作為地址/數(shù)據(jù)復用方式訪問外部存儲器時,CPU自動向P0口寫入FFH,使下方場效應管截止,由于控制信號為0,上方場效應管也截止,從而保證數(shù)據(jù)信息的高阻抗輸入,從外部存儲器或I/O輸入的數(shù)據(jù)信息直接由P0.x腳通過輸入緩沖器BUF2進入內部總線。由上分析,P0口具有高電平、低電平和高阻抗輸入3種狀態(tài)的端口,因此,P0口作為地址/數(shù)據(jù)總線使用時是一真正的雙向端口。(2)P0口用作通用I/O口使用P0口作為通用的I/O口使用,此時,“控制”信號為0,MUX打向下面,接通鎖存器的Q*端,“與門”輸出為0,上方場效應管截止,形成的P0口輸出電路為漏極開路輸出。P0口作通用I/O輸出口時,來自CPU的“寫”脈沖加在D鎖存器的CP端,內部總線上的數(shù)據(jù)寫入D鎖存器,并由引腳P0.x輸出。當D鎖存器為1時,端為0,下方場效應管截止,輸出為漏極開路,此時,必須外接上拉電阻才能有高電平輸出;當D鎖存器為0時,下方場效應管導通,P0口輸出為低電平。107P0口作為通用I/O輸入口時,有兩種讀入方式:“讀鎖存器”和“讀引腳”。當CPU發(fā)出“讀鎖存器”指令時,鎖存器的狀態(tài)由Q
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)水穩(wěn)料供應商合同
- 鋁型材購銷合同書范本
- 花崗巖選購合同樣本
- 項目咨詢服務合同評估全文
- 電氣安裝工程分包協(xié)議樣本
- 購房補充協(xié)議的作用和意義
- 商務秘書社交媒體營銷合同
- 酒店應急預案服務合同
- 英文版購銷合同交流
- 房屋買賣定金合同判決書案例借鑒
- 加油站安全檢查表分析(SCL)及評價記錄
- 豐田車系卡羅拉(雙擎)轎車用戶使用手冊【含書簽】
- 幼兒園突發(fā)安全事件事故處置措施
- 現(xiàn)代藥物制劑與新藥研發(fā)智慧樹知到答案章節(jié)測試2023年蘇州大學
- 肺結核的學習課件
- 心肺復蘇術最新版
- 2023-2024學年貴州省貴陽市小學數(shù)學六年級上冊期末自測提分卷
- GB/T 9115.2-2000凹凸面對焊鋼制管法蘭
- 永久避難硐室安裝施工組織措施
- 元旦節(jié)前安全教育培訓-教學課件
- 芯片工藝流程課件1
評論
0/150
提交評論