2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩110頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第四章 51系列單片機(jī)的功能模塊及其應(yīng)用,4.1 并行口及其應(yīng)用4.2 定時器及其應(yīng)用4.3 串行口UART,4.1 并行口及其應(yīng)用,4.1.1 P1口,一、P1口的功能特性,P1.0—P1.7: 準(zhǔn)雙向I/O口(內(nèi)置了上拉電阻) 輸出時一切照常,僅在作輸入口用時要先對其 寫“1”。,1、 P1口結(jié)構(gòu)框圖,2、輸出數(shù)據(jù) = 1 時,3、輸出數(shù)據(jù) = 0時,4、輸入數(shù)據(jù)時,要先對其寫“1”,由于上拉電阻,可以驅(qū)動OC門,二、P

2、1口的操作,1、讀-修改-寫操作,先將P1口的數(shù)據(jù)讀入CPU,在ALU中進(jìn)行運(yùn)算,運(yùn)算結(jié)果再送回P1。 執(zhí)行"讀-修改-寫"類指令時,CPU是通過三態(tài)門 2讀回鎖存器Q端的數(shù)據(jù)來代表引腳狀態(tài)的。,ANL P1,A ;(P0)←(P0)∧(A)ORL P1,#data ;(P0)←(P0)∨dataDEC P1 ;

3、(P0)←(P0) -1,2、讀引腳操作,先向P1口鎖存器寫入1,然后進(jìn)行讀操作;此時讀進(jìn)來的是引腳的信號。,MOV P1,#0FFH MOV A,P1,3、對P1口可以采用字節(jié)操作,也可以采用位操作。,4、P1口的輸出級具有驅(qū)動4個LSTTL負(fù)載的能力,即輸出電流不大于400 μA。,5、另外,對于52子系列單片機(jī)P1口P1.0與P1.1除作為通用I/O接口線外,還具有第二功能,即P1.0可作為

4、定時器/計數(shù)器2的外部計數(shù)脈沖輸入端T2,P1.1可作為定時器/計數(shù)器2的外部控制輸入端T2EX。,4.1.2 P3口,P3.0—P3.7: 雙功能口(內(nèi)置了上拉電阻) 它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準(zhǔn)雙向I/O口。,一、P3口的功能特性,P3口的結(jié)構(gòu)框圖,二、P3口的操作,1、第一功能-準(zhǔn)雙向口的操作,此時,第二功能的輸出線總是為高電平。具體操作方式同P1口。,2、第二功能-特殊輸入輸出口的操作,P3

5、口第二功能表,第二功能輸出時,內(nèi)部自動 D=1,(1)第二功能輸出,(2)第二功能輸入,第二功能輸入時,信號經(jīng)緩沖器4直接進(jìn)入內(nèi)總線,4.1.3 P2口,一、P2口的功能特性,P2.0—P2.7: 雙向I/O (內(nèi)置了上拉電阻) 尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準(zhǔn)雙向I/O口使用。,P2口的結(jié)構(gòu)框圖,二、P2口的操作,1、控制=0時,此腳作通用輸出口:,2、控制=1 時,此腳作高8位地址A8—A15

6、輸出口:,4.1.4 P0 口,一、P0口的功能特性,P0.0—P0.7: 雙向I/O (內(nèi)置場效應(yīng)管上拉) 尋址外部程序存儲器時分時作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;(可浮空)不接外部程序存儲器時可作為8位準(zhǔn)雙向I/O口使用。,P0口的結(jié)構(gòu)框圖,二、P0口的操作,1、控制=0 時,此腳作準(zhǔn)雙向I/O口(外接上拉電阻),2、控制=1時,此腳作地址/數(shù)據(jù)復(fù)用口:,(1)輸出地址/數(shù)據(jù) =0 時,I/O端口應(yīng)用特性:,(1)端口

7、的自動識別。無論是P0、P2口的總線復(fù)用,還是口P3的功能復(fù)用,內(nèi)部資源會自動選擇,不需要通過指令的狀態(tài)選擇。,(2)口鎖存器的讀-修改-寫操作。許多涉及到I/O操作,實際上只是涉及口鎖存器的讀-修改-寫操作。這些指令是邏輯運(yùn)算、置位/清除、條件轉(zhuǎn)移指令等。,(3)讀引腳操作指令。如果某個I/O口被指定為源操作數(shù),則為讀引腳操作指令。,(4)準(zhǔn)雙向口的使用。,(6)I/O口的驅(qū)動特性。 P0口每一個I/O口可以輸出驅(qū)動

8、8個LSTTL輸入端, P1~P3口則可以驅(qū)動4個LSTTL輸入端。,(5)P0口作普通I/O口使用。必須加上拉電阻。,51單片機(jī)的4個8位的I/O口,P0.0—P0.7:8位數(shù)據(jù)口和輸出低8位地址復(fù)用口 (復(fù)用時是雙向口;不復(fù)用時也是準(zhǔn)雙向口)P1.0—P1.7: 通用I/O口(準(zhǔn)雙向口),P2.0—P2.7: 輸出高8位地址(用于尋址時是輸出口;不尋址時是準(zhǔn)雙向口)P3.0—P3.7: 具有特定的第二功能(準(zhǔn)雙向口),注意

9、:在不外擴(kuò)ROM/RAM時,P0~P3均可作通用I/O口使用,而且都是準(zhǔn)雙向I/O口(例如:AT89C51)!,小結(jié),4.1.5 并行口的應(yīng)用-蜂鳴器、可控硅的接口和編程,一、蜂鳴器,蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機(jī)、打印機(jī)、復(fù)印機(jī)、報警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時器等電子產(chǎn)品中作發(fā)聲器件。,蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。,(1)壓電式蜂鳴器  &

10、#160; 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。      當(dāng)接通電源后(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。      壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極

11、化和老化處理后,再與黃銅片或不銹鋼片粘在一起。,1、蜂鳴器的結(jié)構(gòu)原理,(2)電磁式蜂鳴器    電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。      接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲,蜂鳴器(TMB-09-A)參數(shù) 額定電壓

12、:3~12V    電壓范圍:2.5~15V    額定電流:≤35mA    聲壓電平:≥85db    諧振頻率:2300±500Hz    工作溫度:-20℃~+45℃    儲存溫度:-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ū)動程序,;-------延時子程序 -------DLY: MOV R0, #20 DLY0: MOV R7, #100 DLY1: MOV R6,

14、 #250 DJNZ R6, $ DJNZ R7, DLY1 DJNZ R0, DLY0 RET END,二、可控硅(晶閘管)接口,單向晶閘管圖形符號,(1)導(dǎo)通條件: 在陽極A與陰極K之間加正向電壓,同時在門極G與陰極K之間加正向電壓(觸發(fā)),這樣陽極A與陰

15、極K之間即進(jìn)入導(dǎo)通狀態(tài)。晶閘管一旦導(dǎo)通,只要陽極A與陰極K之間的電流不小于其維持電流IH,門極G與陰極K之間是否還存在正向電壓,對已經(jīng)導(dǎo)通的晶閘管完全沒有影響。,1、單向晶閘管工作原理,(2)關(guān)斷條件:主電極陽極A與陰極K之間的電流小于其維持電流IH,晶閘管即進(jìn)入關(guān)斷狀態(tài),雙向晶閘管圖形符號,2、雙向晶閘管(TRIAC),與單向晶閘管相比較,雙向晶閘管的主要區(qū)別是: ①在觸發(fā)之后是雙向?qū)ǖ模?②觸發(fā)電壓不分極性,只要

16、絕對值達(dá)到觸發(fā)門限值即可使雙向晶閘管導(dǎo)通。,3、可控硅接口電路,MOC3041是耐壓為400V的光電耦合器,它的輸出級由過零觸發(fā)的雙向可控硅構(gòu)成,它控制著主電路雙向可控硅的導(dǎo)通與關(guān)斷。,100Ω電阻與0.01μF電容組成雙向可控硅的保護(hù)電路。,4.1.6 并行口的應(yīng)用-撥碼盤的接口和編程,BCD撥碼盤具有0~9十個位置,每個位置都有相應(yīng)的指示,一個撥碼盤可以輸入1個十進(jìn)制數(shù)據(jù)。每個BCD撥碼盤后面有5位引出線,其中一位為輸入控制線(編號

17、為A),另外4位是數(shù)據(jù)線(編號為8,4,2,1)。,一、BCD撥碼盤的構(gòu)造,其中A為控制線,8、4、2、1四個接點為開關(guān)的輸出線。當(dāng)撥盤開關(guān)置于不同位置時,控制線A與8、4、2、1中某些接點接通。如撥到0,則所有的接點與A均不通;如撥到1,則1與控制線A接通,其余的均不通。,撥盤開關(guān)的輸出信號,O表示控制線A與該端接通X表示控制線A與該端不通把開關(guān)的輸出線經(jīng)電阻接到電源上,把控制線A接地,則接通的輸出端為“0”,不通的輸出端為“1”

18、。這時輸出碼為開關(guān)位置對應(yīng)的BCD碼的反碼,二、BCD撥碼盤的接口方法,1、單個撥盤的接口,2、多個撥盤的接口,3、撥碼盤數(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 定時器及其應(yīng)用,4.2.1 定時器的一般結(jié)構(gòu)和工作原理4.2.2 定時器T0、T1的功能和使

20、用方法4.2.3 定時器T0的應(yīng)用-定時中斷可控硅導(dǎo)通角,2個16位定時器/計數(shù)器 ——(52系列有3個16位Timer)定時器:對片內(nèi)機(jī)器時鐘(周期方波)進(jìn)行計數(shù)計數(shù)器:對Tx引腳輸入的負(fù)脈沖進(jìn)行計數(shù),與Timer工作有關(guān)的特殊功能寄存器: TCON 、TMOD、THx 和 TLx,定時器概述,TIMER的作用:定時操作:定時采樣,定時掃描,定時中斷測量外部信號:累加統(tǒng)計,測量周期等定時輸出:PWM等監(jiān)視

21、系統(tǒng)正常工作與否,4.2.1 定時器的一般結(jié)構(gòu)和工作原理,實質(zhì)是計數(shù)器,脈沖每一次下降沿,計數(shù)寄存器數(shù)值將加1. 計數(shù)的脈沖如果來源于單片機(jī)內(nèi)部的晶振,由于其周期極為準(zhǔn)確,這時稱為定時器。 計數(shù)的脈沖如果來源于單片機(jī)外部的引腳,由于其周期一般不確定,可表示事件發(fā)生,這時稱為計數(shù)器。,一、定時方式,T=(1/f)*(2^16-a)us,對于一個N位的加1計數(shù)器,若計數(shù)頻率已知,則從初值a開始加1計數(shù)至溢出所占用的時間為:

22、,這種工作方式稱為定時器方式,其計數(shù)的目的就是為了定時。,二、計數(shù)器方式,若用外部輸入時鐘計數(shù),一般其計數(shù)的目的是為了對外部時鐘累加計數(shù)或為了測量外部輸入時鐘的參數(shù)。這種方式通常稱為計數(shù)器方式。,三、通用的多功能定時器,四、監(jiān)視定時器WDT(看門狗),4.2.2 定時器T0、T1的功能和使用方法,,,,,,,,,GATE C / T M1 M0 GATE C / T M1

23、M0,一、定時器方式寄存器TMOD (89H),,,,,T1,T0,M1,M0:工作方式定義位 ( 定義4 種方式 ):,C/T :計數(shù)器/定時器選擇位 = 1 外部事件計數(shù)器。對Tx引腳的負(fù)脈沖計數(shù); = 0 片內(nèi)時鐘定時器。對機(jī)器周期脈沖計數(shù)定時,,0 0:13位 Timer——用它無益,不要記它!0 1:16位 Timer——經(jīng)常用到。1 0:可自動重裝的 8位 Timer——經(jīng)常用到。1 1:T0 分為2個8位

24、 Timer;T1 此時不工作 ——因為沒有帶來什么好處,幾乎無用。,GATE門控位: Timer可由軟件與硬件兩者控制 ? GATE = 0 ——普通用法 Timer的啟/停由軟件對TRx位寫“1”/“0”控制,(89H),? GATE = 1 ——門控用法 Timer的啟/停由軟件對TRx位寫“1”/“0” 和在INTx引腳上出現(xiàn)的信號的高/低共同控制 (INTx引腳高電平允許定時/

25、計數(shù)),,,,,,,,,GATE C / T M1 M0 GATE C / T M1 M0,,,,,T1,T0,,,,,,,,,TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,二、定時器控制寄存器TCON (88H),TFx: Timer0/1計數(shù)溢出標(biāo)志位。 =1 計數(shù)

26、溢出; =0 計數(shù)未滿 TFx標(biāo)志位可用于申請中斷或供CPU查詢。 在進(jìn)入中斷服務(wù)程序時會自動清零;但在 查詢方式時必須軟件清零。,TRx: Timer0/1運(yùn)行控制位。 =1 啟動計數(shù); =0 停止計數(shù),TR0/TR1:Timer0/1運(yùn)行控制位: TR0/TR1 =0 時,Timer0/1停止計數(shù) TR0/TR1 =1 時,Timer0/1啟動計數(shù),定時器T

27、0/T1 中斷申請過程,? 在已經(jīng)開放T0/T1中斷允許且已被啟動的前提下:? T0/T1加滿溢出時 TF0/TF1標(biāo)志位自動置“1” ? 檢測到TCON中TF0/TF1變“1”后,將產(chǎn)生指令: LCALL 000BH/LCALL 001BH 執(zhí)行中斷服務(wù)程序,? TF0/TF1標(biāo)志位會自動清“0”,以備下次中斷申請。,定時/計數(shù)器可按片內(nèi)機(jī)器周期定時,也可對由T0/T1引腳輸入一個負(fù)脈沖進(jìn)行加法計數(shù),,,,,,

28、,,,TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,TCON (88H),三、T0、T1的工作方式和計數(shù)器結(jié)構(gòu),工作方式1:——16位的定時/計數(shù)器,,,振蕩器,?12,,,,,,,,,,,,,,,,,,,,,,,,,,,,TLx THx (8位) (8位),TFx,,,申請中斷,,Tx端,TRx位,GATE位,INTx端,≥1,&,C/T=0,C/T=1,控制 =1開關(guān)接通,,,或

29、門,與門,,,,最大計數(shù)脈沖個數(shù):65536(216),? THx/TLx賦初值:THx賦高8位,TLx賦低8位,工作方式1 的編程要點:,? TMOD選方式: 寫“M1,M0”=01b選方式1,? 若不用門控位,直接用軟件寫TRx控制啟/停? 若使用門控位,先置位TRx,然后由INTx端 的高/低電平來控制其啟/停,? 若要允許中斷,還須先置位ETx、EA等中斷 允許控制位,并編寫中斷服務(wù)程序? 若不用中斷,可查詢“計

30、數(shù)溢出標(biāo)志TFx” 的方式工作,但溢出標(biāo)志TFx須軟件清0,方式1:定時初值/定時時間計算,定時器的計數(shù)單元每個機(jī)器周期自動加1直到溢出(0) T=(12/fosc)*(2^16-a)us,定時器(方式1)應(yīng)用程序舉例:,分析:已知fosc = 6MHz 則: (振蕩周期)1Tc=1/6MHz (機(jī)器周期)1Tm=12Tc=12/6MHz=2?S? 粗略地說:Tmin ? 2?S 16位定時器最大數(shù)值為:21

31、6=65536=0FFFFH+1 故選擇方式 1 工作可以得到:? Tmax = 65536?2 = 131072?S=131.072mS,例1:若晶振頻率為6MHz,計算單片機(jī)的最小與最大定時時間:,分析:已知fosc = 6MHz 則: (機(jī)器周期)1Tm=12Tc=12/6MHz=2?S 100mS÷2 ?S = 50000 16位定時器最大數(shù)值為: 2

32、16 = 65536 (=0FFFFH+1) 故選擇方式1工作可以滿足要求。計算初值:65536-50000=15536=3CB0H,例2:要求對T0產(chǎn)生100mS定時進(jìn)行初始化。 (晶振=6MHz),,,,,,,,,GATE C / T M1 M0 GATE C / T M1 M0,定時器方式寄存器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 ;啟動 T0定時若需要定時器0產(chǎn)生中斷還應(yīng)當(dāng)寫如下語句: SETB ET0

34、 ;開T0中斷允許 SETB EA ;開總中斷允許以及相應(yīng)的中斷服務(wù)程序。,工作方式2:——8 位自動重裝的定時/計數(shù)器,,,振蕩器,?12,,,,,,,,,,,,,,,,,,,,,,,,,,,,TLx (8位),TFx,,,申請中斷,,Tx端,TRx位,GATE位,INTx端,≥1,&,C/T=0,C/T=1,控制 =1開關(guān)接通,,,或門,與門,,,,THx (8位),,,,,,溢出

35、位,門開,用于需要重復(fù)定時和計數(shù)的場合。最大計數(shù)值:256 (28),? THx/TLx賦相同初值 在TLx計數(shù)達(dá)到0FFH 再加“1”時,TL0 將溢出, “TFx”置1去申請中斷,同時THx中的 值自動重裝(Copy)進(jìn)TLx,工作方式 2 的編程:,? TMOD寄存器選方式: 寫“M1,M0” = 10 b 選中方式2,? 其他用法與各種方式1完全相同,方式2:定時初值/定時時間計算,定時器的計

36、數(shù)單元每個機(jī)器周期自動加1直到溢出(0) T=(12/fosc)*(2^8-a)us (最大計數(shù)值:256),分析:fosc = 6MHz 1機(jī)器周期 = 2 ?S 1KHz方波周期 = 1 mS 半個方波周期 =500?S 500uS÷2 uS = 250 若選擇方式2 工作,8位定時器最大數(shù)值為: 28 =256 =0FFH + 1 可以滿足要求。計算初值:256-250=6,例3

37、:從P1.0 腳輸出頻率=1KHz方波。設(shè):晶振=6MHz。利用T1定時中斷。,,,Th:半周期,T:周期,,,,,,,,,,,,,,,,,定時器(方式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;賦重裝值;賦初值;開T1中斷;開總中斷;啟動T1,T0: 組織成TL0和TH0兩個8位定時/計數(shù)器,Timer工作方式 3 ——幾乎無用,T1: 不再

39、是定時/計數(shù)器了 T1 的TR1和TF1出借給TH0當(dāng)控制位使用, 剩下的TH1/TL1寄存器只能當(dāng)作普通寄存 器用。,,,振蕩器,?12,,,,,,,,,,,,,,,,,,,,,,,,,,,,TL0 (8位),TF0,,,申請中斷,,T0端,TR0位,GATE位,INT0端,≥1,&,C/T=0,C/T=1,控制 =1開關(guān)接通,,,或門,與門,,,,TH0 (8位),,,,,,,,,,,TF1,,

40、,申請中斷,,,TR1位,,控制 =1,Timer工作方式 3 結(jié)構(gòu):,?T0成為雙 8位Timer ?T1不再有Timer功能 ?TF1,TR1出借給TH0,長定時舉例(設(shè)晶振=6MHz,要定時1秒):,ORG 0000H ;P.143例5 AJMP MAIN ORG 001BH AJMP TINT ;見下一頁MAIN: M

41、OV TMOD,#10H ;選T1方式1 MOV TH1, #3CH ;賦初值3CB0H=15536(只能定100mS) MOV TL1,#0B0H MOV 30H,#10 ;軟件計數(shù)單元30H 初值=10 CLR F0 ;芯片復(fù)位時已經(jīng)是“0”,此句可有可無 SETB ET1 ;開T1中斷 SETB EA

42、 ;開總中斷 SETB TR1 ;啟動T1 HERE: JBC F0,TIMEUP ;原地等待“1秒到”的標(biāo)志 F0 AJMP HERETIMEUP:(do something) ;定時1秒到了以后要做的事情 AJMP HERE,,中斷服務(wù)在主程序中,長定時舉例(續(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 ;為下一個1秒定時做準(zhǔn)備RTN: MOV TH1,#3CH ;再賦定時100mS的初值3CB0HMOV TL1,#0B0H RETI

44、 ;中斷返回 END,將此例的中斷服務(wù)改寫在中斷服務(wù)程序中:,ORG 0000H AJMP MAIN ORG 001BH AJMP TINT ;見下一頁MAIN: MOV TMOD,#10H ;選T1方式1 MOV TH1,#3CH ;賦初值3CB0H=15536(只能定100mS) MOV TL1,#0B0H

45、 MOV 30H,#10 ;軟件計數(shù)單元30H 初值=10 CLR F0 ;芯片復(fù)位時已經(jīng)是“0”,此句可有可無 SETB ET1 ;開T1中斷 SETB EA ;開總中斷 SETB TR1 ;啟動T1 HERE: AJMP HERE ;原地等待中斷,長定時舉例(續(xù)):,ORG 0000H

46、 AJMP MAIN ORG 001BH AJMP TINTMAIN: …………………TINT:DJNZ 30H,RTN ;若中斷不到10次就返回 MOV 30H,#10 ;為下一個1秒定時做準(zhǔn)備(do something);定時1秒到了以后要做的事情)RTN: MOV TH1,#3CH ;再賦初值MOV TL1,#0B0H RETI

47、 ;中斷返回 END,,中斷服務(wù),定時器小結(jié): (2個16位加法計數(shù)器),?運(yùn)行/停止由TRx位控制,(當(dāng)GATE=1時: 由TRx位和Tx引腳上的信號共同控制),?工作方式由TMOD決定; 計數(shù)/定時由C/T位決定 工作方式0(13位) 永遠(yuǎn)不用 工作方式3(T0拆為雙8位) 幾乎無用 工作方式1(16位) 經(jīng)常用到 工作方式2(8位自動重

48、裝) 經(jīng)常用到,?從初值按機(jī)器周期或外部脈沖遞加,溢出位 TFx申請中斷;中斷允許由ETx位和EA位控制,,,,?特別注意:不管定時時間到了與否,只要不控制TRx位,定時器就不會停止。注意:定時初值,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ù)據(jù)位數(shù)相等。串行通訊:數(shù)據(jù)逐位順序傳送。傳輸線僅需1-2根。,串行通信的基本特征是數(shù)據(jù)逐位順序進(jìn)行傳送串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號電平……等)不同,形成了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn)。常見的有:?通用異步收發(fā)器(UART)——本課程介紹的串口?通用串行總線(USB)?I2C總線 ?CAN總線 ?SPI總線 ?RS-485,……等等,全雙工

50、串行接口(UART),?全雙工:(串行通信)收/發(fā)可同時進(jìn)行 半雙工:(串行通信)收/發(fā)不可同時進(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,去申請中斷,,,,,引腳,引腳,CPU內(nèi)部,串行口的結(jié)構(gòu),?兩個同名的接收/發(fā)送緩沖寄存器SBUF(99H) 指令 MOV SBUF,A 啟動一次數(shù)據(jù)發(fā)送,可向SBUF 再發(fā)送下一個數(shù) 指令 MOV A,SBUF 完成一

52、次數(shù)據(jù)接收,SBUF可再 接收下一個數(shù),?接收/發(fā)送數(shù)據(jù),無論是否采用中斷方式 工作,每接收/發(fā)送一個數(shù)據(jù)都必須用指 令對 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位), 波特率可變,按公式計算 1 0 方式2:9位UART(1+8+1+1位), 波特率固定=fosc /32或1/64 1 1 方式3:9位UART(1+8+1+1位), 波特率可

54、變,按公式計算,? SM2:串行口多機(jī)通信控制位 (作為方式2、方式3的附加控制位),一、串行口控制寄存器SCON(98H),? RI,TI:串行口收/發(fā)數(shù)據(jù)申請中斷標(biāo)志位 =1 申請中斷; =0 不申請中斷,? TB8:方式2、3中,是要發(fā)送的第9位數(shù)據(jù)。 多機(jī)通信中,TB8=0 表示發(fā)送的是數(shù)據(jù); TB8=1 表示發(fā)送的是地址。(奇偶校驗),? RB8:在方式2、3中,是收到的第9位數(shù)

55、據(jù)。 在多機(jī)通信中,用作區(qū)別地址幀/數(shù)據(jù)幀的 標(biāo)志。(奇偶校驗),,,,,,,,,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 時,波特率加倍 =0 時,波特率不加倍。 (在PCON中只有這一個位與串口有關(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ù)振蕩 ?中斷、定時器、串口功能繼續(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輸出移位時鐘,波特率=fosc/12; ?每送出8位數(shù)據(jù) TI就自動置1; ?需要用軟件清零 TI。,?接收:串行數(shù)據(jù)由RxD逐位移入SBUF中; TxD輸出移位時鐘,波特率=fosc/12; ?每接收 8位數(shù)據(jù)RI就自動置1; ?需要用軟件清零 RI。,4.3.2 串行

60、接口的工作方式,方式0時序圖,發(fā)送時序,,寫入SBUF,RXD輸出,TXD,TI,D0,D1,D2,D3,D4,D5,D6,D7,,,,寫REN=1RI=0,RXD輸入,RI,,接收時序,,,?經(jīng)常配合“串入并出”“并入串出”移位 寄存器一起使用擴(kuò)展接口。,?方式0工作時,多用查詢方式編程: 發(fā)送:MOV SBUF,A 接收:JNB RI,$ JNB TI,$ CLR RI

61、 CLR TI MOV A, SBUF,?復(fù)位時,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,,,,共陽LED 數(shù)碼管,,VCC,TxD,RxD,51單片機(jī),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,共陽極,h g

63、f e d c b a,a,b,c,d,g,e,f,h,共陽LED數(shù)碼管公共端(字位) 接高電平,筆劃(字段) 置為低電平就被點亮了,,,,,,,,,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ū)動共陽LED數(shù)碼管顯示0—9。,,,,,,,,,,,,,,,AB,CLK,h g f e d c b a,CLR,,,,,,,,+5V,VCC,TxD,RxD,51單片機(jī),,,,,,,,,,74LS164,,共陽LED數(shù)碼管,,,,,根據(jù)上圖編寫的通過串行口和74LS164 驅(qū)動共陽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,,,,,,,,,共陽極,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的條件下,串行口即開始從RXD端以fosc/12的波特率輸入數(shù)據(jù)(低位在前),當(dāng)接收完8位數(shù)據(jù)后,置中斷標(biāo)志RI為1,請求中斷。在再次接收數(shù)據(jù)之前,必須由

67、軟件清RI為0。具體接線圖如圖所示。其中,74LS165為并入串出移位寄存器。,二、串行口工作方式 1,串行口為波特率可調(diào)的8位通用異步串行通信口。發(fā)送或接收一幀信息,包括1位起始位0,8位數(shù)據(jù)位和1位停止位1。其幀格式如圖所示。,方式1工作時: 發(fā)送端自動添加一個起始位和一個停止位; 接收端自動去掉一個起始位和一個停止位。,1. 方式1輸出,發(fā)送時,數(shù)據(jù)從TXD端輸出,當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器SBUF后,啟動發(fā)送器發(fā)送。當(dāng)發(fā)送完一

68、幀數(shù)據(jù)后,停止工作,置中斷標(biāo)志TI為1。,2. 方式1輸入,接收時,由REN置1,允許接收,串行口采樣RXD,當(dāng)采樣由1到0跳變時,確認(rèn)是起始位“0”,開始接收一幀數(shù)據(jù)。當(dāng)RI=0,且停止位為1或SM2=0時,停止位進(jìn)入RB8位,同時置中斷標(biāo)志RI;否則信息將丟失。所以,方式1接收時,應(yīng)先用軟件清除RI或SM2標(biāo)志。,三、串行口工作方式2,方式2下,串行口為9位UART。發(fā)送或接收一幀數(shù)據(jù)包括1位起始位0,8位數(shù)據(jù)位,1位可編程位(TB

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論