版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章 51系列單片機(jī)的功能模塊及其應(yīng)用,4.1 并行口及其應(yīng)用4.2 定時(shí)器及其應(yīng)用4.3 串行口UART,4.1 并行口及其應(yīng)用,4.1.1 P1口,一、P1口的功能特性,P1.0—P1.7: 準(zhǔn)雙向I/O口(內(nèi)置了上拉電阻) 輸出時(shí)一切照常,僅在作輸入口用時(shí)要先對(duì)其 寫(xiě)“1”。,1、 P1口結(jié)構(gòu)框圖,2、輸出數(shù)據(jù) = 1 時(shí),3、輸出數(shù)據(jù) = 0時(shí),4、輸入數(shù)據(jù)時(shí),要先對(duì)其寫(xiě)“1”,由于上拉電阻,可以驅(qū)動(dòng)OC門,二、P
2、1口的操作,1、讀-修改-寫(xiě)操作,先將P1口的數(shù)據(jù)讀入CPU,在ALU中進(jìn)行運(yùn)算,運(yùn)算結(jié)果再送回P1。 執(zhí)行"讀-修改-寫(xiě)"類指令時(shí),CPU是通過(guò)三態(tài)門 2讀回鎖存器Q端的數(shù)據(jù)來(lái)代表引腳狀態(tài)的。,ANL P1,A ;(P0)←(P0)∧(A)ORL P1,#data ;(P0)←(P0)∨dataDEC P1 ;
3、(P0)←(P0) -1,2、讀引腳操作,先向P1口鎖存器寫(xiě)入1,然后進(jìn)行讀操作;此時(shí)讀進(jìn)來(lái)的是引腳的信號(hào)。,MOV P1,#0FFH MOV A,P1,3、對(duì)P1口可以采用字節(jié)操作,也可以采用位操作。,4、P1口的輸出級(jí)具有驅(qū)動(dòng)4個(gè)LSTTL負(fù)載的能力,即輸出電流不大于400 μA。,5、另外,對(duì)于52子系列單片機(jī)P1口P1.0與P1.1除作為通用I/O接口線外,還具有第二功能,即P1.0可作為
4、定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)脈沖輸入端T2,P1.1可作為定時(shí)器/計(jì)數(shù)器2的外部控制輸入端T2EX。,4.1.2 P3口,P3.0—P3.7: 雙功能口(內(nèi)置了上拉電阻) 它具有特定的第二功能。在不使用它的第二功能時(shí)它就是普通的通用準(zhǔn)雙向I/O口。,一、P3口的功能特性,P3口的結(jié)構(gòu)框圖,二、P3口的操作,1、第一功能-準(zhǔn)雙向口的操作,此時(shí),第二功能的輸出線總是為高電平。具體操作方式同P1口。,2、第二功能-特殊輸入輸出口的操作,P3
5、口第二功能表,第二功能輸出時(shí),內(nèi)部自動(dòng) D=1,(1)第二功能輸出,(2)第二功能輸入,第二功能輸入時(shí),信號(hào)經(jīng)緩沖器4直接進(jìn)入內(nèi)總線,4.1.3 P2口,一、P2口的功能特性,P2.0—P2.7: 雙向I/O (內(nèi)置了上拉電阻) 尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。,P2口的結(jié)構(gòu)框圖,二、P2口的操作,1、控制=0時(shí),此腳作通用輸出口:,2、控制=1 時(shí),此腳作高8位地址A8—A15
6、輸出口:,4.1.4 P0 口,一、P0口的功能特性,P0.0—P0.7: 雙向I/O (內(nèi)置場(chǎng)效應(yīng)管上拉) 尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;(可浮空)不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。,P0口的結(jié)構(gòu)框圖,二、P0口的操作,1、控制=0 時(shí),此腳作準(zhǔn)雙向I/O口(外接上拉電阻),2、控制=1時(shí),此腳作地址/數(shù)據(jù)復(fù)用口:,(1)輸出地址/數(shù)據(jù) =0 時(shí),I/O端口應(yīng)用特性:,(1)端口
7、的自動(dòng)識(shí)別。無(wú)論是P0、P2口的總線復(fù)用,還是口P3的功能復(fù)用,內(nèi)部資源會(huì)自動(dòng)選擇,不需要通過(guò)指令的狀態(tài)選擇。,(2)口鎖存器的讀-修改-寫(xiě)操作。許多涉及到I/O操作,實(shí)際上只是涉及口鎖存器的讀-修改-寫(xiě)操作。這些指令是邏輯運(yùn)算、置位/清除、條件轉(zhuǎn)移指令等。,(3)讀引腳操作指令。如果某個(gè)I/O口被指定為源操作數(shù),則為讀引腳操作指令。,(4)準(zhǔn)雙向口的使用。,(6)I/O口的驅(qū)動(dòng)特性。 P0口每一個(gè)I/O口可以輸出驅(qū)動(dòng)
8、8個(gè)LSTTL輸入端, P1~P3口則可以驅(qū)動(dòng)4個(gè)LSTTL輸入端。,(5)P0口作普通I/O口使用。必須加上拉電阻。,51單片機(jī)的4個(gè)8位的I/O口,P0.0—P0.7:8位數(shù)據(jù)口和輸出低8位地址復(fù)用口 (復(fù)用時(shí)是雙向口;不復(fù)用時(shí)也是準(zhǔn)雙向口)P1.0—P1.7: 通用I/O口(準(zhǔn)雙向口),P2.0—P2.7: 輸出高8位地址(用于尋址時(shí)是輸出口;不尋址時(shí)是準(zhǔn)雙向口)P3.0—P3.7: 具有特定的第二功能(準(zhǔn)雙向口),注意
9、:在不外擴(kuò)ROM/RAM時(shí),P0~P3均可作通用I/O口使用,而且都是準(zhǔn)雙向I/O口(例如:AT89C51)!,小結(jié),4.1.5 并行口的應(yīng)用-蜂鳴器、可控硅的接口和編程,一、蜂鳴器,蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。,蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。,(1)壓電式蜂鳴器 &
10、#160; 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。 當(dāng)接通電源后(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號(hào),阻抗匹配器推動(dòng)壓電蜂鳴片發(fā)聲。 壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極
11、化和老化處理后,再與黃銅片或不銹鋼片粘在一起。,1、蜂鳴器的結(jié)構(gòu)原理,(2)電磁式蜂鳴器 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。 接通電源后,振蕩器產(chǎn)生的音頻信號(hào)電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)。振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性地振動(dòng)發(fā)聲,蜂鳴器(TMB-09-A)參數(shù) 額定電壓
12、:3~12V 電壓范圍:2.5~15V 額定電流:≤35mA 聲壓電平:≥85db 諧振頻率:2300±500Hz 工作溫度:-20℃~+45℃ 儲(chǔ)存溫度:-20℃~+60℃ 重量:2g,2、蜂鳴器的接口電路,,ORG 00H AJMP FG ORG 030H FG: SETB P2.4
13、 LCALL DLY LCALL DLY CLR P2.4 LCALL DLY LCALL DLY AJMP FG,3、蜂鳴器的驅(qū)動(dòng)程序,;-------延時(shí)子程序 -------DLY: MOV R0, #20 DLY0: MOV R7, #100 DLY1: MOV R6,
14、 #250 DJNZ R6, $ DJNZ R7, DLY1 DJNZ R0, DLY0 RET END,二、可控硅(晶閘管)接口,單向晶閘管圖形符號(hào),(1)導(dǎo)通條件: 在陽(yáng)極A與陰極K之間加正向電壓,同時(shí)在門極G與陰極K之間加正向電壓(觸發(fā)),這樣陽(yáng)極A與陰
15、極K之間即進(jìn)入導(dǎo)通狀態(tài)。晶閘管一旦導(dǎo)通,只要陽(yáng)極A與陰極K之間的電流不小于其維持電流IH,門極G與陰極K之間是否還存在正向電壓,對(duì)已經(jīng)導(dǎo)通的晶閘管完全沒(méi)有影響。,1、單向晶閘管工作原理,(2)關(guān)斷條件:主電極陽(yáng)極A與陰極K之間的電流小于其維持電流IH,晶閘管即進(jìn)入關(guān)斷狀態(tài),雙向晶閘管圖形符號(hào),2、雙向晶閘管(TRIAC),與單向晶閘管相比較,雙向晶閘管的主要區(qū)別是: ①在觸發(fā)之后是雙向?qū)ǖ模?②觸發(fā)電壓不分極性,只要
16、絕對(duì)值達(dá)到觸發(fā)門限值即可使雙向晶閘管導(dǎo)通。,3、可控硅接口電路,MOC3041是耐壓為400V的光電耦合器,它的輸出級(jí)由過(guò)零觸發(fā)的雙向可控硅構(gòu)成,它控制著主電路雙向可控硅的導(dǎo)通與關(guān)斷。,100Ω電阻與0.01μF電容組成雙向可控硅的保護(hù)電路。,4.1.6 并行口的應(yīng)用-撥碼盤(pán)的接口和編程,BCD撥碼盤(pán)具有0~9十個(gè)位置,每個(gè)位置都有相應(yīng)的指示,一個(gè)撥碼盤(pán)可以輸入1個(gè)十進(jìn)制數(shù)據(jù)。每個(gè)BCD撥碼盤(pán)后面有5位引出線,其中一位為輸入控制線(編號(hào)
17、為A),另外4位是數(shù)據(jù)線(編號(hào)為8,4,2,1)。,一、BCD撥碼盤(pán)的構(gòu)造,其中A為控制線,8、4、2、1四個(gè)接點(diǎn)為開(kāi)關(guān)的輸出線。當(dāng)撥盤(pán)開(kāi)關(guān)置于不同位置時(shí),控制線A與8、4、2、1中某些接點(diǎn)接通。如撥到0,則所有的接點(diǎn)與A均不通;如撥到1,則1與控制線A接通,其余的均不通。,撥盤(pán)開(kāi)關(guān)的輸出信號(hào),O表示控制線A與該端接通X表示控制線A與該端不通把開(kāi)關(guān)的輸出線經(jīng)電阻接到電源上,把控制線A接地,則接通的輸出端為“0”,不通的輸出端為“1”
18、。這時(shí)輸出碼為開(kāi)關(guān)位置對(duì)應(yīng)的BCD碼的反碼,二、BCD撥碼盤(pán)的接口方法,1、單個(gè)撥盤(pán)的接口,2、多個(gè)撥盤(pán)的接口,3、撥碼盤(pán)數(shù)據(jù)輸入程序 INBCD:MOV R0,#30H MOV A,P1 MOV P1,#7FH XCHD A, @RO MOV A,P1 RET SWAP A MO
19、V @R0,A MOV P1,#0BFH MOV A,P1 XCHD A,@R0 INC R0 MOV P1,#0DFH MOV A,P1 XCH A,@R0 MOV P1,#0EFH,4.2 定時(shí)器及其應(yīng)用,4.2.1 定時(shí)器的一般結(jié)構(gòu)和工作原理4.2.2 定時(shí)器T0、T1的功能和使
20、用方法4.2.3 定時(shí)器T0的應(yīng)用-定時(shí)中斷可控硅導(dǎo)通角,2個(gè)16位定時(shí)器/計(jì)數(shù)器 ——(52系列有3個(gè)16位Timer)定時(shí)器:對(duì)片內(nèi)機(jī)器時(shí)鐘(周期方波)進(jìn)行計(jì)數(shù)計(jì)數(shù)器:對(duì)Tx引腳輸入的負(fù)脈沖進(jìn)行計(jì)數(shù),與Timer工作有關(guān)的特殊功能寄存器: TCON 、TMOD、THx 和 TLx,定時(shí)器概述,TIMER的作用:定時(shí)操作:定時(shí)采樣,定時(shí)掃描,定時(shí)中斷測(cè)量外部信號(hào):累加統(tǒng)計(jì),測(cè)量周期等定時(shí)輸出:PWM等監(jiān)視
21、系統(tǒng)正常工作與否,4.2.1 定時(shí)器的一般結(jié)構(gòu)和工作原理,實(shí)質(zhì)是計(jì)數(shù)器,脈沖每一次下降沿,計(jì)數(shù)寄存器數(shù)值將加1. 計(jì)數(shù)的脈沖如果來(lái)源于單片機(jī)內(nèi)部的晶振,由于其周期極為準(zhǔn)確,這時(shí)稱為定時(shí)器。 計(jì)數(shù)的脈沖如果來(lái)源于單片機(jī)外部的引腳,由于其周期一般不確定,可表示事件發(fā)生,這時(shí)稱為計(jì)數(shù)器。,一、定時(shí)方式,T=(1/f)*(2^16-a)us,對(duì)于一個(gè)N位的加1計(jì)數(shù)器,若計(jì)數(shù)頻率已知,則從初值a開(kāi)始加1計(jì)數(shù)至溢出所占用的時(shí)間為:
22、,這種工作方式稱為定時(shí)器方式,其計(jì)數(shù)的目的就是為了定時(shí)。,二、計(jì)數(shù)器方式,若用外部輸入時(shí)鐘計(jì)數(shù),一般其計(jì)數(shù)的目的是為了對(duì)外部時(shí)鐘累加計(jì)數(shù)或?yàn)榱藴y(cè)量外部輸入時(shí)鐘的參數(shù)。這種方式通常稱為計(jì)數(shù)器方式。,三、通用的多功能定時(shí)器,四、監(jiān)視定時(shí)器WDT(看門狗),4.2.2 定時(shí)器T0、T1的功能和使用方法,,,,,,,,,GATE C / T M1 M0 GATE C / T M1
23、M0,一、定時(shí)器方式寄存器TMOD (89H),,,,,T1,T0,M1,M0:工作方式定義位 ( 定義4 種方式 ):,C/T :計(jì)數(shù)器/定時(shí)器選擇位 = 1 外部事件計(jì)數(shù)器。對(duì)Tx引腳的負(fù)脈沖計(jì)數(shù); = 0 片內(nèi)時(shí)鐘定時(shí)器。對(duì)機(jī)器周期脈沖計(jì)數(shù)定時(shí),,0 0:13位 Timer——用它無(wú)益,不要記它!0 1:16位 Timer——經(jīng)常用到。1 0:可自動(dòng)重裝的 8位 Timer——經(jīng)常用到。1 1:T0 分為2個(gè)8位
24、 Timer;T1 此時(shí)不工作 ——因?yàn)闆](méi)有帶來(lái)什么好處,幾乎無(wú)用。,GATE門控位: Timer可由軟件與硬件兩者控制 ? GATE = 0 ——普通用法 Timer的啟/停由軟件對(duì)TRx位寫(xiě)“1”/“0”控制,(89H),? GATE = 1 ——門控用法 Timer的啟/停由軟件對(duì)TRx位寫(xiě)“1”/“0” 和在INTx引腳上出現(xiàn)的信號(hào)的高/低共同控制 (INTx引腳高電平允許定時(shí)/
25、計(jì)數(shù)),,,,,,,,,GATE C / T M1 M0 GATE C / T M1 M0,,,,,T1,T0,,,,,,,,,TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,二、定時(shí)器控制寄存器TCON (88H),TFx: Timer0/1計(jì)數(shù)溢出標(biāo)志位。 =1 計(jì)數(shù)
26、溢出; =0 計(jì)數(shù)未滿 TFx標(biāo)志位可用于申請(qǐng)中斷或供CPU查詢。 在進(jìn)入中斷服務(wù)程序時(shí)會(huì)自動(dòng)清零;但在 查詢方式時(shí)必須軟件清零。,TRx: Timer0/1運(yùn)行控制位。 =1 啟動(dòng)計(jì)數(shù); =0 停止計(jì)數(shù),TR0/TR1:Timer0/1運(yùn)行控制位: TR0/TR1 =0 時(shí),Timer0/1停止計(jì)數(shù) TR0/TR1 =1 時(shí),Timer0/1啟動(dòng)計(jì)數(shù),定時(shí)器T
27、0/T1 中斷申請(qǐng)過(guò)程,? 在已經(jīng)開(kāi)放T0/T1中斷允許且已被啟動(dòng)的前提下:? T0/T1加滿溢出時(shí) TF0/TF1標(biāo)志位自動(dòng)置“1” ? 檢測(cè)到TCON中TF0/TF1變“1”后,將產(chǎn)生指令: LCALL 000BH/LCALL 001BH 執(zhí)行中斷服務(wù)程序,? TF0/TF1標(biāo)志位會(huì)自動(dòng)清“0”,以備下次中斷申請(qǐng)。,定時(shí)/計(jì)數(shù)器可按片內(nèi)機(jī)器周期定時(shí),也可對(duì)由T0/T1引腳輸入一個(gè)負(fù)脈沖進(jìn)行加法計(jì)數(shù),,,,,,
28、,,,TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,TCON (88H),三、T0、T1的工作方式和計(jì)數(shù)器結(jié)構(gòu),工作方式1:——16位的定時(shí)/計(jì)數(shù)器,,,振蕩器,?12,,,,,,,,,,,,,,,,,,,,,,,,,,,,TLx THx (8位) (8位),TFx,,,申請(qǐng)中斷,,Tx端,TRx位,GATE位,INTx端,≥1,&,C/T=0,C/T=1,控制 =1開(kāi)關(guān)接通,,,或
29、門,與門,,,,最大計(jì)數(shù)脈沖個(gè)數(shù):65536(216),? THx/TLx賦初值:THx賦高8位,TLx賦低8位,工作方式1 的編程要點(diǎn):,? TMOD選方式: 寫(xiě)“M1,M0”=01b選方式1,? 若不用門控位,直接用軟件寫(xiě)TRx控制啟/停? 若使用門控位,先置位TRx,然后由INTx端 的高/低電平來(lái)控制其啟/停,? 若要允許中斷,還須先置位ETx、EA等中斷 允許控制位,并編寫(xiě)中斷服務(wù)程序? 若不用中斷,可查詢“計(jì)
30、數(shù)溢出標(biāo)志TFx” 的方式工作,但溢出標(biāo)志TFx須軟件清0,方式1:定時(shí)初值/定時(shí)時(shí)間計(jì)算,定時(shí)器的計(jì)數(shù)單元每個(gè)機(jī)器周期自動(dòng)加1直到溢出(0) T=(12/fosc)*(2^16-a)us,定時(shí)器(方式1)應(yīng)用程序舉例:,分析:已知fosc = 6MHz 則: (振蕩周期)1Tc=1/6MHz (機(jī)器周期)1Tm=12Tc=12/6MHz=2?S? 粗略地說(shuō):Tmin ? 2?S 16位定時(shí)器最大數(shù)值為:21
31、6=65536=0FFFFH+1 故選擇方式 1 工作可以得到:? Tmax = 65536?2 = 131072?S=131.072mS,例1:若晶振頻率為6MHz,計(jì)算單片機(jī)的最小與最大定時(shí)時(shí)間:,分析:已知fosc = 6MHz 則: (機(jī)器周期)1Tm=12Tc=12/6MHz=2?S 100mS÷2 ?S = 50000 16位定時(shí)器最大數(shù)值為: 2
32、16 = 65536 (=0FFFFH+1) 故選擇方式1工作可以滿足要求。計(jì)算初值:65536-50000=15536=3CB0H,例2:要求對(duì)T0產(chǎn)生100mS定時(shí)進(jìn)行初始化。 (晶振=6MHz),,,,,,,,,GATE C / T M1 M0 GATE C / T M1 M0,定時(shí)器方式寄存器TMOD,,,由分析得知:T0選擇方式1,初值
33、=3CB0H,X X X X 0 0 0 1,初始化:MOV TMOD,#01H ;選 T0 方式 1 MOV TH0, #3CH ;賦初值高8位 MOV TL0, #0B0H ;賦初值低8位 SETB TR0 ;啟動(dòng) T0定時(shí)若需要定時(shí)器0產(chǎn)生中斷還應(yīng)當(dāng)寫(xiě)如下語(yǔ)句: SETB ET0
34、 ;開(kāi)T0中斷允許 SETB EA ;開(kāi)總中斷允許以及相應(yīng)的中斷服務(wù)程序。,工作方式2:——8 位自動(dòng)重裝的定時(shí)/計(jì)數(shù)器,,,振蕩器,?12,,,,,,,,,,,,,,,,,,,,,,,,,,,,TLx (8位),TFx,,,申請(qǐng)中斷,,Tx端,TRx位,GATE位,INTx端,≥1,&,C/T=0,C/T=1,控制 =1開(kāi)關(guān)接通,,,或門,與門,,,,THx (8位),,,,,,溢出
35、位,門開(kāi),用于需要重復(fù)定時(shí)和計(jì)數(shù)的場(chǎng)合。最大計(jì)數(shù)值:256 (28),? THx/TLx賦相同初值 在TLx計(jì)數(shù)達(dá)到0FFH 再加“1”時(shí),TL0 將溢出, “TFx”置1去申請(qǐng)中斷,同時(shí)THx中的 值自動(dòng)重裝(Copy)進(jìn)TLx,工作方式 2 的編程:,? TMOD寄存器選方式: 寫(xiě)“M1,M0” = 10 b 選中方式2,? 其他用法與各種方式1完全相同,方式2:定時(shí)初值/定時(shí)時(shí)間計(jì)算,定時(shí)器的計(jì)
36、數(shù)單元每個(gè)機(jī)器周期自動(dòng)加1直到溢出(0) T=(12/fosc)*(2^8-a)us (最大計(jì)數(shù)值:256),分析:fosc = 6MHz 1機(jī)器周期 = 2 ?S 1KHz方波周期 = 1 mS 半個(gè)方波周期 =500?S 500uS÷2 uS = 250 若選擇方式2 工作,8位定時(shí)器最大數(shù)值為: 28 =256 =0FFH + 1 可以滿足要求。計(jì)算初值:256-250=6,例3
37、:從P1.0 腳輸出頻率=1KHz方波。設(shè):晶振=6MHz。利用T1定時(shí)中斷。,,,Th:半周期,T:周期,,,,,,,,,,,,,,,,,定時(shí)器(方式2)應(yīng)用程序舉例:,ORG 0000H AJMP MAIN ORG 001BH ;T1的中斷矢量 CPL P1.0 ;中斷服務(wù):P1.0取非 RETI ;中斷返回MAIN: MOV TMOD,#20H
38、MOV TH1, #6 MOV TL1, #6 SETB ET1 SETB EA SETB TR1 HERE: AJMP HERE ;原地等待中斷 END,,初始化,;選T1方式2;賦重裝值;賦初值;開(kāi)T1中斷;開(kāi)總中斷;啟動(dòng)T1,T0: 組織成TL0和TH0兩個(gè)8位定時(shí)/計(jì)數(shù)器,Timer工作方式 3 ——幾乎無(wú)用,T1: 不再
39、是定時(shí)/計(jì)數(shù)器了 T1 的TR1和TF1出借給TH0當(dāng)控制位使用, 剩下的TH1/TL1寄存器只能當(dāng)作普通寄存 器用。,,,振蕩器,?12,,,,,,,,,,,,,,,,,,,,,,,,,,,,TL0 (8位),TF0,,,申請(qǐng)中斷,,T0端,TR0位,GATE位,INT0端,≥1,&,C/T=0,C/T=1,控制 =1開(kāi)關(guān)接通,,,或門,與門,,,,TH0 (8位),,,,,,,,,,,TF1,,
40、,申請(qǐng)中斷,,,TR1位,,控制 =1,Timer工作方式 3 結(jié)構(gòu):,?T0成為雙 8位Timer ?T1不再有Timer功能 ?TF1,TR1出借給TH0,長(zhǎng)定時(shí)舉例(設(shè)晶振=6MHz,要定時(shí)1秒):,ORG 0000H ;P.143例5 AJMP MAIN ORG 001BH AJMP TINT ;見(jiàn)下一頁(yè)MAIN: M
41、OV TMOD,#10H ;選T1方式1 MOV TH1, #3CH ;賦初值3CB0H=15536(只能定100mS) MOV TL1,#0B0H MOV 30H,#10 ;軟件計(jì)數(shù)單元30H 初值=10 CLR F0 ;芯片復(fù)位時(shí)已經(jīng)是“0”,此句可有可無(wú) SETB ET1 ;開(kāi)T1中斷 SETB EA
42、 ;開(kāi)總中斷 SETB TR1 ;啟動(dòng)T1 HERE: JBC F0,TIMEUP ;原地等待“1秒到”的標(biāo)志 F0 AJMP HERETIMEUP:(do something) ;定時(shí)1秒到了以后要做的事情 AJMP HERE,,中斷服務(wù)在主程序中,長(zhǎng)定時(shí)舉例(續(xù)):,ORG 0000H AJMP MAIN ORG 001
43、BH AJMP TINTMAIN: …………………TINT:DJNZ 30H,RTN ;若中斷不到10次就返回 SETB F0 ;已經(jīng)中斷夠10次了“置1”標(biāo)志位 MOV 30H,#10 ;為下一個(gè)1秒定時(shí)做準(zhǔn)備RTN: MOV TH1,#3CH ;再賦定時(shí)100mS的初值3CB0HMOV TL1,#0B0H RETI
44、 ;中斷返回 END,將此例的中斷服務(wù)改寫(xiě)在中斷服務(wù)程序中:,ORG 0000H AJMP MAIN ORG 001BH AJMP TINT ;見(jiàn)下一頁(yè)MAIN: MOV TMOD,#10H ;選T1方式1 MOV TH1,#3CH ;賦初值3CB0H=15536(只能定100mS) MOV TL1,#0B0H
45、 MOV 30H,#10 ;軟件計(jì)數(shù)單元30H 初值=10 CLR F0 ;芯片復(fù)位時(shí)已經(jīng)是“0”,此句可有可無(wú) SETB ET1 ;開(kāi)T1中斷 SETB EA ;開(kāi)總中斷 SETB TR1 ;啟動(dòng)T1 HERE: AJMP HERE ;原地等待中斷,長(zhǎng)定時(shí)舉例(續(xù)):,ORG 0000H
46、 AJMP MAIN ORG 001BH AJMP TINTMAIN: …………………TINT:DJNZ 30H,RTN ;若中斷不到10次就返回 MOV 30H,#10 ;為下一個(gè)1秒定時(shí)做準(zhǔn)備(do something);定時(shí)1秒到了以后要做的事情)RTN: MOV TH1,#3CH ;再賦初值MOV TL1,#0B0H RETI
47、 ;中斷返回 END,,中斷服務(wù),定時(shí)器小結(jié): (2個(gè)16位加法計(jì)數(shù)器),?運(yùn)行/停止由TRx位控制,(當(dāng)GATE=1時(shí): 由TRx位和Tx引腳上的信號(hào)共同控制),?工作方式由TMOD決定; 計(jì)數(shù)/定時(shí)由C/T位決定 工作方式0(13位) 永遠(yuǎn)不用 工作方式3(T0拆為雙8位) 幾乎無(wú)用 工作方式1(16位) 經(jīng)常用到 工作方式2(8位自動(dòng)重
48、裝) 經(jīng)常用到,?從初值按機(jī)器周期或外部脈沖遞加,溢出位 TFx申請(qǐng)中斷;中斷允許由ETx位和EA位控制,,,,?特別注意:不管定時(shí)時(shí)間到了與否,只要不控制TRx位,定時(shí)器就不會(huì)停止。注意:定時(shí)初值,4.3 串行口UART,4.3.1 串行接口的組成和特性4.3.2 串行接口的工作方式4.3.3 波特率4.3.4 多機(jī)通信原理4.3.5 串行口的應(yīng)用和編程4.3.6 RS-232C總線和電平轉(zhuǎn)換器,串行通信與并行通訊,
49、并行通訊:數(shù)據(jù)的各位同時(shí)傳送。傳輸線的根數(shù)與數(shù)據(jù)位數(shù)相等。串行通訊:數(shù)據(jù)逐位順序傳送。傳輸線僅需1-2根。,串行通信的基本特征是數(shù)據(jù)逐位順序進(jìn)行傳送串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號(hào)電平……等)不同,形成了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn)。常見(jiàn)的有:?通用異步收發(fā)器(UART)——本課程介紹的串口?通用串行總線(USB)?I2C總線 ?CAN總線 ?SPI總線 ?RS-485,……等等,全雙工
50、串行接口(UART),?全雙工:(串行通信)收/發(fā)可同時(shí)進(jìn)行 半雙工:(串行通信)收/發(fā)不可同時(shí)進(jìn)行 單 工:數(shù)據(jù)單向傳送,?異步串行通信:以字符為單位進(jìn)行傳送 同步串行通信:以數(shù)據(jù)塊為單位進(jìn)行傳送 波特率(bps.):每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù)。,,,,D0,D1,D2,D3,D4,D5,D6,D7,,停止位,,起始位,異步串行通信數(shù)據(jù)格式,4.3.1 串行接口的組成和特性,51單片機(jī)的串行接口,SBUF(發(fā)),SBUF(收),
51、發(fā)送控制器 TI,接收控制器 RI,移位寄存器,波特率發(fā)生器T1,?1,A累加器,,,,,,,,,,,,,,,,,,,,,,,,,(門)移位寄存器,,RxD,TxD,去申請(qǐng)中斷,,,,,引腳,引腳,CPU內(nèi)部,串行口的結(jié)構(gòu),?兩個(gè)同名的接收/發(fā)送緩沖寄存器SBUF(99H) 指令 MOV SBUF,A 啟動(dòng)一次數(shù)據(jù)發(fā)送,可向SBUF 再發(fā)送下一個(gè)數(shù) 指令 MOV A,SBUF 完成一
52、次數(shù)據(jù)接收,SBUF可再 接收下一個(gè)數(shù),?接收/發(fā)送數(shù)據(jù),無(wú)論是否采用中斷方式 工作,每接收/發(fā)送一個(gè)數(shù)據(jù)都必須用指 令對(duì) RI/TI 清0,以備下一次收/發(fā)。,?串行口相關(guān)的SFR(SCON,PCON),,,,,,,,,SM0 SM1 SM2 REN TB8 RB8 TI R1,SCON,? SM0,SM1:串行口4種
53、工作方式的選擇位。 0 0 方式0:8位移位寄存器I/O,波特率固定為 fosc/12 0 1 方式1:8位UART(1+8+1位), 波特率可變,按公式計(jì)算 1 0 方式2:9位UART(1+8+1+1位), 波特率固定=fosc /32或1/64 1 1 方式3:9位UART(1+8+1+1位), 波特率可
54、變,按公式計(jì)算,? SM2:串行口多機(jī)通信控制位 (作為方式2、方式3的附加控制位),一、串行口控制寄存器SCON(98H),? RI,TI:串行口收/發(fā)數(shù)據(jù)申請(qǐng)中斷標(biāo)志位 =1 申請(qǐng)中斷; =0 不申請(qǐng)中斷,? TB8:方式2、3中,是要發(fā)送的第9位數(shù)據(jù)。 多機(jī)通信中,TB8=0 表示發(fā)送的是數(shù)據(jù); TB8=1 表示發(fā)送的是地址。(奇偶校驗(yàn)),? RB8:在方式2、3中,是收到的第9位數(shù)
55、據(jù)。 在多機(jī)通信中,用作區(qū)別地址幀/數(shù)據(jù)幀的 標(biāo)志。(奇偶校驗(yàn)),,,,,,,,,SM0 SM1 SM2 REN TB8 RB8 TI R1,? REN:串行口接收允許控制位 = 1 表示允許接收; = 0 禁止接收。,SCON,,,,,,,,,SMOD — — — GF1 GF0
56、 PD 1DL,二、電源控制寄存器 PCON(97H) P.152——特殊功能寄存器PCON不能按位尋址——,? SMOD:在串行口工作方式 1、2、3 中, 是波特率加倍位 =1 時(shí),波特率加倍 =0 時(shí),波特率不加倍。 (在PCON中只有這一個(gè)位與串口有關(guān)),? GF1,GF0:用戶可自行定義使用的通用標(biāo)志位,PCON,? PD:掉電方式控制位 =0:常規(guī)工作方
57、式。 =1:進(jìn)入掉電方式: ?振蕩器停振 ?片內(nèi)RAM和SRF的值保持不變 ?P0—P3口維持原狀。 ?程序停止 只有復(fù)位能使之退出掉電方式。,,,,,,,,,SMOD — — — GF1 GF0 PD IDL,PCON,? IDL:待機(jī)方式(空閑方式)控制位 =0
58、:常規(guī)工作方式。 =1:進(jìn)入待機(jī)方式: ?振蕩器繼續(xù)振蕩 ?中斷、定時(shí)器、串口功能繼續(xù)有效 ?片內(nèi)RAM和SRF保持不變 ?CPU狀態(tài)保持、P0—P3口維持原狀 ?程序停頓。 中斷和復(fù)位能退出待機(jī),繼續(xù)后面的程序。,,,,,,,,,SMOD — — — GF1 GF0 PD 1DL,PCON,一、
59、串行口工作方式 0,工作方式0:8位移位寄存器I/O方式,?發(fā)送:SBUF中的串行數(shù)據(jù)由RxD逐位移出; TxD輸出移位時(shí)鐘,波特率=fosc/12; ?每送出8位數(shù)據(jù) TI就自動(dòng)置1; ?需要用軟件清零 TI。,?接收:串行數(shù)據(jù)由RxD逐位移入SBUF中; TxD輸出移位時(shí)鐘,波特率=fosc/12; ?每接收 8位數(shù)據(jù)RI就自動(dòng)置1; ?需要用軟件清零 RI。,4.3.2 串行
60、接口的工作方式,方式0時(shí)序圖,發(fā)送時(shí)序,,寫(xiě)入SBUF,RXD輸出,TXD,TI,D0,D1,D2,D3,D4,D5,D6,D7,,,,寫(xiě)REN=1RI=0,RXD輸入,RI,,接收時(shí)序,,,?經(jīng)常配合“串入并出”“并入串出”移位 寄存器一起使用擴(kuò)展接口。,?方式0工作時(shí),多用查詢方式編程: 發(fā)送:MOV SBUF,A 接收:JNB RI,$ JNB TI,$ CLR RI
61、 CLR TI MOV A, SBUF,?復(fù)位時(shí),SCON 已經(jīng)被清零,缺省值: 方式0。,?接收前,務(wù)必先置位 REN=1 允許接收數(shù)據(jù)。,,串行口方式0的擴(kuò)展應(yīng)用——經(jīng)常用到,串行口常用工作方式0擴(kuò)展出并行I/O口,工作方式1、2、3則常用于串行通信,,,,,,,,,,,,,,,AB,CLK,h g f e d c b a,CLR,,,,,,,,AB,CLK,CLR,,,,,,,,AB,C
62、LK,CLR,,,,,,,,,,,,,,,,,,+5V,,,,,,74LS164,74LS164,74LS164,74LS164是串入并出芯片;74LS165是并入串出芯片,h g f e d c b a,h g f e d c b a,,,,,,+5V,,,,共陽(yáng)LED 數(shù)碼管,,VCC,TxD,RxD,51單片機(jī),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,共陽(yáng)極,h g
63、f e d c b a,a,b,c,d,g,e,f,h,共陽(yáng)LED數(shù)碼管公共端(字位) 接高電平,筆劃(字段) 置為低電平就被點(diǎn)亮了,,,,,,,,,h g f e d c b a,累加器 A,1 1 0 0 0 0 0 0,,0C0H = “0”,?比如要顯示“0” 須令a b c d e f 為“0” 電平,g h為“1”電平。,?再比如要顯示“3” 須令a b c d g 為“0” 電平,e f h為“1”電
64、平。,1 0 1 1 0 0 0 0,,0B0H = “3”,,,,,,,,,,,,,例:利用串行口工作方式0擴(kuò)展出8位并行I/O口,驅(qū)動(dòng)共陽(yáng)LED數(shù)碼管顯示0—9。,,,,,,,,,,,,,,,AB,CLK,h g f e d c b a,CLR,,,,,,,,+5V,VCC,TxD,RxD,51單片機(jī),,,,,,,,,,74LS164,,共陽(yáng)LED數(shù)碼管,,,,,根據(jù)上圖編寫(xiě)的通過(guò)串行口和74LS164 驅(qū)動(dòng)共陽(yáng)LED數(shù)碼管(查
65、表)顯示0-9數(shù)字的子程序:DSPLY:MOV DPTR, #TABLE MOVC A, @A+DPTR MOV SBUF, A JNB TI, $ CLR TI RETTABLE:DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H DB 82H,0F8H,80H,90H,,,,,,,,,共陽(yáng)極,h g f e d
66、c b a,a,b,c,d,g,e,f,h,,,,,,,,,h g f e d c b a,累加器 A,1 1 0 0 0 0 0 0,,0C0H = “0”,1 0 1 1 0 0 0 0,,0B0H = “3”,,,,,,,,,,,接收 在滿足REN=1和RI=0的條件下,串行口即開(kāi)始從RXD端以fosc/12的波特率輸入數(shù)據(jù)(低位在前),當(dāng)接收完8位數(shù)據(jù)后,置中斷標(biāo)志RI為1,請(qǐng)求中斷。在再次接收數(shù)據(jù)之前,必須由
67、軟件清RI為0。具體接線圖如圖所示。其中,74LS165為并入串出移位寄存器。,二、串行口工作方式 1,串行口為波特率可調(diào)的8位通用異步串行通信口。發(fā)送或接收一幀信息,包括1位起始位0,8位數(shù)據(jù)位和1位停止位1。其幀格式如圖所示。,方式1工作時(shí): 發(fā)送端自動(dòng)添加一個(gè)起始位和一個(gè)停止位; 接收端自動(dòng)去掉一個(gè)起始位和一個(gè)停止位。,1. 方式1輸出,發(fā)送時(shí),數(shù)據(jù)從TXD端輸出,當(dāng)數(shù)據(jù)寫(xiě)入發(fā)送緩沖器SBUF后,啟動(dòng)發(fā)送器發(fā)送。當(dāng)發(fā)送完一
68、幀數(shù)據(jù)后,停止工作,置中斷標(biāo)志TI為1。,2. 方式1輸入,接收時(shí),由REN置1,允許接收,串行口采樣RXD,當(dāng)采樣由1到0跳變時(shí),確認(rèn)是起始位“0”,開(kāi)始接收一幀數(shù)據(jù)。當(dāng)RI=0,且停止位為1或SM2=0時(shí),停止位進(jìn)入RB8位,同時(shí)置中斷標(biāo)志RI;否則信息將丟失。所以,方式1接收時(shí),應(yīng)先用軟件清除RI或SM2標(biāo)志。,三、串行口工作方式2,方式2下,串行口為9位UART。發(fā)送或接收一幀數(shù)據(jù)包括1位起始位0,8位數(shù)據(jù)位,1位可編程位(TB
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)外文翻譯----51系列單片機(jī)的結(jié)構(gòu)和功能
- 外文翻譯--51系列單片機(jī)的功能和結(jié)構(gòu)
- 單片機(jī)相關(guān)外文翻譯-- mcs -51系列單片機(jī)的功能和結(jié)構(gòu)
- 單片機(jī)相關(guān)外文翻譯--mcs-51系列單片機(jī)的功能和結(jié)構(gòu)
- 外文資料翻譯---51系列單片機(jī)的結(jié)構(gòu)和功能
- 外文翻譯--51系列單片機(jī)的結(jié)構(gòu)和功能.doc
- 外文翻譯--51系列單片機(jī)的功能和結(jié)構(gòu).doc
- 外文翻譯--51系列單片機(jī)的結(jié)構(gòu)和功能.doc
- 外文翻譯--51系列單片機(jī)的功能和結(jié)構(gòu).doc
- 單片機(jī)畢業(yè)設(shè)計(jì)(論文)外文資料翻譯---51系列單片機(jī)的結(jié)構(gòu)和功能
- 基于MCS-51系列單片機(jī)的通用控制模塊的研究.pdf
- 模塊六 特殊功能模塊及其應(yīng)用
- 51單片機(jī)
- 單片機(jī)原理與應(yīng)用課程設(shè)計(jì)---stc51系列單片機(jī)的實(shí)驗(yàn)平臺(tái)開(kāi)發(fā)設(shè)計(jì)
- mcs-51系列單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---stc51系列單片機(jī)的實(shí)驗(yàn)平臺(tái)開(kāi)發(fā)設(shè)計(jì)
- avr、51系列、pic單片機(jī)的對(duì)比分析
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于51系列的單片機(jī)日歷和時(shí)鐘顯示設(shè)計(jì)
- 80c51單片機(jī)的功能單元
- 單片機(jī)論文-采用89c51系列單片機(jī)對(duì)步進(jìn)電機(jī)控制
評(píng)論
0/150
提交評(píng)論