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

下載本文檔

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

文檔簡介

1、本講主要內(nèi)容:2-1. 總體概況2-2. 微處理器2-3. 存儲器2-4. 定時器/計數(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個字節(jié)的片內(nèi)數(shù)據(jù)存儲器。 (4)4K字節(jié)的片內(nèi)程序存儲器 (8031無)。 (5)程序存儲器的尋址范圍為64K字節(jié)。 (6)片外數(shù)據(jù)存儲器的尋址范圍為64K字節(jié)。 (7)21個字節(jié)專用寄存器。 (8)4個 8位并行I/O接口

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

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

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

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

6、存器區(qū)進(jìn)行讀寫操作。(見教材P43,49)11Xinjiang University2.2 微處理器2)累加器 累加器A是最常用的專用寄存器。進(jìn)入ALU作算術(shù)操作和邏輯操作的操作數(shù)很多來自A,操作結(jié)果也常送回A。有許多單操作數(shù)指令都是針對A的。 ADD A,30H; 在指令中,累加器Acc常簡寫為“A” ADD A, 30H; 該指令的含義是以累加器Acc內(nèi)容作為被加數(shù),加數(shù)存放在內(nèi)部RAM的30H單元中,相加后的結(jié)果,即和再存放到累加器Acc中。 3)B寄存器 B寄存器主要用于乘法和除法運算。在乘法運算中,被乘數(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是一個8位寄存器,它包含了許多程序狀態(tài)信息,其各位的含義見圖2。b6b5b4b3b2b1b0CyACF0RS1RS0OV-Pb7Cy:進(jìn)位標(biāo)志。在進(jìn)行加法運算時,當(dāng)最高位即b7位有進(jìn)位,或執(zhí)行減 法運算最高位有借位時,Cy為1;反之為0。 2.2 微處理器13Xinjiang UniversityAC:輔助進(jìn)位標(biāo)志。在進(jìn)行加法運算時,當(dāng)b3位有進(jìn)位,或執(zhí)行減法運算b3 位有借位時,AC為1,反之為0。設(shè)置輔助進(jìn)位標(biāo)

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

9、面表格。 表 2.2 RS1、 RS0與片內(nèi)工作寄存器組的對應(yīng)關(guān)系 RS1RS0寄存器組片內(nèi)PAM地址通用寄存器名稱000組00H07HR0R7011組08H0FHR0R7102組10H17HR0R7013組18H1FHR0R7軟件標(biāo)志FO:這是用戶定義的一個狀態(tài)標(biāo)志??赏ㄟ^軟件對它置位、清零; 在編程時,也常測試其是否建起而進(jìn)行程序分支。2.2 微處理器15Xinjiang University例1:2個數(shù)相加后,分析各標(biāo)志位的值16Xinjiang University見教材P43,例2-1例2、將有符號兩數(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=?寫出分析過程 MOV A,#36H ADD A,#93H2.指出執(zhí)行下述指令后,相加的結(jié)果及C=?P=?OV=?AC=?寫出分析過程 MOV

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

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

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

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

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

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

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

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

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

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

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

22、用。(4)堆棧與堆棧指針 片內(nèi)RAM的部分單元還可以用作堆棧。有一個8位的堆棧指針寄存器SP,專用于指出當(dāng)前堆棧頂部是片內(nèi)RAM的哪一單元。51單片機(jī)系統(tǒng)復(fù)位后SP的初值為07H,也就是說將從 08H單元開始堆放信息。但是,51系列的棧區(qū)不是固定的,只要通過軟件改變SP寄存器的值便可更動棧區(qū)。2.3 存儲器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 存儲器3、特殊功能寄存器塊 特殊功能寄存器也稱專用寄存器,專用于控制、管理片內(nèi)算術(shù)邏輯部件、并行I/O口,串行I/O口、定時器/計數(shù)器、中斷系統(tǒng)等功能模塊的工作,用戶在編程時可以置數(shù)設(shè)定,卻不能自由移作它用。在51系列單片機(jī)中,將各專用寄存器 (PC例外)與片內(nèi)RAM統(tǒng)一編址,且作為直接尋址字節(jié),可直接尋址。除PC外,51子系列有 18個專用寄存器,其中3個為雙字節(jié)寄存器,共占用21個字節(jié);52子系列有21個專用寄存器,其中5個為雙字節(jié)寄存器,共占用26個字節(jié)。特殊功能寄存器SFR占用字節(jié)地址:80HFFH (見教材P50,表格2-7)位尋址寄存器: 其字節(jié)地址可被8整除。 例如:CL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

40、000H)時,產(chǎn)生溢出,將TCON寄存器的TF位置1,產(chǎn)生溢出中斷。計數(shù)器初值X的計算公式: (1)計數(shù)工作模式時 XM計數(shù)值 (2)定時工作模式時 X M計數(shù)值 Mt/T=M (fosc x t)/12 fosc為晶振頻率,t為要求定時的時間。2.4.2.定時器/計數(shù)器58Xinjiang University2.4.5.定時器/計數(shù)器應(yīng)用例1:編寫一段程序,讓51MCU的P1.7輸出1ms的方波(用定時器T1完成),fosc=12MHz。定時器初值計算(TCY=1us)此時定時時間采用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注意定時器的初值計算方法!59Xinjiang University2.4.5.定時器/計數(shù)器應(yīng)用程序流程:開 始P1.7置1T1模式設(shè)置T1初值設(shè)置(0.5ms)中斷設(shè)置開中斷循環(huán)等待中斷啟動定時器T1中斷入口T1初值設(shè)置(0.5ms)中斷返回P1.7取反主程序流程中斷服務(wù)子程序流程60Xinjiang UniversityORG 0000H;主程序 AJMP MAIN ORG 001BH ;參考P47;定時中斷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;開定時器T1中斷 SETB EA SETB TR1;啟動定時器T1 SJMP $ ; 指令“jmp $+3”中的“$”表示當(dāng)前這條指令在代碼段中的偏移量。指令“jmp $+3”表示要向前跳轉(zhuǎn)到距離這條指令3個字節(jié)的地方SERT1:MOV TH1,#0FEH;定時器回賦初值 MOV TL1,#0CH CPL P1.7 RETIEND中斷程序基本結(jié)構(gòu)定時器初始化、開中斷中斷服務(wù)程序2.4.5.定時器/計數(shù)器應(yīng)用61Xinjiang University

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

44、.5.定時器/計數(shù)器應(yīng)用62Xinjiang University程序流程:主程序流程中斷服務(wù)子程序流程開 始P1.7置1T0模式設(shè)置T0初值設(shè)置(1ms)中斷設(shè)置循環(huán)計數(shù)器R07循環(huán)等待中斷開中斷中斷入口P1.7取反P1.7=1?R0賦值為7中斷返回NYR0賦值為3T0回賦初值 (1ms)R0-1=0?YN2.4.5.定時器/計數(shù)器應(yīng)用63Xinjiang University程序清單:ORG 0000H;主程序 AJMP MAIN ORG 000BH ;參考P47;定時中斷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;開定時器T0中斷 SETB EA SETB TR0;啟動定時器T0 SJMP $中斷基本程序結(jié)構(gòu)方式設(shè)定、初值設(shè)定1mS開中斷啟動定時器、等待中斷2.4.5.定時器/計數(shù)器應(yīng)用64Xinjiang University程序清單(續(xù)):SERT0:MOV TH0,#0FEH;定時器回賦初值 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ù)器應(yīng)用65Xinjiang University作業(yè):編寫匯編和C程序?qū)崿F(xiàn),匯編類似:/zy010101/article/details/805127232.5 并行輸入/輸出接口 MCS-51單片微型計算機(jī)芯片有32根輸人/輸出線,組成4個8位并行輸入/輸出接口,分別稱為PO口、P1口、P2口和P3口。這4個接口可以并行輸人或輸出8位數(shù)據(jù);也可按位使用,即每一根輸人輸出線都能獨立地用作輸人或輸出。一 、P1口 1、結(jié)構(gòu) P1口由8個這樣的電路所組成。圖中,鎖存器起輸出鎖存作用。P1口的 8個鎖存器組成特殊功能寄存器,該寄存器也用符號 P

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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

提交評論