51單片機(jī)典型項目實戰(zhàn)全能一本通(C語言版)全套課件(可編輯)_第1頁
51單片機(jī)典型項目實戰(zhàn)全能一本通(C語言版)全套課件(可編輯)_第2頁
51單片機(jī)典型項目實戰(zhàn)全能一本通(C語言版)全套課件(可編輯)_第3頁
51單片機(jī)典型項目實戰(zhàn)全能一本通(C語言版)全套課件(可編輯)_第4頁
51單片機(jī)典型項目實戰(zhàn)全能一本通(C語言版)全套課件(可編輯)_第5頁
已閱讀5頁,還剩1482頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1第1章單片機(jī)概述

第1章單片機(jī)概述.ppt第2章硬件結(jié)構(gòu).ppt第3章C51語言編程基礎(chǔ).ppt第4章Proteus的使用.ppt第5章與顯示器、開關(guān)、鍵盤接口設(shè)計.ppt第6章中斷系統(tǒng).ppt第7章定時器計數(shù)器.ppt第8章AT89S51單片機(jī)的串行口.ppt第9章系統(tǒng)并行擴(kuò)展.ppt第10章串行擴(kuò)展.ppt第11章DAC與ADC.ppt234介紹單片機(jī)基礎(chǔ)知識、發(fā)展歷史、應(yīng)用領(lǐng)域以及發(fā)展趨勢。8位單片機(jī)的主流機(jī)型,MCS-51系列單片機(jī)及其兼容的單片機(jī)(統(tǒng)稱為8051單片機(jī))對目前流行的8051單片機(jī)的代表性機(jī)型:美國ATMEL公司的AT89C5x/AT89S5x系列單片機(jī)及代表性產(chǎn)品AT89S51詳細(xì)介紹。結(jié)構(gòu)清晰,易掌握,初學(xué)者入門機(jī)型。簡要介紹其它類型的單片機(jī)。初步了解嵌入式處理器:單片機(jī),數(shù)字信號處理器(DSP)、嵌入式微處理器內(nèi)容概要5620世紀(jì)70年代問世,廣泛應(yīng)用:工業(yè)自動化、自動檢測與控制、智能儀器儀表、機(jī)電一體化設(shè)備、汽車電子、家用電器等各個方面。什么是單片機(jī)?1.1單片機(jī)簡介一片半導(dǎo)體硅片集成:中央處理單元(CPU)、存儲器(RAM、ROM)、并行I/O、串行I/O、定時器/計數(shù)器、中斷系統(tǒng)、系統(tǒng)時鐘電路及系統(tǒng)總線的微型計算機(jī)。具有微型計算機(jī)屬性,因而被稱為單片微型計算機(jī),簡稱單片機(jī)。7主要應(yīng)用測控領(lǐng)域。單片機(jī)處于測控系統(tǒng)的核心地位并嵌入其中,所以國際上通常把單片機(jī)稱為嵌入式控制器(EMCU,EmbeddedMicroControllerUnit),或微控制器(MCU,MicroControllerUnit)。我國習(xí)慣于使用“單片機(jī)”這一名稱。單片機(jī)是計算機(jī)技術(shù)發(fā)展史上重要里程碑,標(biāo)志著計算機(jī)正式形成了通用計算機(jī)系統(tǒng)和嵌入式計算機(jī)系統(tǒng)兩大分支。單片機(jī)體積小、成本低,嵌入到工業(yè)控制單元、機(jī)器人、智能儀器儀表、汽車電子系統(tǒng)、武器系統(tǒng)、家用電器、辦公自動化設(shè)備、金融電子系統(tǒng)、玩具、個人信息終端及通訊產(chǎn)品中。8按用途可分為通用型和專用型兩大類。(1)通用型內(nèi)部可開發(fā)資源(如存儲器、I/O等各種外圍功能部件等)可全部提供給用戶。根據(jù)需要,設(shè)計一個以通用單片機(jī)芯片為核心,再配以外圍接口電路及外圍設(shè)備,并編寫相應(yīng)軟件來滿足各種不同需要的測控系統(tǒng)。通常所說和本書介紹的是指通用型單片機(jī)。(2)專用型專門針對某些產(chǎn)品的特定用途而制作的。例如,各種家用電器中的控制器等。由于特定用途,單片機(jī)芯片制造商常與產(chǎn)品廠家合作,設(shè)計和生產(chǎn)“專用”的單片機(jī)。在設(shè)計中,已對“專用”單片機(jī)的系統(tǒng)結(jié)構(gòu)最簡化、可靠性和成本的最佳化等做了全面綜合考慮,所以“專用”單片機(jī)具有十分明顯的綜合優(yōu)勢。無論“專用”單片機(jī)在用途上有多么“?!?,其基本結(jié)構(gòu)和工作原理都是以通用單片機(jī)為基礎(chǔ)。9101.2單片機(jī)的發(fā)展歷史按處理二進(jìn)制位數(shù)主要分為:4位單片機(jī)、8位單片機(jī)、16位單片機(jī)和32位單片機(jī)。發(fā)展大致分為4個階段。第一階段(1974年~1976年):單片機(jī)初級階段。因工藝限制,雙片形式且功能較簡單。1974年12月,仙童公司推出了8位的F8單片機(jī),實際只包括了8位CPU、64BRAM和2個并行口。第二階段(1976年~1978年):低性能單片機(jī)階段。1976年Intel的MCS-48單片機(jī)(8位)極大地促進(jìn)了單片機(jī)變革和發(fā)展,1977年GI公司推出PIC1650,但這個階段仍處于低性能階段。11第三階段(1978年~1983年):高性能單片機(jī)階段。1978年,Zilog公司推出Z8單片機(jī),1980年,Intel公司在MCS-48系列基礎(chǔ)上推出MCS-51系列,Mortorola推出6801單片機(jī)。使單片機(jī)性能及應(yīng)用躍上新臺階。此后,各公司8位單片機(jī)迅速發(fā)展。推出的單片機(jī)普遍帶有串行I/O口、多級中斷系統(tǒng)、16位定時器/計數(shù)器,片內(nèi)ROM、RAM容量加大,且尋址范圍可達(dá)64KB,有的片內(nèi)還帶有A/D轉(zhuǎn)換器。由于這類單片機(jī)性/價比高,得到廣泛應(yīng)用,是目前應(yīng)用數(shù)量最多的單片機(jī)。12第四階段(1983年~現(xiàn)在):8位單片機(jī)鞏固發(fā)展及16位單片機(jī)、32位單片機(jī)推出階段。16位典型產(chǎn)品TI公司的MSP430單片機(jī)。而32位單片機(jī)除具有更高集成度外,其數(shù)據(jù)處理速度比16位單片機(jī)提高許多,性能比8位、16位單片機(jī)更加優(yōu)越。20世紀(jì)90年代單片機(jī)大發(fā)展時期,Mortorola、Intel、ATMEL、德州儀器(TI)、三菱、日立、飛利浦、LG等公司開發(fā)一大批性能優(yōu)越的單片機(jī),極大推動單片機(jī)應(yīng)用。近年,不少新型高集成度的單片機(jī)涌現(xiàn)。目前,除8位單片機(jī)得到廣泛應(yīng)用外,16位單片機(jī)、32位單片機(jī)也得到廣大用戶青睞。131.3單片機(jī)的特點單片機(jī)是集成電路技術(shù)與微型計算機(jī)技術(shù)高速發(fā)展的產(chǎn)物。體積小、價格低、應(yīng)用方便、穩(wěn)定可靠,因此,給工業(yè)自動化等領(lǐng)域帶來了一場重大革命和技術(shù)進(jìn)步。由于體積小,很容易地嵌入到系統(tǒng)之中,以實現(xiàn)各種方式的檢測、計算或控制,這一點,一般微機(jī)根本做不到。由于單片機(jī)本身就是一個微型計算機(jī),因此只要在單片機(jī)的外部適當(dāng)增加一些必要的外圍擴(kuò)展電路,就可靈活構(gòu)成各種應(yīng)用系統(tǒng),如工業(yè)自動檢測監(jiān)視系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、自動控制系統(tǒng)、智能儀器儀表等。14為什么應(yīng)用廣泛?由于具有以下優(yōu)點:(1)簡單方便,易普及。單片機(jī)技術(shù)是易掌握技術(shù)。應(yīng)用系統(tǒng)設(shè)計、組裝、調(diào)試已經(jīng)是一件容易的事情,工程技術(shù)人員通過學(xué)習(xí)可很快掌握其應(yīng)用設(shè)計技術(shù)。(2)功能齊全,應(yīng)用可靠,抗干擾能力強(qiáng)。(3)發(fā)展迅速,前景廣闊。短短幾十年,單片機(jī)經(jīng)過4位機(jī)、8位機(jī)、16位機(jī)、32位機(jī)等幾大發(fā)展階段。集成度高、功能日臻完善的單片機(jī)不斷問世,使單片機(jī)在工業(yè)控制及工業(yè)自動化領(lǐng)域獲得長足發(fā)展和大量應(yīng)用。目前,單片機(jī)內(nèi)部結(jié)構(gòu)愈加完美,片內(nèi)外圍功能部件越來越完善,向更高層次和更大規(guī)模的發(fā)展奠定堅實基礎(chǔ)。15(4)嵌入容易,用途廣泛,體積小、性/價比高,應(yīng)用靈活性強(qiáng)等特點在嵌入式微控制系統(tǒng)中具有十分重要地位。單片機(jī)問世前,制作一套測控系統(tǒng),大量模擬電路、數(shù)字電路、分立元件完成,以實現(xiàn)計算、判斷和控制功能。系統(tǒng)體積龐大,線路復(fù)雜,連接點多,易出故障。單片機(jī)出現(xiàn)后,絕大部分測控功能由單片機(jī)軟件程序?qū)崿F(xiàn),其它電子線路則由片內(nèi)外圍功能部件替代。16171.4單片機(jī)的應(yīng)用軟硬件結(jié)合、體積小,容易嵌入到各種應(yīng)用系統(tǒng)中。得到廣泛應(yīng)用。1.工業(yè)檢測與控制主要應(yīng)用:工業(yè)過程控制、智能控制、設(shè)備控制、數(shù)據(jù)采集和傳輸、測試、測量、監(jiān)控等。在工業(yè)自動化領(lǐng)域中,機(jī)電一體化技術(shù)將發(fā)揮愈來愈重要的作用,在這種集機(jī)械、微電子和計算機(jī)技術(shù)為一體的綜合技術(shù)(如機(jī)器人技術(shù))中,單片機(jī)發(fā)揮著非常重要作用。2.儀器儀表目前對儀器儀表的自動化和智能化要求越來越高。單片機(jī)的使用有助于提高儀器儀表的精度和準(zhǔn)確度,簡化結(jié)構(gòu),減小體積而易于攜帶和使用,加速儀器儀表向數(shù)字化、智能化、多功能化方向發(fā)展。183.消費類電子產(chǎn)品例如,洗衣機(jī)、電冰箱、空調(diào)機(jī)、電風(fēng)扇、電視機(jī)、微波爐、加濕機(jī)、消毒柜等。嵌入了單片機(jī)后,功能和性能大大提高,并實現(xiàn)智能化、最優(yōu)化控制。4.通信在調(diào)制解調(diào)器、各類手機(jī)、傳真機(jī)、程控電話交換機(jī)、信息網(wǎng)絡(luò)及各種通訊設(shè)備中,單片機(jī)也已得到廣泛應(yīng)用。5.武器裝備現(xiàn)代化武器裝備,如飛機(jī)、軍艦、坦克、導(dǎo)彈、魚雷制導(dǎo)、智能武器裝備、航天飛機(jī)導(dǎo)航系統(tǒng),都有單片機(jī)嵌入其中。196.各種終端及計算機(jī)外部設(shè)備計算機(jī)網(wǎng)絡(luò)終端(如銀行終端)及計算機(jī)外部設(shè)備(如打印機(jī)、硬盤驅(qū)動器、繪圖機(jī)、傳真機(jī)、復(fù)印機(jī)等)中都使用了單片機(jī)作為控制器。7.汽車電子設(shè)備已廣泛應(yīng)用在各種汽車電子設(shè)備中,如汽車安全系統(tǒng)、汽車信息系統(tǒng)、智能自動駕駛系統(tǒng)、衛(wèi)星汽車導(dǎo)航系統(tǒng)、汽車緊急請求服務(wù)系統(tǒng)、汽車防撞監(jiān)控系統(tǒng)、汽車自動診斷系統(tǒng)及汽車黑匣子等。8.分布式多機(jī)系統(tǒng)在較復(fù)雜多節(jié)點測控系統(tǒng)中,常采用分布式多機(jī)系統(tǒng)。20一般由若干臺功能各異的單片機(jī)組成,各自完成特定的任務(wù),它們通過串行通信相互聯(lián)系、協(xié)調(diào)工作。在這種系統(tǒng)中,單片機(jī)往往作為一個終端機(jī),安裝在系統(tǒng)某些節(jié)點上,對現(xiàn)場信息進(jìn)行實時測控。

從工業(yè)自動化、自動控制、智能儀器儀表、消費類電子產(chǎn)品等方面,直到國防尖端技術(shù)領(lǐng)域,單片機(jī)都發(fā)揮十分重要作用。211.5單片機(jī)的發(fā)展趨勢單片機(jī)發(fā)展趨勢將是向大容量、高性能化,外圍電路內(nèi)裝化等方面發(fā)展。為滿足不同用戶要求,各公司競相推出能滿足不同需要的產(chǎn)品。1.CPU的改進(jìn)(1)增加CPU數(shù)據(jù)總線寬度。例如,各種16位單片機(jī)和32位單片機(jī),數(shù)據(jù)處理能力要優(yōu)于8位單片機(jī)。另外,8位單片機(jī)內(nèi)部采用16位數(shù)據(jù)總線,其數(shù)據(jù)處理能力明顯優(yōu)于一般8位單片機(jī)。(2)采用雙CPU結(jié)構(gòu),以提高數(shù)據(jù)處理能力。222.存儲器的發(fā)展(1)片內(nèi)程序存儲器普遍采用閃存。可不用外擴(kuò)展程序存儲器,簡化系統(tǒng)結(jié)構(gòu)。(2)加大存儲容量。目前有的單片機(jī)片內(nèi)程序存儲器容量可達(dá)128KB甚至更多。3.片內(nèi)I/O的改進(jìn)(1)增加并行口驅(qū)動能力,以減少外部驅(qū)動芯片。有的單片機(jī)可直接輸出大電流和高電壓,以便能直接驅(qū)動LED和VFD(熒光顯示器)。(2)有些單片機(jī)設(shè)置了一些特殊的串行I/O功能,為構(gòu)成分布式、網(wǎng)絡(luò)化系統(tǒng)提供方便條件。234.低功耗化CMOS化,功耗小,配置有等待狀態(tài)、睡眠狀態(tài)、關(guān)閉狀態(tài)等工作方式。消耗電流僅在μA或nA量級,適于電池供電的便攜式、手持式的儀器儀表及其它消費類電子產(chǎn)品。5.外圍電路內(nèi)裝化眾多外圍電路全部裝入片內(nèi),即系統(tǒng)的單片化是目前發(fā)展趨勢之一。例如,美國Cygnal公司的C8051F0208位單片機(jī),內(nèi)部采用流水線結(jié)構(gòu),大部分指令的完成時間為1或2個時鐘周期,峰值處理能力為25MIPS。片上集成有8通道A/D、兩路D/A、兩路電壓比較器,內(nèi)置溫度傳感器、定時器、可編程數(shù)字交叉開關(guān)和64個通用I/O口、電源監(jiān)測。246.編程及仿真的簡單化目前大多數(shù)單片機(jī)都支持程序的在線編程,也稱在系統(tǒng)編程ISP(InSystemProgram),只需一條ISP并口下載線,就可把仿真調(diào)試通過的程序從PC機(jī)寫入單片機(jī)的Flash存儲器內(nèi),省去編程器。某些機(jī)型還支持在線應(yīng)用編程(IAP),可在線升級或銷毀單片機(jī)應(yīng)用程序,省去了仿真器。綜上所述,單片機(jī)正在向多功能、高性能、高速度(時鐘達(dá)40MHz)、低電壓(2.7V即可工作)、低功耗、低價格(幾元錢)、外圍電路內(nèi)裝化以及片內(nèi)程序存儲器和數(shù)據(jù)存儲器容量不斷增大的方向發(fā)展。257.實時操作系統(tǒng)的使用單片機(jī)可配置實時操作系統(tǒng)RTX51。RTX51是一個針對8051單片機(jī)的多任務(wù)內(nèi)核。從本質(zhì)上簡化對實時事件反應(yīng)速度要求較高的復(fù)雜應(yīng)用系統(tǒng)設(shè)計、編程和調(diào)試,已完全集成到C51編譯器中,使用簡單方便。26271.6MCS-51系列與AT89C5x系列單片機(jī)20世紀(jì)80年代以來,單片機(jī)發(fā)展非常迅速,其中Intel公司的MCS-51系列單片機(jī)是一款設(shè)計成功、易于掌握并在世界范圍得到廣泛使用的機(jī)型。

1.6.1MCS-51系列單片機(jī)MCS是Intel公司單片機(jī)的系列符號,如MCS-48、MCS-51、MCS-96系列單片機(jī)。MCS-51系列是在MCS-48系列基礎(chǔ)上于20世紀(jì)80年代初發(fā)展起來的,是最早進(jìn)入我國,并在我國得到廣泛應(yīng)用的單片機(jī)主流品種。28MCS-51系列單片機(jī)主要包括基本型:8031/8051/8751(低功耗型80C31/80C51/87C51)

增強(qiáng)型:8032/8052/8752。已為我國廣大技術(shù)人員所熟悉和掌握。上世紀(jì)80年代和90年代,MCS-51系列是在我國應(yīng)用最為廣泛的機(jī)型之一。MCS-51系列品種豐富,經(jīng)常使用的是基本型和增強(qiáng)型。291.基本型典型產(chǎn)品:8031/8051/8751。8031內(nèi)部包括1個8位CPU、128BRAM,21個特殊功能寄存器(SFR)、4個8位并行I/O口、1個全雙工串行口,2個16位定時器/計數(shù)器,5個中斷源,但片內(nèi)無程序存儲器,需外擴(kuò)程序存儲器芯片。8051是在8031的基礎(chǔ)上,片內(nèi)又集成有4KBROM作為程序存儲器。所以8051是一個程序不超過4KB的小系統(tǒng)。ROM內(nèi)的程序是公司制作芯片時,代為用戶燒制的。8751與8051相比,片內(nèi)集成的4KBEPROM取代了8051的4KBROM來作為程序存儲器。302.增強(qiáng)型

Intel公司在基本型基礎(chǔ)上,推出增強(qiáng)型-52子系列,典型產(chǎn)品:8032/8052/8752。內(nèi)部RAM增到256B,8052、片內(nèi)程序存儲器擴(kuò)展到8KB,16位定時器/計數(shù)器增至3個,6個中斷源,串行口通信速率提高5倍。

表1-1列出了基本型和增強(qiáng)型的MCS-51系列單片機(jī)片內(nèi)的基本硬件資源。

1.6.2AT89C5x(AT89S5x)系列單片機(jī)

MCS-51系列單片機(jī)代表性產(chǎn)品為8051,其他單片機(jī)都是在8051內(nèi)核基礎(chǔ)上進(jìn)行了功能增減。20世紀(jì)80年代中期以后,Intel公司已把精力集中在高檔CPU芯片的研發(fā)上,逐漸淡出單片機(jī)芯片的開發(fā)和生產(chǎn)。313233MCS-51單片機(jī)設(shè)計上的成功及較高的市場占有率,已成為許多廠家、公司競相選用的對象,并以此為基核。因此,Intel公司以專利轉(zhuǎn)讓或技術(shù)交換形式把8051內(nèi)核技術(shù)轉(zhuǎn)讓給許多半導(dǎo)體芯片生產(chǎn)廠家,如ATMEL、Philips、Cygnal、ANALOG、LG、ADI、Maxim、DEVICES、DALLAS等公司。

各廠家的兼容機(jī)型均采用8051內(nèi)核、指令系統(tǒng)相同,采用CMOS工藝;有的公司還在8051內(nèi)核基礎(chǔ)上增加一些片內(nèi)功能模塊,集成度更高,功能和市場競爭力更強(qiáng)。人們常用8051(80C51,“C”表示采用CMOS工藝)來稱呼所有這些具有8051內(nèi)核,且使用8051指令系統(tǒng)的單片機(jī),也習(xí)慣把這些兼容機(jī)等各種衍生品種統(tǒng)稱為8051單片機(jī)。近年來,世界上單片機(jī)芯片生產(chǎn)廠商推出的與8051兼容的主要產(chǎn)品如表1-2所示。34眾多衍生機(jī)型中,ATMEL公司的AT89C5x/AT89S5x系列,在8位單片機(jī)市場中占有較大的市場份額。ATMEL公司1994年以E2PROM技術(shù)與Intel公司80C51內(nèi)核的使用權(quán)進(jìn)行交換。ATMEL公司技術(shù)優(yōu)勢是閃爍(Flash)存儲器技術(shù),將Flash技術(shù)與80C51內(nèi)核相結(jié)合,形成了片內(nèi)帶有Flash存儲器的AT89C5x/AT89S5x系列單片機(jī)。35AT89C5x/AT89S5x系列與MCS-51系列在原有功能、引腳以及指令系統(tǒng)方面完全兼容。此外,某些品種又增加一些新功能,如看門狗定時器WDT、ISP(在系統(tǒng)編程也稱在線編程)及SPI串行接口技術(shù)等。片內(nèi)Flash存儲器允許在線(+5V)電擦除、電寫入或使用編程器對其重復(fù)編程。AT89C5x/AT89S5x單片機(jī)還支持由軟件選擇的兩種節(jié)電工作方式,適于低功耗場合。AT89S51與87C51相比,AT89C51/AT89S51單片機(jī)片內(nèi)的4KBFlash存儲器取代87C51片內(nèi)的4KBEPROM。AT89S51片內(nèi)的Flash存儲器可在線編程或使用編程器重復(fù)編程,且價格較低。36AT89C51/AT89S51單片機(jī)作為8051單片機(jī)的代表性產(chǎn)品受到用戶歡迎。

“S”檔系列是ATMEL公司繼AT89C5x系列之后推出的新機(jī)型,表示含有串行下載的Flash存儲器,代表性產(chǎn)品為AT89S51和AT89S52。AT89C51單片機(jī)已不再生產(chǎn),可用AT89S51直接代換。與AT89C5x系列相比,AT89S5x系列的時鐘頻率以及運(yùn)算速度有較大提高。例如,AT89C51工作頻率的上限為24MHz,而AT89S51則為33MHz。AT89S51片內(nèi)集成有雙數(shù)據(jù)指針DPTR,看門狗定時器、具有低功耗空閑工作方式和掉電工作方式。目前,AT89S5x系列已逐漸取代AT89C5x系列。3738表1-3為ATMEL公司AT89C5x/AT89S5x系列主要產(chǎn)品的片內(nèi)硬件資源。由于種類多,要依據(jù)實際需求來選擇合適的型號。表1-3AT89C1051與AT89C2051為低檔機(jī)型,均為20只引腳。當(dāng)?shù)蜋n機(jī)滿足設(shè)計需求時,就不要采用較高檔次機(jī)型。例如,當(dāng)系統(tǒng)設(shè)計時,僅僅需要一個定時器和幾位數(shù)字量輸出,那么選擇AT89C1051或AT89C2051即可,不需選擇AT89S51或AT89S52,因為后者要比前者的價格高,且前者體積也小。如對程序存儲器和數(shù)據(jù)存儲器的容量要求較高,還要單片機(jī)運(yùn)行速度盡量要快,可考慮選擇AT89S51/AT89S52,因為它們的最高工作時鐘頻率為33MHz。當(dāng)程序需要多于8KB以上的空間可考慮選用片內(nèi)Flash容量20KB的AT89C55。39表1-3中,“LV”-低電壓,與AT89S51主要差別是其工作時鐘頻率為12MHz,工作電壓為2.7~6V,編程電壓VPP為12V。AT89LV51低電壓電源工作條件可使其在便攜式、袖珍式、無交流電源供電環(huán)境中應(yīng)用,特別適于電池供電的儀器儀表和各種野外操作的設(shè)備中。盡管AT89S5x系列有多種機(jī)型,但掌握好基本型AT89S51十分重要,因為它是具有8051內(nèi)核的各種型號單片機(jī)的基礎(chǔ),最具典型性和代表性,同時也是各種增強(qiáng)型、擴(kuò)展型等衍生品種的基礎(chǔ)。講述中常用到“8051”,泛指具有8051內(nèi)核的各種增強(qiáng)型、擴(kuò)展型單片機(jī)。而“AT89S51”僅指ATMEL公司的AT89S51單片機(jī)。40在我國,除8位單片機(jī)廣泛應(yīng)用外,16位單片機(jī)也得到廣大用戶的青睞,例如,美國TI公司的16位單片機(jī)MSP430。本身帶有A/D轉(zhuǎn)換器,一片芯片就構(gòu)成了一個數(shù)據(jù)采集系統(tǒng)。設(shè)計使用非常方便。盡管這樣,16位單片機(jī)還遠(yuǎn)遠(yuǎn)沒有8位單片機(jī)應(yīng)用的廣泛和普及,因為目前的主要應(yīng)用中,8位機(jī)的性能已能夠滿足大部分的實際需求,況且8位機(jī)的性能價格比較好。在眾多廠家各種不同的8位機(jī)中,各種兼容的8051單片機(jī),目前仍是8位單片機(jī)主流品種,若干年內(nèi)仍是自動化、機(jī)電一體化、儀器儀表、工業(yè)檢測控制應(yīng)用主角。41422.AT89系列單片機(jī)的型號說明AT89S5x系列單片機(jī)編碼三部分組成:前綴、型號和后綴。下面分別說明。(1)前綴字母“AT”組成,表示ATMEL公司產(chǎn)品。(2)型號由“89C××××”或“89LV××××”或“89S××××”等表示?!?9C××××”中,8表示單片,9表示內(nèi)部含有Flash存儲器,C表示CMOS產(chǎn)品。43“89LV××××”中,LV為低電壓產(chǎn)品,可在2.5V電壓下工作?!?9S××××”中,S表示含有串行下載的Flash存儲器,而“××××”表示器件的型號,如51、52、2051、8052等。(3)后綴后綴由最后4個“××××”參數(shù)組成,每個參數(shù)意義不同。在型號與后綴部分由“—”號隔開。(a)后綴第1個“×”表示時鐘頻率: x=12,時鐘頻率為12MHz; x=16,時鐘頻率為16MHz; x=20,時鐘頻率為20MHz;44 x=24,時鐘頻率為24MHz。(b)后綴第2個“×”表示封裝: x=P,塑料雙列直插DIP封裝; x=D,陶瓷封裝; x=Q,PQFP封裝; x=J,PLV封裝; x=A,TQFP封裝; x=S,SOIC封裝; x=W,表示裸芯片。(c)后綴第3個“×”表示芯片溫度范圍: x=C,表示商業(yè)用產(chǎn)品,溫度范圍為0~+70℃;45 x=I,表示工業(yè)用產(chǎn)品,溫度范圍為?40~+85℃; x=A,表示汽車用產(chǎn)品,溫度范圍為?40~+125℃; x=M,表示軍用產(chǎn)品,溫度范圍為?55~+150℃;(d)后綴中的第4個“×”表示工藝: x為空,表示處理工藝是標(biāo)準(zhǔn)工藝; x=/883,表示處理工藝采用MIL-STD-883標(biāo)準(zhǔn)。例如,某單片機(jī)型號為“AT89C51-12PI”,則單片機(jī)是ATMEL公司Flash單片機(jī),CMOS,速度為12MHz,封裝塑料雙列直插DIP封裝,工業(yè)用產(chǎn)品,標(biāo)準(zhǔn)處理工藝生產(chǎn)。46471.7各種衍生品種的51單片機(jī)除AT89S5x系列單片機(jī)外,世界各器件廠家推出的以8051為內(nèi)核、各種集成度高、功能強(qiáng)的單片機(jī),也得到廣大用戶青睞。

1.7.1STC系列單片機(jī)STC系列具有我國獨立自主知識產(chǎn)權(quán),功能與抗干擾性強(qiáng)的增強(qiáng)型8051單片機(jī),多種子系列,幾百個品種,以滿足不同需要。其中的STC12C5410/STC12C2052系列的主要性能及特點如下。48(1)高速:傳統(tǒng)8051為每個機(jī)器周期為12個時鐘,而STC可為每機(jī)器周期1個時鐘,指令執(zhí)行速度大大提高,速度比普通8051快8~12倍。(2)寬工作電壓:5.5~3.8V,2.4~3.8V(STC12LE5410AD系列)。(3)12KB/10KB/8KB/6KB/4KB片內(nèi)Flash程序存儲器,擦寫次數(shù)10萬次以上。(4)512B片內(nèi)的RAM數(shù)據(jù)存儲器。(5)可在線編程(ISP)/在應(yīng)用可編程(IAP),無需編程器/仿真器,可遠(yuǎn)程升級。(6)8通道10位ADC,4路PWM輸出。49(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個),復(fù)位后為:準(zhǔn)雙向口/弱上拉(與8051的I/O接口相似)??稍O(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,僅為輸入/高阻,開漏,50每個I/O口驅(qū)動能力均可達(dá)到20mA,但整個芯片最大不可超過55mA。(13)超強(qiáng)抗干擾能力與高可靠性:高抗靜電;通過2kV/4kV快速脈沖干擾的測試(EFT測試);寬電壓,不怕電源抖動;寬溫度范圍:?40℃~+85℃;I/O口經(jīng)過特殊處理;片內(nèi)的電源供電系統(tǒng)、時鐘電路、復(fù)位電路、看門狗電路均經(jīng)過特殊處理;51(14)采取了降低單片機(jī)時鐘對外部電磁輻射的措施:可禁止ALE輸出;如選每個機(jī)器周期為6個時鐘,外部時鐘頻率可降一半;單片機(jī)時鐘振蕩器增益可設(shè)為Gain。(15)超低功耗設(shè)計掉電模式:典型功耗<0.1μA;空閑模式:典型功耗為2mA;正常工作模式:典型功耗為4mA~7mA;掉電模式可由外部中斷喚醒,適用于電池供電系統(tǒng),如水表、氣表、便攜設(shè)備等。52STC可直接替換ATMEL、Philips、Winbond(華邦)等公司的8051兼容產(chǎn)品。由上所述,是一款高性能、高可靠性的機(jī)型,尤其具有較高的抗干擾特性,應(yīng)給予足夠重視。53541.7.2C8051Fxxx單片機(jī)美國Cygnal公司產(chǎn)品,集成度高,8051內(nèi)核的8位單片機(jī),代表性產(chǎn)品為C8051F020。內(nèi)部采用流水線結(jié)構(gòu),大部分指令時間為1或2個時鐘周期,峰值處理能力為25MIPS,與經(jīng)典的8051單片機(jī)比,可靠性和速度有很大提高。片內(nèi)集成1個8位ADC、1個12位ADC、1個雙12位DAC;64KB片內(nèi)Flash程序存儲器、256BRAM、128BSFR;8個I/O端口共64根I/O口線;5個16位通用定時器;5個捕捉/比較模塊的可編程計數(shù)/定時器陣列(PCA),1個UART串口、1個SMBus/I2C串口、551個SPI串行口;2路電壓比較器、電源監(jiān)測器、內(nèi)置溫度傳感器。C8051F×××最突出改進(jìn)引入數(shù)字交叉開關(guān)(C8051F2××除外)。改變以往內(nèi)部功能與外部引腳的固定對應(yīng)關(guān)系。用戶可通過可編程的交叉開關(guān)控制寄存器,將片內(nèi)的計數(shù)器/定時器、串行總線、硬件中斷、ADC轉(zhuǎn)換器輸入、比較器輸出以及單片機(jī)內(nèi)部的其他硬件外設(shè)配置出現(xiàn)在端口I/O引腳。用戶可以根據(jù)特定應(yīng)用,選擇引腳與片內(nèi)硬件資源的靈活組合。561.7.3ADμC812單片機(jī)美國ADI(AnalogDeviceInc)公司的高性能單片機(jī),內(nèi)部集成高精度自校準(zhǔn)8通道12位模數(shù)轉(zhuǎn)換器(ADC),2通道12位數(shù)模轉(zhuǎn)換器(DAC),指令系統(tǒng)與8051兼容。片內(nèi)有8KBFlash程序存儲器、640BFlash數(shù)據(jù)存儲器、256B數(shù)據(jù)SRAM(支持可編程)。片內(nèi)集成看門狗定時器、電源監(jiān)視器以及ADC

DMA功能。為多處理器接口和I/O擴(kuò)展提供了32條可編程的I/O線、包含有與I2C兼容的串行接口、SPI串行接口和標(biāo)準(zhǔn)UART串口。

ADμC812的MCU內(nèi)核和模數(shù)轉(zhuǎn)換器均設(shè)有正常、空閑和掉電工作模式,軟件可控制從正常模式到空閑模式,也可切換到更省電的掉電模式。掉電模式,消耗總電流約5μA。571.7.4臺灣華邦公司W(wǎng)78系列和W77系列單片機(jī)臺灣華邦公司(Winbond)

W78系列與AT89C5x系列完全兼容,W77系列為增強(qiáng)型。W77系列對8051時序作了改進(jìn):每個指令周期只需要4個時鐘周期,速度提高3倍,工作頻率最高可達(dá)40MHz。W77系列增加看門狗WatchDog、兩組UART、兩組DPTR數(shù)據(jù)指針(編寫程序非常便利)、ISP(在系統(tǒng)可編程)等功能。片內(nèi)集成了USB接口,語音處理等功能,具有6組外部中斷源。W741系列的4位單片機(jī)帶液晶驅(qū)動,在線燒錄,保密性高,低工作電壓(1.2V-1.8V)。58591.8PIC系列單片機(jī)與AVR系列單片機(jī)

除8051外,其它8位機(jī)型也得到較廣泛的應(yīng)用。目前我國使用較為廣泛的是PIC系列與AVR系列單片機(jī),這兩種機(jī)型博采眾長,又具獨特技術(shù),已占有較大的市場份額。1.8.1PIC系列單片機(jī)美國Microchip公司產(chǎn)品。特性如下:(1)從實際出發(fā),重視性能價格比,已開發(fā)出多種型號來滿足應(yīng)用需求。例如,一個摩托車點火器需要一個I/O較少、RAM及程序存儲空間不大、可靠性較高的小型單片機(jī),若用40腳功能強(qiáng)的單片機(jī),投資大,使用也不方便。60PIC系列從低到高有幾十個型號。其中,PIC12C508單片機(jī)僅有8個引腳,是世界最小的單片機(jī)。有512字節(jié)ROM、25字節(jié)RAM、一個8位定時器、一根輸入線、5根I/O線,價格非常便宜。用在摩托車點火器非常適合。PIC的高檔型,如PIC16C74(尚不是最高檔型號)有40個引腳,其內(nèi)部資源為ROM共4K、192字節(jié)RAM、8路A/D、3個8位定時器、2個CCP模塊、3個串行口、1個并行口、11個中斷源、33個I/O腳??膳c其它品牌的高檔型號媲美。61(2)精簡指令集--執(zhí)行效率大為提高。PIC系列8位單片機(jī)采用精簡指令集(RISC),數(shù)據(jù)總線和指令總線分離的哈佛總線(Harvard)結(jié)構(gòu),指令單字長,且允許指令代碼的位數(shù)可多于8位的數(shù)據(jù)位數(shù),這與傳統(tǒng)的采用復(fù)雜指令結(jié)構(gòu)(CISC)結(jié)構(gòu)的8位單片機(jī)相比,可達(dá)到2:1的代碼壓縮,速度提高4倍。(3)優(yōu)越的開發(fā)環(huán)境。PIC推出一款新型號單片機(jī)的同時推出相應(yīng)的仿真芯片,所有的開發(fā)系統(tǒng)由專用的仿真芯片支持,實時性非常好。62(4)引腳具有防瞬態(tài)能力,通過限流電阻可接至220V交流電源,直接與繼電器控制電路相連,無須光耦隔離,給應(yīng)用帶來極大方便。(5)保密性好。PIC以保密熔絲來保護(hù)代碼,用戶在燒入代碼后熔斷熔絲,再也無法讀出,除非恢復(fù)熔絲。目前,PIC采用熔絲深埋工藝,恢復(fù)熔絲的可能性極小。63PIC單片機(jī)分低檔型、中檔型和高檔型:(1)低檔8位單片機(jī)PIC12C5XXX/16C5X系列。PIC16C5X系列最早在市場上得到發(fā)展,價格低,有較完善的開發(fā)手段,因此在國內(nèi)應(yīng)用最為廣泛;而PIC12C5XX是世界第一個8腳低價位單片機(jī)可用于簡單的智能控制等要求體積小的場合,前景廣闊。64(2)中檔8位單片機(jī)PIC12C6XX/PIC16CXXX系列。品種最為豐富,其性能比低檔產(chǎn)品有所提高,增加了中斷功能,指令周期可達(dá)到200ns,帶A/D,內(nèi)部E2PROM數(shù)據(jù)存儲器,雙時鐘工作,比較輸出,捕捉輸入,PWM輸出,I2C和SPI接口,異步串行接口(UART),模擬電壓比較器及LCD驅(qū)動等等,其封裝從8腳到68腳,可用于高、中、低檔的電子產(chǎn)品設(shè)計中,價格適中,廣泛應(yīng)用在各類電子產(chǎn)品中。65(3)高檔8位單片機(jī)PIC17CXX系列。適合高級復(fù)雜系統(tǒng)開發(fā)的產(chǎn)品,在中檔位單片機(jī)的基礎(chǔ)上增加了硬件乘法器,指令周期可達(dá)成160ns,它是目前世界上8位單片機(jī)中性價比最高的機(jī)種,可用于高、中檔產(chǎn)品的開發(fā),如電機(jī)控制等。此外,Microchip公司還推出高性能的16位和32位單片機(jī)。66671.8.2AVR系列單片機(jī)1997年ATMEL公司利用Flash新技術(shù),研發(fā)的精簡指令集(ReducedInstructionSetComputer,RISC)的高速8位機(jī)。特點如下:(1)廢除機(jī)器周期,拋棄復(fù)雜指令計算機(jī)(CISC)追求指令完備的做法,采用精簡指令集。以字為指令長度單位,將操作數(shù)與操作碼安排在一字之中,指令長度固定、格式與種類相對較少、尋址方式也相對較少,絕大部分指令都為單周期指令。取指周期短,又可預(yù)取指令,實現(xiàn)流水作業(yè),故可高速執(zhí)行指令,當(dāng)然這種“高速度”是以高可靠性來保障的。68(2)新工藝AVR器件的Flash存儲器擦寫可達(dá)10

000次以上。片內(nèi)較大容量RAM,不僅能滿足一般場合的使用,同時也更有效的支持高級語言開發(fā)系統(tǒng)程序,并可像MCS-51單片機(jī)那樣很容易地擴(kuò)展外部RAM。(3)豐富的外設(shè)。片內(nèi)有定時器/計數(shù)器、看門狗、低電壓檢測電路BOD,多個復(fù)位源(自動上下電復(fù)位、外部復(fù)位、看門狗復(fù)位、BOD復(fù)位),可設(shè)置的啟動后延時運(yùn)行程序,增強(qiáng)應(yīng)用系統(tǒng)可靠性。片內(nèi)UART,面向字節(jié)的高速硬件串口TWI(與I2C兼容)、SPI串口。還有ADC、PWM等片內(nèi)外設(shè)。69(4)I/O口功能強(qiáng)、驅(qū)動能力大。工業(yè)級產(chǎn)品具有大電流(最大可達(dá)40mA),可省去功率驅(qū)動器件,直接驅(qū)動可控硅SSR或繼電器。AVR單片機(jī)的I/O口是真正的I/O口,能正確反映I/O口輸入/輸出的真實情況。I/O口的輸入可設(shè)定為三態(tài)高阻抗輸入或帶上拉電阻輸入,便于滿足各種多功能I/O口應(yīng)用的需要,具備10mA~20mA灌電流的能力。(5)低功耗。有省電功能(PowerDown)及休眠功能(Idle)低功耗工作方式。一般耗電在1~2.5mA;對典型功耗情況,WDT關(guān)閉時為100nA,更適于電池供電。有的器件最低1.8V即可工作。70(6)支持在線編程,只需一條ISP下載線,就可把程序?qū)懭階VR單片機(jī),無需編程器。其中MEGA系列還支持在線應(yīng)用編程IAP(可在線升級或銷毀應(yīng)用程序),省去仿真器。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等。71721.9其它的嵌入式處理器簡介以各類嵌入式處理器為核心的嵌入式系統(tǒng)的應(yīng)用,已成為當(dāng)今電子信息技術(shù)應(yīng)用的一大熱點。嵌入式處理器按體系結(jié)構(gòu)主要分為如下幾類:嵌入式微控制器(單片機(jī))、嵌入式數(shù)字信號處理器(簡稱DSP)及嵌入式微處理器。731.9.1嵌入式DSP處理器(DSP)嵌入式數(shù)字信號處理器(DigitalSignalProcessor,DSP),簡稱數(shù)字信號處理器(DSP)。非常擅長于高速實現(xiàn)各種數(shù)字信號處理運(yùn)算(如數(shù)字濾波、FFT、頻譜分析等)的嵌入式處理器。由于對DSP硬件結(jié)構(gòu)和指令進(jìn)行了特殊設(shè)計,使其能高速完成各種數(shù)字信號處理算法。1981年,美國TI(TexasInstruments))公司研制出了著名的TMS320系列的首片低成本、高性能的DSP處理器芯片:TMS320C10,使DSP技術(shù)向前跨出了意義重大的一步。7420世紀(jì)90年代,無線通信、各種網(wǎng)絡(luò)通信、多媒體技術(shù)的普及和應(yīng)用,高清晰度數(shù)字電視研究,極大刺激DSP推廣應(yīng)用。

DSP大量進(jìn)入嵌入式領(lǐng)域。例如各種帶有智能邏輯的消費類產(chǎn)品,生物信息識別終端,實時語音壓解系統(tǒng)、數(shù)字圖像處理等。這類智能化算法一般都是運(yùn)算量較大,如向量運(yùn)算、指針線性尋址等較多,而這正是DSP長處。但在一些實時性要求很高場合,單片DSP處理能力還不能滿足要求。因此,各大公司又推出多總線、多流水線和并行處理的包含多個DSP處理器的芯片,大大提高系統(tǒng)性能。75DSP高速運(yùn)算的硬件結(jié)構(gòu)與指令系統(tǒng)及多總線結(jié)構(gòu),尤其是DSP處理的數(shù)字信號處理算法的復(fù)雜度以及數(shù)據(jù)處理大流量,單片機(jī)以及其他嵌入式處理器不可企及。

DSP主要廠商:美國TI、ADI、Motorola、Zilog等。TI榜首,占全球DSP市場約60%。代表性產(chǎn)品TMS320系列。包括用于控制領(lǐng)域的2000系列,移動通信的5000系列,以及在通信和數(shù)字圖像處理的6000系列等。隨著全球Internet網(wǎng)普及,多媒體廣泛應(yīng)用,尖端技術(shù)向民用領(lǐng)域迅速轉(zhuǎn)移,數(shù)字技術(shù)大范圍進(jìn)入消費類電子產(chǎn)品,使DSP不斷更新?lián)Q代,性能指標(biāo)不斷提高,價格不斷下降,已成為新興科技:通信、多媒體、系統(tǒng)、消費電子、76醫(yī)用電子等飛速發(fā)展的推動力。據(jù)國際著名市場調(diào)查研究公司ForwardConcepts的統(tǒng)計和預(yù)測報告顯示,目前世界DSP市場每年正以30%大幅增長,是目前最有發(fā)展和應(yīng)用前景的嵌入式處理器之一。1.9.2嵌入式微處理器嵌入式微處理器(EmbeddedMicroProcessorUnit,EMPU)的基礎(chǔ)是通用計算機(jī)中的CPU。雖在功能和標(biāo)準(zhǔn)微處理器基本一樣,但由于只保留和嵌入式應(yīng)用有關(guān)的功能,這樣可大幅度減小系統(tǒng)體積和功耗,同時在工作溫度、抗電磁干擾、可靠性等方面一般都做了各種增強(qiáng)處理。77嵌入式微處理器代表性產(chǎn)品為ARM系列,主要5個產(chǎn)品系列:ARM7、ARM9、ARM9E、ARM10和SecurCore。以ARM7為例,地址線32條,能擴(kuò)展的存儲器空間要比單片機(jī)存儲器空間大得多,可配置實時多任務(wù)操作系統(tǒng)(RTOS),而RTOS則是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。常用的RTOS為Linux(數(shù)百KB)和VxWorks(數(shù)MB)以及μC-OSⅡ。由于嵌入式實時多任務(wù)操作系統(tǒng)具有高度靈活性,可很容易對它進(jìn)行定制或開發(fā),即“裁剪”、“移植”和“編寫”,從而設(shè)計出用戶所需的應(yīng)用程序。78由于能運(yùn)行實時多任務(wù)操作系統(tǒng),所以能處理復(fù)雜的系統(tǒng)管理任務(wù)和處理工作。因此,在移動計算平臺、媒體手機(jī)、工業(yè)控制和商業(yè)領(lǐng)域(例如,智能工控設(shè)備、ATM機(jī)等)、電子商務(wù)平臺、信息家電(機(jī)頂盒、數(shù)字電視)等方面,甚至軍事上的應(yīng)用,具有巨大的吸引力。以嵌入式微處理器為核心的嵌入式系統(tǒng)的應(yīng)用,已經(jīng)成為繼單片機(jī)、DSP之后的電子信息技術(shù)應(yīng)用的又一大熱點。79這里要對“嵌入式系統(tǒng)”這個名稱作進(jìn)一步說明。從更廣泛意義講,凡是系統(tǒng)中嵌入了“嵌入式處理器”,如單片機(jī)、DSP、嵌入式微處理器,都稱其為“嵌入式系統(tǒng)”。但目前較為流行的說法是,僅把“嵌入”嵌入式微處理器的系統(tǒng),稱為“嵌入式系統(tǒng)”。目前“嵌入式系統(tǒng)”還沒有一個嚴(yán)格和權(quán)威定義,但通常所說的“嵌入式系統(tǒng)”,多指后種。808182第2章AT89S51單片機(jī)

硬件結(jié)構(gòu)

83單片機(jī)應(yīng)用特點是程序來控制硬件,讀者應(yīng)首先熟知并掌握AT89S51片內(nèi)硬件的基本結(jié)構(gòu)和特點。2.1AT89S51單片機(jī)的硬件組成片內(nèi)結(jié)構(gòu)如圖2-1所示。把作為控制應(yīng)用所必需的基本功能部件都集成在一個集成電路芯片上。有如下功能部件和特性:(1)8位微處理器(CPU);(2)數(shù)據(jù)存儲器(128BRAM);(3)程序存儲器(4KBFlashROM);(4)4個8位可編程并行I/O口(P0口、P1口、P2口、P3口);圖2-1AT89S51單片機(jī)片內(nèi)結(jié)構(gòu)8485(5)1個全雙工的異步串行口;(6)2個可編程的16位定時器/計數(shù)器;(7)1個看門狗定時器;(8)中斷系統(tǒng)有5個中斷源,對應(yīng)5個中斷向量;(9)特殊功能寄存器(SFR)26個;(10)低功耗模式有空閑模式和掉電模式,且具有掉電模式下的中斷恢復(fù)模式;(11)3個程序加密鎖定位;86與AT89C51比,AT89S51更突出的優(yōu)點:(1)增加在線可編程功能ISP(InSystemProgram),字節(jié)和頁編程,現(xiàn)場程序調(diào)試和修改更加方便靈活;(2)數(shù)據(jù)指針增加到兩個,方便對片外RAM的訪問;(3)增加了看門狗定時器,提高了系統(tǒng)的抗干擾能力;(4)增加斷電標(biāo)志;(5)增加掉電狀態(tài)下的中斷恢復(fù)模式;片內(nèi)各功能部件通過片內(nèi)單一總線連接而成(圖2-1),基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)微機(jī)結(jié)構(gòu)。CPU對各種功能部件的控制是采用特殊功能寄存器(SFR,SpecialFunctionRegister)的集中控制方式。介紹圖2-1中片內(nèi)各功能部件。(1)CPU(微處理器)8位,與通用CPU基本相同,包括了運(yùn)算器和控制器兩大部分,還有面向控制的位處理功能。(2)數(shù)據(jù)存儲器(RAM)片內(nèi)為128B(52子系列為256B),片外最多可擴(kuò)64KB。87(3)程序存儲器(FlashROM)片內(nèi)集成有4KB的Flash存儲器(AT89S52則為8KB;AT89C55片內(nèi)20KB),如片內(nèi)容量不夠,片外可外擴(kuò)至64KB。(4)中斷系統(tǒng)具有5個中斷源,2級中斷優(yōu)先權(quán)。(5)定時器/計數(shù)器2個16位定時器/計數(shù)器(52子系列有3個),4種工作方式。(6)串行口1個全雙工的異步串口,4種工作方式??蛇M(jìn)行串行通信,擴(kuò)展并行I/O口,還可與多個單片機(jī)構(gòu)成多機(jī)通信系統(tǒng)。88(7)4個8位的并行口:P0口、P1口、P2口和P3口。、(8)特殊功能寄存器(SFR)26個,對片內(nèi)各功能部件管理、控制和監(jiān)視。是各功能件的控制寄存器和狀態(tài)寄存器,映射片內(nèi)RAM區(qū)80H~FFH內(nèi)。(9)1個看門狗定時器WDT當(dāng)由于干擾程序陷入死循環(huán)或跑飛時,可使程序恢復(fù)正常運(yùn)行。AT89S51完全兼容AT89C51,在充分保留原來軟、硬件條件下,完全可用AT89S51直接代換。89902.2AT89S51的引腳功能先了解引腳,牢記各引腳功能。AT89S51與各種8051芯片的引腳兼容。目前多采用40只引腳雙列直插,此外,還有44引腳的PLCC和TQFP封裝方式的芯片。

91圖2-2AT89S51雙列直插封裝方式的引腳92引腳按其功能可分為如下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.1電源及時鐘引腳1.電源引腳(1)VCC(40腳):+5V電源。(2)VSS(20腳):數(shù)字地。932.時鐘引腳

(1)XTAL1(19腳):片內(nèi)振蕩器反相放大器和時鐘發(fā)生器電路輸入端。用片內(nèi)振蕩器時,該腳接外部石英晶體和微調(diào)電容。外接時鐘源時,該腳接來自外部時鐘振蕩器的信號。(2)XTAL2(18腳):片內(nèi)振蕩器反相放大器的輸出端。當(dāng)使用片內(nèi)振蕩器,該腳接外部石英晶體和微調(diào)電容。當(dāng)使用外部時鐘源時,本腳懸空。2.2.2控制引腳(1)RST(RESET,9腳)復(fù)位信號輸入,在引腳加上持續(xù)時間大于2個機(jī)器周期的高電平,可使單片機(jī)復(fù)位。正常工作,此腳電平應(yīng)≤0.5V。94當(dāng)看門狗溢出時,該腳將輸出96個時鐘振蕩周期的高電平。(2)EA*/VPP(EnableAddress/VoltagePulseofPrograming,31腳)EA*:第一功能:外部程序存儲器訪問允許控制端。EA*=1,在PC值≤0FFFH(不超出片內(nèi)4KBFlash存儲器地址范圍)時,單片機(jī)讀片內(nèi)Flash存儲器(4KB)中的程序,但PC值>0FFFH(超出片內(nèi)4KBFlash地址范圍)時,將自動轉(zhuǎn)向讀取片外60KB(1000H-FFFFH)程序存儲器空間中的程序。EA*=0,只讀取片外程序存儲器中內(nèi)容,讀取地址范圍為0000H~FFFFH,片內(nèi)的4KBFlash程序存儲器不起作用。95VPP:引腳第二功能,對片內(nèi)Flash編程,接編程電壓。(3)ALE/PROG*(AddressLatchEnable/PROGramming,30腳)ALE:為CPU訪問外部程序存儲器或外部數(shù)據(jù)存儲器提供地址鎖存控制信號,將低8位地址鎖存在片外的地址鎖存器中,見圖2-3。

96圖2-3ALE作為低8位地址的鎖存控制信號

此外,單片機(jī)正常運(yùn)行時,ALE端一直有正脈沖信號輸出,此頻率為fosc的1/6。該信號可作外部定時或觸發(fā)信號使用。

注意:每當(dāng)AT89S51訪問外部RAM或I/O時,要丟失一個ALE脈沖,所以ALE引腳的輸出信號頻率并不是準(zhǔn)確的1/6

fosc。

如不需要ALE端輸出脈沖信號,可將特殊功能寄存器AUXR(地址8EH,本章后面介紹)的第0位(ALE禁止位)置1,來禁止ALE操作,但在執(zhí)行訪問外部程序存儲器或外部數(shù)據(jù)存儲器操作時,ALE仍然有效,即ALE禁止位不影響對單片機(jī)對外部存儲器的訪問。PROG*:引腳第二功能,對片內(nèi)Flash編程,加編程脈沖輸入。97(4)PSEN*(ProgramStrobeENable,29腳)片外程序存儲器讀選通信號,低有效。98992.2.3并行I/O口引腳(1)P0口:P0.7~P0.0腳,8位,漏極開路的雙向I/O口當(dāng)外擴(kuò)存儲器及I/O接口芯片時,P0口作為低8位地址總線及數(shù)據(jù)總線的分時復(fù)用端口。P0口也可作通用的I/O口用,需加上拉電阻,這時為準(zhǔn)雙向口。如作輸入,應(yīng)先向端口寫1??沈?qū)動8個LS型TTL負(fù)載。(2)P1口:P1.7~P1.0腳,8位,準(zhǔn)雙向I/O口,內(nèi)有上拉電阻。準(zhǔn)雙向I/O口,作通用I/O輸入時,應(yīng)先向端口鎖存器寫1,100P1口可驅(qū)動4個LS型TTL負(fù)載。P1.5/MOSI、P1.6/MISO和P1.7/SCK也可用于對片內(nèi)Flash存儲器串行編程和校驗,分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。(3)P2口:P2.7~P2.0腳,8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。當(dāng)AT89S51擴(kuò)展外部存儲器及I/O口時,P2口作為高8位地址總線輸出高8位地址。P2口也可作普通I/O使用。當(dāng)作通用I/O輸入時,應(yīng)先向端口輸出鎖存器寫1。可驅(qū)動4個LS型TTL負(fù)載。101(4)P3口:P3.7~P3.0腳,8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻??勺鳛橥ㄓ玫腎/O口使用。作為通用I/O輸入,應(yīng)先向端口輸出鎖存器寫入1??沈?qū)動4個LS型TTL負(fù)載。P3口還可提供第二功能。第二功能定義如表2-1,應(yīng)熟記。

綜上所述,P0口作為總線口時,為雙向口,作通用I/O用時,為準(zhǔn)雙向口,需加上拉電阻。P1、P2、P3口均為準(zhǔn)雙向口。102103注意:準(zhǔn)雙向口與雙向口的差別。準(zhǔn)雙向口僅有兩個狀態(tài)。而P0口作為總線使用,口線內(nèi)無上拉電阻,處于高阻“懸浮”態(tài)。故為雙向三態(tài)I/O口。為什么P0口要有高阻“懸浮”態(tài)?因為P0口作為數(shù)據(jù)總線用時,多個數(shù)據(jù)源都掛在數(shù)據(jù)總線上,當(dāng)P0口不需要讀寫其他數(shù)據(jù)源時,需要與數(shù)據(jù)總線高阻“懸浮”隔離。準(zhǔn)雙向I/O口則無高阻“懸浮”態(tài)。另外,準(zhǔn)雙向口作通用I/O輸入使用時,需先向該口先寫入“1”。準(zhǔn)雙向口與雙向口的差別,學(xué)習(xí)2.5節(jié)的P0~P3口內(nèi)部結(jié)構(gòu)后,會有更深入了解。

至此,40只引腳已介紹完畢,應(yīng)熟記每一引腳功能,對應(yīng)用系統(tǒng)硬件電路設(shè)計十分重要。1041052.3AT89S51的CPU由圖2-1,由運(yùn)算器和控制器構(gòu)成。2.3.1運(yùn)算器對操作數(shù)進(jìn)行算術(shù)、邏輯和位操作運(yùn)算。主要包括算術(shù)邏輯運(yùn)算單元ALU、累加器A、位處理器、程序狀態(tài)字寄存器PSW及兩個暫存器等。1.算術(shù)邏輯運(yùn)算單元ALU可對8位變量邏輯運(yùn)算(與、或、異或、循環(huán)、求補(bǔ)和清零),還可算術(shù)運(yùn)算(加、減、乘、除)106ALU還有位操作功能,對位變量進(jìn)行位處理,如置“1”、清“0”、求補(bǔ)、測試轉(zhuǎn)移及邏輯“與”、“或”等。2.累加器A累加器A是CPU中使用頻繁的一個8位寄存器,在使用匯編語言編程時,有些場合必須寫為Acc。作用如下:(1)ALU單元的輸入數(shù)據(jù)源之一,又是ALU運(yùn)算結(jié)果存放單元(2)數(shù)據(jù)傳送大多都通過累加器A,相當(dāng)于數(shù)據(jù)的中轉(zhuǎn)站。為解決“瓶頸堵塞”問題,AT89S51增加了一部分可不經(jīng)過累加器的傳送指令。107A的進(jìn)位標(biāo)志Cy是特殊的,因為它同時又是位處理機(jī)的位累加器3.程序狀態(tài)字寄存器PSWPSW(ProgramStatusWord)位于片內(nèi)特殊功能寄存器區(qū),字節(jié)地址D0H。包含了程序運(yùn)行狀態(tài)的信息,其中4位保存當(dāng)前指令執(zhí)行后的狀態(tài),供程序查詢和判斷。格式如圖2-4。

圖2-4PSW的格式108PSW中各位功能:(1)Cy(PSW.7)進(jìn)位標(biāo)志位可寫為C。在算術(shù)和邏輯運(yùn)算時,若有進(jìn)位/借位,Cy=1;否則,Cy=0。在位處理器中,它是位累加器。(2)Ac(PSW.6)輔助進(jìn)位標(biāo)志位在BCD碼運(yùn)算時,用作十進(jìn)位調(diào)整。即當(dāng)D3位向D4位產(chǎn)生進(jìn)位或借位時,Ac=1;否則,Ac=0。(3)F0(PSW.5)用戶設(shè)定標(biāo)志位由用戶使用的一個狀態(tài)標(biāo)志位,可用指令來使它置“1”或清“0,控制程序的流向。用戶應(yīng)充分利用。109(4)RS1、RS0(PSW.4、PSW.3)4組工作寄存器區(qū)選擇 選擇片內(nèi)RAM區(qū)中的4組工作寄存器區(qū)中的某一組為當(dāng)前工作寄存區(qū)。如表2-2。110RS1RS0所選的4組寄存器000區(qū)(內(nèi)部RAM地址00H~07H)011區(qū)(內(nèi)部RAM地址08H~0FH)102區(qū)(內(nèi)部RAM地址10H~17H)113區(qū)(內(nèi)部RAM地址18H~1FH)表2-2RS1、RS0與4組工作寄存器區(qū)的對應(yīng)關(guān)系(5)OV(PSW.2)溢出標(biāo)志位

當(dāng)執(zhí)行算術(shù)指令時,用來指示運(yùn)算結(jié)果是否產(chǎn)生溢出。如果結(jié)果產(chǎn)生溢出,OV=1;否則,OV=0。(6)PSW.1位:保留位。(7)P(PSW.0)奇偶標(biāo)志位

指令執(zhí)行后,累加器A中“1”的個數(shù)是奇數(shù)還是偶數(shù)。

P=1,A中“1”的個數(shù)為奇數(shù)。

P=0,A中“1”的個數(shù)為偶數(shù)。

此標(biāo)志位對串行通信有重要意義,常用奇偶檢驗來檢驗數(shù)據(jù)串行傳輸?shù)目煽啃浴?111121132.3.2控制器任務(wù):識別指令,并根據(jù)指令的性質(zhì)控制單片機(jī)各功能部件,從而保證單片機(jī)各部分能自動協(xié)調(diào)地工作??刂破靼ǎ撼绦蛴嫈?shù)器、指令寄存器、指令譯碼器、定時及控制邏輯電路等。功能是控制指令的讀入、譯碼和執(zhí)行,從而對各功能部件進(jìn)行定時和邏輯控制。程序計數(shù)器PC是一個獨立的16位計數(shù)器,指令不可直接訪問。單片機(jī)復(fù)位時,PC內(nèi)容為0000H,從程序存儲器0000H單元取指令,開始執(zhí)行程序。PC工作過程:CPU讀指令時,PC的內(nèi)容作為所取指令的地址,程序存儲器按此地址輸出指令字節(jié),同時PC自動加1。PC內(nèi)容變化軌跡決定程序流程。當(dāng)順序執(zhí)行程序時自動加1;執(zhí)行轉(zhuǎn)移程序或子程序、中斷子程序調(diào)用時,自動將其內(nèi)容更改成所要轉(zhuǎn)移的目的地址。PC計數(shù)寬度決定了程序存儲器的地址范圍,16位,故可對64KB(=216B)尋址。2.4AT89S51存儲器的結(jié)構(gòu)存儲器結(jié)構(gòu)特點之一是將程序存儲器和數(shù)據(jù)存儲器分開(哈佛結(jié)構(gòu)),并有各自的訪問指令。存儲器空間可分為4類。1141.程序存儲器空間片內(nèi)、片外兩部分。片內(nèi)程序存儲器為4KB的Flash存儲器,編程和擦除全是電氣實現(xiàn),且速度快??赏ㄓ镁幊唐骶幊蹋部稍诰€編程。當(dāng)片內(nèi)4KB的Flash存儲器不夠用時,可在片外擴(kuò)展程序存儲器,最多可擴(kuò)展至64KB程序存儲器。2.數(shù)據(jù)存儲器空間片內(nèi)、片外兩部分。片內(nèi)有128BRAM(52子系列為256B)。片內(nèi)RAM不夠用時,在片外可擴(kuò)展至64KBRAM

。31153.特殊功能寄存器SFR(SpecialFunctionRegister)片內(nèi)共有26個特殊功能寄存器SFR(SpecialFunctionRegister)。SFR實質(zhì)是各外圍部件的控制寄存器及狀態(tài)寄存器,綜合反映單片機(jī)內(nèi)部實際的工作狀態(tài)及工作方式。4.位地址空間共211個可尋址位,構(gòu)成了位地址空間。它們位于內(nèi)部RAM(共128位)和特殊功能寄存器區(qū)(共83位)中。2.4.1程序存儲器空間存放程序和表格之類的固定常數(shù)。片內(nèi)為4KBFlash,地址為0000H~0FFFH。16位地址線,可外擴(kuò)的程序存儲器空間最大為64KB,地址為0000H~FFFFH。使用應(yīng)注意以下問題116(1)分片內(nèi)和片外兩部分,訪問片內(nèi)的還是片外的程序存儲器,由EA*腳電平確定。

EA*=1,CPU從片內(nèi)0000H開始取指令,當(dāng)PC值≤0FFFH時,只訪問片內(nèi)Flash存儲器,當(dāng)PC值>0FFFH自動轉(zhuǎn)向讀片外程序存儲器空間1000H~FFFFH內(nèi)的程序。EA*=0,只執(zhí)行片外程序存儲器(0000H~FFFFH)中的程序。不理會片內(nèi)4KBFlash存儲器。(2)程序存儲器某些固定單元用于各中斷源中斷服務(wù)程序入口。11711864KB程序存儲器空間5個特殊單元分別對應(yīng)于5個中斷源的中斷入口地址,見表2-3。AT89S51復(fù)位后,程序存儲器地址指針PC為0000H,程序從程序存儲器地址0000H開始執(zhí)行程序。由于外部中斷0的中斷服務(wù)程序入口地址為0003H,為使主程序不與外部中斷0的中斷服務(wù)程序發(fā)生沖突,用匯編語言編程時,一般在0000H單元存放一條跳轉(zhuǎn)指令,轉(zhuǎn)向主程序的入口地址。上述問題,在使用C51語言編程時,用戶只需正確書寫中斷函數(shù)即可,其他由C51編譯時自動處理,不會發(fā)生沖突。1191202.4.2數(shù)據(jù)存儲器空間

片內(nèi)與片外兩部分。1.片內(nèi)數(shù)據(jù)存儲器片內(nèi)數(shù)據(jù)存儲器(RAM)共128個單元,字節(jié)地址00H~7FH。圖2-5為片內(nèi)數(shù)據(jù)存儲器的結(jié)構(gòu)。121圖2-5AT89S51片內(nèi)RAM結(jié)構(gòu)12200H~1FH的32個單元是4組通用工作寄存器區(qū),每區(qū)包含8B,為R7~R0??赏ㄟ^指令改變RS1、RS0兩位來選擇。20H~2FH的16個單元的128位可位尋址,也可字節(jié)尋址。30H~7FH單元只能字節(jié)尋址,用作存數(shù)據(jù)以及作為堆棧區(qū)。2.片外數(shù)據(jù)存儲器當(dāng)片內(nèi)128B的RAM不夠用時,需外擴(kuò),最多可外擴(kuò)64KB的RAM。注意,片內(nèi)RAM與片外RAM兩個空間是相互獨立的,片內(nèi)RAM與片外RAM的低128B的地址是相同的,但由于使用不同的訪問指令,所以不會發(fā)生沖突。1232.4.3特殊功能寄存器(SFR)特殊功能寄存器映射在片內(nèi)RAM

80H~FFH

區(qū)域中,共26個。表2-4是名稱及分布。有些還可位尋址,位地址見表2-4。與AT89C51相比,新增5個SFR:DP1L、DP1H、AUXR、AUXR1和WDTRST,已在表2-4中標(biāo)出。凡是可位尋址的SFR,字節(jié)地址末位只能是0H或8H。另外,若讀/寫未定義單元,將得到一個不確定的隨機(jī)數(shù)。累加器A和程序狀態(tài)字寄存器PSW前面已介紹。下面簡單介紹某些SFR,余下的SFR與片內(nèi)外圍部件密切相關(guān),將在后續(xù)介紹片內(nèi)外圍部件時進(jìn)行說明。1241251261.堆棧指針SP指示堆棧頂部在內(nèi)部RAM塊中的位置。堆棧結(jié)構(gòu)--向上生長型。單片機(jī)復(fù)位后,SP為07H,使得堆棧實際上從08H單元開始,由于08H~1FH單元分別屬于1~3組的工作寄存器區(qū),最好在復(fù)位后把SP值改為60H或更大值,避免堆棧與工作寄存器沖突。堆棧主要是為子程序調(diào)用和中斷操作而設(shè)。用于保護(hù)斷點和現(xiàn)場。(1)保護(hù)斷點。無論子程序調(diào)用還是中斷服務(wù)子程序調(diào)用,最終都要返回主程序。應(yīng)預(yù)先把主程序的斷點在堆棧中保護(hù)起來,為程序正確返回做準(zhǔn)備。127(2)現(xiàn)場保護(hù)。執(zhí)行子程序或中斷服務(wù)子程序時,要用到一些寄存器單元,會破壞原有內(nèi)容。要把有關(guān)寄存器單元的內(nèi)容送入堆棧,保存起來,即“現(xiàn)場保護(hù)”。兩種操作:數(shù)據(jù)壓入(PUSH)堆棧,數(shù)據(jù)彈出(POP)堆棧。數(shù)據(jù)壓入堆棧,SP自動加1;數(shù)據(jù)彈出堆棧,SP自動減1。2.寄存器B為執(zhí)行乘法和除法而設(shè)。在不執(zhí)行乘、除法操作的情況下,可把它當(dāng)作一個普通寄存器來使用。乘法:兩乘數(shù)分別在A、B中,執(zhí)行乘法指令后,乘積在BA中除法:被除數(shù)取自A,除數(shù)取自B,商存放在A中,余數(shù)存B中。1281293.AUXR寄存器AUXR是輔助寄存器,其格式如圖2-6:圖2-6AUXR寄存器的格式130其中:DISALE:ALE的禁止/允許位。

0:ALE有效,發(fā)出脈沖;

1:ALE僅在執(zhí)行MOVC和MOVX類指令時有效,不訪問外部存儲器時,ALE不輸出脈沖信號;DISRTO:禁止/允許WDT溢出時的復(fù)位輸出。

0:WDT溢出時,在RST引腳輸出一個高電平復(fù)位脈沖;

1:禁止WDT,RST引腳僅為輸入腳。WDIDLE:WDT在空閑模式下的禁止/允許位。

0:WDT在空閑模式下繼續(xù)計數(shù);

1:WDT在空閑模式下暫停計數(shù)。。1314.數(shù)據(jù)指針DPTR0和DPTR1雙數(shù)據(jù)指針寄存器,便于訪問數(shù)據(jù)存儲器。DPTR0:AT89C51單片機(jī)原有的數(shù)據(jù)指針,DPTR1:新增加的數(shù)據(jù)指針。AUXR1的DPS位用于選擇兩個數(shù)據(jù)指針。DPS=0時,選用DPTR0;DPS=1時,選用DPTR1。AT89S51復(fù)位時,默認(rèn)選用DPTR0。

數(shù)據(jù)指針可作為一個16位寄存器來用,也可作為兩個獨立的8位寄存器DP0H(或DP1H)和DP0L(或DP1L)來用。1325.AUXR1寄存器AUXR1是輔助寄存器,格式如圖2-7:

DPS:數(shù)據(jù)指針寄存器選擇位。

0:選擇數(shù)據(jù)指針寄存器DPTR0;

1:選擇數(shù)據(jù)指針寄存器DPTR1。圖2-7AUXR1寄存器的格式6.看門狗定時器WDT包含1個14位計數(shù)器和看門狗定時器復(fù)位寄存器(WDTRST)。當(dāng)CPU由于干擾,程序陷入死循環(huán)或跑飛狀態(tài)時,WDT提供了一種使程序恢復(fù)正常運(yùn)行的有效手段。有關(guān)WDT的應(yīng)用以及低功耗模式下運(yùn)行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論