嵌入式系統(tǒng)原理與接口技術(shù)(1-9章全)_第1頁
嵌入式系統(tǒng)原理與接口技術(shù)(1-9章全)_第2頁
嵌入式系統(tǒng)原理與接口技術(shù)(1-9章全)_第3頁
嵌入式系統(tǒng)原理與接口技術(shù)(1-9章全)_第4頁
嵌入式系統(tǒng)原理與接口技術(shù)(1-9章全)_第5頁
已閱讀5頁,還剩556頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)與接口技術(shù)北京理工大學(xué)光電學(xué)院2020.9122第1章 單片機(jī)概述33第1章 單片機(jī)概述單片機(jī)簡介單片機(jī)的發(fā)展歷史單片機(jī)的特點(diǎn)單片機(jī)的應(yīng)用單片機(jī)的發(fā)展趨勢MCS-51系列與AT89S5x系列單片機(jī)各種衍生品種的8051單片機(jī)PIC系列單片機(jī)與AVR系列單片機(jī)單片機(jī)開發(fā)過程與調(diào)試工具回顧1:計(jì)算機(jī)系統(tǒng)基本概念與常用術(shù)語回顧2:二進(jìn)制編碼(代碼)44什么是單片機(jī)我們生活中處處都會(huì)遇到單片機(jī) 馮諾依曼計(jì)算機(jī)的基本組成輸入設(shè)備 存儲(chǔ)器 運(yùn)算器 控制器輸出設(shè)備 CPU馮諾伊曼(19031957)1945年提出了“程序內(nèi)存式”計(jì)算機(jī)的設(shè)計(jì)思想。5馮諾依曼存儲(chǔ)程序工作原理數(shù)據(jù)和程序以二進(jìn)制代碼的形

2、式不加區(qū)別地存放在存儲(chǔ)器中,存放位置由地址指定,地址碼也是二進(jìn)制形式控制器根據(jù)存放在存儲(chǔ)器中的指令序列(即程序)工作,并由一個(gè)程序計(jì)數(shù)器(PC)控制指令的執(zhí)行。控制器具有判斷能力,能夠根據(jù)計(jì)算結(jié)果選擇不同的動(dòng)作流程6微型計(jì)算機(jī)系統(tǒng)通常由多塊印刷電路板制成 主板顯卡聲卡存儲(chǔ)器接口網(wǎng)卡輸入輸出接口內(nèi)存條CPU7CPUCPU芯片內(nèi)存條存儲(chǔ)器接口存儲(chǔ)器芯片輸入輸出接口輸入輸出接口芯片定時(shí)計(jì)數(shù)器芯片A/D、D/A芯片單板機(jī) 印 刷 電 路 板8 單 硅 晶 片 CPU存儲(chǔ)器控制電路定時(shí)器時(shí)鐘電路I / O口單片機(jī) 在一片半導(dǎo)體硅片集成了中央處理單元(CPU)、存儲(chǔ)器(RAM、ROM)、并行I/O、串行I

3、/O、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、系統(tǒng)時(shí)鐘電路及系統(tǒng)總線。 用于測控領(lǐng)域的單片微型計(jì)算機(jī),簡稱單片機(jī)。91010單片機(jī)使用時(shí)通常處于測控系統(tǒng)的核心地位并嵌入其中,所以國際上通常把單片機(jī)稱為嵌入式控制器(EMCU,Embedded MicroController Unit),或微控制器(MCU,MicroController Unit)。單片機(jī)的問世標(biāo)志著計(jì)算機(jī)正式形成了通用計(jì)算機(jī)系統(tǒng)和嵌入式計(jì)算機(jī)系統(tǒng)兩大分支。按照用途,單片機(jī)可以分為:通用型單片機(jī)(本課研究的對(duì)象):其內(nèi)部可開發(fā)的資源(如存儲(chǔ)器、I/O等各種外圍功能部件等)可以全部提供給用戶。用戶可以根據(jù)需要設(shè)計(jì)一個(gè)以通用單片機(jī)為核心,再配以外

4、圍接口電路及其它外圍設(shè)備,并編寫相應(yīng)的軟件來滿足各種不同需要的測控系統(tǒng)。11例:各種家用電器中的控制器等。由于用于特定用途,單片機(jī)芯片制造商常與產(chǎn)品廠家合作,設(shè)計(jì)和生產(chǎn)“專用”的單片機(jī)芯片。11專用型單片機(jī)是專門針對(duì)某些產(chǎn)品的特定用途而制作的單片機(jī)。SurplusSPCA533A12單片機(jī)的發(fā)展歷史 單片機(jī)按其處理的數(shù)據(jù)位寬主要分為:4位單片機(jī)、8位單片機(jī)、16位單片機(jī)和32位單片機(jī)。發(fā)展大致分為4個(gè)階段:第一階段(1974年1976年):單片機(jī)初級(jí)階段。因工藝限制,單片機(jī)采用雙片的形式而且功能比較簡單。1974年12月,仙童公司推出了8位的F8單片機(jī),實(shí)際上只包括了8位CPU、64B RAM

5、和2個(gè)并行口。第二階段(1976年1978年):低性能單片機(jī)階段。1976年 Intel的MCS-48單片機(jī)(8位)和1977年GI公司的PIC1650等,極大促進(jìn)了單片機(jī)的變革和發(fā)展。12PIC165013第三階段(1978年1983年):高性能單片機(jī)階段。1978年,Zilog公司推出Z8單片機(jī),1980年,Intel公司在MCS-48系列基礎(chǔ)上推出MCS-51系列,Mortorola推出6801單片機(jī)。使單片機(jī)的性能及應(yīng)用躍上新的臺(tái)階。13Z86801第四階段(1983年現(xiàn)在):8位單片機(jī)鞏固發(fā)展及16位單片機(jī)、32位單片機(jī)推出階段。89S528098MC68HC16MSP43014單片

6、機(jī)的特點(diǎn)單片機(jī)是集成電路技術(shù)與微型計(jì)算機(jī)技術(shù)高速發(fā)展的產(chǎn)物。體積小、價(jià)格低、應(yīng)用方便、穩(wěn)定可靠,因此,給工業(yè)自動(dòng)化等領(lǐng)域帶來了一場重大革命和技術(shù)進(jìn)步。由于體積小,很容易地嵌入到系統(tǒng)之中,以實(shí)現(xiàn)各種方式的檢測、計(jì)算或控制,這一點(diǎn),一般微機(jī)根本做不到。由于單片機(jī)本身就是一個(gè)微型計(jì)算機(jī),因此只要在單片機(jī)的外部適當(dāng)增加一些必要的外圍擴(kuò)展電路,就可以靈活地構(gòu)成各種應(yīng)用系統(tǒng),如工業(yè)自動(dòng)檢測監(jiān)視系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、自動(dòng)控制系統(tǒng)、智能儀器儀表等。14151.4 單片機(jī)的應(yīng)用 軟硬件結(jié)合、體積小,容易嵌入到各種應(yīng)用系統(tǒng)中。15工業(yè)檢測與控制 工業(yè)過程控制、智能控制、設(shè)備控制、數(shù)據(jù)采集和傳輸、測試、測量、監(jiān)控等。

7、儀器儀表 單片機(jī)的使用有助于提高儀器儀表的精度和準(zhǔn)確度,簡化結(jié)構(gòu),減小體積而易于攜帶和使用。消費(fèi)類電子產(chǎn)品 單片機(jī)會(huì)大大提高產(chǎn)品功能和性能,實(shí)現(xiàn)智能最優(yōu)化控制。通訊 信息網(wǎng)絡(luò)及各種通訊設(shè)備中。武器裝備 在現(xiàn)代化的武器裝備中,都有單片機(jī)嵌入其中。16各種終端及計(jì)算機(jī)外部設(shè)備 計(jì)算機(jī)網(wǎng)絡(luò)終端(如銀行終端)以及計(jì)算機(jī)外部設(shè)備(如打印機(jī)、硬盤驅(qū)動(dòng)器、繪圖機(jī)、傳真機(jī)、復(fù)印機(jī)等)汽車電子設(shè)備 如:汽車安全系統(tǒng)、汽車信息系統(tǒng)、智能自動(dòng)駕駛系統(tǒng)、衛(wèi)星汽車導(dǎo)航系統(tǒng)、汽車緊急請(qǐng)求服務(wù)系統(tǒng)、汽車防撞監(jiān)控系統(tǒng)、汽車自動(dòng)診斷系統(tǒng)以及汽車黑匣子等。分布式多機(jī)系統(tǒng) 在較復(fù)雜多節(jié)點(diǎn)的測控系統(tǒng)中,常采用分布式多機(jī)系統(tǒng)。1617

8、1.5 單片機(jī)的發(fā)展趨勢 單片機(jī)的發(fā)展趨勢將是向大容量、高性能化,外圍電路內(nèi)裝化等方面發(fā)展。CPU的改進(jìn)增加CPU數(shù)據(jù)總線寬度。(如:各種16位單片機(jī)和32位單片機(jī),數(shù)據(jù)處理能力要優(yōu)于8位單片機(jī))采用雙CPU結(jié)構(gòu),以提高數(shù)據(jù)處理能力。存儲(chǔ)器的發(fā)展片內(nèi)程序存儲(chǔ)器普遍采用閃爍(Flash)存儲(chǔ)器,可不用外擴(kuò)展程序存儲(chǔ)器,簡化系統(tǒng)結(jié)構(gòu)。加大存儲(chǔ)容量。目前有的單片機(jī)片內(nèi)程序存儲(chǔ)器容量可達(dá)128KB甚至更多。1718片內(nèi)I/O的改進(jìn)增加并行口驅(qū)動(dòng)能力,以減少外部驅(qū)動(dòng)芯片。有的單片機(jī)可以直接輸出大電流和高電壓,以便能直接驅(qū)動(dòng)LED和VFD(熒光顯示器)。有些單片機(jī)設(shè)置了一些特殊的串行I/O功能,為構(gòu)成分布

9、式、網(wǎng)絡(luò)化系統(tǒng)提供方便條件。引入了數(shù)字交叉開關(guān),改變了以往片內(nèi)外設(shè)與外部I/O引腳的固定對(duì)應(yīng)關(guān)系。 低功耗 CMOS化,功耗小,配置有等待狀態(tài)、睡眠狀態(tài)、關(guān)閉狀態(tài)等工作方式。消耗電流僅在A或nA量級(jí),適于電池供電的便攜式、手持式的儀器儀表以及其它消費(fèi)類電子產(chǎn)品。外圍電路內(nèi)裝化 系統(tǒng)的單片化,一片芯片就是一個(gè)“測控”系統(tǒng)。1819編程及仿真的簡單化 目前大多數(shù)的單片機(jī)都支持程序在系統(tǒng)編程ISP(In System Program),只需一條與PC機(jī)USB口(或串行口)相連的ISP下載線,就可把仿真調(diào)試通過的程序代碼從PC機(jī)在線寫入單片機(jī)的Flash存儲(chǔ)器內(nèi),省去編程器與仿真器。某些機(jī)型還支持在線

10、應(yīng)用編程IAP,即可在線升級(jí)或銷毀單片機(jī)的應(yīng)用程序。實(shí)時(shí)操作系統(tǒng)的使用 單片機(jī)可配置實(shí)時(shí)操作系統(tǒng)RTX51,簡化了對(duì)實(shí)時(shí)事件反應(yīng)速度要求較高的復(fù)雜系統(tǒng)設(shè)計(jì)、編程和調(diào)試,已完全集成到C51編譯器中,使用簡單方便。20MCS-51系列與AT89C5x系列單片機(jī)MCS是Intel公司單片機(jī)的系列符號(hào)。MCS-51系列是在MCS-48系列基礎(chǔ)上于20世紀(jì)80年代初發(fā)展起來的,在我國得到廣泛應(yīng)用的單片機(jī)主流品種基本型產(chǎn)品主要包括8031、8051、8751(對(duì)應(yīng)的CMOS工藝的低功耗型為80C31、80C51、87C51)和增強(qiáng)型產(chǎn)品8032、8052、8752 2021基本型典型產(chǎn)品:8031/805

11、1/87518031內(nèi)部包括1個(gè)8位CPU、128B RAM,21個(gè)特殊功能寄存器(SFR)、4個(gè)8位并行I/O口、1個(gè)全雙工串行口,2個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)中斷源,但片內(nèi)無程序存儲(chǔ)器,需外擴(kuò)程序存儲(chǔ)器芯片。8051是在8031的基礎(chǔ)上,片內(nèi)又集成有4KB ROM作為程序存儲(chǔ)器。是一個(gè)程序不超過4KB的小系統(tǒng)。ROM內(nèi)的程序是制作芯片時(shí),代為用戶燒制的。主要用在程序已定且批量大的產(chǎn)品中。8751與8051相比,片內(nèi)的4KB EPROM取代了8051的4KB ROM來作為程序存儲(chǔ)器。2122增強(qiáng)型 典型產(chǎn)品:8032/8052/8752。內(nèi)部RAM增到256B,8052、片內(nèi)程序存儲(chǔ)器擴(kuò)展

12、到8KB,16位定時(shí)器/計(jì)數(shù)器增至3個(gè),6個(gè)中斷源,串行口通信速率提高5倍。222323MCS-51系列設(shè)計(jì)上的成功,以及較高的市場占有率,已成為許多廠家、電氣公司競相選用的對(duì)象。Intel公司以專利形式把8051內(nèi)核技術(shù)轉(zhuǎn)讓給ATMEL、Philips、Cygnal、ANALOG、LG、ADI、Maxim、DALLAS等公司。生產(chǎn)的兼容機(jī)與8051兼容,采用CMOS工藝,因而常用80C51系列單片機(jī)來稱呼所有這些具有8051指令系統(tǒng)的單片機(jī),這些兼容機(jī)的各種衍生品種統(tǒng)稱為51系列單片機(jī)或簡稱為51單片機(jī),是在8051的基礎(chǔ)上又增加一些功能模塊(稱其為增強(qiáng)型、擴(kuò)展型子系列單片機(jī))。24AT89

13、S5x系列單片機(jī)在眾多的衍生機(jī)型中,ATMEL公司的AT89C5x/AT89S5x系列,尤其是AT89C51/AT89S51和AT89C52/AT89S52在8位單片機(jī)市場中占有較大的市場份額。ATMEL公司1994年以E2PROM技術(shù)與Intel公司的80C51內(nèi)核的使用權(quán)進(jìn)行交換。ATMEL公司的技術(shù)優(yōu)勢是閃爍(Flash)存儲(chǔ)器技術(shù),將Flash技術(shù)與80C51內(nèi)核相結(jié)合,形成了片內(nèi)帶有Flash存儲(chǔ)器的AT89C5x/AT89S5x系列單片機(jī)。AT89C5x/AT89S5x系列與MCS-51系列在原有功能、引腳以及指令系統(tǒng)方面完全兼容。此外,某些品種又增加了一些新的功能,如看門狗定時(shí)器

14、WDT、ISP(在系統(tǒng)編程也稱在線編程)及SPI串行接口技術(shù)等。片內(nèi)Flash存儲(chǔ)器允許在線(+5V)電擦除、電寫入或使用編程器對(duì)其重復(fù)編程。AT89C5x/AT89S5x單片機(jī)還支持由軟件選擇的兩種節(jié)電工作方式,非常適于低功耗的場合。2425AT89S5x系列的時(shí)鐘頻率以及運(yùn)算速度有了較大的提高。例如,AT89C51工作頻率的上限為24MHz,而AT89S51則為33MHz。AT89S51片內(nèi)集成有雙數(shù)據(jù)指針DPTR,看門狗定時(shí)器,具有低功耗的空閑工作方式和掉電工作方式,還增加了5個(gè)特殊功能寄存器。AT89S51與AT89S52差別在于AT89S51片內(nèi)有4KB Flash存儲(chǔ)器、128B的

15、RAM、5個(gè)中斷源以及2個(gè)定時(shí)器/計(jì)數(shù)器;而AT89S52片內(nèi)有8KB的Flash程序存儲(chǔ)器、256B的RAM、6個(gè)中斷源、3個(gè)定時(shí)器(比AT89S51多出1個(gè)定時(shí)器,且具有捕捉功能)。26AT89xxxx系列單片機(jī)的型號(hào)說明 AT89xxxx系列單片機(jī)的型號(hào)編碼由三部分組成:前綴、型號(hào)和后綴。前綴 “AT”表示ATMEL公司型號(hào) 由“89Cxxxx”或“89LVxxxx”或“89Sxxxx”等表示。8表示單片,9表示內(nèi)部含有Flash存儲(chǔ)器,C表示CMOS,LV表示低電壓(2.5V)產(chǎn)品,S表示含有串行下載的Flash存儲(chǔ)器,“xxxx”表示器件型號(hào),如51、52等。后綴 由最后的4個(gè)“xx

16、xx”參數(shù)組成,后綴中第1個(gè)“x”表示時(shí)鐘頻率后綴中第2個(gè)“x”表示封裝后綴中第3個(gè)“x”表示芯片的使用溫度范圍如:某一單片機(jī)型號(hào)為“AT89S52-24PU”,則表示該單片機(jī)是ATMEL公司的Flash單片機(jī),CMOS產(chǎn)品,速度為24MHz,封裝塑料雙列直插DIP封裝,是工業(yè)級(jí)無鉛產(chǎn)品。27各種衍生的8051單片機(jī)STC系列單片機(jī) STC系列單片機(jī)是國產(chǎn)功能與抗干擾性強(qiáng)的增強(qiáng)型8051單片機(jī)。STC12C5410/STC12C2052系列機(jī)型主要性能及特點(diǎn):高速:速度比普通的8051快812倍寬工作電壓:5.53.8V,2.43.8V片內(nèi)Flash程序存儲(chǔ)器:12KB/10KB/8KB/6K

17、B/4KB,擦寫次數(shù)10萬次以上片內(nèi)的RAM數(shù)據(jù)存儲(chǔ)器: 512B 可在線編程(ISP)/在應(yīng)用可編程(IAP),無需編程器8通道的10位ADC,4路PWM輸出4通道捕捉/比較單元,也可用來再實(shí)現(xiàn)4個(gè)定時(shí)器 或4個(gè)外部中斷(支持上升沿/下降沿中斷)2個(gè)硬件16位定時(shí)器,4路可編程計(jì)數(shù)/定時(shí)器陣列 (PCA)還可再實(shí)現(xiàn)4個(gè)定時(shí)器硬件看門狗(WDT)高速SPI串口全雙工異步串行口(UART),兼容普通8051的串口通用I/O口(27/23/15個(gè))中的每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA超強(qiáng)抗干擾能力與高可靠性超低功耗設(shè)計(jì)2728C8051Fxxx單片機(jī)美國Cygnal公司產(chǎn)品,集成度高,8051

18、內(nèi)核。代表性產(chǎn)品為C8051F020。內(nèi)部采用流水線結(jié)構(gòu),大部分指令的完成時(shí)間為1或2個(gè)時(shí)鐘周期,峰值處理能力為25MIPS。C8051F020內(nèi)部采用流水線結(jié)構(gòu),大部分指令的執(zhí)行時(shí)間為1或2個(gè)時(shí)鐘周期,峰值處理能力為25MIPS,與經(jīng)典的8051單片機(jī)相比,可靠性和速度有很大提高。 28片內(nèi)資源:1個(gè)8位ADC、1個(gè)12位ADC、1個(gè)雙12位DAC;64kB片內(nèi)Flash程序存儲(chǔ)器,256B RAM,128B SFR;8個(gè)IO端口共64根IO口線;5個(gè)16位通用定時(shí)器;5個(gè)捕捉比較模塊的可編程計(jì)數(shù)定時(shí)器陣列(PCA),1個(gè)UART串行口、1個(gè)SMBus/ I2C串口、1個(gè)SPI串行口;2路電

19、壓比較器,VDD監(jiān)視器(電源監(jiān)測),內(nèi)置溫度傳感器。C8051Fxxx單片機(jī)最突出的改進(jìn)是引入了數(shù)字交叉開關(guān)。改變以往內(nèi)部功能與外部引腳的固定對(duì)應(yīng)關(guān)系。它是一個(gè)大的數(shù)字開關(guān)網(wǎng)絡(luò),允許將內(nèi)部數(shù)字系統(tǒng)資源分配給端口I/O引腳。29ADC812單片機(jī)美國ADI(Analog Devicelnc)公司生產(chǎn)的高性能單片機(jī),內(nèi)部包含高精度的自校準(zhǔn)8通道12位模數(shù)轉(zhuǎn)換器,2通道12位數(shù)模轉(zhuǎn)換器以及可編程的8位的與8051單片機(jī)兼容的MCU內(nèi)核,指令系統(tǒng)與MCS-51系列兼容。片內(nèi)有8KB Flash程序存儲(chǔ)器、640B Flash數(shù)據(jù)存儲(chǔ)器、256B數(shù)據(jù)SRAM(支持可編程)。片內(nèi)集成看門狗定時(shí)器、電源監(jiān)視

20、器以及ADCDMA功能。為多處理器接口和I/O擴(kuò)展提供了32條可編程的I/O線、包含有與I2C兼容的串行接口、SPI串行接口和標(biāo)準(zhǔn)UART串行接口I/O。30華邦W77系列、W78系列單片機(jī)臺(tái)灣華邦公司(Winbond) W78系列單片機(jī)與AT89C5x系列完全兼容,W77系列為增強(qiáng)型。W77系列對(duì)8051的時(shí)序作了改進(jìn):每個(gè)指令周期只需要4個(gè)時(shí)鐘周期,速度提高了三倍,工作頻率最高可達(dá)40MHz。W77系列增加看門狗WatchDog、兩組UART、兩組DPTR數(shù)據(jù)指針(編寫程序非常便利)、ISP(在系統(tǒng)可編程)等功能。片內(nèi)集成了USB接口,語音處理等功能,具有6組外部中斷源。31PIC系列單片

21、機(jī) 美國Microchip公司的產(chǎn)品。特性如下:性能價(jià)格比高 如:6腳單片機(jī) PIC10F322被認(rèn)為是世界上最小的單片機(jī)。而40只引腳的PIC16C74,其內(nèi)部有4KB 的ROM、192字節(jié)RAM、8路A/D、3個(gè)8位定時(shí)器、2個(gè)CCP模塊、3個(gè)串行口、1個(gè)并行口、11個(gè)中斷源、33個(gè)I/O腳,可以與其他品牌的高檔型號(hào)媲美。31精簡指令集(RISC)。PIC系列8位單片機(jī)數(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倍。優(yōu)越的開發(fā)環(huán)境

22、。PIC推出一款新型號(hào)單片機(jī)的同時(shí)推出相應(yīng)的仿真芯片,所有的開發(fā)系統(tǒng)由 專用的仿真芯片支持,實(shí) 時(shí)性非常好。引腳通過限流電阻可以接 至220V交流電源,可直接 與繼電器控制電路相連, 無須光電耦合器隔離。32AVR系列單片機(jī) 1997年ATMEL公司研發(fā)出RISC高速8位單片機(jī)。特點(diǎn)如下:廢除了機(jī)器周期,拋棄復(fù)雜指令(CISC)計(jì)算機(jī)追求指令完備的做法。采用精簡指令集,以字作為指令長度單位,將操作數(shù)與操作碼安排在一字之中,指令長度固定、指令格式與種類相對(duì)較少、尋址方式也相對(duì)較少,絕大部分指令都為單周期指令。取指周期短,又可預(yù)取指令,實(shí)現(xiàn)流水作業(yè),故可高速執(zhí)行指令。片內(nèi)Flash程序存儲(chǔ)器擦寫可

23、達(dá)10000次以上。片內(nèi)集成有大容量RAM,更有效地支持高級(jí)語言開發(fā)。豐富的片內(nèi)外設(shè):定時(shí)器/計(jì)數(shù)器、看門狗電路、低電壓檢測電路BOD,多個(gè)復(fù)位源(自動(dòng)上下電復(fù)位、外部復(fù)位、看門狗復(fù)位、BOD復(fù)位),可設(shè)置的啟動(dòng)后延時(shí)運(yùn)行程序,增強(qiáng)了單片機(jī)應(yīng)用系統(tǒng)的可靠性。I/O口功能強(qiáng)、驅(qū)動(dòng)能力大。工業(yè)級(jí)產(chǎn)品,具有大電流(最大可達(dá)40mA),驅(qū)動(dòng)能力強(qiáng),可省去功率驅(qū)動(dòng)器件,直接驅(qū)動(dòng)可控硅SSR或繼電器。32低功耗。具有省電功能(Power Down)及休眠功能(Idle)的低功耗的工作方式。一般耗電在12.5 mA,適用于電池供電。支持程序的ISP編程,開發(fā)容易。其中MEGA系列還支持在線應(yīng)用編程(IAP,

24、可在線升級(jí)或銷毀應(yīng)用程序)。如何利用單片機(jī)開發(fā)控制系統(tǒng)階段一:需求分析33需求分析是分析功能、確定參數(shù)要求的過程。如:一個(gè)簡單的單片機(jī)控制發(fā)光二極管的例子,功能確定為單片機(jī)控制一個(gè)發(fā)光二極管點(diǎn)亮500ms,熄滅500ms,再點(diǎn)亮500ms,再熄滅500ms如此反復(fù)。階段二:電路設(shè)計(jì)34左邊陰影框里就是單片機(jī),右邊的是LED。35單片機(jī)程序用匯編語言或C51語言編寫。用匯編或C51語言設(shè)計(jì)好的單片機(jī)程序,將通過一個(gè)連接計(jì)算機(jī)USB口和單片機(jī)下載接口的ISP下載器,下載到單片機(jī)中。下載完成后,單片機(jī)啟動(dòng)時(shí)運(yùn)行下載的程序就可以實(shí)現(xiàn)相應(yīng)的控制功能了。階段三:程序設(shè)計(jì)階段四:系統(tǒng)調(diào)試36 調(diào)試階段,也就

25、是“磨合”軟件和硬件以便它們共同實(shí)現(xiàn)系統(tǒng)功能。當(dāng)程序下載到單片機(jī)系統(tǒng)后,啟動(dòng)單片機(jī)運(yùn)行程序,觀察系統(tǒng)的“反應(yīng)”和預(yù)期設(shè)計(jì)是不是相符。如:發(fā)光二極管以500ms為間隔進(jìn)行閃爍。當(dāng)程序設(shè)計(jì)完成并下載到單片機(jī)之后,可能出現(xiàn)的問題是LED不閃爍或閃爍的時(shí)間間隔不對(duì)。如果出現(xiàn)這些與設(shè)計(jì)不符的實(shí)驗(yàn)效果,首先在保證硬件電路是正確的前提下,回到程序中找錯(cuò)誤,修改后再下載到單片機(jī)系統(tǒng)中。如此反復(fù),直到系統(tǒng)運(yùn)轉(zhuǎn)正常為止。常用MCS-51單片機(jī)開發(fā)工具Keil 51 集成開發(fā)環(huán)境集成開發(fā)環(huán)境,源程序編輯、編譯、鏈接、調(diào)試均在IDE環(huán)境下支持多種處理器支持C和匯編語言支持源程序調(diào)試支持硬件仿真器支持軟件仿真器37Pr

26、oteus仿真軟件特點(diǎn):可以實(shí)現(xiàn)單片機(jī)、接口芯片的電路仿真比MutsimEWB小巧且功能一致,可以實(shí)現(xiàn)多種單片機(jī)(MCS-51、PIC系列、ARM系列)的仿真和程序調(diào)試對(duì)計(jì)算機(jī)硬件要求低38回顧1:計(jì)算機(jī)系統(tǒng)基本概念與常用術(shù)語位(Bit) :位是計(jì)算中構(gòu)成信息的最小單位,表示二進(jìn)制數(shù)中的某個(gè)數(shù)位“0”或“1”字節(jié)(Byte) :1字節(jié)為8位(bit), 1K=210=1024,1KB=1024Byte字(Word) : 1字為16位(bit)指令(Instruction): 指規(guī)定計(jì)算機(jī)完成某種操作的命令。目前計(jì)算機(jī)只能直接識(shí)別由二進(jìn)制編碼的指令,即機(jī)器碼指令系統(tǒng)(Instnction Set

27、):指一臺(tái)計(jì)算機(jī)所能識(shí)別的全部指令的集合程序(Progrom):為完成特定任務(wù)而設(shè)計(jì)的一組指令有序的集合地址(Address):地址指存貯單元的編號(hào)時(shí)序:就是計(jì)算機(jī)在工作過程中,CPU控制器所發(fā)出的一系列控制信號(hào)在時(shí)間上的相互關(guān)系39回顧2: 二進(jìn)制編碼(代碼)一、二進(jìn)制編碼的十進(jìn)制(二十進(jìn)制或BCD碼) 8421 BCD碼有10個(gè)不同的數(shù)字符號(hào),由于它是逢“十”進(jìn)位的,所以,它是十進(jìn)制;同時(shí),它的每一位是用4位二進(jìn)制編碼來表示的。BCD 碼具有二進(jìn)制和十進(jìn)制兩種數(shù)制的某些特征。 BCD碼分為壓縮BCD碼和非壓縮BCD碼壓縮BCD碼的每一位用4位二進(jìn)制表示,00001001表示09,一個(gè)字節(jié)表

28、示兩位十進(jìn)制數(shù) 非壓縮BCD碼用一個(gè)字節(jié)表示一位十進(jìn)制數(shù),高4位總是0000,低4位的00001001表示09 要用BCD碼表示十進(jìn)制數(shù),只要把每個(gè)十進(jìn)制數(shù)用適當(dāng)?shù)亩M(jìn)制4位碼代替即可。例如,十進(jìn)制整數(shù)256用BCD碼表示,則為(0010 0101 0110)BCD40例:將二進(jìn)制數(shù)1011.01轉(zhuǎn)換成相應(yīng)的BCD碼。首先將二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù): 1011.01B(123)(022)(121) (120)(02-1)(12-2) 802100.25 11.25D然后,將十進(jìn)制結(jié)果轉(zhuǎn)換成BCD碼11.25D(0001 0001.0010 0101)BCD41BCD碼十六進(jìn)制書寫形式十進(jìn)制數(shù)84

29、21碼BCD碼十六進(jìn)制書寫形式十進(jìn)制數(shù)8421碼0H00000B10H100001 0000B1H10001B11H110001 0001B2H20010B12H120001 0002B3H30011B13H130001 0003B4H40100B14H140001 0004B5H50101B15H150001 0005B6H60110B7H70111B8H81000B9H91001B二、字母與字符的編碼 字母和各種字符在計(jì)算機(jī)內(nèi)是按特定的規(guī)則用二進(jìn)制編碼表示的。這些編碼有各種不同的方式。 目前在微機(jī)、通訊設(shè)備和儀器儀表中廣泛使用的是ASCII(American Standard Code f

30、or Information Interchange)碼-美國標(biāo)準(zhǔn)信息交換碼。 7位ASCII代碼能表示27128種不同的字符,其中包括數(shù)碼(09),英文大、小寫字母,標(biāo)點(diǎn)和控制的附加字符。 7位ASCII碼是由左3位一組和右4位一組組成的。左表表 示這兩組的安排和號(hào)碼的順序,位6 是最高位,而位0是最低位。要注意 這些組在碼表的行、列中的排列情 況。4位一組表示行,3位一組表示列。4243 ASCII碼(美國標(biāo)準(zhǔn)信息交換代碼)44數(shù)字09的編碼是01100000111001,它們的高3位均是011,后4位正好與其對(duì)應(yīng)的二進(jìn)制代碼(BCD碼)相符英文字母AZ的ASCII碼從1000001(41

31、H)開始順序遞增,字母az的ASCII碼從1100001(61H)開始順序遞增,這樣的排列對(duì)信息檢索十分有利 ASCII碼45漢字編碼 漢字編碼包括輸入編碼、內(nèi)碼和字模編碼,分別用于輸入、內(nèi)部處理和輸出。漢字的輸入編碼是為了使用西文標(biāo)準(zhǔn)鍵盤把漢字輸入到計(jì)算機(jī)中,其編碼方法主要有數(shù)字編碼、拼音碼和字形編碼三類。漢字內(nèi)碼是用于漢字信息的存儲(chǔ)、交換、檢索等操作的機(jī)內(nèi)代碼,它采用兩個(gè)字節(jié)的二進(jìn)制形式表示一個(gè)漢字。為與英文字符區(qū)別,漢字機(jī)內(nèi)代碼中兩個(gè)字節(jié)的最高位均規(guī)定為l1980年,我國頒布了信息交換用漢字編碼字符集(GB 2312-1980)標(biāo)準(zhǔn),1995年又頒布了漢字編碼擴(kuò)展規(guī)范(GBK),擴(kuò)充了G

32、B2312-1980的內(nèi)容,同時(shí)在字匯一級(jí)支持ISO/IEC10646-1和GB 13000-1的全部中、日、韓(CJK)漢字例:漢(BABA)字(D6D7)編(E0B1)碼(EBC2)46 漢字字型編碼是用來描述漢字字形的代碼,它是漢字的輸出形式。漢字庫有點(diǎn)陣字庫、TrueType字庫、矢量字庫等類型。漢字編碼帶符號(hào)數(shù)的表示法 一、機(jī)器數(shù)與真值 在計(jì)算機(jī)中,為了區(qū)別正數(shù)或負(fù)數(shù),是將數(shù)學(xué)上的“”“”符號(hào)數(shù)字化,規(guī)定1個(gè)字節(jié)中的D7位為符號(hào)位,D0D6位為數(shù)字位。在符號(hào)位中,用“0”表示正,“1”表示負(fù),而數(shù)字位表示該數(shù)的數(shù)值部分。例如: 0101101191D 1101101191D 1個(gè)數(shù)的

33、數(shù)值和符號(hào)全都數(shù)碼化了。我們把1個(gè)數(shù)(包括符號(hào)位)在機(jī)器中的一組二進(jìn)制數(shù)表示形式,稱為“機(jī)器數(shù)”,而把它所表示的值稱為機(jī)器數(shù)的“真值”。 47二、機(jī)器數(shù)的種類和表示方法 在機(jī)器中表示帶符號(hào)的數(shù)有3種表示方法:原碼、反碼和補(bǔ)碼。48(一)原碼所謂數(shù)的原碼表示,即符號(hào)位用0表示正數(shù),而用1表示負(fù)數(shù),其余數(shù)字位表示數(shù)值本身。對(duì)于0,可以認(rèn)為它是(0),也可以認(rèn)為它是(0)。 0原0 0 0 0 0 0 0 0 0原1 0 0 0 0 0 0 0對(duì)于負(fù)數(shù) 105 原 1 1 1 0 1 0 0 1符號(hào)位 數(shù)值本身 對(duì)于正數(shù) 105 原 0 1 1 0 1 0 0 1符號(hào)位 數(shù)值本身 (二)反碼 正數(shù)的

34、反碼表示與其原碼相同,即符號(hào)位用“0”表示正,數(shù)字位為數(shù)值本身。49 負(fù)數(shù)的反碼是將它的正數(shù)按位(包括符號(hào)位在內(nèi))取反而形成的。 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 符號(hào)位 數(shù)值本身 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 符號(hào)位 數(shù)字位50行數(shù)二進(jìn)制數(shù)碼(機(jī)器數(shù))對(duì)應(yīng)的十進(jìn)制數(shù)(真值)無符號(hào)數(shù)帶符號(hào)數(shù)(原碼)反碼補(bǔ)碼122.1261271280000

35、00000000000100000010.011111010111111001111111012.125126127012.125126127012.1251261270,012.125126127129130131.253254255256100000001000000110000010.11111100111111011111111011111111128129130.252253254255012.124125126127127126125.3210128127126.43218位二進(jìn)制數(shù)的反碼特點(diǎn):(1)“0”的反碼有兩種表示法:00000000表示0, 11111111表示0。(2)

36、8位二進(jìn)制反碼能表示的數(shù)值范圍為127D127D。(3)當(dāng)一個(gè)帶符號(hào)數(shù)用反碼表示時(shí),最高位為符號(hào)位。若 符號(hào)位為0(即正數(shù))時(shí),后面的7位為數(shù)值部分;若 符號(hào)位為1(即負(fù)數(shù))時(shí),一定要注意后面7位表示的 并不是此負(fù)數(shù)的數(shù)值,而必須把它們按位取反以后, 才得到表示這7位的二進(jìn)制數(shù)值。 例:一個(gè)8位二進(jìn)制反碼表示的數(shù)10010100B。它是一個(gè)負(fù)數(shù);但它并不等于20D,而應(yīng)先將其數(shù)字位按位取反,然后才能得出此二進(jìn)制數(shù)反碼所表示的真值: 1101011(1261251231211) (643283) 107D51521. 正數(shù)的補(bǔ)碼正數(shù)的補(bǔ)碼與其原碼相同,即符號(hào)位用“0”表正,其余數(shù)字位表示數(shù)值本身

37、。 4補(bǔ) 0 0000100 31補(bǔ) 0 0011111 +127補(bǔ) 0 1111111 符號(hào)位 數(shù)值本身2. 負(fù)數(shù)的補(bǔ)碼負(fù)數(shù)的補(bǔ)碼表示為它的反碼加1(即在其低位加1)。 4補(bǔ) 1 1111100 31補(bǔ) 1 1100001 127補(bǔ) 1 0000001 符號(hào)位 數(shù)字位(三)補(bǔ)碼微機(jī)中都是采用補(bǔ)碼表示法,因?yàn)橛醚a(bǔ)碼法以后,同一加法電路既可以用于有符號(hào)數(shù)相加,也可以用于無符號(hào)數(shù)相加,而且減法可用加法來代替。8位二進(jìn)制數(shù)補(bǔ)碼有如下特點(diǎn):(1)0補(bǔ)0補(bǔ)00000000(2)8位二進(jìn)制補(bǔ)碼所能表示的數(shù)值為127128。(3)當(dāng)1個(gè)帶符號(hào)數(shù)用8位二進(jìn)制補(bǔ)碼表示時(shí),最高位為符 號(hào)位。若符號(hào)位為“0 ”(即

38、正數(shù))時(shí),其余位即為 此數(shù)的數(shù)值本身;但當(dāng)符號(hào)位為“1”(即負(fù)數(shù))時(shí),一 定要注意其余位不是此數(shù)的數(shù)值,而必須將它們按 位取反,且在最低位加1,才得到它的數(shù)值。例:一個(gè)補(bǔ)碼表示的數(shù) 補(bǔ)10011011B 是一個(gè)負(fù)數(shù),但并不等于27D,它的數(shù)值為:將數(shù)字位0011011按位取反得到1100100,然后再加1,即為1100101。53=1100101 (126125122120 (643241) 101D故54 假設(shè)只有4位二進(jìn)制數(shù)來表示整數(shù),二進(jìn)制從0000到1111共能表示24=16個(gè)整數(shù),把它們放到一個(gè)有16個(gè)刻度的表盤上只表示正整數(shù)時(shí)原碼表示正負(fù)數(shù)時(shí)反碼表示正負(fù)數(shù)時(shí)補(bǔ)碼表示正負(fù)數(shù)時(shí)同模求余

39、從位模式 1100 走到位模式 1001, 可以走兩條路,逆時(shí)針走3格, 或者順時(shí)針走13格一圖讀懂原碼/反碼/補(bǔ)碼三、補(bǔ)碼的加減法運(yùn)算 補(bǔ)碼的加減運(yùn)算是帶符號(hào)數(shù)加減法運(yùn)算的一種。其運(yùn)算特點(diǎn)是:符號(hào)位與數(shù)字位一起參加運(yùn)算,并且自動(dòng)獲得結(jié)果(包括符號(hào)位與數(shù)字位)。55加法時(shí),兩數(shù)補(bǔ)碼的和等于兩數(shù)和的補(bǔ)碼。減法時(shí),兩數(shù)補(bǔ)碼的差等于兩數(shù)差的補(bǔ)碼。例:已知1000000,0001000,求兩數(shù)的補(bǔ)碼之和。根據(jù)補(bǔ)碼加法:補(bǔ)01000000,補(bǔ)00001000 和數(shù)為正,其補(bǔ)碼等于該數(shù)原碼,即 補(bǔ)原 = 01001000其真值為72;又因64(8)72,兩者一致則 補(bǔ)01000000 64 )補(bǔ)00001

40、000 ) 8 補(bǔ)補(bǔ)01001000 72所以 補(bǔ)01001000 (mod 28) 四、溢出及其判斷方法(一)什么叫溢出 所謂溢出是指帶符號(hào)數(shù)的補(bǔ)碼運(yùn)算溢出。例如:字長為n位的帶符號(hào)數(shù),用最高位表示符號(hào),其余n-1位用來表示數(shù)值。它能表示的補(bǔ)碼運(yùn)算的范圍為-2n-1+2n-1-1。如果運(yùn)算結(jié)果超出此范圍,就叫補(bǔ)碼溢出,簡稱溢出。在溢出時(shí),將造成運(yùn)算錯(cuò)誤。(二)判斷溢出的方法 判斷溢出的方法較多,例如以上兩例根據(jù)參加運(yùn)算的兩個(gè)數(shù)的符號(hào)及運(yùn)算結(jié)果的符號(hào)可以判斷溢出;此外,利用雙進(jìn)位的狀態(tài)也是常用的一種判斷方法。這種方法是利用符號(hào)位相加和數(shù)值部分的最高位相加的進(jìn)位狀態(tài)來判斷。即利用 V= D7C

41、D6C 判別式來判斷。當(dāng)D7C與D6C“異或”結(jié)果為1,即V1,表示有溢出,當(dāng)“異或”結(jié)果為0,即0,表示無溢出.56(三)溢出與進(jìn)位 進(jìn)位是指運(yùn)算結(jié)果的最高位向更高位的進(jìn)位。如有進(jìn)位,則Cy=1;無進(jìn)位,則Cy=0 。當(dāng)Cy=1 ,即D7C=1時(shí),若D6C=1,則V=D7C D6C=0, 表示無溢出;若D6C=0,則V=D7C D6C=1,表示有溢出。當(dāng)Cy= 0,即D7C=0時(shí),若D6C1,則V=D7C D6C= 1,表示有溢出;若D6C=0,則V=D7C D6C=0,表示無溢出??梢姡M(jìn)位與溢出是兩個(gè)不同性質(zhì)的概念,不能混淆。 57注兩個(gè)有符號(hào)數(shù)+/-運(yùn)算時(shí)可能會(huì)溢出的情況:運(yùn)算情況可能

42、溢出否運(yùn)算情況可能溢出否正數(shù)+正數(shù)(如7FH+7FH)正數(shù)-正數(shù)正數(shù)+負(fù)數(shù)正數(shù)-負(fù)數(shù)(如7FH-81H)負(fù)數(shù)+正數(shù)負(fù)數(shù)-正數(shù)(如81H-7FH)負(fù)數(shù)+負(fù)數(shù)(如81H+81H)負(fù)數(shù)-負(fù)數(shù)58第2章 AT89S52單片機(jī) 硬件結(jié)構(gòu)59第2章 AT89S52單片機(jī)的片內(nèi)硬件結(jié)構(gòu) 單片機(jī)的結(jié)構(gòu)特點(diǎn)AT89S52單片機(jī)的硬件組成AT89S52的引腳功能AT89S52的CPUAT89S52的存儲(chǔ)器結(jié)構(gòu)AT89S52的并行I/O端口時(shí)鐘電路與時(shí)序復(fù)位操作和復(fù)位電路AT89S52單片機(jī)的最小應(yīng)用系統(tǒng)看門狗定時(shí)器(WDT)功能簡介低功耗節(jié)電模式59普林斯頓結(jié)構(gòu) 哈佛結(jié)構(gòu)單片機(jī)的結(jié)構(gòu)特點(diǎn)普林斯頓結(jié)構(gòu) 一種是在通用

43、微型計(jì)算機(jī)中廣泛采用的將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合用一個(gè)存儲(chǔ)空間的結(jié)構(gòu),稱為普林斯頓(Princeton)結(jié)構(gòu)或稱馮諾依曼結(jié)構(gòu),如Intel的MCS-96、8086系列。哈佛結(jié)構(gòu) 另一種是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開,分別尋址的結(jié)構(gòu),稱為哈佛(Harvard)結(jié)構(gòu)。Intel公司的MCS-51和80C51系列單片機(jī)采用的是哈佛結(jié)構(gòu)。目前的單片機(jī)以采用程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開的結(jié)構(gòu)較多。60單片機(jī)CPU的特點(diǎn) 單片機(jī)的中央處理器(CPU)和通用微處理器基本相同,只是增設(shè)了“面向控制”的處理功能。例如:位處理、查表、多種跳轉(zhuǎn)、乘除法運(yùn)算、狀態(tài)檢測、中斷處理功能等,增強(qiáng)了控制的實(shí)用性和靈活性。6

44、162AT89S52單片機(jī)的硬件組成基本結(jié)構(gòu)依舊是CPU 加上外圍芯片的傳統(tǒng)馮 諾依曼微機(jī)結(jié)構(gòu),片內(nèi)各功能部件通過片內(nèi)單一總線連接而成。62CPU對(duì)各種功能部件的控制是采用特殊功能寄存器(SFR,Special Function Register)的集中控制方式。內(nèi)各功能部件:(1)CPU(微處理器) 8位的CPU,與通用CPU基本相同,同樣包括了運(yùn)算器和控制器兩大部分,還有面向控制的位處理功能。6363(2)數(shù)據(jù)存儲(chǔ)器(RAM)片內(nèi)256B,片外最多可擴(kuò)64KB。(3)程序存儲(chǔ)器(Flash ROM) 用來存儲(chǔ)程序。AT89S52 片內(nèi)有8KB的Flash存儲(chǔ)器。如果不夠,片外最多可外擴(kuò)至6

45、4KB程序存儲(chǔ)器(片內(nèi)+片外)。 (4)定時(shí)器/計(jì)數(shù)器片內(nèi)有3個(gè)16位的定時(shí)器/計(jì)數(shù)器,具有4種工作方式。 (5)中斷系統(tǒng)具有6個(gè)中斷源,2級(jí)中斷優(yōu)先權(quán)。(6)串行口 1個(gè)全雙工的異步串行口,4種工作方式。(7)P0口、P1口、P2口和P3口 4個(gè)8位并行I/O口。(8)特殊功能寄存器(SFR)共32個(gè)SFR,位于片內(nèi)RAM區(qū)80HFFH的地址區(qū)間內(nèi),用于CPU對(duì)片內(nèi)各外設(shè)部件進(jìn)行管理、控制和監(jiān)視。(9)1個(gè)看門狗定時(shí)器WDT當(dāng)單片機(jī)由于干擾而使程序陷入死循環(huán)或跑飛狀態(tài)時(shí),可引起單片機(jī)復(fù)位,使程序恢復(fù)正常運(yùn)行。6464AT89S52的引腳功能 AT89S52單片機(jī)多采用40引腳的DIP封裝(雙

46、列直插),以及44引腳的PLCC和TQFP封裝方式65引腳圖DIP-40封裝 PLCC44封裝TQFP44封裝65引腳按其功能可分為如下3類:(1)電源及時(shí)鐘引腳VCC、VSS;XTAL1、XTAL2。(2)控制引腳 PSEN*、ALE/PROG*、EA* /VPP、RST(3)I/O口引腳P0、P1、P2、P3,為4個(gè)8位I/O口電源及時(shí)鐘引腳1電源引腳(1)VCC(40腳):+5V電源。(2)VSS(20腳):數(shù)字地。2時(shí)鐘引腳 (1)XTAL1(19腳):片內(nèi)振蕩器反相放大器和時(shí)鐘發(fā)生器電路輸入端。(2)XTAL2(18腳):片內(nèi)振蕩器反相放大器的輸出端。66控制引腳(1)RST (RE

47、SET,9腳) 復(fù)位信號(hào)輸入,在引腳加上持續(xù)時(shí)間大于2個(gè)機(jī)器周期的高電平,可使單片機(jī)復(fù)位。正常工作,此腳電平應(yīng) 0.5V。當(dāng)看門狗定時(shí)器溢出輸出時(shí),該腳將輸出96個(gè)時(shí)鐘振蕩周期的高電平。(2) EA*/VPP (Enable Addr./Volt. Pulse of Prog.,31腳) EA*:引腳第一功能:外部程序存儲(chǔ)器訪問允許控制端。 EA*=1,在PC值不超出1FFFH(即不超出片內(nèi)8KB Flash存儲(chǔ)器的地址范圍)時(shí),單片機(jī)讀片內(nèi)程序存儲(chǔ)器(8KB)中的程序,PC值超出1FFFH 時(shí),將自動(dòng)轉(zhuǎn)向讀取片外(2000H-FFFFH)程序存儲(chǔ)器空間中的程序。67 EA*=0,只讀取外部的

48、程序存儲(chǔ)器中的內(nèi)容,讀取的地址范圍為0000HFFFFH,片內(nèi)Flash 程序存儲(chǔ)器不起作用。 VPP:引腳第二功能,對(duì)片內(nèi)Flash編程,接編程電壓。67(3)ALE/PROG*(Addr. Latch Enable/PROGram.,30腳) ALE為地址鎖存控制信號(hào)端,為第一功能。由于引腳數(shù)目有限,P0口是作為低8位地址總線與8位數(shù)據(jù)總線分時(shí)復(fù)用的。6868注鎖存器是什么神器? 74HC373包含8個(gè)具有三態(tài)輸出的D 型透明鎖存器。當(dāng)LE為高時(shí),數(shù)據(jù)從Dn輸入到鎖存器,在此條件下,鎖存器進(jìn)入透明模式,也就是說,鎖存器的輸出狀態(tài)將會(huì)隨著對(duì)應(yīng)的D輸入每次的變化而改變。當(dāng)LE為低時(shí),鎖存器將存

49、儲(chǔ)D輸入上的信息一段就緒時(shí)間,直到LE的下降沿來臨。74HC37369單片機(jī)正常運(yùn)行時(shí),ALE端一直有正脈沖信號(hào)輸出,此頻率為時(shí)鐘頻率fosc的1/6??捎米魍獠慷〞r(shí)或觸發(fā)信號(hào)。注 每當(dāng)AT89S52訪問外部RAM時(shí)(執(zhí)行MOVX類指令),要丟失一個(gè)ALE脈沖。如不需要ALE端輸出脈沖信號(hào),可將特殊功能寄存器AUXR(地址為8EH)的第0位(ALE禁止位)置1,來禁止ALE操作,但執(zhí)行訪問外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器指令“MOVC”或“MOVX”時(shí),ALE仍然有效。即ALE禁止位不影響對(duì)外部存儲(chǔ)器的訪問。PROG*:引腳第二功能,對(duì)片內(nèi)Flash編程,編程脈沖輸入腳。70(4)PSEN*(P

50、rogram Strobe ENable,29腳) 片外程序存儲(chǔ)器讀選通信號(hào),低電平有效。70并行I/O口引腳(1)P0口:P0.7P0.0引腳 為漏極開路的8位并行雙向I/O口。作為輸出口時(shí),每個(gè)引腳可驅(qū)動(dòng)8個(gè)LS型TTL負(fù)載。當(dāng)AT89S52擴(kuò)展外部存儲(chǔ)器及I/O接口芯片時(shí),P0口為分時(shí)復(fù)用的低8位地址/數(shù)據(jù)總線。在向P0口寫入“1”后就成為高阻態(tài)的輸入口。當(dāng)P0口作為通用I/O口使用時(shí),需外加上拉電阻成準(zhǔn)雙向口。在對(duì)Flash程序存儲(chǔ)器編程時(shí),P0口接收字節(jié)代碼,程序校驗(yàn)時(shí)P0口輸出字節(jié)代碼,程序校驗(yàn)期間應(yīng)外接上拉電阻。7171(2)P1口:P1.7P1.0引腳 準(zhǔn)雙向I/O口,具有內(nèi)部

51、上拉電阻,可驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。在對(duì)片內(nèi)Flash編程和校驗(yàn)時(shí)定義為低8位地址線。P1口某些引腳的第二功能如下:P1.0/T2:T2腳為定時(shí)器T2的外部計(jì)數(shù)信號(hào)輸入端T2P1.1/T2EX:T2EX為T2的捕捉/重新裝載觸發(fā)及方向控制T2EXP1.5/MOSI:MOSI用于對(duì)片內(nèi)Flash存儲(chǔ)器串行編程和校驗(yàn)P1.6/MISO:MISO用于對(duì)片內(nèi)Flash存儲(chǔ)器串行編程和校驗(yàn)P1.7/SCK:SCK用于對(duì)片內(nèi)Flash存儲(chǔ)器的串行編程和校驗(yàn)的移位脈沖輸入引腳72(3)P2口:P2.7P2.0引腳準(zhǔn)雙向I/O口,引腳內(nèi)部接有上拉電阻,可驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。當(dāng)AT89S52訪問外部存儲(chǔ)器及

52、I/O口時(shí),P2口作為高8位地址總線使用,輸出高8位地址。當(dāng)P2口不作為高8位地址總線時(shí),可作為通用的I/O口使用。73(4)P3口:P3.7P3.0 準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。P3口的第一功能是作為通用的I/O口使用,可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P3口還可提供第二功能。74綜上所述:P0口可作為總線口,為雙向口。P0口作為通用的I/O口使用時(shí),為準(zhǔn)雙向口,這時(shí)需加上拉電阻。P1口、P2口、P3口均為準(zhǔn)雙向口。74注準(zhǔn)雙向口與雙向口的差別準(zhǔn)雙向口僅有兩個(gè)狀態(tài)(少了高阻的“懸浮” 狀態(tài))。而P0口作為總線使用,口線內(nèi)無上拉電阻,處于高阻“懸浮”態(tài)。(思考)為什么P0口要有高阻“懸浮”態(tài)?

53、另外,準(zhǔn)雙向口作通用I/O的輸入口使用時(shí),一定要向該口先寫入“1”。7575AT89S52的CPUCPU由運(yùn)算器和控制器構(gòu)成。 運(yùn)算器對(duì)操作數(shù)進(jìn)行算術(shù)、邏輯和位操作運(yùn)算。主要包括算術(shù)邏輯運(yùn)算單元ALU累加器A位處理器程序狀態(tài)字寄存器PSW兩個(gè)暫存器等1算術(shù)邏輯運(yùn)算單元ALU可對(duì)8位變量邏輯運(yùn)算(與、或、異或、循環(huán)、求補(bǔ)和清零),還可算術(shù)運(yùn)算(加、減、乘、除)ALU還有位操作功能,對(duì)位變量進(jìn)行位處理,如置“1”、清“0”、求補(bǔ)、測試轉(zhuǎn)移及邏輯“與”、“或”等。76762累加器A使用最頻繁的寄存器,也寫為Acc。作用如下:ALU單元輸入數(shù)據(jù)源之一和運(yùn)算結(jié)果存放單元。數(shù)據(jù)傳送大多都通過累加器A進(jìn)行。

54、A的進(jìn)位標(biāo)志Cy是特殊的,因?yàn)樗瑫r(shí)又是位處理機(jī)的位累加器77773程序狀態(tài)字寄存器PSW(Program Status Word) PSW位于片內(nèi)特殊功能寄存器區(qū),字節(jié)地址為D0H。包含了程序運(yùn)行狀態(tài)的信息,其中4位保存當(dāng)前指令執(zhí)行后的狀態(tài),供程序查詢和判斷。PSW的格式PSW中各個(gè)位的功能(1)Cy(PSW.7)進(jìn)位標(biāo)志位,或?qū)懗蒀在算術(shù)和邏輯運(yùn)算時(shí),若有進(jìn)位/借位,Cy1;否則,Cy0。在位處理器中,它是位累加器。(2)Ac(PSW.6)輔助進(jìn)位標(biāo)志位 在BCD碼運(yùn)算時(shí),用作十進(jìn)位調(diào)整。當(dāng)D3位向D4位產(chǎn)生進(jìn)位或借位時(shí),Ac1;否則,Ac0。(3)F0(PSW.5)用戶設(shè)定標(biāo)志位 由用戶

55、使用的一個(gè)狀態(tài)標(biāo)志位,可用指令來使它置1或清0,控制程序的流向。 (4)RS1、RS0(PSW.4、PSW.3)4組工作寄存器區(qū)選擇7878(5)OV(PSW.2)溢出標(biāo)志位 當(dāng)執(zhí)行算術(shù)指令時(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”的個(gè)數(shù)是奇數(shù)還是偶數(shù)。 P=1,表示A中“1”的個(gè)數(shù)為奇數(shù)。 P=0,表示A中“1”的個(gè)數(shù)為偶數(shù)。 此標(biāo)志位對(duì)串行通信有重要的意義,常用奇偶檢驗(yàn)的方法來檢驗(yàn)數(shù)據(jù)串行傳輸?shù)目煽啃浴?97980控制器 任務(wù)識(shí)別指令,并根據(jù)指令的性質(zhì)控制單片機(jī)各功能

56、部件,從而保證單片機(jī)各部分能自動(dòng)協(xié)調(diào)地工作。 控制器功能是控制指令的讀入、譯碼和執(zhí)行,從而對(duì)各功能部件進(jìn)行定時(shí)和邏輯控制,具體包括:程序計(jì)數(shù)器指令寄存器指令譯碼器定時(shí)及控制邏輯電路等。程序計(jì)數(shù)器PC是一個(gè)獨(dú)立的 16位計(jì)數(shù)器,不可訪問。復(fù)位 時(shí)內(nèi)容為0000H,從程序存儲(chǔ) 器0000H單元取指令開始執(zhí)行。PC工作過程:CPU讀指令時(shí), PC的內(nèi)容作為所取指令地址, 程序存儲(chǔ)器按此地址輸出指令字節(jié),同時(shí)PC自動(dòng)加1。PC中內(nèi)容變化決定程序流程。當(dāng)順序執(zhí)行程序時(shí)自動(dòng)加1;執(zhí)行轉(zhuǎn)移程序或子程序、中斷子程序調(diào)用時(shí),自動(dòng)更改成所要轉(zhuǎn)移的目的地址。PC的計(jì)數(shù)寬度決定了程序存儲(chǔ)器的地址范圍( 64KB =2

57、16B )。80AT89S52存儲(chǔ)器的結(jié)構(gòu)存儲(chǔ)器空間可分為4類。8181.程序存儲(chǔ)器空間 分為片內(nèi)和片外兩部分。片內(nèi)4KB Flash ,編程和擦除完全是電氣實(shí)現(xiàn)。可用通用編程器對(duì)其編程,也可在線編程。當(dāng)片內(nèi)4KB Flash 存儲(chǔ)器不夠用時(shí),可片外擴(kuò)展,最多可擴(kuò)展至64KB程序存儲(chǔ)器。.數(shù)據(jù)存儲(chǔ)器空間也分為片內(nèi)與片外兩部分。片內(nèi)有256B RAM。片內(nèi)RAM 不夠用時(shí),在片外可擴(kuò)展至64KB RAM 。.特殊功能寄存器SFR (Special Function Register) 片內(nèi)各功能部件的控制寄存器及狀態(tài)寄存器。綜合反映了整個(gè)單片機(jī)基本系統(tǒng)內(nèi)部實(shí)際的工作狀態(tài)及工作方式。.位地址空間

58、共有219個(gè)可尋址位,構(gòu)成了位地址空間。位于片RAM區(qū)字節(jié)地址20H2FH(共128位)和特殊功能寄存器區(qū)(片內(nèi)RAM區(qū)字節(jié)地址80HFFH區(qū)間內(nèi),共定義了91個(gè)可尋址位)。程序存儲(chǔ)器空間 存放程序和表格之類的固定常數(shù)。片內(nèi)為8KB的 Flash ,地址為0000H1FFFH。16位地址線,可外擴(kuò)的程序存儲(chǔ)器空間最大為64KB,地址為0000HFFFFH。8282(1)分為片內(nèi)和片外兩部分,訪問片內(nèi)的還是片外的程序存儲(chǔ)器,由EA*引腳電平確定。(2)程序存儲(chǔ)器有若干固定單元用于各中斷源中斷服務(wù)程序入口, 其中有6個(gè)分別對(duì)應(yīng)于5個(gè)中斷源的中斷入口地址。數(shù)據(jù)存儲(chǔ)器空間 片內(nèi)與片外兩部分。1. 片內(nèi)

59、數(shù)據(jù)存儲(chǔ)器 AT89S52的片內(nèi)RAM共有256個(gè)單元,地址為00HFFH。地址為80HFFH為SFR區(qū),與片內(nèi)高128B RAM單元統(tǒng)一編址,但屬于另一專用空間區(qū)域00H1FH 的32個(gè)單元是4組通用工作寄存器區(qū),每區(qū)包含8B,為R7R0。可通過指令改變RS1、RS0兩位來選擇。20H2FH的16個(gè)單元的128位可位尋址,也可字節(jié)尋址。30HFFH的單元只能字節(jié)尋址,用作存數(shù)據(jù)以及作為堆棧區(qū)。對(duì)地址為80HFFH的RAM區(qū),只能采用間接尋址方式訪問,而對(duì)地址為80HFFH的特殊功能寄存器區(qū)訪問只能采用直接尋址方式。對(duì)于低128B(地址00H7FH)RAM區(qū),即可采用直接尋址方式也可采用間接尋

60、址方式來訪問。8383片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM的結(jié)構(gòu).片外數(shù)據(jù)存儲(chǔ)器 當(dāng)片內(nèi)256B的RAM不夠用時(shí),最多可外擴(kuò)64KB的RAM。片內(nèi)RAM與片外RAM兩個(gè)空間是相互獨(dú)立的片內(nèi)RAM與片外RAM的低256B的地址是相同的,但由于使用的是不同的訪問指令,所以不會(huì)發(fā)生沖突。84特殊功能寄存器(SFR) SFR映射在片內(nèi)RAM的 80HFFH 區(qū)域中,共32個(gè)。8585特殊功能寄存器(SFR) SFR寄存器有些可位尋址(字節(jié)地址末位只能是0H或8H)堆棧指針SP 堆棧只能設(shè)在片內(nèi)RAM區(qū),SP指示堆頂?shù)奈恢?。堆棧結(jié)構(gòu)向上生長型。單片機(jī)復(fù)位后,SP為07H,使得堆棧實(shí)際上從08H單元開始。 堆棧是為子程序

溫馨提示

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

評(píng)論

0/150

提交評(píng)論