第四章單片機的其他片內(nèi)功能部件_第1頁
第四章單片機的其他片內(nèi)功能部件_第2頁
第四章單片機的其他片內(nèi)功能部件_第3頁
第四章單片機的其他片內(nèi)功能部件_第4頁
第四章單片機的其他片內(nèi)功能部件_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、l實現(xiàn)和不同外設(shè)的速度匹配l改變數(shù)據(jù)傳送方式l改變信號的性質(zhì)和電平外部設(shè)備的編址外部設(shè)備的編址1.對外設(shè)端口單獨編址對外設(shè)端口單獨編址 IN A,(N) ;N端口中的數(shù) OUT (N),A2.外設(shè)端口和存儲器統(tǒng)一編址外設(shè)端口和存儲器統(tǒng)一編址將一部分地址空間讓給外設(shè)端口,存儲器不再使用。優(yōu)點:優(yōu)點:(1)一切指令均適用于I/O端口的訪問,增強了CPU對外圍設(shè)備的處理能力。(2)CPU本身不需要專門的I/O指令。(3)外設(shè)地址安排靈活,數(shù)量不限。l端口:端口:常指常指I/O接口中帶有端口地址的寄存器接口中帶有端口地址的寄存器或緩沖器,或緩沖器,CPU通過端口地址就可以對端口通過端口地址就可以對端口

2、中信息進行讀寫。中信息進行讀寫。l接口:接口:指指CPU與外設(shè)間的與外設(shè)間的I/O接口芯片,一個接口芯片,一個外設(shè)通常需要一個外設(shè)通常需要一個I/O接口,但一個接口,但一個I/O接口接口可以有多個可以有多個I/O端口,傳送數(shù)據(jù)字的端口稱數(shù)端口,傳送數(shù)據(jù)字的端口稱數(shù)據(jù)口,傳送命令字的稱命令口,傳送狀態(tài)字據(jù)口,傳送命令字的稱命令口,傳送狀態(tài)字的稱為狀態(tài)口。的稱為狀態(tài)口。v四個四個8位并行位并行I/O端口:端口:P0P0、P1P1、P2P2和和P3P3。v每個端口都是每個端口都是8位準(zhǔn)雙向口,包含一個鎖存器位準(zhǔn)雙向口,包含一個鎖存器(即特殊功能寄存器即特殊功能寄存器P0P0P3P3)、)、一個輸出驅(qū)

3、動器一個輸出驅(qū)動器和一個輸入緩沖器。和一個輸入緩沖器。v這四個并行這四個并行I/OI/O口都可以作準(zhǔn)雙向通用口都可以作準(zhǔn)雙向通用I/OI/O口,既口,既可以作輸入口,又可以作輸出口,還可以作雙向可以作輸入口,又可以作輸出口,還可以作雙向口???。輸出有鎖存功能;輸入有三態(tài)緩沖但無鎖存輸出有鎖存功能;輸入有三態(tài)緩沖但無鎖存功能功能。它們既可以以字節(jié)尋址,也可以按位獨立。它們既可以以字節(jié)尋址,也可以按位獨立輸入輸入/ /輸出。輸出。 三種I/O端口操作方式1.數(shù)據(jù)輸出方式(寫端口)通過一條指令將數(shù)據(jù)寫入P0-P3的數(shù)據(jù)鎖存器,然后通過輸出驅(qū)動器送到端口引腳。MOV P0,A ;累加器A中內(nèi)容送P0口

4、2.讀端口對端口鎖存器數(shù)據(jù)進行讀入,這個數(shù)據(jù)并非端口引腳上的數(shù)據(jù)MOV A,P1 ;P1鎖存器中數(shù)據(jù)送A3.讀引腳從端口引腳上讀數(shù)據(jù),先使對應(yīng)端口鎖存器置位,使T管截止,然后打開數(shù)據(jù)緩沖器,使引腳數(shù)據(jù)輸入數(shù)據(jù)總線。MOV P1,#0FH ;使P1口低四位鎖存器置位MOV A,P1 ;讀P1口低四位引腳線信號P1.X鎖存器讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCC內(nèi)部上拉電阻QQDCLP1.X引腳P1口的位結(jié)構(gòu)口的位結(jié)構(gòu)l通用I/O口可以采用字節(jié)操作也可以采用位操作,CPU既可以把它們看作數(shù)據(jù)口也可以看作狀態(tài)口。CPU復(fù)位后,口鎖存器為“1”,對于作為輸入的口腳(讀引腳),相應(yīng)位的口鎖存器不能寫入“0

5、”。例41讀P1.4P1.7口狀態(tài)送指示燈顯示。 字節(jié)操作參考程序: ORL P1,#0F0H ;P1.4P1.7口鎖存器置口鎖存器置1 MOV A,P1 ;讀讀P1.4P1.7引腳狀態(tài)引腳狀態(tài) SWAP A ; MOV P1,A ; RET P2口有兩種功能: 對于內(nèi)部有程序存貯器的單片機,P2口既可以作為輸入/輸出口使用,也可以作為系統(tǒng)擴展的地址總線口,輸出高8位地址A8A15。 對于內(nèi)部沒有程序存貯器的單片機,必須外接程序存貯器,一般情況下P2口只能作為系統(tǒng)擴展的高8位地址總線口,而不能作為外部設(shè)備的輸入輸出口。 P2口作通用口作通用I/O口口 例4-3 XRL P2,#01H ;P2.

6、0取反CPL P2.0 ;P2.0取反 P2口作地址總線口作地址總線(1)若片外數(shù)據(jù)存儲器的容量)若片外數(shù)據(jù)存儲器的容量256256B B 這時這時P2P2口不輸出地址,仍可作為口不輸出地址,仍可作為I/OI/O口使用口使用例4-4 將56H寫入外部RAM的38H單元,CPU執(zhí)行下面的程序段不影響P2口狀態(tài): MOV R0, #38H MOV A, #56H MOVX R0, A (2)若片外數(shù)據(jù)存儲器的容量)若片外數(shù)據(jù)存儲器的容量256B MOVX A,DPTR MOVX DPTR,A P0口既可作通用I/O口(用8051時)使用,又可作地址數(shù)據(jù)分時復(fù)用總線使用。 P3口除了作為準(zhǔn)雙向通用I

7、/O接口使用外,每一根線還具有第二種功能 。引腳第 二 功 能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷0請求輸入端)P3.3INT1(外部中斷1請求輸入端)P3.4T0(定時器/計數(shù)器0計數(shù)脈沖輸入端)P3.5T1(定時器/計數(shù)器1計數(shù)脈沖輸入端)P3.6WR(片外RAM寫選通信號輸出端)P3.7RD(片外RAM讀選通信號輸出端)1、MCS-51內(nèi)部具有兩個定時/計數(shù)器,可用于定時控制,分頻器和事故處理來用。2、內(nèi)部是一個二進制加1計數(shù)器,當(dāng)計數(shù)器計滿回零時能自動產(chǎn)生溢出中斷請求,表示定時時間已到或計數(shù)已中止。2 2個可獨立控制的個可獨立控制的1616

8、位定時器位定時器/ /計數(shù)器:計數(shù)器:T0T0、T1T1原理:原理:1、定時模式每一個機器周期計數(shù)器加1,直至計滿溢出產(chǎn)生中斷請求。對于一個N位的加1計數(shù)器,若計數(shù)時鐘的頻率f是已知的,則從初值a開始加1計數(shù)至溢出所占用的時間為:當(dāng)N=8、a=0、t=1/f時,最大的定時時間為: T=256t 2、計數(shù)模式外部輸入信號是加到T0(P3.4)或T1(P3.5)端,CPU每個機器周期對T0(或T1)檢測一次,只有在前一次檢測為1后一次檢測為0時才使計數(shù)器加1。所以,對外部輸入信號的最高計數(shù)速率是晶振的1/24。)2(*1afN一一. .定時器控制、狀態(tài)寄存器定時器控制、狀態(tài)寄存器1.1.TMTMO

9、D D定時器定時器方式寄存器方式寄存器(8989H H)1 1)功能選擇位)功能選擇位C/TC/T:=0=0,定時功能,計數(shù)內(nèi)部機器周期脈沖;定時功能,計數(shù)內(nèi)部機器周期脈沖;=1=1,計數(shù)功能,計數(shù)引腳,計數(shù)功能,計數(shù)引腳T0(T1)T0(T1)輸入的脈沖下降沿。輸入的脈沖下降沿。2 2)方式選擇位)方式選擇位M1M1、M0M0:4 4種工作方式:種工作方式:13/16/813/16/8位位3 3)門控方式選擇位)門控方式選擇位GATE GATE : =0=0,非門控方式非門控方式( (內(nèi)部啟動內(nèi)部啟動) ):TRx=1TRx=1,啟動定時器工作;啟動定時器工作;TRx=0TRx=0,停止定時

10、器工作。停止定時器工作。=1=1,門控方式,門控方式( (外部啟動外部啟動) ):TRx=1TRx=1且引腳且引腳INTx=1INTx=1才啟動。才啟動。GATEC/TM1M0GATEC/TM1M0T1T0M1 M0方方式式功功能能描描述述0 0013位位0 1116位位1 028位位自自動動重重裝裝1 13T0為為兩兩個個8位位 M MOV VTMTMOD D,#1101 0010B#1101 0010B 或或 M MOV VTMTMOD D,#0D2H#0D2H注:只能字節(jié)尋址注:只能字節(jié)尋址 GATEC/TM1M0GATEC/TM1M0TMTMOD D確定定時器工作方式指令:確定定時器工

11、作方式指令:M MOV TMV TMOD D,# #方式字方式字例:例:設(shè)設(shè)T0T0用方式用方式2 2非門控定時,非門控定時,T1T1用方式用方式1 1門控計數(shù)。門控計數(shù)。1 1)啟動控制位)啟動控制位TR0TR0、TR1TR1=0=0,停止定時器工作;停止定時器工作; =1=1,啟動定時器工作。,啟動定時器工作。例:啟動例:啟動T0T0:SETBSETBTR0 ;TR0 ;注:可以位尋址注:可以位尋址2 2)溢出中斷標(biāo)志位)溢出中斷標(biāo)志位TF0TF0、TF1TF1定時器溢出使定時器溢出使TFx=1TFx=1。中斷方式:中斷方式: TFx=1 TFx=1引起中斷請求,引起中斷請求,CPUCPU

12、響應(yīng)響應(yīng)TxTx中斷后,自動對中斷后,自動對TFxTFx清清0 0 。軟件查詢方式:軟件查詢方式: 可用軟件檢測可用軟件檢測TFxTFx,必須軟件清必須軟件清0 0。WAITWAIT:JBC TF0JBC TF0,NEXTNEXT;檢測檢測T0T0是否溢出是否溢出SJMPSJMPWAITWAIT ;未溢出,繼續(xù)檢測未溢出,繼續(xù)檢測NEXTNEXT: ;溢出,溢出,TF0TF0清清0 0,處理溢出,處理溢出TF1TR1TF0TR03 3可預(yù)置初值的可預(yù)置初值的1616位加位加1 1定時計數(shù)器定時計數(shù)器 屬于屬于SFRSFR中的一種,中的一種,T0T0由由TH0TH0、TL0TL0組成,組成, T

13、1T1由由TH1TH1、TL1TL1組成。通過預(yù)設(shè)初值來定時。組成。通過預(yù)設(shè)初值來定時。預(yù)置預(yù)置T0T0初值指令:初值指令:M MOV VTH0TH0,#X#XH HM MOV VTL0TL0,#X#XL L1313位定時位定時/ /計數(shù)器。計數(shù)器。計數(shù)外部脈沖個數(shù):計數(shù)外部脈沖個數(shù):1 18192(28192(21313) )定時時間定時時間(12(12MHzMHz,即:即:T=1T=1 s)s):1 1 s s 8.192ms8.192msusfatosc12)2(13TRxINTxGATE振蕩器振蕩器12THxTLxTFx8位位 5位位Tx腳腳&TRx 1GATE啟動啟動控制控制

14、INTxC/T=0C/T=1中斷中斷申請申請THx THx 高高8 8位和位和TLx TLx 低低5 5位組成位組成1313位加位加1 1計數(shù)器計數(shù)器例:計算得初值為例:計算得初值為76927692,1313位定時器位定時器T0T0應(yīng)裝初值應(yīng)裝初值多少?多少?76927692化為化為1616進制數(shù)進制數(shù)1 1E0CH,E0CH,則則TH0TH00FOH,TL0=0CH0FOH,TL0=0CHT1T9T8T7T6T5T4T3T2T13T12T11T10TH0/TH1TL0/TL11616位定時位定時/ /計數(shù)器。計數(shù)器。 THx8THx8位和位和TLx8TLx8位組成位組成1616位加位加1 1

15、計數(shù)器計數(shù)器計數(shù)外部脈沖個數(shù):計數(shù)外部脈沖個數(shù):1 165536(265536(21616) )定時時間定時時間( (T=1T=1 s)s):1 1 s s 65536 65536T= 65.54msT= 65.54msusfatosc12)2(16振蕩器振蕩器12THxTLxTFx8位位 8位位Tx腳腳&TRx 1GATE啟動啟動控制控制INTxC/T=0C/T=1中斷中斷申請申請自動恢復(fù)初值自動恢復(fù)初值8 8位定時位定時/ /計數(shù)器。計數(shù)器。TLxTLx為為8 8位加位加1 1計數(shù)器,計數(shù)器,THxTHx為為8 8位初值暫存器。位初值暫存器。無需重裝初值,用于需要重復(fù)定時無需重裝初

16、值,用于需要重復(fù)定時和計數(shù)的場合。和計數(shù)的場合。最大計數(shù)值:最大計數(shù)值:256 (2256 (28 8) )最大定時時間最大定時時間( (T=1T=1 s)s): 256 256 s susfatosc12)2(8振蕩器振蕩器12TLxTHxTFx8位位 Tx腳腳&TRx 1GATE啟動啟動控制控制INTxC/T=0C/T=1中斷中斷申請申請重重裝裝 方式方式2下,當(dāng)定時器計滿回零時,一方面向下,當(dāng)定時器計滿回零時,一方面向CPU發(fā)出溢出中斷請求,另一方面從發(fā)出溢出中斷請求,另一方面從TH中重新獲得初值并啟動計數(shù)。中重新獲得初值并啟動計數(shù)。 而方式而方式0、1、3下,定時器必須通過重裝

17、初下,定時器必須通過重裝初值來重新啟動計數(shù)。值來重新啟動計數(shù)。T0T0分成分成2 2個獨立的個獨立的8 8位定時器:位定時器:TL0TL0定時定時/ /計數(shù)器和計數(shù)器和TH0TH0定時器定時器TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE;TH0TH0占用占用T1T1控制位控制位。T1T1不能使用方式不能使用方式3 3工作工作, ,一般當(dāng)一般當(dāng)T1T1作為波特率發(fā)生器時作為波特率發(fā)生器時, ,T0T0選方選方式式3 3。振蕩器振蕩器12TL0TF08位位 T0腳腳&TR0 1GATE啟動啟動控制控制INT0C/T=0C/T=1中斷中斷申請申請T

18、H0TF18位位 啟動啟動控制控制中斷中斷申請申請振蕩器振蕩器12TR11初始化步驟初始化步驟 1 1)給定時器方式寄存器)給定時器方式寄存器TMOD寫一個方式控寫一個方式控制字。制字。 2 2)給定時器送定時初值。)給定時器送定時初值。 3 3)給中斷允許寄存器)給中斷允許寄存器IEIE選送中斷控制字和中選送中斷控制字和中斷優(yōu)先級寄存器斷優(yōu)先級寄存器IPIP選送中斷優(yōu)先級字,以開放選送中斷優(yōu)先級字,以開放相應(yīng)中斷和設(shè)定中斷優(yōu)先級。相應(yīng)中斷和設(shè)定中斷優(yōu)先級。 4 4)給定時器控制寄存器)給定時器控制寄存器TCONTCON送命令字,以啟送命令字,以啟動或禁止定時器動或禁止定時器/ /計數(shù)器的運行

19、。計數(shù)器的運行。 2計數(shù)器初值的計算 TC=MC 方式時為方式時為213213;方式時;方式時為為216216;方式和方式時為;方式和方式時為2828。TCTC為計數(shù)初值為計數(shù)初值C C為計滿所需要的計數(shù)個數(shù)為計滿所需要的計數(shù)個數(shù)定時器初值的計算定時器初值的計算T=(MT=(MTC) TTC) T計數(shù)計數(shù)上式也可寫成:上式也可寫成:TC=MTC=MT/ TT/ T計數(shù)計數(shù) 式中,為模值,和定時器的工作方式式中,為模值,和定時器的工作方式有關(guān);有關(guān);T T計數(shù)計數(shù)是單片機時鐘周期是單片機時鐘周期CLKCLK的的1212倍;倍;TCTC為定時器的定時初值。為定時器的定時初值。 例例4-7 若單片機

20、時鐘頻率為若單片機時鐘頻率為12MHz,請計算定時請計算定時2ms所需的定時器初值。所需的定時器初值。解:由于定時器工作在方式2和方式3下時的最大定時時間只有0.256ms,因此要想獲得2ms的定時時間定時器必須工作在方式0或方式1。若采用方式0,則根據(jù)公式可得定時器初值為:TC= M MT/ TT/ T計數(shù)計數(shù)= 213 2*103/1=6192=1830H即:TH0應(yīng)裝0C1H;TL0應(yīng)裝#10H(高三位為0)若采用方式1,則根據(jù)公式可得定時器初值為:TC=2ms/1=63536=F830H 即:TH0應(yīng)裝#0F8H;TL0應(yīng)裝#30H。0000110001100TH0TL0C110H例:

21、設(shè)8031時鐘頻率為12MHz,要求定時器T0定時50ms,寫出初始化程序。TC=M-T/T計數(shù)216-50ms/1us=15536=3CB0HSTART:MOV TMOD #01H START:MOV TMOD #01H ;方式方式1 1 MOV TH0,#3CH MOV TH0,#3CH ;裝初值裝初值 MOV TL0,#0B0H MOV TL0,#0B0H SETB TR0 SETB TR0 ;啟動啟動T0T0計數(shù)計數(shù)WAITWAIT:JBC TF0JBC TF0,TT0 TT0 ;檢測檢測T0T0是否溢出是否溢出 SJMP WAITSJMP WAIT ;未溢出,繼續(xù)檢測未溢出,繼續(xù)檢測

22、TTO: MOV TH0, #3CH TTO: MOV TH0, #3CH ;重裝初值重裝初值 MOV TL0,#0B0H MOV TL0,#0B0H 一、數(shù)據(jù)通信的基本方式一、數(shù)據(jù)通信的基本方式并行通信并行通信數(shù)據(jù)有多少位就需多少根傳送線,傳送距離短,數(shù)據(jù)有多少位就需多少根傳送線,傳送距離短,傳送速度快。傳送速度快。串行通信串行通信只需一對傳送線,傳送距離相對較遠,但傳送只需一對傳送線,傳送距離相對較遠,但傳送速度慢。速度慢。二二. .串行通訊的基本方式串行通訊的基本方式( (一一).).異步通訊異步通訊 以字符為傳送單位用起始位和停止位標(biāo)識每個以字符為傳送單位用起始位和停止位標(biāo)識每個字符的

23、開始和結(jié)束,字符間隔不固定,只需字字符的開始和結(jié)束,字符間隔不固定,只需字符傳送時同步。符傳送時同步。 ( (二二).).同步通信同步通信 每一數(shù)據(jù)塊開頭時發(fā)送一個或兩個同步字符,每一數(shù)據(jù)塊開頭時發(fā)送一個或兩個同步字符,使發(fā)送與接收雙方取得同步。數(shù)據(jù)塊的各個字使發(fā)送與接收雙方取得同步。數(shù)據(jù)塊的各個字符間取消了起始位和停止位,所以通信速度得符間取消了起始位和停止位,所以通信速度得以提高。以提高。 三三. .串行數(shù)據(jù)傳送方向串行數(shù)據(jù)傳送方向單工通訊:數(shù)據(jù)單向傳送。單工通訊:數(shù)據(jù)單向傳送。半雙工通訊:數(shù)據(jù)可分時雙向傳送。半雙工通訊:數(shù)據(jù)可分時雙向傳送。全雙工通訊:可同時進行發(fā)送和接收。全雙工通訊:可

24、同時進行發(fā)送和接收。發(fā)送器接收器發(fā)送器接收器1.1.發(fā)送器:發(fā)送器:并并串?dāng)?shù)據(jù)格式轉(zhuǎn)換,添加標(biāo)識位和校驗位,串?dāng)?shù)據(jù)格式轉(zhuǎn)換,添加標(biāo)識位和校驗位,一幀發(fā)送結(jié)束,設(shè)置結(jié)束標(biāo)志,申請中斷。一幀發(fā)送結(jié)束,設(shè)置結(jié)束標(biāo)志,申請中斷。2.2.接收器:接收器:串串并數(shù)據(jù)格式轉(zhuǎn)換,檢查錯誤,去掉標(biāo)識并數(shù)據(jù)格式轉(zhuǎn)換,檢查錯誤,去掉標(biāo)識位,保存有效數(shù)據(jù),設(shè)置接收結(jié)束標(biāo)志,申請中斷。位,保存有效數(shù)據(jù),設(shè)置接收結(jié)束標(biāo)志,申請中斷。3.3.控制器:控制器:接收編程命令和控制參數(shù),設(shè)置工作方式:接收編程命令和控制參數(shù),設(shè)置工作方式:同步同步/ /異步、字符格式、波特率、校驗方式、數(shù)據(jù)位與同異步、字符格式、波特率、校驗方式、

25、數(shù)據(jù)位與同步時鐘比例等。步時鐘比例等。1.1.數(shù)據(jù)緩沖器數(shù)據(jù)緩沖器(發(fā)送器和接收器)(發(fā)送器和接收器)SBUFSBUF發(fā)送發(fā)送SBUFSBUF和接收和接收SBUFSBUF共用一個地址共用一個地址9999H H 。 1 1)發(fā)送發(fā)送SBUFSBUF存放待發(fā)送的存放待發(fā)送的8 8位數(shù)據(jù),寫入位數(shù)據(jù),寫入SBUFSBUF將同時將同時啟動發(fā)送。啟動發(fā)送。 發(fā)送指令:發(fā)送指令:M MOV V SBUFSBUF,A A2 2)接收接收SBUFSBUF存放已接收成功的存放已接收成功的8 8位數(shù)據(jù),供位數(shù)據(jù),供CPUCPU讀取。讀取。 讀取串行口接收數(shù)據(jù)指令:讀取串行口接收數(shù)據(jù)指令: M MOV AV A,S

26、BUFSBUFSM0 SM1 SM2 REN TB8 RB8TIRI2.2.串行口控制串行口控制/ /狀態(tài)寄存器狀態(tài)寄存器 SCON(98H)SCON(98H)(控制器)控制器)SM0SM0,SM1SM1:選擇串行口選擇串行口4 4種工作方式。種工作方式。SM1 SM0方式方式功能描述功能描述0 00擴展移位寄存器方式,擴展移位寄存器方式,12/oscf0 118 位位 UART,T1 溢出率溢出率/n1 029 位位 UART,32/oscf、64/oscf1 139 位位 UART,T1 溢出率溢出率/nSM0SM1SM2RENTB8RB8TIRI2.2.串行口控制串行口控制/ /狀態(tài)寄存

27、器狀態(tài)寄存器 SCONSCON SCONC SCONCON N(98H)(98H)SM2SM2:多機控制位,用于多機通訊。方式多機控制位,用于多機通訊。方式2 2、3 3時,時,SM2=1&RB8=1SM2=1&RB8=1則激活則激活RIRI;方式方式1 1時,時, SM2=0&RB8=1SM2=0&RB8=1時激活時激活RI.RI.RENREN:允許接收控制位,允許接收控制位,REN=1REN=1,允許接收;允許接收;REN=0REN=0,禁禁止接收止接收. .TB8TB8:發(fā)送的第發(fā)送的第9 9位數(shù)據(jù)位,可用作校驗位和地址位數(shù)據(jù)位,可用作校驗位和地址/ /數(shù)

28、據(jù)數(shù)據(jù)標(biāo)識位標(biāo)識位. .RB8RB8:接收的第接收的第9 9位數(shù)據(jù)位或停止位位數(shù)據(jù)位或停止位. .TITI:發(fā)送中斷標(biāo)志,發(fā)送一幀結(jié)束,發(fā)送中斷標(biāo)志,發(fā)送一幀結(jié)束,TI=1TI=1,須軟件清須軟件清零零. .RIRI:接收中斷標(biāo)志,接收一幀結(jié)束,接收中斷標(biāo)志,接收一幀結(jié)束,RI=1RI=1,須軟件清須軟件清零零. .SMOD(PCON.7) ):波特率加倍控制位。波特率加倍控制位。 SMOD=1,波特率加倍,波特率加倍, SMOD=0,則不加倍。則不加倍。SMOD3.3.節(jié)電控制寄存器節(jié)電控制寄存器 PCONPCONP P PCPCPCONONCONPCPCPCONONCON波特率:波特率:每

29、秒鐘傳送二進制數(shù)碼的位數(shù)(bit 數(shù)),單位是bps(bit per second)。若波特率為1200bps,字符的實際傳送速率為1200/10=120幀/秒。l方式方式0 0:同步移位寄存器方式。同步移位寄存器方式。用于擴展并行用于擴展并行I/I/O接口。接口。l1.1.數(shù)據(jù)結(jié)構(gòu):一幀數(shù)據(jù)結(jié)構(gòu):一幀8 8位,無起始位和停止位。位,無起始位和停止位。2.2.RXDRXD:數(shù)據(jù)輸入數(shù)據(jù)輸入/ /輸出端。輸出端。 TXDTXD:同步脈沖輸出端,每個脈沖對應(yīng)一個數(shù)據(jù)位。同步脈沖輸出端,每個脈沖對應(yīng)一個數(shù)據(jù)位。3.3.波特率波特率:B = fosc/12:B = fosc/12 如:如: fosc=

30、12MHzfosc=12MHz,B=1MHzB=1MHz,每位數(shù)據(jù)占每位數(shù)據(jù)占1 1 s s。4.4.發(fā)送過程:先對發(fā)送過程:先對TITI清零,寫入清零,寫入SBUFSBUF,啟動發(fā)送,一幀發(fā)送結(jié)啟動發(fā)送,一幀發(fā)送結(jié) 束,束,TI=1TI=1。 接收過程:接收過程:REN=1REN=1且且RI=0RI=0,啟動接收,一幀接收完畢,啟動接收,一幀接收完畢,RI=1RI=1。 串行輸入、并行輸出移位寄存器內(nèi)部結(jié)構(gòu)串行輸入、并行輸出移位寄存器內(nèi)部結(jié)構(gòu)RXDTXD1.1.數(shù)據(jù)結(jié)構(gòu):一幀數(shù)據(jù)結(jié)構(gòu):一幀1010位,位,8 8位數(shù)據(jù)位,位數(shù)據(jù)位,1 1個起始位個起始位(0)(0),1 1個停止個停止位位(1

31、)(1)。 2.2.RXDRXD:接收數(shù)據(jù)端。接收數(shù)據(jù)端。 TXDTXD:發(fā)送數(shù)據(jù)端。發(fā)送數(shù)據(jù)端。3.3.波特率:波特率:用用T1作為波特率發(fā)生器,作為波特率發(fā)生器, B=(2 B=(2SMOD/32)/32)T1T1溢出率溢出率。4.4.發(fā)送:發(fā)送:先對先對TITI清零,清零,寫入寫入SBUFSBUF,同時啟動發(fā)送,一幀發(fā)送結(jié)同時啟動發(fā)送,一幀發(fā)送結(jié)束,束,TI=1TI=1。 接收:接收:REN=1REN=1,RI=0RI=0,允許接收。接收完一幀允許接收。接收完一幀,將接收數(shù)據(jù)裝將接收數(shù)據(jù)裝入入SBUFSBUF,RI=1RI=1。接收原理:接收原理:當(dāng)當(dāng)REN=1REN=1,CPUCPU開

32、始采樣開始采樣RXDRXD引腳負跳變信號,若出現(xiàn)負引腳負跳變信號,若出現(xiàn)負跳變,才進入數(shù)據(jù)接收狀態(tài)。即先檢測起始位,若第一位跳變,才進入數(shù)據(jù)接收狀態(tài)。即先檢測起始位,若第一位為為0 0,繼續(xù)接收其余位;否則,停止接收,重新采樣負跳,繼續(xù)接收其余位;否則,停止接收,重新采樣負跳變。變。數(shù)據(jù)采樣速率為波特率數(shù)據(jù)采樣速率為波特率1616倍頻,在數(shù)據(jù)位中間,用第倍頻,在數(shù)據(jù)位中間,用第7 7、8 8、9 9個脈沖采樣個脈沖采樣3 3次數(shù)據(jù)位,并次數(shù)據(jù)位,并3 3中取中取2 2保留采樣值。保留采樣值。寫入寫入SBUF采樣采樣(a) 發(fā)送時序圖發(fā)送時序圖TXD數(shù)據(jù)輸出數(shù)據(jù)輸出TID0D1D2D3D4D5D

33、6D7停止位停止位起始位起始位RXD輸入數(shù)據(jù)輸入數(shù)據(jù)(b) 接收時序圖接收時序圖D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI檢測檢測負跳變負跳變接收和發(fā)送時序圖接收和發(fā)送時序圖1.1.一幀為一幀為1111位:位:9 9位數(shù)據(jù)位,位數(shù)據(jù)位,1 1個起始位個起始位(0)(0),1 1個停止個停止位位(1)(1)。第第9 9位數(shù)據(jù)位在位數(shù)據(jù)位在TB8/RB8TB8/RB8中,常用作校驗位和多機中,常用作校驗位和多機通訊標(biāo)識位通訊標(biāo)識位。2.2.RXDRXD:接收數(shù)據(jù)端接收數(shù)據(jù)端 TXD TXD:發(fā)送數(shù)據(jù)端發(fā)送數(shù)據(jù)端3.3.波特率:波特率: 方式方式2 2:B=(2B=(2SMOD/6

34、4)/64)fosc fosc 。 方式方式3 3:B=(2B=(2SMOD/32)/32)T1T1溢出率溢出率 。4.4.發(fā)送:先裝入發(fā)送:先裝入TB8TB8,寫入寫入SBUFSBUF并啟動發(fā)送,發(fā)送結(jié)束,并啟動發(fā)送,發(fā)送結(jié)束,TI=1TI=1。 接收:接收:REN=1REN=1,允許接收。接收完一幀,若允許接收。接收完一幀,若RI=0RI=0,SM2=0SM2=0或或RB8=1,RB8=1,將接收數(shù)據(jù)裝入接收將接收數(shù)據(jù)裝入接收SBUFSBUF,第第9 9位裝入位裝入RB8RB8,使使RI=1RI=1;否則丟棄接收數(shù)據(jù),不置位否則丟棄接收數(shù)據(jù),不置位RIRI。方式方式0 0為固定波特率:為固

35、定波特率:B=fosc/12B=fosc/12方式方式2 2可選兩種波特率:可選兩種波特率: B=(2B=(2SMOD /64)/64)fosc fosc 方式方式1 1、3 3為可變波特率,用為可變波特率,用T1T1作波特率發(fā)生器。作波特率發(fā)生器。B=(2B=(2SMOD/32)/32)T1T1溢出率溢出率T1T1為方式為方式2 2的溢出時間:的溢出時間: t= (2t= (28 8 -X)T = (2-X)T = (28 8 -X)-X)12/ fosc12/ foscT1T1溢出率溢出率=1/=1/t= fosc /12t= fosc /12(2(2n n -X)-X) 波特率波特率B=

36、(2B=(2SMOD /32)/32)fosc/12fosc/12(2(28 8-X)-X)串行口方式串行口方式1 1、3 3,根據(jù)波特率選擇,根據(jù)波特率選擇T1T1工作方式,計算時間常數(shù)。工作方式,計算時間常數(shù)。T1T1選方式選方式2 2: TH1=X= 2TH1=X= 28 8-fosc/12-fosc/122 2SMOD/(32/(32B)B)T1T1選方式選方式1 1用于低波特率,需考慮用于低波特率,需考慮T1T1重裝時間常數(shù)時間。重裝時間常數(shù)時間。1.雙機通訊雙機通訊8031應(yīng)用系統(tǒng)(A)TXDRXDGND8031應(yīng)用系統(tǒng) (B)RXDTXDGND電纜8031應(yīng)用系統(tǒng)(A)TXDRX

37、DGND8031應(yīng)用系統(tǒng) (B)RXDTXDGND電纜8031應(yīng)用系統(tǒng) (N)RXDTXDGND.2.多機通訊多機通訊串行口初始化編程格式:串行口初始化編程格式:SIO:MOV SCON,#H ;方式字,且方式字,且TI=RI=0 MOV PCON,#80H ;波特率加倍波特率加倍 MOV TMOD,#20H ;T1作波特率發(fā)生器作波特率發(fā)生器,方式方式2 MOV TH1, #X ;選定波特率選定波特率 MOV TL1, #X SETB TR1 SETB EA ;開串行口中斷開串行口中斷 SETB ES1.1.查詢方式:查詢方式:TRAM: MOV A,R0 ;取數(shù)據(jù)取數(shù)據(jù) MOV SBUF,

38、A ;發(fā)送一個字符發(fā)送一個字符WAIT:JBCTI,NEXT ;等待發(fā)送結(jié)束等待發(fā)送結(jié)束SJMP WAITNEXT:INCR0 ;準(zhǔn)備下一次發(fā)送準(zhǔn)備下一次發(fā)送SJMP TRAM2.中斷方式:中斷方式: ORG 0023H ;串行口中斷入口串行口中斷入口 AJMP SINTMAIN: ;初始化編程初始化編程TRAM: MOV A,R0 ;取數(shù)據(jù)取數(shù)據(jù)MOV SBUF,A ;發(fā)送第一個字符發(fā)送第一個字符 H:SJMP H ;其它工作其它工作 SINT:CLR TI ;中斷服務(wù)程序中斷服務(wù)程序INC R0MOV A,R0 ;取數(shù)據(jù)取數(shù)據(jù)MOV SBUF,A ;發(fā)送下一個字符發(fā)送下一個字符RETI1.

39、1.查詢方式:查詢方式: WAIT:JBCRI,NEXT;查詢等待查詢等待SJMP WAITNEXT:MOV A,SBUF ;讀取接收數(shù)據(jù)讀取接收數(shù)據(jù)MOV R0,A;保存數(shù)據(jù)保存數(shù)據(jù)INCR0 ;準(zhǔn)備下一次接收準(zhǔn)備下一次接收SJMP WAIT2.2.中斷方式:中斷方式:ORG 0023HAJMP RINTMAIN: ;初始化編程初始化編程 H:SJMP H ;其它任務(wù)其它任務(wù) RINT:CLRRI ;清中斷標(biāo)志清中斷標(biāo)志MOV A,SBUF ;讀取接收數(shù)據(jù)讀取接收數(shù)據(jù)MOV R0,A;保存數(shù)據(jù)保存數(shù)據(jù)INCR0RETI(二二)異步通訊程序舉例異步通訊程序舉例 1.1.發(fā)送程序:發(fā)送程序:將片

40、內(nèi)將片內(nèi)RAM 50HRAM 50H起始單元的起始單元的1616個數(shù)由串行口發(fā)個數(shù)由串行口發(fā)送。送。要求發(fā)送波特率為系統(tǒng)時鐘的要求發(fā)送波特率為系統(tǒng)時鐘的32分頻,并進行奇偶校驗。分頻,并進行奇偶校驗。MAINT: MOV SCON,#80H;串行口初始化,方式串行口初始化,方式2MOV PCON,#80H;波特率,波特率,SMOD=1MOV R0,#50H ;設(shè)數(shù)據(jù)指針設(shè)數(shù)據(jù)指針MOV R7,#10H ;數(shù)據(jù)長度數(shù)據(jù)長度 LOOP: MOV A,R0 ;取一個字符取一個字符MOV C,P ;加奇偶校驗加奇偶校驗MOV TB8,CMOV SBUF,A ;啟動第一次發(fā)送啟動第一次發(fā)送 WAIT:

41、JBCTI,NEXT ;等待發(fā)送結(jié)束等待發(fā)送結(jié)束SJMP WAIT NEXT: INCR0 ;準(zhǔn)備下一次發(fā)送準(zhǔn)備下一次發(fā)送DJNZ R7,LOOP ;是否發(fā)送完?是否發(fā)送完? ENDSM0 SM1 SM2 REN TB8 RB8TIRIMAIN: MOV SCON,#0D0H ;串行口方式串行口方式3允許接收允許接收MOV TMOD,#20H ;T1方式方式2定時定時MOV TL1, #0F4H ;寫入寫入T1時間常數(shù)時間常數(shù)MOV TH1, #0F4HSETB TR1 ;啟動啟動T1MOV R0, #50H ;設(shè)數(shù)據(jù)指針設(shè)數(shù)據(jù)指針 MOV R7, #10H ;接收數(shù)據(jù)長度接收數(shù)據(jù)長度 WAI

42、T: JBC RI,NEXT ;等待串行口接收等待串行口接收 SJMP WAITSM0 SM1 SM2 RENTB8RB8TIRINEXT: MOV A,SBUF ;取一個接收字符取一個接收字符 JNB P,COMP ;奇偶校驗奇偶校驗 JNB RB8,ERR ;PRB8,數(shù)據(jù)出錯數(shù)據(jù)出錯 SJMP RIGHT ;P=RB8,數(shù)據(jù)正確數(shù)據(jù)正確COMP: JB RB8,ERRRIGHT: MOV R0,A ;保存一個字符保存一個字符 INC R0 ;修改指針修改指針 DJNZ R7,WAIT ;全部字符接收完全部字符接收完? CLR F0 ;F0 =0,接收數(shù)據(jù)全部正確接收數(shù)據(jù)全部正確 SJMP

43、 QUITERR: SETB F0 ;F0 =1,接收數(shù)據(jù)出錯接收數(shù)據(jù)出錯QUIT: RET 中央處理器中央處理器CPUCPU正在處理某正在處理某事件的時候,外部發(fā)生了更為緊事件的時候,外部發(fā)生了更為緊急的事件,請求急的事件,請求CPUCPU暫停當(dāng)前的暫停當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事情,工作,轉(zhuǎn)入處理所發(fā)生的事情,處理完后,再回到被中斷的地方處理完后,再回到被中斷的地方,繼續(xù)原來的工作,繼續(xù)原來的工作, ,這樣的過程這樣的過程稱為中斷。稱為中斷。日常事務(wù)程序日常事務(wù)程序中斷服務(wù)程序中斷服務(wù)程序l中斷技術(shù)的優(yōu)點:中斷技術(shù)的優(yōu)點: 提高CPU的效率。 提高實時數(shù)據(jù)的處理時效。 被控對象的實時參數(shù)

44、、越限數(shù)據(jù)和故障信息為計算機及時采集,以便應(yīng)急處理。 故障處理 如掉電中斷。l中斷系統(tǒng)的功能:中斷系統(tǒng)的功能: 中斷優(yōu)先權(quán)排隊 根據(jù)輕重緩急排隊,優(yōu)先處理最緊急事件的中斷請求。 實現(xiàn)中斷嵌套 CPU處理中斷時,發(fā)生另一個優(yōu)先級更高的中斷請求,CPU轉(zhuǎn)而響應(yīng)優(yōu)先級更高的中斷請求,處理完之后再回到原來中斷服務(wù)程序。 自動響應(yīng)中斷 實現(xiàn)中斷返回。2 2個外部中斷源信號:個外部中斷源信號:INT0INT0、INT1INT12 2個定時器個定時器T0T0、T1T1溢出中斷請求:溢出中斷請求:TF0TF0、TF1TF11 1個串行口數(shù)據(jù)發(fā)送、接收結(jié)束中斷請求:個串行口數(shù)據(jù)發(fā)送、接收結(jié)束中斷請求:TITI、

45、RIRI寄存器名稱寄存器名稱D7D6D5D4D3D2D1D0TCON(88H)TF1TF0IE1IT1IE0IT0定時器控制定時器控制寄存器寄存器位地址位地址8FH8FH8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88HSCON(98H)TIRI串行口控制串行口控制寄存器寄存器位地址位地址9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98HIE(A8H)EAESET1 EX1 ET0 EX0中斷允許中斷允許寄存器寄存器位地址位地址AFHAFHACHACHABHABHAAHAAHA9HA9HA8HA8HIP(B8H)P

46、SPT1PX1PT0PX0中斷優(yōu)先級中斷優(yōu)先級寄存器寄存器位地址位地址BCHBCHBBHBBHBAHBAHB9HB9HB8HB8H1.中斷標(biāo)志位中斷標(biāo)志位: TF1、TF0、IE1、IE0、RI 、TI TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 SM0 SM1 SM2 REN TB8 RB8TIRISCONTCON登記各中斷源請求信號:登記各中斷源請求信號:=1=1,有中斷請求;,有中斷請求;=0=0,無中斷請求。,無中斷請求。CPUCPU響應(yīng)中斷后,各中斷標(biāo)志自動清零。響應(yīng)中斷后,各中斷標(biāo)志自動清零。注意:注意:TITI,RIRI標(biāo)志必須軟件清零。標(biāo)志必須軟件清零。2.

47、外部中斷外部中斷觸發(fā)方式選擇位:觸發(fā)方式選擇位:IT0、IT1=1=1,負邊沿觸發(fā)中斷請求;,負邊沿觸發(fā)中斷請求;=0=0,低電平觸發(fā)中斷請求。,低電平觸發(fā)中斷請求。=1=1,開中斷;,開中斷;=0=0,關(guān)中斷。,關(guān)中斷。例:例:允許允許CPUCPU響應(yīng)響應(yīng)T0T0的中斷請求的中斷請求M MOV IE,#82H OV IE,#82H 或者或者 SETB ET0 SETB ET0 SETB EA SETB EA2 2級優(yōu)先級:級優(yōu)先級:=1=1,為高優(yōu)先級;,為高優(yōu)先級;=0=0,為低優(yōu)先級。,為低優(yōu)先級。 同一優(yōu)先級別按內(nèi)部查詢順序排列優(yōu)先級同一優(yōu)先級別按內(nèi)部查詢順序排列優(yōu)先級: 高高 INT

48、0INT0、T0T0、INT1INT1、T1T1、SISIO 低低。3. .中斷允許控制位:中斷允許控制位:EA、ES、ET1、EX1、ET0、EX0EA/ET2ESET1EX1ET0EX0IE/PT2PSPT1PX1PT0PX0IP4 4中斷優(yōu)先級控制位:中斷優(yōu)先級控制位:PSPS、PT1PT1、PX1PX1、PT0PT0、PX0PX0l低優(yōu)先級中斷可以被高優(yōu)先級中斷所中斷,反之不能。l一種中斷一旦得到響應(yīng),與它同級的中斷不能再中斷它。(一)中斷響應(yīng)條件(一)中斷響應(yīng)條件 1. 1.有中斷源發(fā)出中斷請求;有中斷源發(fā)出中斷請求; 2. 2.中斷總允許位中斷總允許位EAEA1 1,即即CPUCPU開中斷;開中斷; 3. 3.相應(yīng)的中斷允許位為相應(yīng)的中斷允許位為1 1,即沒有屏蔽。,即沒有屏蔽。(二)(二) 響應(yīng)過程響應(yīng)過程1.阻斷同級或低級中斷;阻斷同級或低級中斷;2.PC指針內(nèi)容壓棧保護;指針內(nèi)容壓棧保護;3.相應(yīng)中斷入口地址裝入相應(yīng)中斷入口地址裝入PC,程序轉(zhuǎn)移到該程序轉(zhuǎn)移到該 中斷入口地址單元。中斷入口地址單元。中中斷斷源源中中斷斷入入口口地地址址INT00003HT0000BHINT10013HT1001BHSIO0023H(三)(三) 中斷響應(yīng)阻斷中斷響應(yīng)阻斷1 . 當(dāng)當(dāng)CPUCPU未執(zhí)行完一條指令。未執(zhí)行完一條指令。2當(dāng)有同級或高級中斷服務(wù)。當(dāng)有同級或高級中斷服務(wù)。

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論