單片微型計算機原理及其應(yīng)用電子教案2_第1頁
單片微型計算機原理及其應(yīng)用電子教案2_第2頁
單片微型計算機原理及其應(yīng)用電子教案2_第3頁
單片微型計算機原理及其應(yīng)用電子教案2_第4頁
單片微型計算機原理及其應(yīng)用電子教案2_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第2章 中斷、定時/計數(shù)器與串行通信2.1 中斷系統(tǒng)結(jié)構(gòu)及管理2.1.1 中斷請求與控制外部中斷2個(中斷接入)定時計數(shù)中斷2個(3個)串行中斷(輸入、輸出)2.1.2 中斷系統(tǒng)的結(jié)構(gòu)2.1.3 中斷源INT0:由P3.2端口線引入,低電平或下降沿引起。INT1:由P3.3端口線引入,低電平或下降沿引起。T0:定時/計數(shù)器0中斷,由T0回零溢出引起。 T0允許計數(shù)后,對P3.4腳(或機器周期)采樣負(fù)跳變,從初值開始加1,直至溢出,TF0=1.向CPU請求中斷, CPU相應(yīng)中斷后,由硬件清0 TF0。 T1:定時/計數(shù)器1中斷,由T1回零溢出引起。串行I/O中斷:通過P3.0/P3.1完成一幀字

2、符發(fā)送/接收引起中斷。由TI/RI描述發(fā)送/接收中斷標(biāo)志位。 CPU相應(yīng)中斷后,硬件不清0 TI/RI。2.1.4 中斷控制1中斷允許寄存器IE(A8H)IE在特殊功能寄存器中,字節(jié)地址A8H,位地址分別是A8HAFH。IE控制CPU對中斷源總的開放或禁止以及每個中斷源是否允許中斷。2中斷優(yōu)先寄存器IP(B8H)IP在特殊功能寄存器中,字節(jié)地址為B8H,位地址分別是B8HBFH,IP用來鎖存各中斷源優(yōu)先級的控制位,2.1.5 中斷響應(yīng)過程單片機在每個機器周期的S5P2期間,順序采樣每個中斷源,CPU在下一個機器周期S6期間按優(yōu)先級順序查詢中斷標(biāo)志,如查詢到某個中斷標(biāo)志為1,將在再下一個機器周期

3、S1期間按優(yōu)先級進行中斷處理。中斷得到響應(yīng)后自動清除中斷標(biāo)志,由硬件將程序計數(shù)器PC內(nèi)容壓入堆棧保護,然后將對應(yīng)的中斷矢量裝入程序計數(shù)器PC,使程序轉(zhuǎn)向中斷矢量地址單元中去執(zhí)行相應(yīng)的中斷服務(wù)程序。 下列任何一種情況存在中斷申請將被封鎖:(1)CPU正在執(zhí)行一個同級或高一級的中斷服務(wù)程序。(2)當(dāng)前正在執(zhí)行的那條指令還未執(zhí)行完。(3)當(dāng)前正在執(zhí)行的指令是RETI或?qū)E,IP寄存器進行讀/寫指令,執(zhí)行這些指令后至少再執(zhí)行一條指令才會響應(yīng)中斷2.1.5外部中斷由P3.2端口線引入,低電平或下降沿引起。由P3.3端口線引入,低電平或下降沿引起。外部中斷寄存器TCON(88H)IE1:外部中斷1(IN

4、T1,P3.3)請求源標(biāo)志, IE1=1請求中斷。 當(dāng)IE1=1時,外部中斷1向CPU請求中斷, CPU相應(yīng)中斷后,由硬件清0 IE1。IE0:外部中斷0 (INT0,P3.2)請求源標(biāo)志, IT1:外部中斷源1觸發(fā)方式控制位。 IT1=0時為電平觸發(fā)方式,當(dāng)P3.3腳輸出為低電平時,IE1=1,當(dāng)P3.3腳輸出為高電平時,IE1=0。 IT1=1時為邊沿觸發(fā)方式,只有兩個采樣周期監(jiān)測到負(fù)跳變時IE1=1。IT0:外部中斷源0觸發(fā)方式控制位。同上例:當(dāng)外部按鍵每按1下,P1的小燈左移亮。ORG 0000HLJMP MAINORG 0003HRL AMOV P1,A RETIMAIN:SETB

5、EASETB EX0SETB IT0MOV A,#0FEHMOV P1,ASJMP $例:當(dāng)外部按鍵每按1下,P1.0的小燈亮一秒。ORG 0000HLJMP MAINORG 0013HSETB PI.1LL:SETB P1.0;LCALL DELAY1SCLR P1.0LCALL DELAY1SSJMP LLRETIMAIN:SETB EASETB EX1SETB IT1SJMP $例:當(dāng)外部(P3.3)按鍵每按1下,P1.0的小燈閃3次。作業(yè):當(dāng)外部按鍵每按1下,把A的內(nèi)容+1,并送P1口顯示。(硬件+軟件)問:如何停止中斷。實踐:設(shè)(30H)=0,當(dāng)外部(P3.2)按鍵每按1下,(30H

6、)=(30H)+1,并將結(jié)果送P1口顯示。當(dāng)30H計滿時,停止顯示, P1口全暗。中斷程序的其他寫法(1)ORG 0000HSETB IT0LOP:JNB TF0,LOPCLR TF0SETB P1.0LCALL DELAY1SCLR P1.0SJMP LOP中斷程序的其他寫法(2)ORG 0000HLOP:JNB P3.2,LOPLOP1:JB P3.2,LOP1SETB P1.0LCALL DELAY1SCLR P1.0SJMP LOP例:當(dāng)外部有意外操作下,30H的內(nèi)容+1。ORG 0001HLJMP MAINORG 0003HINC 30HRETIMAIN:SETB EASETB EX

7、0SETB IT0SJMP $多外部中斷源設(shè)計2.2 定時/計數(shù)器結(jié)構(gòu)特點及控制2.2.1 定時/計數(shù)器結(jié)構(gòu)定時/計數(shù)器簡稱定時器,8031單片機有2個16位的定時/計數(shù)器:定時器0(T0)和定時器1(T1)。它們都有定時器或事件計數(shù)的功能,可用于定時控制、延時、對外部事件計數(shù)和檢測等場合。T0由2個特殊功能寄存器TH0和TL0構(gòu)成T1則由TH1和TL1構(gòu)成。作計數(shù)器時,通過引腳T0(P3.4)和T1(P3.5)對外部脈沖信號計數(shù),當(dāng)輸入脈沖信號從1到0的負(fù)跳變時,計數(shù)器就自動加1。2.2.2 定時/計數(shù)器控制寄存器定時器共有2個控制寄存器TMOD和TCON,由軟件寫入TMOD和TCON 兩個

8、8位寄存器,設(shè)置各個定時器的操作模式和控制功能。1工作模式控制寄存器TMOD(89H2定時器控制寄存器TCON(88H)2.2.3 定時/計數(shù)器工作方式每個定時/計數(shù)器還有4種工作模式,也就是每個定時器可構(gòu)成4種電路結(jié)構(gòu)模式。在模式0、1和2,T0和T1的工作模式相同,在模式3,兩個定時器的模式不同。下面以T1為例,分述各種工作模式的特點和用法。定時/計數(shù)器工作方式0計數(shù)位數(shù)8+5=13計數(shù)范圍08K計時時間08MS(FSOC=12MHZ)計數(shù)初值計算A=(8K-計數(shù)值)=1E0CH例:在P1.0 輸出1MS的方波計數(shù)器初值TC的計算把計數(shù)器計滿為零所需要的計數(shù)值設(shè)定為C,計數(shù)初值設(shè)定為TC,

9、由此可得到公式: TC= 213 -C 定時器初值TC的計算在定時器模式下,計數(shù)器由單片機主脈沖經(jīng)12分頻后計數(shù)。因此,定時器定時時間T的公式: T=(213-TC)*T計數(shù) 上式也可寫成:TC =213-(T/ T計數(shù)) T計數(shù)是單片機振蕩周期TCLK的12倍; ORG 0000HLJMP MAINORG 000BHCPL P1.0MOV TH0,#0F0HMOV TL0,#0CHRETIMAIN:SETB EASETB ET0MOV TMOD,#00HMOV TH0,#0F0HMOV TL0,#0CHSETB TR0SJMP $ 定時/計數(shù)器工作方式1計數(shù)位數(shù)8+8=16計數(shù)范圍064K計

10、時時間064MS(FSOC=12MHZ)計數(shù)初值計算A=(64K-計數(shù)值)例:在P1.0 輸出1MS的方波ORG 0000HLJMP MAINORG 000BHCPL PI.0MOV TL0,#06HMOV TH0,#0FEHRETIMAIN: MOV TMOD,#01HMOV TL0,#06H MOV TH0,#0FEHSETB EASETB ET0SETB TR0SJMP $定時/計數(shù)器工作方式2計數(shù)位數(shù)8計數(shù)范圍0256計時時間0250US(FSOC=12MHZ)計數(shù)初值計算A=(256-計數(shù)值)例:在P1.0 輸出500uS的方波ORG 0000HLJMP MAINORG 000BHC

11、PL P1.0RETIMAIN:SETB EASETB ET0MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB TR0SJMP $ 計數(shù)100次響一下蜂鳴器ORG 0000HLJMP MAINORG 000BHSETB P1.0LCALL D3SCLR P1.0RETIMAIN:SETB EASETB ET0MOV TMOD,#06HMOV TH0,#09CHMOV TL0,#09CHSETB TR0SJMP $ 定時/計數(shù)器工作方式32.2.4 定時/計數(shù)器常數(shù)的計算1計數(shù)器初值的計算把計數(shù)器計滿為零所需要的計數(shù)值設(shè)定為C,計數(shù)初值設(shè)定為TC,由此可得到公式

12、:TC=M-C式中,M為計數(shù)器模值,該值和計數(shù)器工作方式有關(guān)。在方式0時M為213;在方式1時M為216;在方式2和方式3時M為28。2定時器初值的計算在定時器模式下,計數(shù)器由單片機主脈沖經(jīng)12分頻后計數(shù)。因此,定時器定時時間T的公式:T=(M-TC)T計數(shù) 上式也可寫成:TC=M-T/ T計數(shù)式中,M為模值,和定時器的工作方式有關(guān);T計數(shù)是單片機振蕩周期TCLK的12倍;TC為定時器的定時初值2.3 定時/計數(shù)器及中斷系統(tǒng)綜合應(yīng)用【例】設(shè)MCS-51單片機系統(tǒng)時鐘頻率CLK為6MHZ,請編出利用定時/計數(shù)器T0在P1.0引腳上產(chǎn)生周期為2秒,占空比為50%的方波信號的程序(1)主程序任務(wù):1

13、)T0工作方式的設(shè)定: 選擇方式1(16位方式)(最大定時131ms) 2)定時常數(shù)的設(shè)定: TC=216-100ms/2s =15536=3CB0H;即:TH0應(yīng)裝3CH,TL0應(yīng)裝B0H。3)中斷管理: 允許T0中斷,開放總中斷 即:IE應(yīng)裝10000010B。 4)啟動定時器T0: SETBTR0 5)設(shè)置軟件計數(shù)器初值:(如使用R7)即R7應(yīng)裝0AH 6)動態(tài)停機:SJMP$主程序如下:MAIN:MOVTMOD,#01H;設(shè)定T0為方式1MOVTH0,#3CH;裝入定時常數(shù)高8位MOVTL0,#0B0H;裝入定時常數(shù)低8位MOVIE,#82H;開放T0中斷SETBTR0;啟動T0MOV

14、R7,#10;設(shè)置軟件計數(shù)器SJMP$(2)中斷服務(wù)程序任務(wù):1)恢復(fù)T0常數(shù); 2)軟件計數(shù)器減1; 3)判斷軟件計數(shù)器是否為0。為0時,改變P1.0狀態(tài),并恢復(fù)軟件計數(shù)器初值;不為0時中斷返回。程序如下:TOINT:MOVTL0,#0B0H;恢復(fù)定時常數(shù)MOVTH0,#3CH; DJNZR7,NEXTCPLP1.0 MOVR7,#10NEXT:RETI其他程序門控位使用:計算某一高電平的持續(xù)時間(30h,秒),(31h分),(32h時),計算機1秒后對時鐘處理。綜合應(yīng)用定時和計數(shù)的程序記數(shù)應(yīng)用例:音樂的應(yīng)用音頻產(chǎn)生的原理如:1 F=523 ;T=1/523=1923US;;T/2=956U

15、S(956)音長產(chǎn)生的原理設(shè):1拍=0.4秒;1/4拍=0.1秒,1/8拍=0.05秒,最小時間單位,通過延時達(dá)到節(jié)拍表格編碼;音頻計數(shù)表;音樂編碼表(音符+節(jié)拍)設(shè)計過程查音樂編碼表,確定延時時間及音頻,修改計數(shù)器,發(fā)音.延時時間結(jié)束,查下一組編碼,繼續(xù)操作.直到下結(jié)束.電子鐘應(yīng)用主程序軟件資源30H,31H,32H 存放秒、時、分78H-7FH存放顯示區(qū)。R0,R1,R7,R6,R5,R4定時器0,定時50MS硬件驅(qū)動 三級管,集成芯片 主程序MAIN:MOVTMOD,#01H;設(shè)定T0為方式1MOVTH0,#3CH;裝入定時常數(shù)高8位MOVTL0,#0B0H;裝入定時常數(shù)低8位MOVIE

16、,#82H;開放T0中斷SETBTR0;啟動T0MOVR7,#14H;設(shè)置軟件計數(shù)器 MOV 30H,#00H;50 MOV 31H,#00H;59 MOV 32H,#00H;23;SJMP$SS:LCALL DIR;顯示程序 ;鍵盤處理SJMP SSBCD碼調(diào)整,送顯存程序TOINT:PUSH A MOV TL0,#0B0H;恢復(fù)定時常數(shù)MOV TH0,#3CH; DJNZ R7,NEXT INC 30H MOV R7,#14H;對秒調(diào)整LCALL AD1;時,分,秒調(diào)整LCALL BCD;BCD碼調(diào)整,送顯存 NEXT: POP ARETI時,分,秒調(diào)整程序AD1: MOV A, 30H

17、CJNE A,#60,NEXT1 INC 31H MOV 30H,#00H ;對分調(diào)整 MOV A, 31H CJNE A,#60,NEXT1 INC 32H MOV 31H,#00H;對時調(diào)整 MOV A, 32H CJNE A,#24,NEXT1 MOV 31H,#00H MOV 32H,#00H;對24時調(diào)整NEXT1:RET30h,31h,32h送顯存顯示(78h,79h7dh).BCD:MOV A,30hMOV B,#0AhDIV ABMOV 78H,BMOV 79H,AMOV A,31hMOV B,#0AhDIV ABMOV 7AH,BMOV 7BH,AMOV A,32hMOV B

18、,#0AhDIV ABMOV 7CH,BMOV 7DH,ARET把顯存的內(nèi)容送LED顯示.(78h,79h7dh).DIR:MOV R0,#78HMOV R6,#06HMOV R5,#0FEHLOP:MOV A,R0ADD A, #MOVC A,A+PCMOV P1,AMOV A,R5MOV P2,ARL AMOV R5,ALCALL D1MSINC R0DJNZ R6,LOPRETDB 3FH,06H, 2.4 串行通信及其接口4.4.1 概述 串行通信是將數(shù)據(jù)的各位一位一位地依次傳送。適合于計算機之間、計算機與外部設(shè)備之間的遠(yuǎn)距離通信。 串行通信從傳輸方式分為: 單工方式、半雙工方式、全雙

19、工方式。 從接收方式來說,串行通信有兩種方式: 異步通信方式、同步通信方式。2.4.2 MCS-51的串行口2.4.2.1 串行口的結(jié)構(gòu)1串行口控制寄存器SCON該寄存器的字節(jié)地址為98H,可位尋址。SCON格式如圖所示SCON位地址SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A99982特殊功能寄存器PCON其字節(jié)地址為87H,沒有位尋址功能。PCON的格式如圖所示,其中與串行接口有關(guān)的只有D7位,是串行口波特率控制位,SMOD=1時,波特率加倍。3、SBUF串行口收/發(fā)寄存器。PCONSMOD2.4.2.2 串行口的工作方式 1、方式0外接移位寄存器方式,用以擴展接口

20、。波特率為晶振頻率1/12。支持串并,并串轉(zhuǎn)化。數(shù)據(jù)由RXD串行輸入/輸出,TXD輸出移位脈沖有74LS164(輸出),74LS166(輸入)連接例:74LS164輸出為全1的值。MOV SCON,#00HMOV SBUF,#0FFHLOP:JNB TI,LOPCLR TISJMP $方式1 8位異步通信接口。波特率由T1控制可變。1位起始位+8位數(shù)據(jù)位+1位停止位數(shù)據(jù)由雙向RXD輸入、TXD輸出例:由A機向B機A發(fā)送30H的內(nèi)容,波特率為1200。例:由A機向B機A發(fā)送30H-39H的內(nèi)容,波特率為1200,用累加和校驗。A機發(fā)送:MOV SCON,#050HMOV PCON,#00HMOV

21、 TMOD,#20HMOV TL1,#0FAHMOV TH1,#0FAHSETB TR1MOV SBUF,30HLOP:JNB TI,LOPCLR TISJMP $B機接受:MOV SCON ,#050HMOV PCON,#00HMOV TMOD,#20HMOV TH1,#0FAHMOV TL1,#0FAHSETB TR1LOP:JNB RI,LOPCLR RIMOV A,SBUFSJMP $B機中斷方式接受ORG 000HLJMP MAINORG 0023HJNB RI,LOPCLR RIMOV A,SBUF;MOV R0,A;INC R0;INC R7MOV P1,ALOP:RETIMAI

22、N: MOV SCON ,#050HMOV PCON,#00HMOV TMOD,#20HMOV TH1,#0FAHMOV TL1,#0FAHSETB TR1SETB EASETB ES;MOV R0,#30H;MOV R7,#00HLCALL OTHERSJMP $MOV SCON,#050H;自己發(fā)送自己接受0256MOV PCON,#00HMOV TMOD,#20HMOV TL1,#0FAHMOV TH1,#0FAHSETB TR1MOV R7,#00HLOP2:MOV SBUF,R7LOP:JNB TI,LOPCLR TILOP1:JNB RI,LOP1CLR RIMOV A,SBUFM

23、OV P1,ALCALL D1SINC R7SJMP LOP2MOV SCON,#050H;A機發(fā)送0256MOV PCON,#00HMOV TMOD,#20HMOV TL1,#0FAHMOV TH1,#0FAHSETB TR1MOV R7,#00HLOP2:MOV SBUF,R7LOP:JNB TI,LOPCLR TILCALL D1SINC R7SJMP LOP2MOV SCON,#050H; B機接受0256MOV PCON,#00HMOV TMOD,#20HMOV TL1,#0FAHMOV TH1,#0FAHSETB TR1LOP1:JNB RI,LOP1CLR RIMOV A,SBU

24、FMOV P1,ASJMP LOP1A機發(fā)送:MOV SCON,#050H;連續(xù)發(fā)送30 H后的10個單元的內(nèi)容 MOV PCON,#00HMOV TCON,#20HMOV TL1,#0FAHMOV TH1,#0FAHSETB TR1MOV R0,#30HMOV R2,.#0AHLOP1:MOV SBUF ,R0MOV P1,R0LOP:JNB TI,LOPCLR TIINC R0LCALL D1SDJNZ R2,LOP1 SJMP $B機接收:MOV SCON,#50HMOV PCON,#00HMOV TCON,#20HMOV TL1,#0E6HMOV TH1,#0E6HSETB TR1LO

25、P:JNB RI,LOPCLR RIMOV 30H,SBUFSJMP $方式2 9位異步通信接口。波特率由1/64,1/321位起始位+9位數(shù)據(jù)位+1位停止位數(shù)據(jù)由雙向RXD輸入、TXD輸出第9位由TB8接收,RB8發(fā)送例:由A機向B機發(fā)送30H的內(nèi)容,波特率為1/64。(奇校驗)A機發(fā)送:MOV SCON,#90HMOV PCON,#00HMOV A,30HMOV C,PMOV TB8,CCPL TB8MOV SBUF,30HLOP:JNB TI,LOPCLR TISJMP $B機接收:MOV SCON,#90HMOV PCON,#00HLOP:JNB RI,LOPCLR RIMOV 30H

26、,SBUFMOV C,RB8SJMP $4方式3 當(dāng)SM0SM1=11時,串行口工作在方式3。方式3為波特率可變的9位異步通信方式,除了波特率外,方式3和方式2相同。 方式3的波特率由下式確定: 方式3波特率=(2SMOD/32)定時器T1的溢出率題目:由A機向B機發(fā)送30H-39H的內(nèi)容,波特率為4800,用奇偶校驗。MOV SCON,#90H;A機累加和校驗MOV PCON #00HLOP5:MOV R1,#30HMOV R2,#10MOV A,#00HLOP2:MOV SBUF,R1ADD A,R1LOP:JNB TI,LOPCLR TIINC R1DJNZ R2,LOP2MOV SBU

27、F,ALOP3:JNB TI,LOP3CLR TILOP4:JNB RI,LOP4CLR RIMOV A,SBUFCJNE A,#00H,LOP5RETIMOV SCON,#90H;B機接受MOV PCON #00HLOP5:MOV R1,#30HMOV R2,#10MOV A,#00HLOP:JNB RI,LOPCLR RIMOV R1,SBUFADD A,R1INC R1DJNZ R2,LOPLOP4:JNB RI,LOP4CLR RIMOV 40H,SBUFCJNE A,40H,LOP3MOV A,#00H;相同發(fā)00HMOV SBUF ,ALOP3:JNB TI,LOP3CLR TISJMP LOP6LOP3:MOV A,#55HMOV SBUF,A LOP3:JNB TI

溫馨提示

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

評論

0/150

提交評論