單片機(jī)原理第四章概況課件_第1頁
單片機(jī)原理第四章概況課件_第2頁
單片機(jī)原理第四章概況課件_第3頁
單片機(jī)原理第四章概況課件_第4頁
單片機(jī)原理第四章概況課件_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章

單片機(jī)的其他片內(nèi)功能部件4-1 并行I/O口4-2 定時器/計數(shù)器4-3 串行通信接口4-4 中斷系統(tǒng)第四章

單片機(jī)的其他片內(nèi)功能部件I/O接口的作用實現(xiàn)和不同外設(shè)的速度匹配改變數(shù)據(jù)傳送方式改變信號的性質(zhì)和電平第四章

單片機(jī)的其他片內(nèi)功能部件外部設(shè)備的編址方式1.對外設(shè)端口單獨編址

INA,(N);N端口中的數(shù)OUT(N),A2.外設(shè)端口和存儲器統(tǒng)一編址將一部分地址空間讓給外設(shè)端口,存儲器不再使用。優(yōu)點:(1)一切指令均適用于I/O端口的訪問,增強(qiáng)了CPU對外圍設(shè)備的處理能力。(2)CPU本身不需要專門的I/O指令。(3)外設(shè)地址安排靈活,數(shù)量不限。第四章

單片機(jī)的其他片內(nèi)功能部件端口與接口端口:常指I/O接口中帶有端口地址的寄存器或緩沖器,CPU通過端口地址就可以對端口中信息進(jìn)行讀寫。接口:指CPU與外設(shè)間的I/O接口芯片,一個外設(shè)通常需要一個I/O接口,但一個I/O接口可以有多個I/O端口,傳送數(shù)據(jù)字的端口稱數(shù)據(jù)口,傳送命令字的稱命令口,傳送狀態(tài)字的稱為狀態(tài)口。第四章

單片機(jī)的其他片內(nèi)功能部件4-1并行I/O口四個8位并行I/O端口:P0、P1、P2和P3。每個端口都是8位準(zhǔn)雙向口,包含一個鎖存器(即特殊功能寄存器P0~P3)、一個輸出驅(qū)動器和一個輸入緩沖器。這四個并行I/O口都可以作準(zhǔn)雙向通用I/O口,既可以作輸入口,又可以作輸出口,還可以作雙向口。輸出有鎖存功能;輸入有三態(tài)緩沖但無鎖存功能。它們既可以以字節(jié)尋址,也可以按位獨立輸入/輸出。第四章

單片機(jī)的其他片內(nèi)功能部件三種I/O端口操作方式1.數(shù)據(jù)輸出方式(寫端口)通過一條指令將數(shù)據(jù)寫入P0-P3的數(shù)據(jù)鎖存器,然后通過輸出驅(qū)動器送到端口引腳。MOVP0,A;累加器A中內(nèi)容送P0口2.讀端口對端口鎖存器數(shù)據(jù)進(jìn)行讀入,這個數(shù)據(jù)并非端口引腳上的數(shù)據(jù)ORLP1,#0F0H;P1鎖存器中數(shù)據(jù)送A,經(jīng)“與”運(yùn)算后,送P1鎖存器第四章

單片機(jī)的其他片內(nèi)功能部件3.讀引腳從端口引腳上讀數(shù)據(jù),先使對應(yīng)端口鎖存器置位,使T管截止,然后打開數(shù)據(jù)緩沖器,使引腳數(shù)據(jù)輸入數(shù)據(jù)總線。MOVP1,#0FH;使P1口低四位鎖存器置位MOVA,P1;讀P1口低四位引腳線信號第四章

單片機(jī)的其他片內(nèi)功能部件P1口的位結(jié)構(gòu)第四章

單片機(jī)的其他片內(nèi)功能部件4-1-1P1口通用I/O口 可以采用字節(jié)操作也可以采用位操作,CPU既可以把它們看作數(shù)據(jù)口也可以看作狀態(tài)口。

CPU復(fù)位后,口鎖存器為“1”,對于作為輸入的口腳(讀引腳),相應(yīng)位的口鎖存器不能寫入“0”。第四章

單片機(jī)的其他片內(nèi)功能部件例4-1讀P1.4~P1.7口狀態(tài)送指示燈顯示。字節(jié)操作參考程序:

ORLP1,#0F0H;P1.4~P1.7口鎖存器置1

MOVA,P1;讀P1.4~P1.7引腳狀態(tài)

SWAPA;

MOVP1,A;

RET第四章

單片機(jī)的其他片內(nèi)功能部件4-1-2P2口P2口有兩種功能:對于內(nèi)部有程序存貯器的單片機(jī),P2口既可以作為輸入/輸出口使用,也可以作為系統(tǒng)擴(kuò)展的地址總線口,輸出高8位地址A8~A15。對于內(nèi)部沒有程序存貯器的單片機(jī),必須外接程序存貯器一般情況下P2口只能作為系統(tǒng)擴(kuò)展的高8位地址總線口,而不能作為外部設(shè)備的輸入/輸出口。

第四章

單片機(jī)的其他片內(nèi)功能部件P2口作通用I/O口

例4-3

XRLP2,#01H

;字節(jié)操作,P2.0取反

CPLP2.0

;位操作,P2.0取反

P2口作地址總線(1)若片外數(shù)據(jù)存儲器的容量≤256B

這時P2口不輸出地址,仍可作為I/O口使用例4-4將56H寫入外部RAM的38H單元,CPU執(zhí)行下面的程序段不影響P2口狀態(tài): MOVR0,#38H MOVA,#56H MOVX@R0,A

第四章

單片機(jī)的其他片內(nèi)功能部件(2)若片外數(shù)據(jù)存儲器的容量≥256B

MOVXA,@DPTRMOVX@DPTR,A第四章

單片機(jī)的其他片內(nèi)功能部件4-1-3P0口P0口既可作通用I/O口(用8051時)使用,又可作地址/數(shù)據(jù)分時復(fù)用總線使用。

第四章

單片機(jī)的其他片內(nèi)功能部件

4-1-4P3口

P3口除了作為準(zhǔn)雙向通用I/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讀選通信號輸出端)第四章

單片機(jī)的其他片內(nèi)功能部件4-2 定時器/計數(shù)器1、MCS-51內(nèi)部具有兩個定時/計數(shù)器,可用于定時控制,分頻器和事故處理來用。2、內(nèi)部是一個二進(jìn)制加1計數(shù)器,當(dāng)計數(shù)器計滿回零時能自動產(chǎn)生溢出中斷請求,表示定時時間已到或計數(shù)已中止。第四章

單片機(jī)的其他片內(nèi)功能部件2個可獨立控制的16位定時器/計數(shù)器:T0、T1原理:1、定時模式每一個機(jī)器周期計數(shù)器加1,直至計滿溢出產(chǎn)生中斷請求。對于一個N位的加1計數(shù)器,若計數(shù)時鐘的頻率f是已知的,則從初值a開始加1計數(shù)至溢出所占用的時間為:

當(dāng)N=8、a=0、t=1/f時,最大的定時時間為:T=256t2、計數(shù)模式外部輸入信號是加到T0(P3.4)或T1(P3.5)端,CPU每個機(jī)器周期對T0(或T1)檢測一次,只有在前一次檢測為1后一次檢測為0時才使計數(shù)器加1。所以,對外部輸入信號的最高計數(shù)速率是晶振的1/24。第四章

單片機(jī)的其他片內(nèi)功能部件一.定時器控制、狀態(tài)寄存器1.TMOD定時器方式寄存器(89H)T1T01)功能選擇位C/T: =0,定時功能,計數(shù)內(nèi)部機(jī)器周期脈沖; =1,計數(shù)功能,計數(shù)引腳T0(T1)輸入的脈沖下降沿。2)方式選擇位M1、M0:4種工作方式:13/16/8位3)門控方式選擇位GATE: =0,非門控方式(內(nèi)部啟動):

TRx=1,啟動定時器工作;

TRx=0,停止定時器工作。 =1,門控方式(外部啟動):TRx=1且引腳INTx=1才啟動。第四章

單片機(jī)的其他片內(nèi)功能部件TMOD確定定時器工作方式指令:MOVTMOD,#方式字例:設(shè)T0用方式2非門控定時,T1用方式1門控計數(shù)。

MOV TMOD,#11010010B或MOV TMOD,#0D2H

第四章

單片機(jī)的其他片內(nèi)功能部件2.TCON定時器控制/狀態(tài)寄存器(88H)1)啟動控制位TR0、TR1 =0,停止定時器工作;=1,啟動定時器工作。例:啟動T0: SETB TR02)溢出中斷標(biāo)志位TF0、TF1 定時器溢出使TFx=1。中斷方式: TFx=1引起中斷請求,CPU響應(yīng)Tx中斷后,自動對TFx清0。軟件查詢方式:可用軟件檢測TFx,必須軟件清0。WAIT:JBCTF0,NEXT;檢測T0是否溢出

SJMP WAIT ;未溢出,繼續(xù)檢測 NEXT:… ;溢出,TF0清0,處理溢出第四章

單片機(jī)的其他片內(nèi)功能部件3.可預(yù)置初值的16位加1定時計數(shù)器屬于SFR中的一種,T0由TH0、TL0組成,

T1由TH1、TL1組成。通過預(yù)設(shè)初值來定時。

預(yù)置T0初值指令: MOV TH0,#X MOV TL0,#XL第四章

單片機(jī)的其他片內(nèi)功能部件二、定時器工作方式

1.方式013位定時/計數(shù)器。計數(shù)外部脈沖個數(shù):1~8192(213)。定時時間(12MHz,即:T=1s):1s~8.192ms。C/T=0C/T=1由方式選擇位M1、M0設(shè)定第四章

單片機(jī)的其他片內(nèi)功能部件THx高8位和TLx低5位組成13位加1計數(shù)器例:計算得初值為7692,13位定時器T0應(yīng)裝初值多少?7692化為16進(jìn)制數(shù)1E0CH,則TH0=0FOH,TL0=0CH第四章

單片機(jī)的其他片內(nèi)功能部件2.方式116位定時/計數(shù)器。THx8位和TLx8位組成16位加1計數(shù)器計數(shù)外部脈沖個數(shù):1~65536(216)定時時間(T=1s):1s~65536×T=65.54msC/T=0C/T=1第四章

單片機(jī)的其他片內(nèi)功能部件3.方式2自動恢復(fù)初值8位定時/計數(shù)器。TLx為8位加1計數(shù)器,THx為8位初值暫存器。無需重裝初值,用于需要重復(fù)定時和計數(shù)的場合。最大計數(shù)值:256(28)最大定時時間(T=1s):256s第四章

單片機(jī)的其他片內(nèi)功能部件注意:方式2下,當(dāng)定時器計滿回零時,一方面向CPU發(fā)出溢出中斷請求,另一方面從TH中重新獲得初值并啟動計數(shù)。方式0、1、3下,定時器必須通過重裝初值來重新啟動計數(shù)。第四章

單片機(jī)的其他片內(nèi)功能部件4.方式3(只適用T0)T0分成2個獨立的8位定時器:TL0定時/計數(shù)器和TH0定時器TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位。T1不能使用方式3工作,一般當(dāng)T1作為波特率發(fā)生器時,T0選方式3。C/T=0C/T=1第四章

單片機(jī)的其他片內(nèi)功能部件4-2-3定時器/計數(shù)器的初始化1.初始化步驟

1)給定時器方式寄存器TMOD送一個方式控制字,以設(shè)定定時器/計數(shù)器的相應(yīng)工作方式。2)確定需要定時的時間和需要計數(shù)的初值,給定時器/計數(shù)器送定時器初值或計數(shù)器初值。3)給中斷允許寄存器IE選送中斷控制字和中斷優(yōu)先級寄存器IP選送中斷優(yōu)先級字,以開放相應(yīng)中斷和設(shè)定中斷優(yōu)先級。4)給定時器控制寄存器TCON送命令字,以啟動或禁止定時器/計數(shù)器的運(yùn)行。第四章

單片機(jī)的其他片內(nèi)功能部件2.計數(shù)器初值的計算

TC=M-C

式中,TC為計數(shù)初值,C為計滿所需要的計數(shù)個數(shù),M為計數(shù)器模數(shù),該值和計數(shù)器工作方式有關(guān)。在方式0時M為2^13;在方式1時M為2^16;在方式2和方式3時M為2^8。

4-2-3定時器/計數(shù)器的初始化第四章

單片機(jī)的其他片內(nèi)功能部件3.定時器初值的計算T=(M-TC)T計數(shù)上式也可寫成:TC=M-T/T計數(shù)式中,M為模值,和定時器的工作方式有關(guān);T計數(shù)是單片機(jī)時鐘周期TCLK的12倍;TC為定時器的定時初值。

4-2-3定時器/計數(shù)器的初始化第四章

單片機(jī)的其他片內(nèi)功能部件例4-7若單片機(jī)時鐘頻率為12MHz,請計算定時2ms所需的定時器初值。解:由于定時器工作在方式2和方式3下時的最大定時時間只有0.256ms,因此要想獲得2ms的定時時間定時器必須工作在方式0或方式1。若采用方式0,則根據(jù)公式可得定時器初值為:TC=M-T/T計數(shù)=

2^13

-2*10^3/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。第四章

單片機(jī)的其他片內(nèi)功能部件例:設(shè)8031時鐘頻率為12MHz,要求定時器T0定時50ms,寫出初始化程序。 TC=M-T/T計數(shù)=2^16-50ms/1us=15536=3CB0HSTART:MOVTMOD#01H;方式1MOVTH0,#3CH;裝初值MOVTL0,#0B0HSETBTR0;啟動T0計數(shù)WAIT:JBCTF0,TT0;檢測T0是否溢出

SJMP WAIT ;未溢出,繼續(xù)檢測TTO:MOVTH0,#3CH;重裝初值MOVTL0,#0B0HCPLP1.0;功能?HERE:SJMPHERE第四章

單片機(jī)的其他片內(nèi)功能部件4-3 串行接口一.串行通訊的基本方式(一).異步通訊以字符為傳送單位用起始位和停止位標(biāo)識每個字符的開始和結(jié)束,字符間隔不固定,只需字符傳送時同步。異步通訊常用格式:一個字符幀(二).同步通信每一數(shù)據(jù)塊開頭時發(fā)送一個或兩個同步字符,使發(fā)送與接收雙方取得同步。數(shù)據(jù)塊的各個字符間取消了起始位和停止位,所以通信速度得以提高。

第四章

單片機(jī)的其他片內(nèi)功能部件二.串行接口功能1.發(fā)送器:并串?dāng)?shù)據(jù)格式轉(zhuǎn)換,添加標(biāo)識位和校驗位,一幀發(fā)送結(jié)束,設(shè)置結(jié)束標(biāo)志,申請中斷。2.接收器:串并數(shù)據(jù)格式轉(zhuǎn)換,檢查錯誤,去掉標(biāo)識位,保存有效數(shù)據(jù),設(shè)置接收結(jié)束標(biāo)志,申請中斷。3.控制器:接收編程命令和控制參數(shù),設(shè)置工作方式:同步/異步、字符格式、波特率、校驗方式、數(shù)據(jù)位與同步時鐘比例等。4.串行數(shù)據(jù)傳送方向單工通訊:數(shù)據(jù)單向傳送。半雙工通訊:數(shù)據(jù)可分時雙向傳送。全雙工通訊:可同時進(jìn)行發(fā)送和接收第四章

單片機(jī)的其他片內(nèi)功能部件三、串行接口控制器1.數(shù)據(jù)緩沖器SBUF

發(fā)送SBUF和接收SBUF共用一個地址99H。

1)發(fā)送SBUF存放待發(fā)送的8位數(shù)據(jù),寫入SBUF將同時啟動發(fā)送。 發(fā)送指令: MOV SBUF,A 2)接收SBUF存放已接收成功的8位數(shù)據(jù),供CPU讀取。 讀取串行口接收數(shù)據(jù)指令:MOVA,SBUF

第四章

單片機(jī)的其他片內(nèi)功能部件2.串行口控制/狀態(tài)寄存器SCONSCONCON(98H)SM2:多機(jī)控制位,用于多機(jī)通訊。REN:允許接收控制位,REN=1,允許接收;REN=0,禁止接收。TB8:發(fā)送的第9位數(shù)據(jù)位,可用作校驗位和地址/數(shù)據(jù)標(biāo)識位RB8:接收的第9位數(shù)據(jù)位或停止位TI:發(fā)送中斷標(biāo)志,發(fā)送一幀結(jié)束,TI=1,必須軟件清零RI:接收中斷標(biāo)志,接收一幀結(jié)束,RI=1,必須軟件清零SM0,SM1:選擇串行口4種工作方式。第四章

單片機(jī)的其他片內(nèi)功能部件波特率:每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù)(bit數(shù)),單位是bps(bitpersecond)。若波特率為1200bps,字符的實際傳送速率為1200/10=120幀/秒。3.節(jié)電控制寄存器

PCONPPPPCPCPCONONCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍,SMOD=0,則不加倍。第四章

單片機(jī)的其他片內(nèi)功能部件四、串行接口的工作方式

SM0,SM1選擇四種工作方式。(1)方式0:同步移位寄存器方式。用于擴(kuò)展并行I/O接口。1.一幀8位,無起始位和停止位。2.RXD:數(shù)據(jù)輸入/輸出端。

TXD:同步脈沖輸出端,每個脈沖對應(yīng)一個數(shù)據(jù)位。3.波特率B=fosc/12

如:fosc=12MHz, B=1MHz,每位數(shù)據(jù)占1s。4.發(fā)送過程:先對TI清零,寫入SBUF,啟動發(fā)送,一幀發(fā)送結(jié)束,TI=1。接收過程:REN=1且RI=0,啟動接收,一幀接收完畢,RI=1第四章

單片機(jī)的其他片內(nèi)功能部件串行輸入、并行輸出移位寄存器內(nèi)部結(jié)構(gòu)第四章

單片機(jī)的其他片內(nèi)功能部件(2)方式1

8位數(shù)據(jù)異步通訊方式。1.一幀10位:8位數(shù)據(jù)位,1個起始位(0),1個停止位(1)。2.RXD:接收數(shù)據(jù)端。

TXD:發(fā)送數(shù)據(jù)端。3.波特率:用T1作為波特率發(fā)生器,B=(2SMOD/32)×T1溢出率。4.發(fā)送:先對TI清零,寫入SBUF,同時啟動發(fā)送,一幀發(fā)送結(jié)束,TI=1。

接收:REN=1,RI=0,允許接收。接收完一幀,將接收數(shù)據(jù)裝入SBUF,并使RI=1。接收原理:當(dāng)REN=1,CPU開始采樣RXD引腳負(fù)跳變信號,若出現(xiàn)負(fù)跳變,才進(jìn)入數(shù)據(jù)接收狀態(tài)。即先檢測起始位,若第一位為0,繼續(xù)接收其余位;否則,停止接收,重新采樣負(fù)跳變。數(shù)據(jù)采樣速率為波特率16倍頻,在數(shù)據(jù)位中間,用第7、8、9個脈沖采樣3次數(shù)據(jù)位,并3中取2保留采樣值。第四章

單片機(jī)的其他片內(nèi)功能部件(2)方式

8位數(shù)據(jù)異步通訊方式。寫入SBUF采樣(a)發(fā)送時序圖TXD數(shù)據(jù)輸出TID0D1D2D3D4D5D6D7停止位起始位RXD輸入數(shù)據(jù)(b)接收時序圖D0D1D2D3D4D5D6D7停止位起始位RI檢測負(fù)跳變第四章

單片機(jī)的其他片內(nèi)功能部件(3)方式2和方式3

9位數(shù)據(jù)異步通訊方式。1.一幀為11位:9位數(shù)據(jù)位,1個起始位(0),1個停止位(1)。第9位數(shù)據(jù)位在TB8/RB8中,常用作校驗位和多機(jī)通訊標(biāo)識位。2.RXD:接收數(shù)據(jù)端,TXD:發(fā)送數(shù)據(jù)端。3.波特率:方式2:B=(2SMOD/64)×fosc。

方式3:B=(2SMOD/32)×T1溢出率。4.發(fā)送:先裝入TB8,寫入SBUF并啟動發(fā)送,發(fā)送結(jié)束,TI=1。

接收:REN=1,允許接收。接收完一幀,若RI=0,SM2=0或RB8=1,將接收數(shù)據(jù)裝入接收SBUF,第9位裝入RB8,使RI=1;否則丟棄接收數(shù)據(jù),不置位RI。

第四章

單片機(jī)的其他片內(nèi)功能部件(3)方式2和方式3

9位數(shù)據(jù)異步通訊方式。發(fā)送時序?qū)懭隨BUFTXD輸出TIRXD輸入接收時序RID0D1D2D3D4D5D6TB8停止位起始位D7D0D1D2D3D4D5D6RB8停止位起始位D7檢測負(fù)跳變第四章

單片機(jī)的其他片內(nèi)功能部件(4)計算波特率方式0為固定波特率:B=fosc/12 方式2可選兩種波特率:B=(2SMOD/64)×fosc 方式1、3為可變波特率,用T1作波特率發(fā)生器。

B=(2SMOD/32)×T1溢出率T1為方式2的溢出時間:t=(28-X)T=(28-X)×12/foscT1溢出率=1/t=fosc/[12×(2n-X)]

波特率B=(2SMOD/32)×fosc/[12×(28-X)]串行口方式1、3,根據(jù)波特率選擇T1工作方式,計算時間常數(shù)。T1選方式2:TH1=X=28-fosc/12×2SMOD/(32×B)T1選方式1用于低波特率,需考慮T1重裝時間常數(shù)時間。第四章

單片機(jī)的其他片內(nèi)功能部件4-3-5單片機(jī)雙機(jī)通訊和多機(jī)通信1.雙機(jī)通訊第四章

單片機(jī)的其他片內(nèi)功能部件串行口的應(yīng)用

串行口初始化編程格式:

SIO:MOVSCON,#××H;方式字,且TI=RI=0 MOVPCON,#80H ;波特率加倍

MOVTMOD,#20H ;T1作波特率發(fā)生器,方式2

MOVTH1,#X;選定波特率

MOVTL1,#X SETBTR1 SETBEA;開串行口中斷

SETBES第四章

單片機(jī)的其他片內(nèi)功能部件發(fā)送程序:先發(fā)送一個字符,等待TI=1后再發(fā)送下一個字符。1.查詢方式:TRAM:MOVA,@R0 ;取數(shù)據(jù)

MOVSBUF,A ;發(fā)送一個字符WAIT:JBC TI,NEXT ;等待發(fā)送結(jié)束SJMPWAITNEXT:INC R0;準(zhǔn)備下一次發(fā)送SJMPTRAM2.中斷方式:

ORG 0023H ;串行口中斷入口

AJMPSINTMAIN: … ;初始化編程TRAM:MOV A,@R0 ;取數(shù)據(jù)

MOV SBUF,A;發(fā)送第一個字符

H:SJMP H;其它工作

SINT:CLRTI ;中斷服務(wù)程序

INC R0 MOV A,@R0 ;取數(shù)據(jù)

MOV SBUF,A;發(fā)送下一個字符

RETI第四章

單片機(jī)的其他片內(nèi)功能部件接收程序:REN=1、RI=0等待接收,當(dāng)RI=1,從SBUF讀取數(shù)據(jù)。1.查詢方式:

WAIT: JBC RI,NEXT ;查詢等待

SJMP WAIT NEXT: MOV A,SBUF ;讀取接收數(shù)據(jù)

MOV @R0,A ;保存數(shù)據(jù)

INC R0 ;準(zhǔn)備下一次接收

SJMP WAIT2.中斷方式:

ORG 0023H AJMP RINT MAIN: … ;初始化編程

H: SJMP H ;其它任務(wù)

RINT: CLR RI ;清中斷標(biāo)志

MOV A,SBUF ;讀取接收數(shù)據(jù)

MOV @R0,A ;保存數(shù)據(jù)

INC R0 RETI第四章

單片機(jī)的其他片內(nèi)功能部件(一)串行口方式0用于擴(kuò)展單片機(jī)的并行I/O接口串行口實現(xiàn):并行→串行的數(shù)據(jù)轉(zhuǎn)換

74LS165/74LS164實現(xiàn):串行→并行的數(shù)據(jù)轉(zhuǎn)換。(二)異步通訊程序舉例

1.發(fā)送程序:將片內(nèi)RAM50H起始單元的16個數(shù)由串行口發(fā)送。要求發(fā)送波特率為系統(tǒng)時鐘的32分頻,并進(jìn)行奇偶校驗。 MAINT:MOV SCON,#80H;串行口初始化,方式2

MOV PCON,#80H;波特率,SMOD=1

SETB EA SETB ES ;開串行口中斷

MOV R0,#50H ;設(shè)數(shù)據(jù)指針

MOV R7,#10H ;數(shù)據(jù)長度 LOOP: MOV A,@R0 ;取一個字符

MOV C,P ;加奇偶校驗

MOV TB8,C MOV SBUF,A ;啟動一次發(fā)送 HERE: SJMP HERE ;CPU執(zhí)行其它任務(wù)第四章

單片機(jī)的其他片內(nèi)功能部件

ORG 0023H ;串行口中斷入口

AJMP TRANITRANI: PUSH A ;保護(hù)現(xiàn)場

PUSH PSW CLR TI ;清發(fā)送結(jié)束標(biāo)志

DJNZ R7,NEXT ;是否發(fā)送完?

CLR ES ;發(fā)送完,關(guān)閉串行口中斷 SJMP TENDNEXT: INC R0 ;未發(fā)送完,修改指針

MOV A,@R0 ;取下一個字符

MOV C,P ;加奇偶校驗

MOV TB8,C MOV SBUF,A ;發(fā)送一個字符

POP PSW ;恢復(fù)現(xiàn)場

POP A TEND: RETI ;中斷返回第四章

單片機(jī)的其他片內(nèi)功能部件2.接收程序:串行輸入16個字符,存入片內(nèi)RAM的50H起始單元,串行口波特率為2400(設(shè)晶振為11.0592MHz)。RECS: MOV SCON,#50H;串行口方式1允許接收 MOV TMOD,#20H;T1方式2定時 MOV TL1,#0F4H ;寫入T1時間常數(shù) MOV TH1,#0F4H SETBTR1;啟動T1 MOV R0,#50H ;設(shè)數(shù)據(jù)指針 MOV R7,#10H ;接收數(shù)據(jù)長度 WAIT: JBC RI,NEXT ;等待串行口接收 SJMPWAIT NEXT: MOV A,SBUF ;讀取接收字符 MOV @R0,A ;保存一個字符 INC R0 ;修改指針 DJNZR7,WAIT ;全部字符接收完? RET第四章

單片機(jī)的其他片內(nèi)功能部件3.接收程序:串行輸入16個字符,進(jìn)行奇偶校驗。RECS: MOV SCON,#0D0H;串行口方式3允許接收

MOV TMOD,#20H;T1方式2定時

MOV TL1,#0F4H;寫入T1時間常數(shù)

MOV TH1,#0F4H SETBTR1 ;啟動T1 MOV R0,#50H;設(shè)數(shù)據(jù)指針

MOV R7,#10H ;接收數(shù)據(jù)長度

WAIT: JBC RI,NEXT ;等待串行口接收

SJMPWAIT NEXT: MOV A,SBUF ;取一個接收字符

JNB P,COMP ;奇偶校驗

JNB RB8,ERR ;P≠RB8,數(shù)據(jù)出錯

SJMPRIGHT ;P=RB8,數(shù)據(jù)正確COMP: JB RB8,ERRRIGHT: MOV @R0,A;保存一個字符

INC R0 ;修改指針

DJNZR7,WAIT ;全部字符接收完?

CLR F0 ;F0=0,接收數(shù)據(jù)全部正確

ERR: SETBF0 ;F0=1,接收數(shù)據(jù)出錯

RET第四章

單片機(jī)的其他片內(nèi)功能部件4-4 中斷系統(tǒng)4.4.1中斷系統(tǒng)概述一、中斷的概念中央處理器CPU正在處理某事件的時候,外部發(fā)生了更為緊急的事件,請求CPU暫停當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事情,處理完后,再回到被中斷的地方,繼續(xù)原來的工作,這樣的過程稱為中斷。第四章

單片機(jī)的其他片內(nèi)功能部件中斷技術(shù)的優(yōu)點:提高CPU的效率。提高實時數(shù)據(jù)的處理時效。被控對象的實時參數(shù)、越限數(shù)據(jù)和故障信息為計算機(jī)及時采集,以便應(yī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)中斷返回。第四章

單片機(jī)的其他片內(nèi)功能部件二、中斷系統(tǒng)結(jié)構(gòu)2個外部中斷源信號:INT0、INT12個定時器T0、T1溢出中斷請求:TF0、TF11個串行口數(shù)據(jù)發(fā)送、接收結(jié)束中斷請求:TI、RI第四章

單片機(jī)的其他片內(nèi)功能部件三、中斷控制寄存器第四章

單片機(jī)的其他片內(nèi)功能部件四、中斷控制寄存器中的各中斷標(biāo)志1.中斷標(biāo)志位:

TF1、TF0、IE1、IE0、RI、TI

TCONSCON登記各中斷源請求信號:=1,有中斷請求;=0,無中斷請求。CPU響應(yīng)中斷后,各中斷標(biāo)志自動清零。注意:TI,RI標(biāo)志必須軟件清零。2.外部中斷觸發(fā)方式選擇位:IT0、IT1=1,負(fù)邊沿觸發(fā)中斷請求;=0,低電平觸發(fā)中斷請求。第四章

單片機(jī)的其他片內(nèi)功能部件3.中斷允許控制位:EA、ES、ET1、EX1、ET0、EX0IE=1,開中斷;=0,關(guān)中斷。例:允許CPU響應(yīng)T0的中斷請求

MOVIE,#82H或者SETBET0 SETBEA4.中斷優(yōu)先級控制位:PS、PT1、PX1、PT0、PX0IP2級優(yōu)先級:=1,為高優(yōu)先級;=0,為低優(yōu)先級。 同一優(yōu)先級別按內(nèi)部查詢順序排列優(yōu)先級:

高INT0、T0、INT1、T1、SIO低。五、中斷控制寄存器中各控制位第四章

單片機(jī)的其他片內(nèi)功能部件注意:一種中斷一旦得到響應(yīng),與它同級的中斷不能再中斷它。低優(yōu)先級中斷可以被高優(yōu)先級中斷所中斷,反之不能。第四章

單片機(jī)的其他片內(nèi)功能部件4.4.2中斷處理過程1.中斷響應(yīng)(一)中斷響應(yīng)條件1.有中斷源發(fā)出中斷請求;2.中斷總允許位EA=1,即CPU開中斷;3.相應(yīng)的中斷允許位為1,即沒有屏蔽。(二)響應(yīng)過程1.阻斷同級或低級中斷;2.PC指針內(nèi)容壓棧保護(hù);3.相應(yīng)中斷入口地址裝入PC,程序轉(zhuǎn)移到該中斷入口地址單元。第四章

單片機(jī)的其他片內(nèi)功能部件(三)中斷響應(yīng)阻斷 1.當(dāng)CPU未執(zhí)行完一條指令。 2.當(dāng)有同級或高級中斷服務(wù)。 3.執(zhí)行RET、RETI等指令后,不能立即響應(yīng)中斷。4.4.2中斷處理過程1.中斷響應(yīng)第四章

單片機(jī)的其他片內(nèi)功能部件2.中斷處理注意:(1)各中斷源的入口矢量地址之間,相隔8個單元,通常是在中斷入口矢量地址單元處存放一條無條件轉(zhuǎn)移指令,轉(zhuǎn)至存儲器其他的任何空間去執(zhí)行中斷服務(wù)程序。

(2)若要在執(zhí)行當(dāng)前中斷程序時禁止更高優(yōu)先級中斷,應(yīng)用軟件關(guān)閉CPU中斷,或屏蔽更高級中斷源的中斷,在中斷返回前再開放中斷。

(3)在保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場時,為了不使現(xiàn)場信息受到破壞或造成混亂,一般在此情況下,應(yīng)關(guān)CPU中斷,使CPU暫不響應(yīng)新的中斷請求。3.中斷返回中斷返回指令:

RETI=RET指令+通知CPU中斷服務(wù)已結(jié)束。第四章

單片機(jī)的其他片內(nèi)功能部件4.4.3中斷系統(tǒng)應(yīng)用中斷服務(wù)程序的—般格式如下:

CLR EA ;關(guān)中斷PUSHPSW;保護(hù)現(xiàn)場PUSHA…SETB EA ;開中斷,允許CPU響應(yīng)高級中斷…;服務(wù)程序CLR EA ;關(guān)中斷POPA;恢復(fù)現(xiàn)場POPPSW…SETB EA ;開中斷RETI ;中斷返回第四章

單片機(jī)的其他片內(nèi)功能部件1.定時器/計數(shù)器的應(yīng)用和編程

例4-10產(chǎn)生2ms的方波

溫馨提示

  • 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

提交評論