《單片機(jī)原理與應(yīng)用》(金龍國(guó))電子教案-3145_第1頁
《單片機(jī)原理與應(yīng)用》(金龍國(guó))電子教案-3145_第2頁
《單片機(jī)原理與應(yīng)用》(金龍國(guó))電子教案-3145_第3頁
《單片機(jī)原理與應(yīng)用》(金龍國(guó))電子教案-3145_第4頁
《單片機(jī)原理與應(yīng)用》(金龍國(guó))電子教案-3145_第5頁
已閱讀5頁,還剩132頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、21世紀(jì)高職高專規(guī)劃教材世紀(jì)高職高專規(guī)劃教材單片機(jī)原理與應(yīng)用單片機(jī)原理與應(yīng)用電子教案電子教案 制制 作:作:金龍國(guó)金龍國(guó) 陳萌陳萌中國(guó)水利水電出版社中國(guó)水利水電出版社第1章單片機(jī)概述第2章MCS-51系列單片機(jī)結(jié)構(gòu)第3章MSC-51指令系統(tǒng)第6章存儲(chǔ)器與存儲(chǔ)器擴(kuò)展第4章MCS-51匯編語言程序設(shè)計(jì)第7章單片機(jī)接口技術(shù)第5章MCS-51定時(shí)/計(jì)數(shù)器和中斷系統(tǒng)第9章MCS-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用第8章串行口通信技術(shù)第1章單片機(jī)概述n本章主要介紹單片機(jī)的發(fā)展,基本的結(jié)構(gòu)和特點(diǎn),單片機(jī)的應(yīng)用模式和領(lǐng)域,單片機(jī)的供應(yīng)狀態(tài)等。n單片微型計(jì)算機(jī)就是將CPU、RAM、ROM、定

2、時(shí)/計(jì)數(shù)器和多種接口都集成到一塊集成電路芯片上的微型計(jì)算機(jī)。因此,一塊芯片就構(gòu)成了一臺(tái)計(jì)算機(jī)。它已成為工業(yè)控制領(lǐng)域、智能儀器儀表、尖端武器、日常生活中最廣泛使用的計(jì)算機(jī)。11 單片機(jī)的發(fā)展歷史單片機(jī)的發(fā)展歷史n我們可以把單片機(jī)的發(fā)展歷史劃分為四階段:n第一階段(19761978年):低性能單片機(jī)的探索階段。以Intel公司的MCS-48為代表,采用了單片結(jié)構(gòu),即在一塊芯片內(nèi)含有8位CPU、定時(shí)/計(jì)數(shù)器、并行I/O口、RAM和ROM等。主要用于工業(yè)領(lǐng)域。n第二階段(19781982年):高性能單片機(jī)階段,這一類單片機(jī)帶有串行I/O口,8位數(shù)據(jù)線、16位地址線可以尋址的范圍達(dá)到64K字節(jié)、控制總線

3、、較豐富的指令系統(tǒng)等。這類單片機(jī)的應(yīng)用范圍較廣,并在不斷的改進(jìn)和發(fā)展。n第三階段(19821990年):16位單片機(jī)階段。16位單片機(jī)除CPU為16位外,片內(nèi)RAM和ROM容量進(jìn)一步增大,實(shí)時(shí)處理能力更強(qiáng),體現(xiàn)了微控制器的特征。例如Intel公司的MCS-96主振頻率為12M,片內(nèi)RAM為232字節(jié),ROM為8K字節(jié),中斷處理能力為8級(jí),片內(nèi)帶有10位A/D轉(zhuǎn)換器和高速輸入/輸出部件等。n第四階段(1990年):微控制器的全面發(fā)展階段,各公司的產(chǎn)品在盡量兼容的同時(shí),向高速、強(qiáng)運(yùn)算能力、尋址范圍大以及小型廉價(jià)方面發(fā)展。n硬件系統(tǒng)是指構(gòu)成微機(jī)系統(tǒng)的實(shí)體和裝置,通常由運(yùn)算器、控制器、存儲(chǔ)器、輸入接口

4、電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。n其中,運(yùn)算器和控制器一般做在一個(gè)集成芯片上,統(tǒng)稱中央處理單元(CentralProcessingUnit),簡(jiǎn)稱CPU,是微機(jī)的核心部件。CPU配上存放程序和數(shù)據(jù)的存儲(chǔ)器、輸入/輸出(Input/Output,簡(jiǎn)稱I/O)接口電路以及外部設(shè)備即構(gòu)成微機(jī)的硬件系統(tǒng)。12 單片機(jī)的軟硬件系統(tǒng)單片機(jī)的軟硬件系統(tǒng)1.2.1 單片機(jī)的硬件系統(tǒng)單片機(jī)的硬件系統(tǒng)圖圖1-1 微型計(jì)算機(jī)微型計(jì)算機(jī)硬件硬件系統(tǒng)組成示意圖系統(tǒng)組成示意圖軟件系統(tǒng)硬件系統(tǒng)控 制 器運(yùn) 算 器存 儲(chǔ) 器輸入設(shè)備CPU微型計(jì)算機(jī)系統(tǒng)輸入接口電路輸出接口電路輸出設(shè)備n下面把組成計(jì)算機(jī)的5個(gè)基本

5、部件作簡(jiǎn)單說明。n1)運(yùn)算器n運(yùn)算器是計(jì)算機(jī)的運(yùn)算部件,用于實(shí)現(xiàn)算術(shù)和邏輯運(yùn)算。計(jì)算機(jī)的數(shù)據(jù)運(yùn)算和處理都在這里進(jìn)行。n2)控制器n控制器是計(jì)算機(jī)的指揮控制部件,它控制計(jì)算機(jī)各部分自動(dòng)、協(xié)調(diào)地工作。運(yùn)算器和控制器是計(jì)算機(jī)的核心部分,常把它們合在一起稱之為中央處理器,簡(jiǎn)稱CPU。n3)存儲(chǔ)器n存儲(chǔ)器是計(jì)算機(jī)的記憶部件,用于存放程序和數(shù)據(jù)。存儲(chǔ)器又分為內(nèi)存儲(chǔ)器和外存儲(chǔ)器。實(shí)訓(xùn)中使用的EPROM2764便是存貯器。n4)輸入設(shè)備n輸入設(shè)備用于將程序和數(shù)據(jù)輸入到計(jì)算機(jī)中,如鍵盤等。n5)輸出設(shè)備n輸出設(shè)備用于把計(jì)算機(jī)數(shù)據(jù)計(jì)算或加工的結(jié)果,以用戶需要的形式顯示或打印出來,如顯示器、打印機(jī)等。n通常把外存儲(chǔ)

6、器、輸入設(shè)備和輸出設(shè)備合在一起稱之為計(jì)算機(jī)的外部設(shè)備,簡(jiǎn)稱“外設(shè)”。n單片微型計(jì)算機(jī)是指集成在一個(gè)芯片上的微型計(jì)算機(jī),也就是把組成微型計(jì)算機(jī)的各種功能部件,包括CPU(CentralProcessingUnit)、隨機(jī)存取存儲(chǔ)器RAM(RandomAccessMemory)、只讀存儲(chǔ)器ROM(Read-onlyMemory)、基本輸入/輸出(Input/Output)接口電路、定時(shí)器/計(jì)數(shù)器等部件都制作在一塊集成芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī),從而實(shí)現(xiàn)微型計(jì)算機(jī)的基本功能。單片機(jī)內(nèi)部結(jié)構(gòu)示意圖如圖1-2所示。圖圖1-2 單片機(jī)內(nèi)部結(jié)構(gòu)示意圖單片機(jī)內(nèi)部結(jié)構(gòu)示意圖 CPU存儲(chǔ)器并行I/O接口定時(shí)

7、器 /計(jì)數(shù)器中斷系統(tǒng)P0 P3TXDRXDTINT并行I/O接口n軟件系統(tǒng)是微機(jī)系統(tǒng)所使用的各種程序的總稱。人們通過它對(duì)整機(jī)進(jìn)行控制并與微機(jī)系統(tǒng)進(jìn)行信息交換,使微機(jī)按照人的意圖完成預(yù)定的任務(wù)。n軟件系統(tǒng)與硬件系統(tǒng)共同構(gòu)成完整的微機(jī)系統(tǒng),兩者輔相成,缺一不可。n微型計(jì)算機(jī)系統(tǒng)組成示意圖如圖所示。1.2.2 單片機(jī)的軟件系統(tǒng)單片機(jī)的軟件系統(tǒng)微型計(jì)算機(jī)系統(tǒng)組成示意圖微型計(jì)算機(jī)系統(tǒng)組成示意圖軟件系統(tǒng)硬件系統(tǒng)控 制 器運(yùn) 算 器存 儲(chǔ) 器輸入設(shè)備CPU微型計(jì)算機(jī)系統(tǒng)輸入接口電路輸出接口電路輸出設(shè)備1.3 MCS-51系列單片機(jī)系列單片機(jī)n盡管各類單片機(jī)很多,但無論是從世界范圍或是從全國(guó)范圍來看,使用最為

8、廣泛的應(yīng)屬M(fèi)CS-51單片機(jī)。nMCS-51單片機(jī)系列共有十幾種芯片,如表1-1所示。表表1-1 MCS-51系列單片機(jī)分類表系列單片機(jī)分類表子系列片內(nèi)ROM形式片內(nèi)ROM容量片內(nèi)RAM容量尋址范圍I/O特性中斷源無ROMEPROM計(jì)數(shù)器并行口串行口51子系列8031805187514KB128B264KB216481580C3180C5187C514KB128B264KB216481552子系統(tǒng)8032805287528KB256B264KB316481680C3280C5287C528KB256B264KB3164816nMCS-51系列又分為51和52兩個(gè)子系列,并以芯片型號(hào)的最末位數(shù)字

9、作為標(biāo)志。其中,51子系列是基本型,而52子系列則屬增強(qiáng)型。52子系列功能增強(qiáng)的具體方面,從表1-1所列內(nèi)容中可以看出:n(1)片內(nèi)ROM從4KB增加到8KB。n(2)片內(nèi)RAM從128B增加到256B。n(3)定時(shí)/計(jì)數(shù)器從2個(gè)增加到3個(gè)。n(4)中斷源從5個(gè)增加到6個(gè)。1.3.1 51子系列和子系列和52子系列子系列nMCS-51系列單片機(jī)采用兩種半導(dǎo)體工藝生產(chǎn)。一種是HMOS工藝,即高速度、高密度、短溝道MOS工藝。另外一種是CHMOS工藝,即互補(bǔ)金屬氧化物的HMOS工藝。表1.1中,芯片型號(hào)中帶有字母“C”的,為CHMOS芯片,其余均為一般的HMOS芯片。nCHMOS是CMOS和HMO

10、S的結(jié)合,除保持了HMOS高速度和高密度的特點(diǎn)之外,還具有CMOS低功耗的特點(diǎn)。在便攜式、手提式或野外作業(yè)儀器設(shè)備上,低功耗是非常有意義的,因此,在這些產(chǎn)品中必須使用CHMOS的單片機(jī)芯片。1.3.2 單片機(jī)芯片半導(dǎo)體工藝單片機(jī)芯片半導(dǎo)體工藝nMCS-51單片機(jī)片內(nèi)程序存儲(chǔ)器有三種配置形式,即掩膜ROM、EPROM和無ROM。這三種配置形式對(duì)應(yīng)三種不同的單片機(jī)芯片,它們各有特點(diǎn),也各有其適用場(chǎng)合,在使用時(shí)應(yīng)根據(jù)需要進(jìn)行選擇。一般情況下,片內(nèi)帶掩膜型ROM適用于定型大批量應(yīng)用產(chǎn)品的生產(chǎn);片內(nèi)帶EPROM適合于研制產(chǎn)品樣機(jī);外接EPROM的方式適用于研制新產(chǎn)品。最近,Intel公司又推出片內(nèi)帶EE

11、PROM型的單片機(jī),可以在線寫入程序。1.3.3 片內(nèi)片內(nèi)ROM存儲(chǔ)器配置形式存儲(chǔ)器配置形式第2章MCS-51單片機(jī)結(jié)構(gòu)n本章主要介紹MCS-51系列的8051的基本結(jié)構(gòu)、工作原理、存儲(chǔ)器結(jié)構(gòu)、P0、P1、P2、P3四個(gè)I/O口的基本工作原理和操作特點(diǎn)。單片機(jī)的各種工作方式、單片機(jī)的時(shí)序等。2.1 MCS-51單片機(jī)的內(nèi)部組成及信號(hào)引腳單片機(jī)的內(nèi)部組成及信號(hào)引腳nMCS-51單片機(jī)的典型芯片是8031、8051、8751。8051內(nèi)部有4KBROM,8751內(nèi)部有4KBEPROM,8031內(nèi)部無ROM;除此之外,三者的內(nèi)部結(jié)構(gòu)及引腳完全相同。因此,以8051為例,說明本系列單片機(jī)的內(nèi)部組成及信

12、號(hào)引腳。n8051單片機(jī)的基本組成請(qǐng)參見圖2-1。下面介紹各部分的基本情況。2.1.1 8051單片機(jī)的基本組成單片機(jī)的基本組成圖2-1MCS-51單片機(jī)結(jié)構(gòu)框圖n1)中央處理器(CPU)n中央處理器是單片機(jī)的核心,完成運(yùn)算和控制功能。MCS-51的CPU能處理8位二進(jìn)制數(shù)或代碼。n2)內(nèi)部數(shù)據(jù)存儲(chǔ)器(內(nèi)部RAM)n8051芯片中共有256個(gè)RAM單元,但其中后128單元被專用寄存器占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫的數(shù)據(jù)。因此通常所說的內(nèi)部數(shù)據(jù)存儲(chǔ)器就是指前128單元,簡(jiǎn)稱內(nèi)部RAM。n3)內(nèi)部程序存儲(chǔ)器(內(nèi)部ROM)n8051共有4KB掩膜ROM,用于存放程序、

13、原始數(shù)據(jù)或表格,因此,稱之為程序存儲(chǔ)器,簡(jiǎn)稱內(nèi)部ROM。n4)定時(shí)/計(jì)數(shù)器n8051共有兩個(gè)16位的定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能,并以其定時(shí)或計(jì)數(shù)結(jié)果對(duì)計(jì)算機(jī)進(jìn)行控制。n5)并行I/O口nMCS-51共有4個(gè)8位的I/O口(P0、P1、P2、P3),以實(shí)現(xiàn)數(shù)據(jù)的并行輸入/輸出。n6)串行口nMCS-51單片機(jī)有一個(gè)全雙工的串行口,以實(shí)現(xiàn)單片機(jī)和其它設(shè)備之間的串行數(shù)據(jù)傳送。該串行口功能較強(qiáng),既可作為全雙工異步通信收發(fā)器使用,也可作為同步移位器使用。n7)中斷控制系統(tǒng)nMCS-51單片機(jī)的中斷功能較強(qiáng),以滿足控制應(yīng)用的需要。8051共有5個(gè)中斷源,即外中斷兩個(gè),定時(shí)/計(jì)數(shù)中斷兩個(gè),串行中斷一

14、個(gè)。全部中斷分為高級(jí)和低級(jí)共兩個(gè)優(yōu)先級(jí)別。n8)時(shí)鐘電路nMCS-51芯片的內(nèi)部有時(shí)鐘電路,但石英晶體和微調(diào)電容需外接。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列。系統(tǒng)允許的晶振頻率一般為6MHz和12MHz。nMCS-51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,引腳排列請(qǐng)參見圖2-2。1)信號(hào)引腳介紹nP0.0P0.7:P0口8位雙向口線。nP1.0P1.7:P1口8位雙向口線。nP2.0P2.7:P2口8位雙向口線。nP3.0P3.7:P3口8位雙向口線。2.1.2 MCS-51的信號(hào)引腳的信號(hào)引腳圖2-2MCS-51引腳圖P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.

15、78RST/VPD9RXDP3.010TXDP3.111INT0P3.212INT1P3.313T0P3.414T1P3.515WRP3.616RDP3.717XTAL218XTAL119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40803180518751表2 1P3口的第二功能表2)信號(hào)引腳介紹2.2 8051的內(nèi)部存儲(chǔ)器的內(nèi)部存儲(chǔ)器 圖2-3片內(nèi)RAM的配置2.2.1 內(nèi)部數(shù)據(jù)

16、存儲(chǔ)器低內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元單元 字節(jié)地址位地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20HD7D6D5D4D3D2D1D07FH7EH7DH7CH7BH7AH79H78H77H76H75H74H73H72H71H70H6FH6EH6DH6CH6BH6AH69H68H67H66H65H64H63H62H61H60H5FH5EH5DH5CH5BH5AH59H58H57H56H55H54H53H52H51H50H4FH4EH4DH4CH4BH4AH49H48H47H46H45H44H43H42H41H40H3FH3EH3DH3CH3BH3A

17、H39H38H37H36H35H34H33H32H31H30H2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H1FH1EH1DH1CH1BH1AH19H18H17H16H15H14H13H12H11H10H0FH0EH0DH0CH0BH0AH09H08H07H06H05H04H03H02H01H00H表2 2片內(nèi)RAM位尋址區(qū)的位地址符號(hào)單元地址名稱位地址符號(hào)地址*ACCE0H累加器ACC.7ACC.0E7HE0H*BF0H乘法寄存器B.7B.0F7HF0H*PSWD0H程序狀態(tài)字PSW.7PSW.0D7HD0HSP81H堆棧指針DPL82H數(shù)據(jù)

18、存儲(chǔ)器指針(低8位)DPH83H數(shù)據(jù)存儲(chǔ)器指針(高8位)*IEA8H中斷允許控制器IE.7IE.0AFHA8H*IPB8H中斷優(yōu)先控制器IP.7IP.0BFHB8H*P080H通道0P0.7P0.087H80H*P190H通道1P1.7P1.097H90H*P2A0H通道2P2.7P2.0A7HA0H*P3B0H通道3P3.7P3.0B7HB0HPCON87H電源控制及波特率選擇*SCON98H串行口控制SCON.7SCON.09FH98HSBUF99H串行數(shù)據(jù)緩沖器*TCON88H定時(shí)控制TCON.7TCON.08FH88HTMOD89H定時(shí)器方式選擇TL08AH定時(shí)器0低8位TL18BH定

19、時(shí)器1低8位TH08CH定時(shí)器0高8位TH18DH定時(shí)器1高8位2.2.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器高內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元單元 表2 3MCS-51專用寄存器一覽表P0.n鎖存器P0.nQQD讀鎖存器寫鎖存器內(nèi)部總線讀引腳T1T2VCCMUX地址/數(shù)據(jù)控制圖2 5P0口的口線邏輯電路圖2.3.1 P0口口2.3 并行輸入并行輸入/輸出口電路結(jié)構(gòu)輸出口電路結(jié)構(gòu)2.3.2 P1口口P1.n鎖存器P1.nQQD讀鎖存器寫鎖存器內(nèi)部總線讀引腳內(nèi)部上拉電阻TVCC圖2 6P1口的口線邏輯電路圖2.3.3 P2口口P2.n鎖存器P2.nQQD讀鎖存器寫鎖存器內(nèi)部總線讀引腳TVCC地址控制內(nèi)部上拉電阻MUX圖2

20、 7P2口的口線邏輯電路圖2.3.4 P3口口P3.n鎖存器P3.nQQD讀鎖存器寫鎖存器內(nèi)部總線讀引腳TVCC第二輸入功能第二輸出功能內(nèi)部上拉電阻圖2 8P3口的口線邏輯電路圖2.4.1 時(shí)鐘電路與時(shí)序時(shí)鐘電路與時(shí)序S機(jī)器周期1取指令、譯碼指令周期機(jī)器周期2取操作數(shù)、執(zhí)行基本定時(shí)時(shí)序關(guān)系基本定時(shí)時(shí)序關(guān)系24 MCS-51單片機(jī)的時(shí)序單片機(jī)的時(shí)序1.時(shí)鐘信號(hào)的產(chǎn)生時(shí)鐘信號(hào)的產(chǎn)生TTL(a) 內(nèi)部振蕩器方式XTAL1R外部振蕩器XTAL2VCCXTAL2XTAL1VSS(b) 8051外時(shí)鐘源接法8051NC外部振蕩器XTAL1XTAL2VSS(c) 80C51外時(shí)鐘源接法80C51C1C2圖2

21、-9時(shí)鐘振蕩電路和圖2-10外部時(shí)鐘源接法(1)節(jié)拍與狀態(tài)ALE時(shí)鐘S1S4S6S5S3S2讀操作碼讀操作碼(無效)(a) 1字節(jié)1周期指令讀下一指令S1S4S6S5S3S2讀操作碼讀第二字節(jié)(b) 2字節(jié)1周期指令讀下一指令S1S4S6S5S3S2讀操作碼讀操作碼(無效)(c) 1字節(jié)2周期指令讀下一指令S1S4S6S5S3S2圖2 11MCS-51的取指/執(zhí)行時(shí)序(2)機(jī)器周期4. MCS-51指令時(shí)序指令時(shí)序(3)指令周期1復(fù)位操作專用寄存器復(fù)位值PC0000HACC00HB00HPSW00HSP07HDPTR0000HP0P3FFHIPXXX00000BIE0XX00000BTMOD0

22、0HTCON00HTH000HTL000HTH100HTL100HSCON00HSBUF不定PCON(CHMOS)0XXX0000B2.4.2 單片機(jī)的復(fù)位電路單片機(jī)的復(fù)位電路2復(fù)位信號(hào)及其產(chǎn)生D1D2RST/VPDVCCVSSRAM斯密特觸發(fā)器復(fù)位電路圖2 12復(fù)位電路邏輯圖3復(fù)位方式VCC8051VCCRST/VPDVSSR1kC22FVCC8051VCCRST/VPDVSSR11kC122FR21kC2 22FRESET(a) 上電復(fù)位(b) 按鍵脈沖復(fù)位VCC8051VCCRST/VPDVSSR1 200C22FR21kRESET(c) 按鍵電平復(fù)位圖2 13各種復(fù)位電路第3章MSC-

23、51指令系統(tǒng) 31 MCS-51指令系統(tǒng)概述指令系統(tǒng)概述3.1.1 指令格式指令格式 匯編語言格式為:標(biāo)號(hào):操作碼助記符目的操作數(shù),源操作數(shù);注釋其中,標(biāo)號(hào)是該語句的符號(hào)地址,可根據(jù)需要而設(shè)置。當(dāng)匯編程序?qū)R編語言源程序進(jìn)行匯編時(shí),再以該指令所在的地址值來代替標(biāo)號(hào)。在編程的過程中,適當(dāng)?shù)氖褂脴?biāo)號(hào),使程序便于查詢、修改以及轉(zhuǎn)移指令的編程。標(biāo)號(hào)通常用于轉(zhuǎn)移指令所需的轉(zhuǎn)移地址。標(biāo)號(hào)一般由16個(gè)字符組成,但第一個(gè)字符必須是字母,其余的可以是字母也可以是其他符號(hào)或數(shù)字。標(biāo)號(hào)和操作碼之間用冒號(hào)“:”分開。功能助記符又稱為操作碼。操作碼和操作數(shù)(源操作數(shù)和目的操作數(shù))是指令的核心部分。操作碼使用MCS-51

24、系列單片機(jī)所規(guī)定的助記符來表示,其功能在于告訴單片機(jī)的CPU做何種操作。操作數(shù)分為目的操作數(shù)和源操作數(shù),采用符號(hào)(如寄存器、標(biāo)號(hào)等)或者常量(如立即數(shù)、地址值等)表示。操作碼和目的操作數(shù)之間用空格分隔,而目的操作數(shù)和源操作數(shù)之間用逗號(hào)“,”隔開。在某些指令中可以沒有操作數(shù)。注釋是對(duì)指令的功能或作用的說明,但是注釋不是一個(gè)指令的必要組成部分,可有可無。注釋的主要作用是對(duì)程序段或者某條指令在整個(gè)程序中的作用進(jìn)行解釋和說明,以幫助閱讀、理解和使用源程序。有無注釋對(duì)源程序并無影響,但是如果使用注釋的話,注釋部分一定要用分號(hào)“;”隔開。3.1.2 尋址方式尋址方式 1.寄存器尋址2.直接尋址4.立即尋址

25、3.寄存器間接尋址6.變址尋址7.相對(duì)尋址5.位尋址MSC-51單片機(jī)的指令系統(tǒng)單片機(jī)的指令系統(tǒng)按照指令的功能,可以把MSC-51的111條指令分成五類:l數(shù)據(jù)傳送類指令(數(shù)據(jù)傳送類指令(29條)條)l算術(shù)運(yùn)算類指令(算術(shù)運(yùn)算類指令(24條)條)l邏輯操作類指令(邏輯操作類指令(24條)條)l控制轉(zhuǎn)移類指令(控制轉(zhuǎn)移類指令(17條)條)l位操作類指令位操作類指令 (17條)條)第4章MCS-51匯編語言程序設(shè)計(jì)過程A過程B是否入口出口條件滿足?P2入口出口P1P3過程是否入口出口條件滿足?(a) 順序結(jié)構(gòu)(b) 分支結(jié)構(gòu)(c) 循環(huán)結(jié)構(gòu)基本程序結(jié)構(gòu)4.1 匯編語言及匯編語言程序設(shè)計(jì)匯編語言及匯

26、編語言程序設(shè)計(jì)機(jī)器語言(MachineLanguage)是指直接用機(jī)器碼編寫程序、能夠?yàn)橛?jì)算機(jī)直接執(zhí)行的機(jī)器級(jí)語言。機(jī)器碼是一串由二進(jìn)制代碼“0”和“1”組成的二進(jìn)制數(shù)據(jù),其執(zhí)行速度快,但是可讀性極差。機(jī)器語言一般只在簡(jiǎn)單的開發(fā)裝置中使用,程序的設(shè)計(jì)、輸入、修改和調(diào)試都很麻煩。匯編語言(AssemblyLanguage)是指用指令助記符代替機(jī)器碼的編程語言。匯編語言程序結(jié)構(gòu)簡(jiǎn)單,執(zhí)行速度快,程序易優(yōu)化,編譯后占用存儲(chǔ)空間小,是單片機(jī)應(yīng)用系統(tǒng)開發(fā)中最常用的程序設(shè)計(jì)語言。匯編語言的缺點(diǎn)是可讀性比較差,只有熟悉單片機(jī)的指令系統(tǒng),并具有一定的程序設(shè)計(jì)經(jīng)驗(yàn),才能研制出功能復(fù)雜的應(yīng)用程序。高級(jí)語言(Hig

27、h-LevelLanguage)是在匯編語言的基礎(chǔ)上用自然語言的語句來編寫程序,例如PL/M-51、FranklinC51、MBASIC51等,程序可讀性強(qiáng),通用性好,適用于不熟悉單片機(jī)指令系統(tǒng)的的用戶。高級(jí)語言編寫程序的缺點(diǎn)是實(shí)時(shí)性不高,結(jié)構(gòu)不緊湊,編譯后占用存儲(chǔ)空間比較大,這一點(diǎn)在存儲(chǔ)器有限的單片機(jī)應(yīng)用系統(tǒng)中沒有優(yōu)勢(shì)。4.1.3 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序也就是順序程序,是最簡(jiǎn)單、最基本的程序結(jié)構(gòu),其特點(diǎn)是按指令的排列順序一條條地執(zhí)行,直到全部指令執(zhí)行完畢為止。不管多么復(fù)雜的程序,總是由若干順序程序段所組成的?!纠?.1】雙字節(jié)二進(jìn)制數(shù)求補(bǔ)。本程序?qū)3(高)、R2(低)中的二進(jìn)制定

28、點(diǎn)數(shù)取反加1,便得到其補(bǔ)碼,程序流程圖如圖4-1所示。圖4-1雙字節(jié)二進(jìn)制數(shù)求補(bǔ)程序流程圖程序清單如下:BINPL:MOVA,R2CPLAADDA,#01HMOV R2,A;低位字節(jié)補(bǔ)碼送R2MOV A,R3CPLAADDCA,#00H;高位加進(jìn)位位MOV R3,A;高位字節(jié)補(bǔ)碼送R3RET4.1.4 分支程序設(shè)計(jì)分支程序設(shè)計(jì)在一個(gè)實(shí)際的應(yīng)用程序中,程序不可能始終都是直線執(zhí)行的。要用計(jì)算機(jī)解決某個(gè)實(shí)際問題,往往要求計(jì)算機(jī)能夠做出一些判斷,并根據(jù)不同的判斷結(jié)果做出不同的處理,即產(chǎn)生不同的分支結(jié)構(gòu)。分支結(jié)構(gòu)程序可根據(jù)程序要求無條件或有條件地改變程序執(zhí)行的順序,選擇新的程序流向。編寫分支結(jié)構(gòu)程序主要

29、在于正確使用轉(zhuǎn)移指令,即無條件轉(zhuǎn)移和條件轉(zhuǎn)移指令。【例4.2】設(shè)變量X存在VAR單元之中,函數(shù)值y存放在FUNC中,按以下的表達(dá)式給變量y賦值:圖4-2分支程序流程圖程序流程圖如圖4-2所示。程序清單如下:VAREQU30HFUNC EQU31HSTART:MOVA,VARJZCOMPJNBACC.7,POSIMOV A,#0FFHSJMP COMPPOSI:MOV A,#01HCOMP:MOVFUNC,A在程序設(shè)計(jì)過程中,常常遇到反復(fù)執(zhí)行某一段程序的情況,這種情況下采用循環(huán)程序結(jié)構(gòu),構(gòu),可以縮短程序代碼的長(zhǎng)度,提高程序的質(zhì)量和運(yùn)行效率。循環(huán)的這四個(gè)部分有兩種情況,如圖4-3所示。4.1.5

30、循環(huán)結(jié)構(gòu)程序循環(huán)結(jié)構(gòu)程序圖4-3循環(huán)結(jié)構(gòu)程序流程圖循環(huán)結(jié)構(gòu)程序一般包括以下幾個(gè)部分:(1)置初值。置初值是設(shè)置用于循環(huán)過程工作單元的初始值,例如設(shè)置循環(huán)次數(shù)計(jì)數(shù)器、地址指針初值、存放變量的單元的初值。(2)循環(huán)體。重復(fù)執(zhí)行的程序段。(3)循環(huán)修改。在單片機(jī)中,一般用一個(gè)工作寄存器Rn作為計(jì)數(shù)器,并給這個(gè)計(jì)數(shù)器賦初值作為循環(huán)的次數(shù),運(yùn)行程序時(shí),每循環(huán)一次,則對(duì)該計(jì)數(shù)器進(jìn)行修改。(4)循環(huán)控制。判斷循環(huán)控制變量(保存循環(huán)次數(shù)的變量)是否滿足終止值的條件,如果滿足則結(jié)束循環(huán),順序執(zhí)行循環(huán)短一些的程序;如果不滿足,則繼續(xù)重復(fù)執(zhí)行循環(huán)的工作部分,直到達(dá)到循環(huán)結(jié)束條件(死循環(huán)除外)?!纠?.3】求1、2、

31、3N之和(N256)。這是一個(gè)簡(jiǎn)單的重復(fù)相加的問題。設(shè)R2為加數(shù)指針,R5為循環(huán)次數(shù)計(jì)數(shù)器,R6為加數(shù)總和的高位字節(jié)寄存器,N保存在內(nèi)部RAM的23H當(dāng)中,加數(shù)總和的高位字節(jié)和低位字節(jié)分別存入23H和24H中。程序流程圖如圖4-4所示。圖4-4例4.3程序流程圖程序清單如下:ORG0100HMOV R5,23H;R5NCLRA;A清零MOV R6,#00H;R6清零MOV R4,#01H;R4賦值LOOP:ADDA,R4;求和JNCNEXT;CY=0即總和小于256,則轉(zhuǎn)移INCR6;總和高位加工NEXT:INC R4;修改指針DJNZ R5,LOOP;未完,重復(fù)加MOV 23H,R6;保存總

32、和的高位MOV 24H,A;保存總和的低位END【例4.4】延時(shí)10ms子程序(設(shè)晶振的頻率為6MHz)。在知道系統(tǒng)的晶振頻率之后,延時(shí)時(shí)間主要與兩個(gè)因素有關(guān):一是內(nèi)循環(huán)中指令的執(zhí)行時(shí)間;二是外循環(huán)時(shí)間常數(shù)(內(nèi)循環(huán)的循環(huán)次數(shù))的設(shè)置。在本例中,已知晶振頻率為6MHz,則可得一個(gè)機(jī)器周期為0.5s,執(zhí)行一條DJNZRn,rel的指令的時(shí)間為兩個(gè)機(jī)器周期即1s,10ms的延時(shí)子程序設(shè)計(jì)如下:DELAY:MOV R5,#100DELAY0:MOVR4,#100DELAY1:DJNZR4,DELAY1DJNZR5,DELAY0RET第5章MCS-51定時(shí)/計(jì)數(shù)器和中斷系統(tǒng)51 MCS-51定時(shí)定時(shí)/計(jì)

33、數(shù)器計(jì)數(shù)器5.1.1 8051單片機(jī)定時(shí)單片機(jī)定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與工作原理計(jì)數(shù)器的結(jié)構(gòu)與工作原理定時(shí)/計(jì)數(shù)器邏輯結(jié)構(gòu)內(nèi)部總線工作方式工作方式TH1TL1TH0TL0TCONTMODT1T0微處理器圖 5 1 8051定時(shí)/計(jì)數(shù)器邏輯結(jié)構(gòu)5.1.2 定時(shí)定時(shí)/計(jì)數(shù)器方式寄存器和控制寄存器計(jì)數(shù)器方式寄存器和控制寄存器表 5 1 方式選擇位意義M1M0工作方式功能說明00方式013位計(jì)數(shù)器01方式116位計(jì)數(shù)器10方式2自動(dòng)再裝入8位計(jì)數(shù)器11方式3定時(shí)器0:分成兩個(gè)8位計(jì)數(shù)器定時(shí)器1:停止計(jì)數(shù)TMOD格式如下:TCON的格式如下TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1T

34、F0TR0IE1IT1IE0IT05.1.3 定時(shí)定時(shí)/計(jì)數(shù)器的計(jì)數(shù)器的4種工作方式種工作方式1.方式0 當(dāng)M1M0兩位為00時(shí),定時(shí)/計(jì)數(shù)器被選為工作方式0,其邏輯結(jié)構(gòu)如圖 5 2 所示。控制振蕩器12TL0(5位)TF0中斷T0 端C/ T = 0C/ T = 1+INT0 端GATETR0TH0(8位)圖 5 2 T0(或T1)方式0的邏輯電路結(jié)構(gòu)2.方式1控制振蕩器12TL0(8位)TF0中斷T0 端C/ T = 0C/ T = 1+INT0 端GATETR0TH0(8位)T0(或T1)方式1的邏輯電路結(jié)構(gòu)3.方式2控制振蕩器12TL0(8位)TF0中斷T0 端C/ T = 0C/ T

35、 = 1+INT0 端GATETR0TH0(8位)重新裝入圖 5 3 T0(或T1)方式2的邏輯電路結(jié)構(gòu)4.方式3控制振蕩器12TL0(8位)TF0中斷T0 端C/ T = 0C/ T = 1+INT0 端GATETR0TH0(8位)1/ 12 fosc1/ 12 foscTF1中斷1/ 12 foscTR1圖 5 4 T0方式3的邏輯電路結(jié)構(gòu)和T1結(jié)構(gòu)由于定時(shí)/計(jì)數(shù)器是可編程的,因此在定時(shí)或計(jì)數(shù)之前要用程序初始化,初始化一般有以下幾個(gè)步驟:(1)確定工作方式對(duì)方式寄存器TMOD賦值。(2)預(yù)置定時(shí)或計(jì)數(shù)初值,直接將初值寫入TL0、TH0或TL1、TH1中。(3)根據(jù)需要對(duì)中斷允許寄存器有關(guān)位

36、賦值,以開放或禁止定時(shí)/計(jì)數(shù)器中斷。(4)啟動(dòng)定時(shí)/計(jì)數(shù)器,使TCON中的TR1或TR0置“1”,計(jì)數(shù)器計(jì)按既定的工作方式和初值技術(shù)或定時(shí)。5.定時(shí)/計(jì)數(shù)器的初始化在初始化過程中,要置入定時(shí)或計(jì)數(shù)的初值,要做一點(diǎn)計(jì)算。由于計(jì)數(shù)器是加“1”計(jì)數(shù)器,并在溢出時(shí)產(chǎn)生中斷請(qǐng)求,因此不能直接將計(jì)數(shù)初值置入計(jì)數(shù)器,而應(yīng)送計(jì)數(shù)初值的補(bǔ)碼數(shù)。設(shè)計(jì)數(shù)器最大計(jì)數(shù)值為M,選擇不同的工作方式最大計(jì)數(shù)值不同。方式0:M=213=8192方式1:M=216=65536方式2:M=28=256方式3:M=28=256置入計(jì)數(shù)初值X可這樣計(jì)算:計(jì)數(shù)方式時(shí):X=M-計(jì)數(shù)值(X即為計(jì)數(shù)值的補(bǔ)碼)定時(shí)方式時(shí):(M-X)*T=定時(shí)值

37、,故X=M-定時(shí)值/T其中T為計(jì)數(shù)周期,是單片機(jī)時(shí)鐘的12分頻,即單片機(jī)機(jī)器周期。當(dāng)晶振為6MHz時(shí),t=2s;當(dāng)晶振12MHz時(shí),T=1s?!纠?.1】若單片機(jī)晶振為12MHz,要求產(chǎn)生500s的定時(shí),試計(jì)算X的初值。解:由于T=1s,產(chǎn)生500s定時(shí),則需要“+1”500次,定時(shí)器方能產(chǎn)生溢出。采用方式0:X=213-(500*10-6/10-6)=7692=1E0CH但方式0的TL0高3位是不用的,都設(shè)為“0”,這1E0CH應(yīng)寫成:F00CH=1111000001100B實(shí)際上,我們可以看出F00CH去掉了3個(gè)不用的位后,就是1E0CH,即將F0H裝入TH0,0CH裝入TL0。采用方式1

38、:X=216-(500*10-6/10-6)=65536=FE0CH即將FEH裝入TH1,0CH裝入TL1?!纠?.2】用定時(shí)器1,方式0實(shí)現(xiàn)1s的延時(shí)。解:因方式0采用13位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:8192*1s=8192s,因此,定時(shí)時(shí)間可選擇為8ms,再循環(huán)125次;或者定時(shí)時(shí)間選擇為5ms,再循環(huán)200次。本例我們選擇前者。定時(shí)時(shí)間選定后,再確定計(jì)數(shù)值為5000,則定時(shí)器1的初值為X=M-計(jì)數(shù)值=8192-5000=3192=C78H=0110001111000B因13位計(jì)數(shù)器中TL1的高3位未用,應(yīng)填寫0,TH1占高8位,所以,X的實(shí)際填寫值應(yīng)為X=0110001100011000

39、B=6318H即TH1=63H,TL1=18H,又因采用方式0定時(shí),故TMOD=00H。1s延時(shí)子程序如下:DELAY:MOVR0,#200;置5ms計(jì)數(shù)循環(huán)初值MOVTMOD,#00H;設(shè)定時(shí)器1為方式0MOVTH1,#63H;置定時(shí)器初值MOVTL1,#18HSETBTR1;啟動(dòng)T1LP1:JBCTF1,LP2;查詢計(jì)數(shù)溢出SJMPLP1;未到5ms繼續(xù)計(jì)數(shù)LP2:MOVTH1,#63H;重新置定時(shí)器初值MOVTL1,#18HDJNZR0,LP1;未到1s繼續(xù)循環(huán)RET;返回主程序【例5.3】用定時(shí)器1,方式1實(shí)現(xiàn)1s的延時(shí)。DELAY:MOVR0,#20;置50ms計(jì)數(shù)循環(huán)初值MOVTM

40、OD,#10H;設(shè)定時(shí)器1為方式1MOVTH1,#3CH;置定時(shí)器初值MOVTL1,#0B0HSETBTR1;啟動(dòng)T1LP1:JBCTF1,LP2;查詢計(jì)數(shù)溢出SJMPLP1;未到50ms繼續(xù)計(jì)數(shù)LP2:MOVTH1,#3CH;重新置定時(shí)器初值MOVTL1,#0B0HDJNZR0,LP1;未到1s繼續(xù)循環(huán)RET;返回主程序【例5.4】用定時(shí)器1,方式2實(shí)現(xiàn)1s的延時(shí)。解:因方式2是8位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:256*1s=256s,為實(shí)現(xiàn)1s的延時(shí),可選擇定時(shí)時(shí)間為250s,再循環(huán)4000次。定時(shí)時(shí)間選定后,可確定計(jì)數(shù)值為250,則定時(shí)器1的初值為:X=M-計(jì)數(shù)值=256-250=6=6H。

41、采用定時(shí)器1,方式2工作,因此,TMOD=20H。DELAY:MOVR7,#40;置25ms計(jì)數(shù)循環(huán)初值MOVR6,#100;置250s計(jì)數(shù)循環(huán)初值MOVTMOD,#20H;設(shè)定時(shí)器1為方式2MOVTH1,#06H;置定時(shí)器初值MOVTL1,#06HSETBTR1;啟動(dòng)T1LP1: JBCTF1,LP2;查詢計(jì)數(shù)溢出SJMPLP1;無溢出則繼續(xù)計(jì)數(shù)LP2: DJNZR6,LP1;未到25ms繼續(xù)循環(huán)MOVR6,#100DJNZR7,LP1;未到1s繼續(xù)循環(huán)RET;返回主程序5.2 MCS-51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)自然優(yōu)先級(jí)矢量地址自然優(yōu)先級(jí)矢量地址高級(jí)中斷請(qǐng)求PCPC斷請(qǐng)求低級(jí)中S

42、CON中斷標(biāo)志IPPX01PT0110PX110PS100PT10IEEX0ET0EX1ET1ESTCONIE0TF0IE1TF1TIRIRXTXT1IT1=1INT1IT1=0T0INT0IT0=1IT0=0源允許總允許優(yōu)先級(jí)硬件查詢EA圖 5-5 MCS-51中斷系統(tǒng)內(nèi)部結(jié)構(gòu)示意圖1、中斷源及中斷入口、中斷源及中斷入口中斷源入口地址外部中斷00003H定時(shí)器T0中斷000BH外部中斷10013H定時(shí)器T1中斷001BH串行口中斷0023H2、外部中斷請(qǐng)求標(biāo)志、外部中斷請(qǐng)求標(biāo)志2SCON的中斷標(biāo)志1TCON中的中斷標(biāo)志3、中斷允許控制、中斷允許控制4、中斷源優(yōu)先級(jí)的設(shè)定、中斷源優(yōu)先級(jí)的設(shè)定5

43、、中斷響應(yīng)處理過程、中斷響應(yīng)處理過程2中斷處理1中斷響應(yīng)的過程3中斷返回4外部中斷響應(yīng)時(shí)間5.2.4 外部中斷源的擴(kuò)展外部中斷源的擴(kuò)展1.用定時(shí)器作外部中斷源MCS-51單片機(jī)有兩個(gè)定時(shí)器,具有兩個(gè)內(nèi)中斷標(biāo)志和外計(jì)數(shù)引腳,如在某些應(yīng)用中不被使用,則它們定時(shí)器中斷可作為外部中斷請(qǐng)求使用。此時(shí),可將定時(shí)器設(shè)置成計(jì)數(shù)方式,計(jì)數(shù)初值可設(shè)為滿量程,則它們的計(jì)數(shù)輸入端T0(P3.4)或T1(P3.5)引腳上發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器加1產(chǎn)生溢出甲斷。利用此特性,可把T0腳或T1腳作為外部中斷請(qǐng)求輸入線,而計(jì)數(shù)器的溢出中斷作為外部中斷請(qǐng)求標(biāo)志?!纠?.5】將定時(shí)器0擴(kuò)展為外部中斷源n解:將定時(shí)器0設(shè)定為方式2(自

44、動(dòng)恢復(fù)計(jì)數(shù)初值),TH0和TFO的初值均設(shè)置為FFH,允許定時(shí)器0中斷,CPU開放中斷。源程序如下:MOV TMOD,#06HMOVTH0,#0FFHMOVTL0,#0FFHSETBTR0SETBET0SETBEA當(dāng)連接在T0(P3.4)引腳上的外部中斷請(qǐng)求輸入線發(fā)生負(fù)跳變時(shí),TL0加1溢出,TF0置1,向CPU發(fā)出中斷申請(qǐng),同時(shí),TH0的內(nèi)容自動(dòng)送至TL0使TL0恢復(fù)初值。這樣,T0引腳每輸入一個(gè)負(fù)跳變,TF0都會(huì)置1,向CPU請(qǐng)求中斷。此時(shí),T0腳相當(dāng)于邊沿觸發(fā)的外部中斷源輸入線。同樣,也可將定時(shí)器1擴(kuò)展為外部中斷源。2.中斷和查詢相結(jié)合圖5- 8一個(gè)外中斷擴(kuò)展成多個(gè)外中斷的原理圖 由圖可

45、知,4個(gè)外部擴(kuò)展中斷源通過4個(gè)OC門電路組成線或取非后再與(P3.2)相連;4個(gè)外部擴(kuò)展中斷源EXINT0EXINT3中有一個(gè)或幾個(gè)出現(xiàn)高電平則輸出為0,使腳為低電平,從而發(fā)出中斷請(qǐng)求。因此,這些擴(kuò)充的外部中斷源都是電平觸發(fā)方式(高電平有效)。CPU執(zhí)行中斷服務(wù)程序時(shí),先依次查詢P1口的中斷源輸入狀態(tài),然后,轉(zhuǎn)入到相應(yīng)的中斷服務(wù)程序,4個(gè)擴(kuò)展中斷源的優(yōu)先級(jí)順序由軟件查詢順序決定,即最先查詢的優(yōu)先級(jí)最高,最后查詢的優(yōu)先級(jí)最低。0INT0INT中斷服務(wù)程序如下:ORG0003H;外部中斷0入口AJMPINT0;轉(zhuǎn)向中斷服務(wù)程序入口INT0:PUSHPSW;保護(hù)現(xiàn)場(chǎng)PUSHACCJBP1.0,EXT

46、0;中斷源查詢并轉(zhuǎn)相應(yīng)中斷服務(wù)程序JBP1.1,EXT1JBP1.2,EXT2JBP1.3,EXT3EXIT:POPACC;恢復(fù)現(xiàn)場(chǎng)POPPSWRETIEXT0:;EXINT0中斷服務(wù)程序AJMPEXITEXT1:;EXINT1中斷服務(wù)程序AJMPEXITEXT2:;EXINT2中斷服務(wù)程序AJMPEXITEXT3:;EXINT3中斷服務(wù)程序AJMPEXIT同樣,外部中斷1也可作相應(yīng)的擴(kuò)展。第6章存儲(chǔ)器與存儲(chǔ)器擴(kuò)展61 單片機(jī)存儲(chǔ)器概述單片機(jī)存儲(chǔ)器概述8051的引腳定義及功能123456789101112131415161718192040393837363534333231302928272

47、62524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSSVCCP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VPPALE/PROGPSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8803180318051805187518751P1.7P1.6

48、P1.5P1.4P1.3P1.2P1.1P1.0P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0PSENEAALERESET803180318051805187518751P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0ALEA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0G+5VVCCVSS鎖鎖存存器器數(shù)據(jù)總線(DB)地址總線(AB)控制總線(CB)用戶I/OMCS-51的引腳圖及功能分類圖圖6- 1 單片機(jī)擴(kuò)展構(gòu)造總線結(jié)構(gòu)框圖 62 程

49、序存儲(chǔ)器擴(kuò)展技術(shù)程序存儲(chǔ)器擴(kuò)展技術(shù)外部程序存儲(chǔ)器的擴(kuò)展及取指過程EA8 80 03 31 1P2.7P2.0P0.7P0.0地址鎖存器PSENOEA15A8CEA7A0D7D0外部程序存儲(chǔ)器0K64K外部程序存儲(chǔ)器一般連接方法EPROM程序存儲(chǔ)器擴(kuò)展實(shí)例PSENP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7A8A9A10A11A12QOA0A1A2A3A4A5A6A7Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALED0D1D2D3D4D5D6D7OEGOE803127C64CEEA74HC373

50、圖6-8單片程序存儲(chǔ)器擴(kuò)展連接 用譯碼法擴(kuò)展多片E2PROM圖6-10E2PROM程序存儲(chǔ)器擴(kuò)展電路連接圖P3.7(RD)P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7A8A9A10QOA7A6A5A4A3A2A1A0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALEI/O0I/O1I/O2I/O3I/O4I/O5I/O6I/O7OEGOE80316116CEEAP3.6(WR)WE74HC373擴(kuò)展2KB數(shù)據(jù)存儲(chǔ)器的線路圖63 數(shù)據(jù)存儲(chǔ)器擴(kuò)展技術(shù)數(shù)據(jù)存儲(chǔ)器擴(kuò)展技術(shù)圖6-12線選法擴(kuò)展1片6264

51、電路圖綜合擴(kuò)展實(shí)例D7Q7Q0D074HC373A12A11A10A9A8CEA7A0D7D0OEP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP0PSENWRRD80C51IC02764IC02764D0OECEA12A11A10A9A8A7A0D7IC02764D0OECEA12A11A10A9A8A7A0D7D0OECEA12A11A10A9A8A7A0D7A8A9A10A11A12A8A9A10A11A12A8A9A10A11A12A12A11A10A9A8IC12764D0D0D0D0D7D7D7D7OEOEOEOEA0A0A0A0A7A7A7A7A0A0A0

52、A0A7A7A7A7A8A8A8A8A9A9A9A9A10A10A10A10OEOEOEOECECECECEA11A11A11A11A12A12A12A12A10A10A10A10A0A0A0A0OEOEOEOEA7A7A7A7A8A8A8A8A9A9A9A9A12A12A12A12A11A11A11A11CECECECECECECECEIC26264IC36264WEWED7-D0D7-D0GBAY2Y1Y074HC139擴(kuò)展16KB RAM和16KB EPROM72 并行并行I/O口擴(kuò)展口擴(kuò)展7.2.1 并行I/O口的簡(jiǎn)單擴(kuò)展第7章單片機(jī)接口技術(shù)圖7- 2 簡(jiǎn)單I/O口擴(kuò)展 7.2.2 采

53、用8255擴(kuò)展I/O口圖7- 3 8255內(nèi)部結(jié)構(gòu) 1.8255的內(nèi)部結(jié)構(gòu)和引腳功能。 圖7- 4 8255A引腳圖 2.MCS-51與8255A的連接方法 圖7- 5 8031與8255A的連接方法 3.8255的方式控制字 圖7- 6 8255A方式選擇控制字 (1)方式選擇控制字 圖7- 7 C口 按位復(fù)位/置位控制寄存器 (2)C口按位復(fù)位/置位控制字 7.2.3 可編程RAM I/O接口芯片8155及其擴(kuò)展I/O口技術(shù) 1.8155內(nèi)部結(jié)構(gòu)及引腳 (a) 8155內(nèi)部結(jié)構(gòu)(b) 8155引腳配置圖圖7- 12 8155內(nèi)部結(jié)構(gòu)及引腳圖 表 7 3 8155口地址分布AD0AD7選選

54、中中 寄寄 存存 器器A7 A6 A5 A4 A3A2A1A0 000內(nèi)部命令寄存器內(nèi)部命令寄存器 001通用通用I/O口口A寄存器寄存器 010通用通用I/O口口B寄存器寄存器 011口口C:通用通用I/O口或控制口口或控制口 100定時(shí)定時(shí)/計(jì)數(shù)器的低計(jì)數(shù)器的低8位寄存器位寄存器 101定時(shí)定時(shí)/計(jì)數(shù)器的高計(jì)數(shù)器的高8位寄存器位寄存器2.8155的RAM和I/O口地址編碼 3.8155的工作方式與基本操作 圖7- 13 8155命令狀態(tài)寄存器格式 表7- 4 8155定時(shí)器編程方式及相應(yīng)的輸出波形M2M1方式定時(shí)器輸出波形00110101單方波連續(xù)方波單脈沖連續(xù)脈沖表 7 2 8155的R

55、AM和I/O口地址分配P2.4P2.3選擇地址00RAME 7 0 0 H E 7 F F H(256B)01I/O口EF00H命令口/狀態(tài)口EF01H通用I/O口AEF02H通用I/O口BEF03H口CEF04H計(jì)數(shù)值低8位EF05H計(jì)數(shù)值高8位和計(jì)數(shù)方式AD07CERDWRRESETALETIME INTIME OUTPCPBPAIO/M81558031RSTRDWRALEP2.3P2.4P0VCC圖 7 15 8155和8031單片機(jī)接口73 MCS-51單片機(jī)鍵盤接口技術(shù)單片機(jī)鍵盤接口技術(shù)7.3.2 獨(dú)立式按鍵 1.獨(dú)立式按鍵結(jié)構(gòu) 圖7- 17 獨(dú)立式鍵盤 圖7- 18 獨(dú)立鍵盤與單片

56、機(jī)接口 7.3.3 矩陣鍵盤接口技術(shù) 1.矩陣式鍵盤的結(jié)構(gòu)及工作原理 圖7- 19 矩陣鍵盤結(jié)構(gòu) 2.矩陣鍵盤工作方式 圖7- 20 定時(shí)鍵盤掃描程序框圖 7.4.1 LED顯示器的接口技術(shù)7.4 MCS-51單片機(jī)顯示器接口技術(shù)單片機(jī)顯示器接口技術(shù) (a)管腳圖(b)共陰極(c) 共陽極圖7- 21 LED顯示器與通用I/O口的連線 1.LED數(shù)碼顯示器結(jié)構(gòu)和工作原理 圖7- 22 通過8255A連接的3位LED靜態(tài)顯示器 3.靜態(tài)LED顯示器接口 4.動(dòng)態(tài)LED顯示器接口 圖7- 23 通過8155連接的6位LED動(dòng)態(tài)顯示電路 圖7- 24 動(dòng)態(tài)顯示子程序流程圖 7.4.2 可編程鍵盤/顯

57、示器接口芯片Intel8279 1.8279的內(nèi)部結(jié)構(gòu) 圖7- 27 8279內(nèi)部結(jié)構(gòu) 2.8279引腳功能 圖7- 28 8279管腳及引線功能 5.8279與單片機(jī)的接口 圖7- 29 8279鍵盤、顯示器接口電路 圖7- 30 88鍵盤的鍵值與鍵號(hào) 7.5 模模/數(shù)(數(shù)(A/D)轉(zhuǎn)換器與單片機(jī)接口及應(yīng)用轉(zhuǎn)換器與單片機(jī)接口及應(yīng)用 7.5.2 常用A/D轉(zhuǎn)換器及其接口設(shè)計(jì) 圖7- 32 ADC0809的邏輯框圖 圖7- 33 ADC0809引腳圖 圖7- 34 8031與ADC0809的接口 7.6.2 常用D/A轉(zhuǎn)換器DAC0832及其接口技術(shù) 7.6 數(shù)數(shù)/模(模(D/A)轉(zhuǎn)換器與單片機(jī)

58、接口及應(yīng)用轉(zhuǎn)換器與單片機(jī)接口及應(yīng)用 圖7- 37 DAC0832引腳圖 八位輸入鎖存器八位DAC寄存器八位D/A轉(zhuǎn)換器CSVccWR1ILEAGNDWR2DI3XFERDI2DI4DI1DI5DI0DI6VREFDI7RfbIOUT1DI0DI7ILECSWR1WR2ILE1ILE2XFERDGNDIOUT2AGNDRfbIOUT2IOUT1VREF DAC0832的引腳排列DAC0832結(jié)構(gòu)圖3.DAC0832與MCS-51的接口設(shè)計(jì)(1)單緩沖工作方式 圖7- 38 單極性單緩沖器電路接口圖 (2) 雙緩沖工作方式圖7- 40 工作于雙緩沖方式時(shí)DAC0832與8031的連接 第8章串行口通信技術(shù)81 串行通信基礎(chǔ)

溫馨提示

  • 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)論