單片微機(jī)原理及應(yīng)用:第2章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)_第1頁(yè)
單片微機(jī)原理及應(yīng)用:第2章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)_第2頁(yè)
單片微機(jī)原理及應(yīng)用:第2章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)_第3頁(yè)
單片微機(jī)原理及應(yīng)用:第2章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)_第4頁(yè)
單片微機(jī)原理及應(yīng)用:第2章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩200頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、本講主要內(nèi)容:2-1. 總體概況2-2. 微處理器2-3. 存儲(chǔ)器2-4. 定時(shí)器/計(jì)數(shù)器2-5. 并行和串行輸入/輸出接口2-6 中斷系統(tǒng)1Xinjiang University第2章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)主講內(nèi)容2.1 總體概述一、 主要功能 51子系列的主要功能為: (1)8位CPU (2)片內(nèi)帶振蕩器,振蕩頻率fosc范圍為1.212MHz (3)128個(gè)字節(jié)的片內(nèi)數(shù)據(jù)存儲(chǔ)器。 (4)4K字節(jié)的片內(nèi)程序存儲(chǔ)器 (8031無(wú))。 (5)程序存儲(chǔ)器的尋址范圍為64K字節(jié)。 (6)片外數(shù)據(jù)存儲(chǔ)器的尋址范圍為64K字節(jié)。 (7)21個(gè)字節(jié)專(zhuān)用寄存器。 (8)4個(gè) 8位并行I/O接口

2、:PO, Pl. P2. P3 (9)1個(gè)全雙工串行 I/O接口,可多機(jī)通信。 (10)2個(gè) 16位定時(shí)器/計(jì)數(shù)器。 (11)中斷系統(tǒng)有 5個(gè)中斷源,可編程為兩個(gè)優(yōu)先級(jí)。 (12)111條指令,含乘法指令和除法指令。 (13)有強(qiáng)的位尋址、位處理能力。 (14)片內(nèi)采用單總線(xiàn)結(jié)構(gòu)。 (15)用單一+5V電源。2Xinjiang University2.1 總體概述三、外部引腳說(shuō)明P1口P3口P0口P2口 時(shí)鐘端 復(fù)位端控制信號(hào) 接VCC(+5V) 接地端3Xinjiang University2.1 總體概述串行通信接口全雙工 1個(gè)ROMTXD RXD中斷系統(tǒng)并行通信接口48bit定時(shí)/計(jì)數(shù)器

3、 n16bitRAM時(shí) 鐘電 路CPU總線(xiàn)控制51架構(gòu)(51 Architecture)4Xinjiang University1I/O口線(xiàn)功能4個(gè)8位并行 I/O 接口引腳 P0.0P0.7 、P1.0P1.7 、P2.0P2.7和 P3.0P3.7 為多功能引腳,可自動(dòng)切換用作數(shù)據(jù)總線(xiàn)、地址總線(xiàn)、控制總線(xiàn)和或I/O 接口外部引腳。2.1 總體概述三、外部引腳說(shuō)明2控制線(xiàn) (見(jiàn)教材P41-42)ALE/PROG:地址鎖存允許信號(hào)端,低電平信號(hào)為控制鎖存P0輸出的 低8位地址。PSEN:外部程序存儲(chǔ)器讀選通信號(hào)端EA/VDD:程序存儲(chǔ)器選擇信號(hào)端和編程電源輸入端(先片內(nèi)再片外)5Xinjian

4、g University2控制線(xiàn)RST/VPD:復(fù)位信號(hào)端和后備電源輸入端。輸入10ms以上高電平脈沖,單片機(jī)復(fù)位使單片機(jī)恢復(fù)到初始狀態(tài)。VPD使用后備電源,可實(shí)現(xiàn)掉電保護(hù)片內(nèi)RAM的數(shù)據(jù)。3. 電源及時(shí)鐘引線(xiàn) 工作電源:VCC、VSS 時(shí)鐘輸入:XTAL1、XTAL2 。復(fù)位電路:1)上電復(fù)位 2)外部信號(hào)復(fù)位單片機(jī)RSTK+5V2001K30F2.1 總體概述6表2-2 引腳功能 7Xinjiang University表2-2 引腳功能 8Xinjiang University表2-2 引腳功能 9Xinjiang University2.2 微處理器一、運(yùn)算器 以算術(shù)邏輯單元 ALU為

5、核心,含累加器 A、暫存器、程序狀態(tài)字PSW、B寄存器等。1、ALU 它在控制器所發(fā)內(nèi)部控制信號(hào)的控制下進(jìn)行各種算術(shù)操作和邏輯操作。例如:+、算術(shù)運(yùn)算,與、或、非、異或 邏輯運(yùn)算、循環(huán)移位、位處理。 其特點(diǎn)是: 在B寄存器配合下,能完成乘法與除法操作。 可進(jìn)行多種內(nèi)容交換操作。 能作比較判跳操作。 有很強(qiáng)的位操作功能。 10Xinjiang University2.2 微處理器2寄存器陣列(1)工作寄存器R0R7 (8位)作用:暫存運(yùn)算數(shù)據(jù)和中間結(jié)果。 4個(gè)工作寄存器區(qū),工作寄存器0區(qū)3區(qū)。每個(gè)區(qū)均含8個(gè)寄存器R0R7 。用PSW中的兩位PSW.4和PSW.3來(lái)切換工作寄存器區(qū),選用一個(gè)工作寄

6、存器區(qū)進(jìn)行讀寫(xiě)操作。(見(jiàn)教材P43,49)11Xinjiang University2.2 微處理器2)累加器 累加器A是最常用的專(zhuān)用寄存器。進(jìn)入ALU作算術(shù)操作和邏輯操作的操作數(shù)很多來(lái)自A,操作結(jié)果也常送回A。有許多單操作數(shù)指令都是針對(duì)A的。 ADD A,30H; 在指令中,累加器Acc常簡(jiǎn)寫(xiě)為“A” ADD A, 30H; 該指令的含義是以累加器Acc內(nèi)容作為被加數(shù),加數(shù)存放在內(nèi)部RAM的30H單元中,相加后的結(jié)果,即和再存放到累加器Acc中。 3)B寄存器 B寄存器主要用于乘法和除法運(yùn)算。在乘法運(yùn)算中,被乘數(shù)放在累加器A中,乘數(shù)放在B寄存器中,積的高8位存放B寄存器中,低8位放在累加器A

7、中。也可用作通用寄存器。 如: MUL A B ; BAAB 12Xinjiang University4)程序狀態(tài)字程序狀態(tài)字PSW 教材P42-43 程序狀態(tài)字程序狀態(tài)字 PSW是一個(gè)8位寄存器,它包含了許多程序狀態(tài)信息,其各位的含義見(jiàn)圖2。b6b5b4b3b2b1b0CyACF0RS1RS0OV-Pb7Cy:進(jìn)位標(biāo)志。在進(jìn)行加法運(yùn)算時(shí),當(dāng)最高位即b7位有進(jìn)位,或執(zhí)行減 法運(yùn)算最高位有借位時(shí),Cy為1;反之為0。 2.2 微處理器13Xinjiang UniversityAC:輔助進(jìn)位標(biāo)志。在進(jìn)行加法運(yùn)算時(shí),當(dāng)b3位有進(jìn)位,或執(zhí)行減法運(yùn)算b3 位有借位時(shí),AC為1,反之為0。設(shè)置輔助進(jìn)位標(biāo)

8、志AC的目的是為了便于 BCD碼加法、減法運(yùn)算的調(diào)正。OV: 溢出標(biāo)志。在計(jì)算機(jī)內(nèi),帶符號(hào)數(shù)一律用補(bǔ)碼表示。在8位二進(jìn)制中, 補(bǔ)碼所能表示的范圍是-128+127,而當(dāng)運(yùn)算結(jié)果超出這一范圍時(shí),OV 標(biāo)志為1,即溢出;反之為0。 (教材P43描述很清楚)P: 奇偶標(biāo)志。該標(biāo)志位始終體現(xiàn)累加器Acc中“1”的個(gè)數(shù)的奇偶性。 如果累加器A中“1”的個(gè)數(shù)為奇數(shù),則P位置1;當(dāng)累加器A中“1”的個(gè)數(shù)為偶數(shù)(包括 0個(gè))時(shí),P位為“0”,即MCS-51采用奇校驗(yàn)方式。 2.2 微處理器14Xinjiang UniversityRS1、RS0:工作寄存器組選擇位,以選定4個(gè)工作寄存器中的一個(gè)組投人工作。如下

9、面表格。 表 2.2 RS1、 RS0與片內(nèi)工作寄存器組的對(duì)應(yīng)關(guān)系 RS1RS0寄存器組片內(nèi)PAM地址通用寄存器名稱(chēng)000組00H07HR0R7011組08H0FHR0R7102組10H17HR0R7013組18H1FHR0R7軟件標(biāo)志FO:這是用戶(hù)定義的一個(gè)狀態(tài)標(biāo)志??赏ㄟ^(guò)軟件對(duì)它置位、清零; 在編程時(shí),也常測(cè)試其是否建起而進(jìn)行程序分支。2.2 微處理器15Xinjiang University例1:2個(gè)數(shù)相加后,分析各標(biāo)志位的值16Xinjiang University見(jiàn)教材P43,例2-1例2、將有符號(hào)兩數(shù)相加,即0100 1100加 0110 0101,標(biāo)志位各位為何值? 0100 1

10、100(+76) + 0110 0101(+101) 1011 0001 CF=0,PF=0,AC=1,OV=1例3、將兩數(shù)相加,即0110 0100加1101 0101,標(biāo)志位各位為何值? 0110 0100(+100) + 1101 0101(-43) 10011 1001 (+57) CF=1,PF=0,AC=0,OV=12.2 微處理器17Xinjiang University作業(yè):1.指出執(zhí)行下述指令后,相加的結(jié)果及C=?P=?OV=?AC=?寫(xiě)出分析過(guò)程 MOV A,#36H ADD A,#93H2.指出執(zhí)行下述指令后,相加的結(jié)果及C=?P=?OV=?AC=?寫(xiě)出分析過(guò)程 MOV

11、A,#10101101B ADD A,#10011101B2.2 微處理器18Xinjiang University5)數(shù)據(jù)指針DPTR(16位) 存放片外存儲(chǔ)器地址,作為片外存儲(chǔ)器的指針。可分成兩個(gè)8位寄存器DPH、DPL使用。由DPH(數(shù)據(jù)指針高8位)和DPL(數(shù)據(jù)指針低8位)組成,用于存放外部數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)單元地址。通過(guò)DPTR寄存器間接尋址方式可以訪(fǎng)問(wèn)0000HFFFFH全部64 KB的外部數(shù)據(jù)存儲(chǔ)器空間。 MOV DPTR,#107FH MOVX DPTR,A 6)堆棧指針SP(8位)堆棧是按“先進(jìn)后出”原則存取數(shù)據(jù)的存儲(chǔ)區(qū)。MCS-51堆棧設(shè)在片內(nèi)RAM區(qū)。數(shù)據(jù)入棧/出棧時(shí),SP

12、自動(dòng)加1/減 1,其內(nèi)容始終為棧頂?shù)刂?。?fù)位時(shí) SP=07H。MOV SP,#5FH ; 將堆棧設(shè)在60H單元之后 2.2 微處理器19Xinjiang University7)程序計(jì)數(shù)器PC(16位)CPU總是按PC的指示讀取程序。PC可自動(dòng)加1。因此CPU執(zhí)行程序一般是順序方式。當(dāng)發(fā)生轉(zhuǎn)移、子程序調(diào)用、中斷和復(fù)位等操作,PC被強(qiáng)制改寫(xiě),程序執(zhí)行順序也發(fā)生改變。復(fù)位時(shí),PC=0000H。 8)I/O端口寄存器 P0、P1、P2、P3口寄存器實(shí)際上就是P0P3口對(duì)應(yīng)的I/O端口鎖存器,用于鎖存通過(guò)端口輸出的數(shù)據(jù)。在計(jì)算機(jī)中,對(duì)于沒(méi)有定義的位或字節(jié),我們必須注意是否存在物理存儲(chǔ)單元與之對(duì)應(yīng)。當(dāng)存

13、在物理存儲(chǔ)單元與之對(duì)應(yīng)時(shí),用戶(hù)就可以讀寫(xiě)。2.2 微處理器20Xinjiang University2.1 總體概述-內(nèi)部結(jié)構(gòu)框圖21Xinjiang University2.2 微處理器二、控制器 根據(jù)不同指令產(chǎn)生相應(yīng)操作序列和控制信號(hào)。三、振蕩器和CPU時(shí)序 1、振蕩器 協(xié)調(diào)各功能部件按序工作。MCS - 51系列單片機(jī)片內(nèi)含有一個(gè)高增益的反相放大器,通過(guò)XTAL1, XTAL2外接作為反饋元件的晶體后便成為自激振蕩器,接法見(jiàn)圖a。XTAL1 單片機(jī) XTAL2 A:內(nèi)部時(shí)鐘電路; b:外部振蕩源 22Xinjiang University2.2 微處理器2、CPU時(shí)序 振蕩器輸出的振蕩脈

14、沖經(jīng)2分頻成為內(nèi)部時(shí)鐘信號(hào),用作單片機(jī)內(nèi)部各功能部件按序協(xié)調(diào)工作的控制信號(hào);其周期稱(chēng)為時(shí)鐘周期(狀態(tài)周期)。 機(jī)器周期:6個(gè)時(shí)鐘周期構(gòu)成一個(gè)機(jī)器周期。 指令周期:CPU執(zhí)行一條指令的時(shí)間。指令周期以機(jī)器周期為單位。 分為:?jiǎn)沃芷?、雙周期和四周期指令。思考題:設(shè)應(yīng)用單片機(jī)晶振頻率為12MHz,問(wèn)機(jī)器周期為多少?單周期、雙周期和四周期指令指令周期分別為多少?機(jī)器周期為1s,單指令周期為1s,雙指令周期為2s,四指令周期為4s23Xinjiang University2.2 微處理器P1,p2:每個(gè)時(shí)鐘周期的兩個(gè)節(jié)拍。機(jī)器周期包括12個(gè)振蕩器周期。ALE脈沖在每個(gè)周期的S1P2至S2P1,S4P2至

15、s5p1期間各發(fā)生一次。24Xinjiang University2.3 存儲(chǔ)器單片機(jī)的片內(nèi)存儲(chǔ)器一般既有只讀存儲(chǔ)器,也有讀寫(xiě)存儲(chǔ)器。并且可進(jìn)行片外存儲(chǔ)器的擴(kuò)展。書(shū)第45頁(yè):表2-3。一、程序存儲(chǔ)器(ROM)1、編址與訪(fǎng)問(wèn) 計(jì)算機(jī)工作時(shí)是循序執(zhí)行一條條指令的,為此,設(shè)有一個(gè)專(zhuān)用寄存器,用以存放將要執(zhí)行的指令的地址,稱(chēng)為程序計(jì)數(shù)器 (PC)。 它還具有計(jì)數(shù)的功能,每取出指令的一個(gè)字節(jié)后,其內(nèi)容又自行加 1,指向下一字節(jié)的地址,以便依次自程序存儲(chǔ)器取指令執(zhí)行、完成某種程序。MCS一51系列單片機(jī)的PC有16位,所以程序存儲(chǔ)器的尋址范圍可以有64KB。與此相應(yīng),程序存儲(chǔ)器的編址自0000H開(kāi)始,最大

16、可至FFFFH。 片內(nèi)程序存儲(chǔ)器的容量遠(yuǎn)小于該數(shù),通過(guò)擴(kuò)展片外存儲(chǔ)器。程序存儲(chǔ)器的編址規(guī)律為:先片內(nèi)、后片外,片內(nèi),片外連續(xù),二者一般不作重疊。25Xinjiang University2.3 存儲(chǔ)器一、程序存儲(chǔ)器(ROM)1、編址與訪(fǎng)問(wèn) MCS一51系列單片機(jī)的程序存儲(chǔ)器的尋址范圍可以有64KB。與此相應(yīng),程序存儲(chǔ)器的編址自0000H開(kāi)始,最大可至FFFFH。 復(fù)位后,先執(zhí)行片內(nèi)程序存儲(chǔ)器的程序(4K),當(dāng)PC中內(nèi)容超過(guò)0FFFH(51系列)時(shí),將自動(dòng)轉(zhuǎn)去執(zhí)行片外程序存儲(chǔ)器的程序。 將強(qiáng)令執(zhí)行片外程序存儲(chǔ)器的程序。EA1EA0 2. 特殊存儲(chǔ)單元復(fù)位入口: 0000H 中斷入口: 0003H

17、002BH 程序存儲(chǔ)器中有7個(gè)單元留作特殊用途。為單片機(jī)的特殊功能提供程序入口地址。EA不同電平,選擇片內(nèi)或片外低位存儲(chǔ)單元。26Xinjiang University一、程序存儲(chǔ)器(ROM)2.3 存儲(chǔ)器 2. 特殊存儲(chǔ)單元系統(tǒng)復(fù)位PC的內(nèi)容 0000H外部中斷0服務(wù)程序入口地址0003H定時(shí)器0中斷服務(wù)程序入口地址 000BH外部中斷1服務(wù)程序入口地址0013H定時(shí)器1中斷服務(wù)程序入口地址 001BH串行口中斷服務(wù)程序入口地址0023H定時(shí)器2中斷服務(wù)程序入口地址 002BH MCS-51系列單片機(jī)保留給系統(tǒng)使用的程序存儲(chǔ)器地址空間如下:27Xinjiang University一、程序存

18、儲(chǔ)器(ROM)2.3 存儲(chǔ)器 復(fù)位后,程序計(jì)數(shù)器PC為0000H,即從程序存儲(chǔ)器的0000H單元讀出第一條指令,因此可在0000H單元內(nèi)放置一條跳轉(zhuǎn)指令,如LJMP XXXX(XXXX表示主程序入口地址)。由于系統(tǒng)給每一中斷服務(wù)程序預(yù)留了8個(gè)字節(jié),因此,用戶(hù)主程序一般存放在0033H單元以后,如: ORG 0000H ;用偽指令ORG指示隨后的指令碼從0000H單元開(kāi)始存放 LJMP Main ;在0000H單元放一條長(zhǎng)跳轉(zhuǎn)指令,共3個(gè)字節(jié) ORG 0003H LJMP INT0 ;跳到外中斷服務(wù)程序的入口地址 ;其他中斷入口地址初始化 ORG 50H ;主程序代碼從50H單元開(kāi)始存放Main

19、: ;Main是主程序入口地址標(biāo)號(hào) 28Xinjiang University2.3 存儲(chǔ)器29Xinjiang University2.3 存儲(chǔ)器二、數(shù)據(jù)存儲(chǔ)器 P491、編址與訪(fǎng)問(wèn) MCS一51系列單片機(jī)的片內(nèi)數(shù)據(jù)存儲(chǔ)器除RAM(128B)外、還有特殊功寄存器SFR塊(128B)。 片內(nèi)數(shù)據(jù)存儲(chǔ)器的容量很小,常需擴(kuò)展片外數(shù)據(jù)存儲(chǔ)器。MCS一51系列單片機(jī)有一個(gè)數(shù)據(jù)指針寄存器可用于尋址程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器單元,它也有16位,尋址范圍也可達(dá)64KB。故片外數(shù)據(jù)存儲(chǔ)器的容量可大到與程序存儲(chǔ)器一樣,其編址都自0000H開(kāi)始,最大可至 FFFFH。 如只需擴(kuò)展少量片外數(shù)據(jù)存儲(chǔ)器,容量不超過(guò) 256

20、個(gè)單元,則也可按 8位二進(jìn)制數(shù)編址,自O(shè)OH開(kāi)始,最大可至FFH。表2-3 內(nèi)部RAM地址空間 字節(jié)地址片內(nèi)數(shù)據(jù)存儲(chǔ)器SFRFFH80H片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM7FH00H30Xinjiang University2.3 存儲(chǔ)器2、片內(nèi)數(shù)據(jù)存儲(chǔ)器51子系列單片機(jī)片內(nèi)RAM共分為工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖器區(qū)等三個(gè)區(qū)域。(1)工作寄存器(00H1FH) 工作寄存器也稱(chēng)通用寄存器,供用戶(hù)編程時(shí)使用,臨時(shí)寄存8位信息。由圖見(jiàn)它分成4個(gè)組,每個(gè)組都是8個(gè)單元,用作8個(gè)寄存器,都以RO一R7來(lái)表示。同時(shí)只用一組工作寄存器,其他各組不工作、待用。哪一組工作可由程序狀態(tài)字 RSW中的 RSL RSO兩位進(jìn)

21、行選擇。31Xinjiang University表 2.4 寄存器與RAM 地址對(duì)照表 2.3 存儲(chǔ)器32Xinjiang University2.3 存儲(chǔ)器(2)位尋址區(qū) (20H一2FH)單元是位尋址區(qū),該區(qū)的每一位都被賦予了一全位地址??蛇M(jìn)行位尋址,對(duì)特定位進(jìn)行處理、內(nèi)容傳送或據(jù)以判跳,給編程帶來(lái)方便。通??砂殉绦蛑杏玫降臓顟B(tài)標(biāo)志、位控制變量等放于位尋址區(qū)。33Xinjiang University(3)數(shù)據(jù)緩沖區(qū) 30H一7FH是數(shù)據(jù)緩沖區(qū),即用戶(hù)RAM區(qū),共80個(gè)單元。 由于工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)統(tǒng)一編址 使用同樣的指令訪(fǎng)問(wèn)三個(gè)區(qū)的單元既有自己的獨(dú)特功能,又可統(tǒng)一調(diào)度使

22、用。(4)堆棧與堆棧指針 片內(nèi)RAM的部分單元還可以用作堆棧。有一個(gè)8位的堆棧指針寄存器SP,專(zhuān)用于指出當(dāng)前堆棧頂部是片內(nèi)RAM的哪一單元。51單片機(jī)系統(tǒng)復(fù)位后SP的初值為07H,也就是說(shuō)將從 08H單元開(kāi)始堆放信息。但是,51系列的棧區(qū)不是固定的,只要通過(guò)軟件改變SP寄存器的值便可更動(dòng)棧區(qū)。2.3 存儲(chǔ)器34Xinjiang University30H數(shù)據(jù)緩沖區(qū)/堆棧區(qū):字節(jié)地址:30H7FH一般使用30H7FH位尋址區(qū):字節(jié)地址:20H2FH位地址為:00H7FH工作寄存器區(qū):字節(jié)地址:00H1FH51系列單片機(jī)片內(nèi)RAM的配置35Xinjiang University例如: CLR 4D

23、2.3 存儲(chǔ)器3、特殊功能寄存器塊 特殊功能寄存器也稱(chēng)專(zhuān)用寄存器,專(zhuān)用于控制、管理片內(nèi)算術(shù)邏輯部件、并行I/O口,串行I/O口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)等功能模塊的工作,用戶(hù)在編程時(shí)可以置數(shù)設(shè)定,卻不能自由移作它用。在51系列單片機(jī)中,將各專(zhuān)用寄存器 (PC例外)與片內(nèi)RAM統(tǒng)一編址,且作為直接尋址字節(jié),可直接尋址。除PC外,51子系列有 18個(gè)專(zhuān)用寄存器,其中3個(gè)為雙字節(jié)寄存器,共占用21個(gè)字節(jié);52子系列有21個(gè)專(zhuān)用寄存器,其中5個(gè)為雙字節(jié)寄存器,共占用26個(gè)字節(jié)。特殊功能寄存器SFR占用字節(jié)地址:80HFFH (見(jiàn)教材P50,表格2-7)位尋址寄存器: 其字節(jié)地址可被8整除。 例如:CL

24、R C; MOV C, P1.0專(zhuān)用寄存器:A、B、PSW、DPTR、SPI/O接口寄存器: P0、P1、P2、P3、SBUF、TMOD、TCON、SCON 36Xinjiang University表 2.6 SFR特殊功能寄存器地址表 2.3 存儲(chǔ)器37Xinjiang University表 2.6 SFR特殊功能寄存器地址表 2.3 存儲(chǔ)器38Xinjiang University表 2.6 SFR特殊功能寄存器地址表 2.3 存儲(chǔ)器39Xinjiang University2.4.1實(shí)現(xiàn)定時(shí)的方法軟件定時(shí)軟件延時(shí)不占用硬件資源,但占用了CPU時(shí)間,降低了CPU的利用率。例如延時(shí)程序。

25、采用時(shí)基電路定時(shí)例如采用555電路,外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時(shí)電路。但在硬件連接好以后,定時(shí)值與定時(shí)范圍不能由軟件進(jìn)行控制和修改,即不可編程,且定時(shí)時(shí)間容易漂移。可編程定時(shí)器定時(shí)最方便的辦法是利用單片機(jī)內(nèi)部的定時(shí)器/計(jì)數(shù)器。結(jié)合了軟件定時(shí)精確和硬件定時(shí)電路獨(dú)立的特點(diǎn)。定時(shí)器/計(jì)數(shù)器如何使用呢?40Xinjiang University2.4 定時(shí)器/計(jì)數(shù)器 定時(shí)器/計(jì)數(shù)器是MCS一51單片機(jī)的重要功能模塊之一。在檢測(cè)、控制及智能儀器等應(yīng)用中,常用定時(shí)器作實(shí)時(shí)時(shí)鐘,實(shí)現(xiàn)定時(shí)檢測(cè)、定時(shí)控制。還可用定時(shí)器產(chǎn)生毫秒寬的脈沖,驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)一類(lèi)的電氣機(jī)械。計(jì)數(shù)器主要用于外部事件的計(jì)

26、數(shù)。 一、主要特性 (1)8031/8051/8751單片機(jī)有兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器-定時(shí)器/計(jì)數(shù)器 0與定時(shí)器/計(jì)數(shù)器 1,可由程序選擇作為定時(shí)器用或作為計(jì)數(shù)器用,定時(shí)時(shí)間或計(jì)數(shù)值也可由程序設(shè)定。 (2)每個(gè)定時(shí)器/計(jì)數(shù)器都具有4種工作方式,可用程序選擇。 (3)任一定時(shí)器/計(jì)數(shù)器在定時(shí)時(shí)間到或計(jì)數(shù)值到時(shí),可由程序安排產(chǎn)生中斷請(qǐng)求信號(hào)或不產(chǎn)生中斷請(qǐng)求信號(hào)。 (4)8032/8052有3個(gè)可編程定時(shí)器/計(jì)數(shù)器,增加了定時(shí)器/計(jì)數(shù)器2。定時(shí)器/計(jì)數(shù)器2有3種工作方式,可用程序選擇。41Xinjiang University2.4.2.定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)和工作原理定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu) 定時(shí)器

27、/計(jì)數(shù)器的實(shí)質(zhì)是加1計(jì)數(shù)器(16位),由高8位和低8位兩個(gè)寄存器組成。TMOD是定時(shí)器/計(jì)數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動(dòng)和停止及設(shè)置溢出標(biāo)志。T1計(jì)數(shù)器T0計(jì)數(shù)器控制單元42Xinjiang University定時(shí)器/計(jì)數(shù)器的工作原理計(jì)數(shù)器輸入的計(jì)數(shù)脈沖源系統(tǒng)的時(shí)鐘振蕩器輸出脈沖經(jīng)12分頻后產(chǎn)生;T0(P3.4)或T1(P3.5)引腳輸入的外部脈沖源。計(jì)數(shù)過(guò)程每來(lái)一個(gè)脈沖計(jì)數(shù)器加1,當(dāng)加到計(jì)數(shù)器為全1(即FFFFH)時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請(qǐng)求(定時(shí)器/計(jì)數(shù)器中斷允許

28、時(shí))。如果定時(shí)器/計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿(mǎn)。2.4.2.定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)和工作原理43Xinjiang University2.4.2.定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)和工作原理定時(shí)應(yīng)用用作定時(shí)器:此時(shí)設(shè)置為定時(shí)器模式,加1計(jì)數(shù)器是對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)(1個(gè)機(jī)器周期等于12個(gè)振蕩周期,即計(jì)數(shù)頻率為晶振頻率的1/12)。計(jì)數(shù)值N乘以機(jī)器周期Tcy就是定時(shí)時(shí)間t 。例如:?jiǎn)纹瑱C(jī)晶振頻率為12MHz,機(jī)器周期為1s,即Tcy = 1s 。當(dāng)計(jì)數(shù)值為100時(shí),則定時(shí)時(shí)間為100s 。定時(shí)與計(jì)數(shù)都是利用計(jì)數(shù)實(shí)現(xiàn)!計(jì)數(shù)運(yùn)用用作計(jì)數(shù)器:此時(shí)設(shè)置為計(jì)數(shù)器模式,外部事

29、件計(jì)數(shù)脈沖由T0或T1引腳輸入到計(jì)數(shù)器。每來(lái)一個(gè)外部脈沖,計(jì)數(shù)器加1。但單片機(jī)對(duì)外部脈沖有基本要求:脈沖的高低電平持續(xù)時(shí)間都必須大于1個(gè)機(jī)器周期。44Xinjiang University2.4.3.定時(shí)器/計(jì)數(shù)器的控制工作方式寄存器(TMOD)GATE:門(mén)控位。GATE0時(shí),只要用軟件使TCON中的TR0或TR1為1,就可以啟動(dòng)定時(shí)器/計(jì)數(shù)器工作;(即需要一個(gè)啟動(dòng)條件,一般情況下GATE=0)GATE1時(shí),要用軟件使TR0或TR1為1,同時(shí)外部中斷引腳也為高電平時(shí),才能啟動(dòng)定時(shí)器/計(jì)數(shù)器工作,即需要兩個(gè)啟動(dòng)條件。(見(jiàn)教材P52)C/T :定時(shí)/計(jì)數(shù)模式選擇位。 C/T 0為定時(shí)模式; C/T

30、 =1為計(jì)數(shù)模式。M1M0:工作方式設(shè)置位。M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定時(shí)器T1定時(shí)器T045Xinjiang University計(jì)數(shù)器工作方式選擇M1 M0工 作 方 式功 能 說(shuō) 明0 0方式013位計(jì)數(shù)器0 1方式116位計(jì)數(shù)器1 0方式2自動(dòng)重裝8位計(jì)數(shù)器1 1方式3定時(shí)器0:分成兩個(gè)8位定時(shí)器1:停止計(jì)數(shù)建議不采用該工作方式!在精確定時(shí)采用該工作方式!2.4.3.定時(shí)器/計(jì)數(shù)器的控制46Xinjiang University控制寄存器TCONTCON的低4位用于控制外部中斷,在后面介紹。TCON的高4位用于控制定時(shí)器/計(jì)數(shù)器的啟動(dòng)和

31、中斷申請(qǐng)。其格式如下:(見(jiàn)教材P53)TF1(TCON.7):T1溢出中斷請(qǐng)求標(biāo)志位。T1計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動(dòng)清0。TR1(TCON.6):T1起/停控制位。1:?jiǎn)?dòng) 0:停止TF0(TCON.5):T0溢出中斷請(qǐng)求標(biāo)志位,其功能與TF1類(lèi)同。TR0(TCON.4):T0起/??刂莆弧?:?jiǎn)?dòng) 0:停止TCON的低4位用于控制外部中斷。2.4.3.定時(shí)器/計(jì)數(shù)器的控制47Xinjiang University2.4.4定時(shí)器/計(jì)數(shù)器的工作方式方式0 (M1=0,M0=0)方式0為13位計(jì)數(shù),由TL0的低5位(高3位未用)和TH0的8位組成TL0的低

32、5位溢出時(shí)向TH0進(jìn)位,TH0溢出時(shí),置位TCON中的TF0標(biāo)志,向CPU發(fā)出中斷請(qǐng)求。13位計(jì)數(shù)器計(jì)數(shù)/定時(shí)選擇中斷請(qǐng)求該方式計(jì)算不方便,建議不采用!48Xinjiang University方式0 (M1=0,M0=0) 1. 初值X為08191(213 -1),送給TH0、TL0。計(jì)數(shù)初值為N=8192-X。 X=8191時(shí)的最小計(jì)數(shù)值為1, X=0時(shí)的最大計(jì)數(shù)值為8192。即計(jì)數(shù) 范圍為18192。 2. 當(dāng)加法計(jì)數(shù)器TH0溢出后,必須對(duì)TH0、TL0重修設(shè)置初值,否則按 從0開(kāi)始計(jì)數(shù)。 3.定時(shí)時(shí)間為T(mén)=N*TCY =(8192-X)* TCY2.4.4定時(shí)器/計(jì)數(shù)器的工作方式49X

33、injiang UniversityTF1TR1TF0TR0GATEC/TM1M0GATEC/TM1M01&110T0引腳INT0引腳10機(jī)器周期TH0TL08位8位溢出TCONTMODD0D7D7D0申請(qǐng)中斷TF1TR1TF0TR0GATEC/TM1M0GATEC/TM1M01&110T0引腳INT0引腳10機(jī)器周期TH0TL08位8位溢出TCONTMODD0D7D7D0申請(qǐng)中斷方式1(M1=0,M0=1)方式1的計(jì)數(shù)位數(shù)是16位,由TL0(TL1)作為低8位、TH0(TH1)作為高8位,組成了16位加1計(jì)數(shù)器 。 16位計(jì)數(shù)器2.4.4定時(shí)器/計(jì)數(shù)器的工作方式50Xinjiang Univ

34、ersity方式1 (M1=0,M0=1) 1. 初值X為065535(2161),送給TH1、TL1。計(jì)數(shù)初值為N=65536-X。 X=65535時(shí)的最小計(jì)數(shù)值為1, X=0時(shí)的最大計(jì)數(shù)值為65536。即計(jì)數(shù) 范圍為165536。 2. 當(dāng)加法計(jì)數(shù)器TH1溢出后,必須對(duì)TH1、TL1重修設(shè)置初值,否則按 從0開(kāi)始計(jì)數(shù)。 3.定時(shí)時(shí)間為T(mén)=N*TCY =(65536-X)* TCY2.4.4定時(shí)器/計(jì)數(shù)器的工作方式51Xinjiang University方式1 例:已知振蕩器振蕩頻率fosc為12MHz,要求定時(shí)器/計(jì)數(shù)器0產(chǎn)生10ms定時(shí),試編寫(xiě)初始化程序。 TCY機(jī)器周期為1s,選擇工

35、作方式1。 1)定時(shí)器0計(jì)數(shù)初值:T=(65536-X)* TCY = (65536-X)* 1s10ms X55536D8F0H TH0=D8H, TL0=F0H 2.4.4定時(shí)器/計(jì)數(shù)器的工作方式M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定時(shí)器T1定時(shí)器T0初始化程序:START: MOV TL0, #F0H MOV TH0, #D8H MOV TMOD,#01H SETB TRO(TMOD)0000 0001b 2)編程:TMOD:52Xinjiang University方式2方式2為自動(dòng)重裝初值的8位計(jì)數(shù)方式。 在方式2下,當(dāng)計(jì)數(shù)器計(jì)滿(mǎn)255(FFH

36、)溢出時(shí),CPU自動(dòng)把TH 的值裝入TL中,不需用戶(hù)干預(yù)。因此特別適合于用作較精確的脈沖信號(hào)發(fā)生器。 8位計(jì)數(shù)器TH1重裝單元2.4.4 定時(shí)器/計(jì)數(shù)器的工作方式(M1=1,M0=0)53Xinjiang University方式2 (M1=1,M0=0) 1. TL1為8位加法計(jì)數(shù)器使用,TH1作為初值寄存器。 TH1、TL1 的初值由軟件預(yù)置。即計(jì)數(shù)范圍為1256。 2.當(dāng)加法計(jì)數(shù)器TL1溢出后,置位TF1,且重裝設(shè)置初值,將TH1中的初值自動(dòng)裝入TL1,使TL1重新計(jì)數(shù)。 TH1中的內(nèi)容保持不變。 例:已知振蕩器振蕩頻率fosc為12MHz,要求每隔200s產(chǎn)生一個(gè)定時(shí)控制信號(hào),試計(jì)算定

37、時(shí)初值是多少。2.4.4定時(shí)器/計(jì)數(shù)器的工作方式T=(256-X)* TCY = (256-X)* 1s200s X5638H, TH1=38H, TL1=38H 54Xinjiang University方式3 (M1=1,M0=1)方式3只適用于定時(shí)器/計(jì)數(shù)器T0,定時(shí)器T1方式3時(shí)相當(dāng)于TR1=0,停止計(jì)數(shù)。 工作方式3將T0分成為兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0 。 2.4.4定時(shí)器/計(jì)數(shù)器的工作方式55Xinjiang University2.4.4定時(shí)器/計(jì)數(shù)器的工作方式方式3 (M1=1,M0=1) 1. 當(dāng)定時(shí)器/計(jì)數(shù)器0工作在方式3時(shí),TL0、TH0成為兩個(gè)獨(dú)立的8位加法計(jì)

38、數(shù)器使用。 TL0與方式0或1類(lèi)似,計(jì)數(shù)范圍為1256。 TH0作為非門(mén)控方式的定時(shí)器,借用定時(shí)器/計(jì)數(shù)器1的控制位TR1、TF1 。 56Xinjiang University57 定時(shí)器/計(jì)數(shù)器的初始化 在使用定時(shí)器/計(jì)數(shù)器之前由軟件設(shè)置其功能,即初始化。1、初始化的步驟(1)確定工作模式(計(jì)數(shù)/定時(shí))、工作方式和啟動(dòng)控制方式,并寫(xiě)入TMOD寄存器(2)設(shè)置定時(shí)或計(jì)數(shù)初值:可直接寫(xiě)入TH0、TL0或TH1、TL1中。16位計(jì)數(shù)初值必須分兩次寫(xiě)入對(duì)應(yīng)計(jì)數(shù)器(3)根據(jù)要求確定是否采用中斷方式:直接對(duì)IE位賦值。開(kāi)中斷時(shí),對(duì)應(yīng)位置“1”;采用程序查詢(xún)方式時(shí),IE位應(yīng)清0以進(jìn)行中斷屏蔽(4)啟動(dòng)定

39、時(shí)/計(jì)數(shù)器:使用SETB TRi指令啟動(dòng)若第一步設(shè)置為軟啟動(dòng),即GATE設(shè)置為0時(shí),執(zhí)行指令后,定時(shí)/計(jì)數(shù)器開(kāi)始工作。若GATE設(shè)置為1時(shí),還必須由外部中斷引腳 和 共同控制,只有外部引腳電平為高時(shí),執(zhí)行指令后,定時(shí)/計(jì)數(shù)器開(kāi)始工作。2.4.2.定時(shí)器/計(jì)數(shù)器57Xinjiang University58 計(jì)數(shù)初值的計(jì)算最大計(jì)數(shù)值M與定時(shí)/計(jì)數(shù)器工作方式有關(guān): 方式0:M=213=8192 方式1:M=216=65536 方式2: M=28=256 方式3: M=256,定時(shí)/計(jì)數(shù)器分成兩個(gè)獨(dú)立的8位計(jì)數(shù)器,所以TH0、TL0的M均為256. T0和T1均為加1計(jì)數(shù)器,當(dāng)加到最大值(00H或0

40、000H)時(shí),產(chǎn)生溢出,將TCON寄存器的TF位置1,產(chǎn)生溢出中斷。計(jì)數(shù)器初值X的計(jì)算公式: (1)計(jì)數(shù)工作模式時(shí) XM計(jì)數(shù)值 (2)定時(shí)工作模式時(shí) X M計(jì)數(shù)值 Mt/T=M (fosc x t)/12 fosc為晶振頻率,t為要求定時(shí)的時(shí)間。2.4.2.定時(shí)器/計(jì)數(shù)器58Xinjiang University2.4.5.定時(shí)器/計(jì)數(shù)器應(yīng)用例1:編寫(xiě)一段程序,讓51MCU的P1.7輸出1ms的方波(用定時(shí)器T1完成),fosc=12MHz。定時(shí)器初值計(jì)算(TCY=1us)此時(shí)定時(shí)時(shí)間采用0.5ms1、采用方式0:N=8192-500/1=7692=1E0CH 所以(TH1)=1E0H,(TL

41、1)=0CH2、采用方式1:N=65536-500/1=65036=0FE0C所以(TH1)=0FEH,(TL1)=0CH注意定時(shí)器的初值計(jì)算方法!59Xinjiang University2.4.5.定時(shí)器/計(jì)數(shù)器應(yīng)用程序流程:開(kāi) 始P1.7置1T1模式設(shè)置T1初值設(shè)置(0.5ms)中斷設(shè)置開(kāi)中斷循環(huán)等待中斷啟動(dòng)定時(shí)器T1中斷入口T1初值設(shè)置(0.5ms)中斷返回P1.7取反主程序流程中斷服務(wù)子程序流程60Xinjiang UniversityORG 0000H;主程序 AJMP MAIN ORG 001BH ;參考P47;定時(shí)中斷1入口 AJMP SERT1 ORG 0100HMAIN:S

42、ETB P1.7 MOV TMOD,#10H;設(shè)T1為方式1 MOV TH1,#0FEH;給T1賦初值 MOV TL1,#0CH SETB ET1;開(kāi)定時(shí)器T1中斷 SETB EA SETB TR1;啟動(dòng)定時(shí)器T1 SJMP $ ; 指令“jmp $+3”中的“$”表示當(dāng)前這條指令在代碼段中的偏移量。指令“jmp $+3”表示要向前跳轉(zhuǎn)到距離這條指令3個(gè)字節(jié)的地方SERT1:MOV TH1,#0FEH;定時(shí)器回賦初值 MOV TL1,#0CH CPL P1.7 RETIEND中斷程序基本結(jié)構(gòu)定時(shí)器初始化、開(kāi)中斷中斷服務(wù)程序2.4.5.定時(shí)器/計(jì)數(shù)器應(yīng)用61Xinjiang University

43、作業(yè):編寫(xiě)匯編和C程序?qū)崿F(xiàn),其中C程序參考:/bbs/dpj-127332-1.html例2:編寫(xiě)一段程序,讓51MCU的P1.7輸出占空比為70%,頻率為100HZ的矩形波(用定時(shí)器完成),fosc=6MHz。思路:此題中,高電平時(shí)間為10ms70%=7ms,低電平為3ms。對(duì)于這種高、低電平時(shí)間不一致的波形,通常取出兩個(gè)時(shí)間的相同單位時(shí)間作為定時(shí)器的定時(shí)時(shí)間,對(duì)于不同的電平采用不同的定時(shí)次數(shù)。此例中,可用1ms作為定時(shí)器的定時(shí)時(shí)間。高電平段定時(shí)7次,低電平段定時(shí)3次,即可實(shí)現(xiàn)矩形波輸出。定時(shí)器初值:(65536-X)*2S=1ms X=65536-1000/2=65036=FE0CH2.4

44、.5.定時(shí)器/計(jì)數(shù)器應(yīng)用62Xinjiang University程序流程:主程序流程中斷服務(wù)子程序流程開(kāi) 始P1.7置1T0模式設(shè)置T0初值設(shè)置(1ms)中斷設(shè)置循環(huán)計(jì)數(shù)器R07循環(huán)等待中斷開(kāi)中斷中斷入口P1.7取反P1.7=1?R0賦值為7中斷返回NYR0賦值為3T0回賦初值 (1ms)R0-1=0?YN2.4.5.定時(shí)器/計(jì)數(shù)器應(yīng)用63Xinjiang University程序清單:ORG 0000H;主程序 AJMP MAIN ORG 000BH ;參考P47;定時(shí)中斷T0入口 AJMP SERT0 ORG 0100HMAIN: SETB P1.7 MOV TMOD,#01H;設(shè)T0為

45、方式1 MOV TH0,#0FEH;給T0賦初值 MOV TL0,#0CH MOV R0,#7 SETB ET0;開(kāi)定時(shí)器T0中斷 SETB EA SETB TR0;啟動(dòng)定時(shí)器T0 SJMP $中斷基本程序結(jié)構(gòu)方式設(shè)定、初值設(shè)定1mS開(kāi)中斷啟動(dòng)定時(shí)器、等待中斷2.4.5.定時(shí)器/計(jì)數(shù)器應(yīng)用64Xinjiang University程序清單(續(xù)):SERT0:MOV TH0,#0FEH;定時(shí)器回賦初值 MOV TL0,#0CH DJNZ R0,EXIT CPL P1.7 JNB P1.7,DFZ ;參考P107 MOV R0,#7 SJMP EXIT DFZ:MOV R0,#3 EXIT:RET

46、IEND判斷I/O狀態(tài)、更新初值2.4.5.定時(shí)器/計(jì)數(shù)器應(yīng)用65Xinjiang University作業(yè):編寫(xiě)匯編和C程序?qū)崿F(xiàn),匯編類(lèi)似:/zy010101/article/details/805127232.5 并行輸入/輸出接口 MCS-51單片微型計(jì)算機(jī)芯片有32根輸人/輸出線(xiàn),組成4個(gè)8位并行輸入/輸出接口,分別稱(chēng)為PO口、P1口、P2口和P3口。這4個(gè)接口可以并行輸人或輸出8位數(shù)據(jù);也可按位使用,即每一根輸人輸出線(xiàn)都能獨(dú)立地用作輸人或輸出。一 、P1口 1、結(jié)構(gòu) P1口由8個(gè)這樣的電路所組成。圖中,鎖存器起輸出鎖存作用。P1口的 8個(gè)鎖存器組成特殊功能寄存器,該寄存器也用符號(hào) P

47、1表示。場(chǎng)效應(yīng)管V1,與上拉電阻組成輸出驅(qū)動(dòng)器,以增大負(fù)載能力。上拉電阻的具體結(jié)構(gòu)這里不作介紹。三態(tài)門(mén) 1是輸人緩沖器,三態(tài)門(mén)2在端口操作時(shí)用。圖2-15 P1口1位的結(jié)構(gòu)原理圖66Xinjiang University2.5 并行輸入/輸出接口2、功能 8031/8051/8751單片機(jī)的 P1口只有一種功能通用輸入輸出接口。有輸入、輸出、端口操作3中工作方式:(1)輸出方式:計(jì)算機(jī)執(zhí)行寫(xiě)P1口指令 解釋見(jiàn)教材P60 (1) MOV P1,#02H(2)輸入方式:計(jì)算機(jī)執(zhí)行讀P1口指令 解釋見(jiàn)教材P60 (2) MOV A,P1(3)端口操作:指令可直接進(jìn)行端口操作 ANL Pl, #dat

48、a ;與操作 執(zhí)行過(guò)程分成 “讀一修改一寫(xiě)”三步。 67Xinjiang University2.5 并行輸入/輸出接口3、負(fù)載能力 P1口輸出時(shí)能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。通常把100A的輸人電流定義為一個(gè)TTL負(fù)載的輸入電流,所以P1口輸出電流不小于400A。P1口內(nèi)部有上拉電阻,因此在輸入時(shí),即使由集電極開(kāi)路電路或漏極開(kāi)路電路驅(qū)動(dòng),也無(wú)需外接上拉電阻。68Xinjiang University2.5 并行輸入/輸出接口二、P2口 P2口有兩種用途:通用I/O接口或高8位地址總線(xiàn)。圖2-16是P2口1位的結(jié)構(gòu)原理圖。圖中的模擬開(kāi)關(guān)受內(nèi)部控制信號(hào)控制,用于選擇P2口的工作狀態(tài)。69Xinjia

49、ng University2.5 并行輸入/輸出接口1.地址總線(xiàn)狀態(tài) (見(jiàn)教材P60-61) 計(jì)算機(jī)從片外 ROM中取指令,或者執(zhí)行訪(fǎng)問(wèn)片外 RAM、片外 ROM的指令。模擬開(kāi)關(guān)在右邊,P2口出現(xiàn)程序計(jì)數(shù)器PC的高8位地址或數(shù)據(jù)指針DPTR的高8位地址(A15A8)。取指或訪(fǎng)問(wèn)外部存儲(chǔ)器結(jié)束后,模擬開(kāi)關(guān)在左邊,引腳與數(shù)據(jù)相連。2.通用 I/O接口狀態(tài) P2口作準(zhǔn)雙向通用 I/O接口使用時(shí),其功能與 P1口相同,有輸入、輸出及端口操作 3種工作方式,負(fù)載能力也相同。70Xinjiang University2.5 并行輸入/輸出接口三、P3口 P3口除了作為準(zhǔn)雙向通用I/0接口使用外,每一根線(xiàn)還

50、具有第二種功能。P3口用作 I/0 接口時(shí),其功能與P1口相同。P3口作為第二功能使用時(shí),其鎖存器Q端必須為高電平,單片機(jī)復(fù)位時(shí),鎖存器輸出端為高電平。P3口第二功能中的輸人信號(hào)RXD,INT1、INT2、T0、T1經(jīng)緩沖器3輸人,可直接進(jìn)人芯片內(nèi)部。作為I/O時(shí),此位1作為第二功能,Q171Xinjiang University2.5 并行輸入/輸出接口四、P0口 (參見(jiàn)教材P61-62) V1、V2構(gòu)成輸出驅(qū)動(dòng)器,與門(mén)3、倒相器 4及模擬開(kāi)關(guān)構(gòu)成輸出控制電路。三態(tài)門(mén) 1是輸人緩沖器。 PO口有兩種功能:地址/數(shù)據(jù)分時(shí)復(fù)用總線(xiàn)和通用 I/O接口。控制信號(hào)1,開(kāi)關(guān)在上方,地址/數(shù)據(jù)分時(shí)復(fù)用總線(xiàn)

51、72Xinjiang University2.5 并行輸入/輸出接口1、地址/數(shù)據(jù)分時(shí)復(fù)用總線(xiàn) (見(jiàn)教材P61) 單片機(jī)系統(tǒng)擴(kuò)展片外存貯器時(shí),P0口作為地址/數(shù)據(jù)分時(shí)復(fù)用總線(xiàn)使用。2、通用I/O接口 (見(jiàn)教材P61) 假如系統(tǒng)未擴(kuò)展片外存儲(chǔ)器,P0 口作為準(zhǔn)雙向通用 I/O接口使用。如果輸人由集電極開(kāi)路或漏極開(kāi)路電路驅(qū)動(dòng),應(yīng)外加提升電阻。輸出時(shí),如果負(fù)載是 MOS電路,應(yīng)當(dāng)外加提升電阻。P0口輸出時(shí)能驅(qū)動(dòng)8個(gè)LSTTL負(fù)載,即輸出電流不小于800A。73Xinjiang University1. 計(jì)算機(jī)串行通信基礎(chǔ) 隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計(jì)算機(jī)的通信功能愈來(lái)愈顯得重要

52、。計(jì)算機(jī)通信是指計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。 通信有并行通信和串行通信兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代測(cè)控系統(tǒng)中信息的交換多采用串行通信方式。2.6 串行輸入/輸出接口計(jì)算機(jī)通信是將計(jì)算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換 ??梢苑譃閮纱箢?lèi):并行通信與串行通信。 并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線(xiàn)同時(shí)進(jìn)行傳送 。并行通信控制簡(jiǎn)單、傳輸速度快;由于傳輸線(xiàn)較多,長(zhǎng)距離傳送時(shí)成本高且接收方的各位同時(shí)接收存在困難。 2.6 串行輸入/輸出接口76 串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線(xiàn)上逐個(gè)地傳送。2.6 串行輸入/輸出接口

53、串行通信的特點(diǎn):傳輸線(xiàn)少,長(zhǎng)距離傳送時(shí)成本低,且可以利用電話(huà)網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。 串行通信分為異步通信和同步通信。77 一、異步通信與同步通信 1、異步通信 異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過(guò)程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時(shí)鐘盡可能一致。 2.6.1串行通信的基本概念 78 異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時(shí)間間隔)是任意的,但每個(gè)字符中的各位是以固定的時(shí)間傳送的,即字符之間是異步的(字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系),但同一字符內(nèi)的各位是同步的(各位之間的距離均為“位間隔”的

54、整數(shù)倍)。2.6.1串行通信的基本概念 79 異步通信的數(shù)據(jù)格式 :一幀包含內(nèi)容:起始位(1位,低電平);數(shù)據(jù)位(58位);奇偶校驗(yàn)位(1位);停止位(12位,高電平)從起始位到停止位結(jié)束的時(shí)間周期稱(chēng)為1幀。例如:用ASCII碼編碼傳送,數(shù)據(jù)位為7位,加一個(gè)奇偶校驗(yàn)位、一個(gè)起始位及一個(gè)停止位,每幀共10位。低位高位2.6.1串行通信的基本概念 80 相鄰兩個(gè)字符之間的間隔可以是任意長(zhǎng)度的,兩個(gè)相鄰字符之間根據(jù)需要插入任意個(gè)高電平的空閑位。例如: 字符A(ASCII碼)異步通信的幀格式,設(shè)采用偶校驗(yàn),1位停止位。0100000101數(shù)據(jù)位起始位偶校驗(yàn)位停止位異步通信的特點(diǎn):不要求收發(fā)雙方時(shí)鐘的嚴(yán)

55、格一致,實(shí)現(xiàn)容易,設(shè)備開(kāi)銷(xiāo)較小,但每個(gè)字符要附加23位用于起止位,各幀之間還有間隔,因此傳輸效率不高。2.6.1串行通信的基本概念 1.波特率(Baud Rate)是每秒鐘傳輸二進(jìn)制代碼的位數(shù),單位是:位秒。 例如:每秒鐘傳送240個(gè)字符,而每個(gè)字符格式包含10位(1個(gè)起始位、1個(gè)停止位、8個(gè)數(shù)據(jù)位),這時(shí)的比特率為: 10位/字符 240字符/秒 = 2400位秒2400 bps 位傳送時(shí)間Td = 1/2400 =0.417ms2.6.1串行通信的基本概念 傳輸速率81Xinjiang University82 二、串行通信的傳輸方向 1、單工 單工是指數(shù)據(jù)傳輸僅能沿一個(gè)方向,不能實(shí)現(xiàn)反向

56、傳輸。 2、半雙工 半雙工是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。 3、全雙工 全雙工是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。 單工 半雙工 全雙工2.6.1串行通信的基本概念 83 80C51串行口的結(jié)構(gòu): 串行口主要由發(fā)送數(shù)據(jù)緩沖器、發(fā)送控制器、輸出控制門(mén)、接收數(shù)據(jù)緩沖器、接收控制器、輸人移位寄存器等組成。 2.6 串行輸入/輸出接口84 有兩個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H ;一個(gè)用來(lái)發(fā)送,一個(gè)用來(lái)接收。發(fā)送緩沖器只能寫(xiě)不能讀出,接收緩沖器只能讀出不能寫(xiě)入。在進(jìn)行異步通信時(shí),數(shù)據(jù)的發(fā)送和接收分別在各自的時(shí)鐘(TCLK和RCLK)控制下進(jìn)行,但必須與字符位數(shù)的波特率

57、保持一致。MCS-51串行口的發(fā)送和接收時(shí)鐘可由兩種方式產(chǎn)生:一種:由主機(jī)頻率fOSC經(jīng)分頻后產(chǎn)生。一種:是由內(nèi)部定時(shí)器T1或T2的溢出率經(jīng)分頻后提供。2.6 串行輸入/輸出接口85 串行口的發(fā)送過(guò)程由指令MOV SBUF,A啟動(dòng),即CPU由一條寫(xiě)發(fā)送緩沖器的指令把數(shù)據(jù)(字符)寫(xiě)入串行口的發(fā)送緩沖器SBUF中;再由硬件電路自動(dòng)在字符的始、末加上起始位(低電平)、停止位(高電平)及其它控制位(例如奇偶位或地址/數(shù)據(jù)標(biāo)志位等);然后在移位脈沖的控制下,低位在前,高位在后,從TXD端(方式0除外)一位位地向外發(fā)送。2.6 串行輸入/輸出接口 串行口的接收與否受制于允許接收位REN的狀態(tài),當(dāng)REN被軟

58、件置“1”后,允許接收器接收。接收端RXD一位位接收數(shù)據(jù),直到收到一個(gè)完整的字符數(shù)據(jù)后,控制電路進(jìn)行最后一次移位,自動(dòng)去掉起始位,使接收中斷標(biāo)志位RI置“1”,并向CPU申請(qǐng)中斷。CPU響應(yīng)中斷,用一條指令MOV A,SBUF把接收緩沖器SBUF的內(nèi)容讀入累加器A。86 SCON 是一個(gè)特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志: 80C51串行口的控制寄存器 SM0和SM1為工作方式選擇位,可選擇四種工作方式: 2.6 串行輸入/輸出接口87 SM2,多機(jī)通信控制位,主要用于方式2和方式3。當(dāng)接收機(jī)的SM2=1時(shí)可以利用收到的RB8來(lái)控制是否激活RI(RB80時(shí)

59、不激活RI,收到的信息丟棄;RB81時(shí)收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI,進(jìn)而在中斷服務(wù)中將數(shù)據(jù)從SBUF讀走)。當(dāng)SM2=0時(shí),不論收到的RB8為0和1,均可以使收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI(即此時(shí)RB8不具有控制RI激活的功能)。通過(guò)控制SM2,可以實(shí)現(xiàn)多機(jī)通信。 在方式0時(shí),SM2必須是0。在方式1時(shí),若SM2=1,則只有接收到有效停止位時(shí),RI才置1。 REN,允許串行接收位。由軟件置REN=1,則啟動(dòng)串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。2.6 串行輸入/輸出接口88 TB8,在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗(yàn)位,或在

60、多機(jī)通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位。 在方式0和方式1中,該位未用。 RB8,在方式2或方式3中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗(yàn)位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式1時(shí),若SM2=0,則RB8是接收到的停止位。 TI,發(fā)送中斷標(biāo)志位。在方式0時(shí),當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行發(fā)送停止位的開(kāi)始時(shí),由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請(qǐng)。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請(qǐng)。 RI,接收中斷標(biāo)志位。在方式0時(shí),當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行接收停止位的中間時(shí),由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請(qǐng)。也必須在中斷服務(wù)程序中,用軟件將其清0,取

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論