第6章 MCS-51單片機內(nèi)部資源及編程_第1頁
第6章 MCS-51單片機內(nèi)部資源及編程_第2頁
第6章 MCS-51單片機內(nèi)部資源及編程_第3頁
第6章 MCS-51單片機內(nèi)部資源及編程_第4頁
第6章 MCS-51單片機內(nèi)部資源及編程_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第6章 MCS-51單片機內(nèi)部資源及編程 第第6章章 MCS-51單片機內(nèi)部資源及編程單片機內(nèi)部資源及編程 MCS-51單片機的內(nèi)部資源主要有并行I/O口、定時器/計數(shù)器、串行接口以及中斷系統(tǒng),MCS-51單片機的大部分功能就是通過對這些資源的利用來實現(xiàn)的。下面分別對其介紹,并用匯編語言和C語言分別給出相應(yīng)例子。6.1 并行輸入并行輸入/輸出接口輸出接口6.1.1 并行口應(yīng)用與編程并行口應(yīng)用與編程【例【例6-1】 利用單片機的P1口接8個發(fā)光二極管,P0口接8個開關(guān),編程實現(xiàn),當開關(guān)動作時,對應(yīng)的發(fā)光二極管亮或滅。只須把P0口的內(nèi)容讀出后,通過P1口輸出即可。匯編程序:ORG 0100HMOV

2、 P0,#0FFHLOOP: MOV A,P0MOV P1,ASJMP LOOP第6章 MCS-51單片機內(nèi)部資源及編程 C51語言程序:#include void main(void)unsigned char i;P0=0 xff;for(;) i=P0;P1=i; 第6章 MCS-51單片機內(nèi)部資源及編程 6.2 定時定時/計數(shù)器接口計數(shù)器接口6.2.1 定時定時/計數(shù)器的主要特性計數(shù)器的主要特性1MCS-51系列中51子系列有兩個16位的可編程定時/計數(shù)器:定時/計數(shù)器T0和定時/計數(shù)器T1,52子系列有三個,還有一個定時/計數(shù)器T2。2每個定時/計數(shù)器既可以對系統(tǒng)時鐘計數(shù)實現(xiàn)定時,也

3、可以對外部信號計數(shù)實現(xiàn)計數(shù)功能,通過編程設(shè)定來實現(xiàn)。3每個定時/計數(shù)器都有多種工作方式,其中T0有四種工作方式;T1有三種工作方式,T2有三種工作方式。通過編程可設(shè)定工作于某種方式。4每一個定時/計數(shù)器定時計數(shù)時間到時產(chǎn)生溢出,使相應(yīng)的溢出位置位,溢出可通過查詢或中斷方式處理。第6章 MCS-51單片機內(nèi)部資源及編程 6.2.1 定時定時/計數(shù)器計數(shù)器T0、T1的結(jié)構(gòu)及工作原理的結(jié)構(gòu)及工作原理TH1TL1TH0TL0TCONTMOD啟動啟動溢出溢出工作方式工作方式中斷請求內(nèi)部總線TcyT1T0第6章 MCS-51單片機內(nèi)部資源及編程 加法計數(shù)器在使用時注意兩個方面。第一,由于它是加法計數(shù)器,每

4、來一個計數(shù)脈沖,加法器中的內(nèi)容加1個單位,當由全1加到全0時計滿溢出,因而,如果要計N個單位,則首先應(yīng)向計數(shù)器置初值為X,且有:初值初值X=最大計數(shù)值(滿值)最大計數(shù)值(滿值)M計數(shù)值計數(shù)值N 在不同的計數(shù)方式下,最大計數(shù)值(滿值)不一樣,一般來說,當定時器/計數(shù)器工作于R位計數(shù)方式時,它的最大計數(shù)值(滿值)為2的R次冪。第二,當定時/計數(shù)器工作于計數(shù)方式時,對芯片引腳T0(P3.4)或T1(P3.5)上的輸入脈沖計數(shù),計數(shù)過程如下:在每一個機器周期的S5P2時刻對T0(P3.4)或T1(P3.5)上信號采樣一次,如果上一個機器周期采樣到高電平,下一個機器周期采樣到低電平,則計數(shù)器在下一個機器

5、周期的S3P2時刻加1計數(shù)一次。因而需要兩個機器周期才能識別一個計數(shù)脈沖,所以外部計數(shù)脈沖的頻率應(yīng)小于振蕩頻率的1/24。第6章 MCS-51單片機內(nèi)部資源及編程 6.2.2 定時定時/計數(shù)器的方式和控制寄存器計數(shù)器的方式和控制寄存器一定時一定時/計數(shù)器的方式寄存器計數(shù)器的方式寄存器TMODTMODD7D6D5D4D3D2D1D0(89H)GATEC/TM1M0GATEC/TM1M0定時器1定時器0其中:M1、M0為工作方式選擇位 ,用于對T0的四種工作方式,T1的三種工作方式進行選擇,選擇情況如下 M1M0工作方式方式說明00013位定時/計數(shù)器01116位定時/計數(shù)器1028位自動重置定時

6、/計數(shù)器113兩個8位定時/計數(shù)器(只有T0有)第6章 MCS-51單片機內(nèi)部資源及編程 C/T:定時或計數(shù)方式選擇位,當C/T=1時工作于計數(shù)方式;當C/T=0時工作于定時方式。 GATE:門控位,用于控制定時/計數(shù)器的啟動是否受外部中斷請求信號的影響。二定時二定時/計數(shù)器的控制寄存器計數(shù)器的控制寄存器TCONTCOND7D6D5D4D3D2D1D0(88H)TF1TR1TF0TR0IE1IT1IE0IT0其中:TF1:定時/計數(shù)器T1的溢出標志位,當定時/計數(shù)器T1計滿時,由硬件使它置位,如中斷允許則觸發(fā)T1中斷。進入中斷處理后由內(nèi)部硬件電路自動清除。TR1:定時/計數(shù)器T1的啟動位,可由

7、軟件置位或清零,當TR1=1時啟動;TR1=0時停止。第6章 MCS-51單片機內(nèi)部資源及編程 TF0:定時/計數(shù)器T0的溢出標志位,當定時/計數(shù)器T0計滿時,由硬件使它置位,如中斷允許則觸發(fā)T0中斷。進入中斷處理后由內(nèi)部硬件電路自動清除。TR0:定時/計數(shù)器T0的啟動位,可由軟件置位或清零,當TR0=1時啟動;TR0=0時停止。6.2.3 定時定時/計數(shù)器的工作方式計數(shù)器的工作方式一方式一方式0振蕩器12TLx(低5位)THx(高8位)TFx與或TxTRxGATEINTxS2S1C/TTcy中斷請求第6章 MCS-51單片機內(nèi)部資源及編程 方式1是13位的定時/計數(shù)方式,因而最大計數(shù)值(滿值

8、)為2的13次冪,等于8192。如計數(shù)值為N,則置入的初值X為: X=8192-N 如定時/計數(shù)器T0的計數(shù)值為1000,則初值為7192,轉(zhuǎn)換成二進制數(shù)為1110000011000B,則TH0=11100000B,TL0=00011000B。二方式二方式1方式1的結(jié)構(gòu)與方式0結(jié)構(gòu)相同,只是把13位變成16位, 16位的加法計數(shù)器被全部用上。由于是16位的定時/計數(shù)方式,因而最大計數(shù)值(滿值)為2的16次冪,等于65536。如計數(shù)值為N,則置入的初值X為:X=65536-N如定時/計數(shù)器T0的計數(shù)值為1000,則初值為65536-1000=64536,轉(zhuǎn)換成二進制數(shù)為1111110000011

9、000B,則TH0=11111100B,TL0=00011000B。第6章 MCS-51單片機內(nèi)部資源及編程 三方式三方式2振蕩器12TLx(8位)THx(8位)TFx與或TxTRxGATEINTxS2S1C/TTcy中斷請求重裝初值8 方式2下,16位的計數(shù)器只用了8位來計數(shù),用的是TL0(或TL1)的8位來進行計數(shù),而TH0(或TH1)用于保存初值。當TL0(或TL1)計滿時則溢出,一方面使TF0(或TF1)置位,另一方面溢出信號又會觸發(fā)圖6.5上的三態(tài)門,使三態(tài)門導(dǎo)通,TH0(或TH1)的值就自動裝入TL0(或TL1)。 第6章 MCS-51單片機內(nèi)部資源及編程 由于是8位的定時/計數(shù)方

10、式,因而最大計數(shù)值(滿值)為2的8次冪,等于256。如計數(shù)值為N,則置入的初值X為: X=256-N 如定時/計數(shù)器T0的計數(shù)值為100,則初值為256-100=156,轉(zhuǎn)換成二進制數(shù)為10011100B,則TH0= TL0=10011100B。注意: 由于方式2計滿后,溢出信號會觸發(fā)三態(tài)門自動地把TH0(或TH1)的值裝入TL0(或TL1)中,因而如果要重新實現(xiàn)N個單位的計數(shù),不用重新置入初值。 四方式四方式3 方式3只有定時/計數(shù)器T0才有,當M1M0兩位為11時,定時/計數(shù)器T0工作于方式3,方式3的結(jié)構(gòu)如下圖. 方式3下,定時/計數(shù)器T0被分為兩個部分TL0和TH0,其中,TL0可作為

11、定時/計數(shù)器使用,占用T0的全部控制位:GATE、C/T、TR0和TF0;而TH0固定只能作定時器使用,對機器周期進行計數(shù),這時它占用定時/計數(shù)器T1的TR1位、TF1位和T1的中斷資源。 第6章 MCS-51單片機內(nèi)部資源及編程 振蕩器12TL0(8位)TF0與或T0TR0GATEINT0S2S1C/TTcy中斷請求TH0(8位)TF1S2中斷請求T1TR1第6章 MCS-51單片機內(nèi)部資源及編程 6.2.4 定時定時/計數(shù)器的初始化編程及應(yīng)用計數(shù)器的初始化編程及應(yīng)用一定時一定時/計數(shù)器的編程計數(shù)器的編程MCS-51單片機定時/計數(shù)器初始化過程如下:1根據(jù)要求選擇方式,確定方式控制字,寫入方

12、式控制寄存器TMOD。2根據(jù)要求計算定時/計數(shù)器的計數(shù)值,再由計數(shù)值求得初值,寫入初值寄存器。3根據(jù)需要開放定時/計數(shù)器中斷(后面須編寫中斷服務(wù)程序)。4設(shè)置定時/計數(shù)器控制寄存器TCON的值,啟動定時/計數(shù)器開始工作。5.等待定時/計數(shù)時間到,到則執(zhí)行中斷服務(wù)程序;如用查詢處理則編寫查詢程序判斷溢出標志,溢出標志等于1,則進行相應(yīng)處理。第6章 MCS-51單片機內(nèi)部資源及編程 二定時二定時/計數(shù)器的應(yīng)用計數(shù)器的應(yīng)用 通常利用定時/計數(shù)器來產(chǎn)生周期性的波形。利用定時/計數(shù)器產(chǎn)生周期性波形的基本思想是:利用定時/計數(shù)器產(chǎn)生周期性的定時,定時時間到則對輸出端進行相應(yīng)的處理。如產(chǎn)生周期性的方波只須定

13、時時間到對輸出端取反一次即可?!纠纠?-2】 設(shè)系統(tǒng)時鐘頻率為12MHZ,用定時/計數(shù)器T0編程實現(xiàn)從P1.0輸出周期為500s的方波。分析:從P1.0輸出周期為500s的方波,只須P1.0每250s取反一次則可。當系統(tǒng)時鐘為12MHZ,定時/計數(shù)器T0工作于方式2時,最大的定時時間為256s,滿足250s的定時要求,方式控制字應(yīng)設(shè)定為00000010B(02H)。系統(tǒng)時鐘為12MHZ,定時250s,計數(shù)值N為250,初值X=256-250=6,則TH0=TL0=06H。第6章 MCS-51單片機內(nèi)部資源及編程 匯編程序:ORG 0000HLJMP MAINORG 000BH ;中斷處理程序

14、CPL P1.0RETIORG 0100H ;主程序MAIN:MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB EASETB ET0SETB TR0SJMP $ENDC語言程序:#include /包含特殊功能寄存器庫sbit P1_0=P10;void main()TMOD=0 x02;TH0=0 x06;TL0=0 x06;EA=1;ET0=1;TR0=1;while(1);void time0_int(void) interrupt 1 /中斷服務(wù)程序 P1_0=!P1_0;(1)采用中斷處理方式的程序:采用中斷處理方式的程序:第6章 MCS-51單片機

15、內(nèi)部資源及編程 (2)采用查詢方式處理的程序)采用查詢方式處理的程序匯編程序:ORG 0000HLJMP MAINORG 0100H ;主程序MAIN:MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB TR0LOOP:JBC TF0,NEXT ;查詢計數(shù)溢出SJMP LOOPNEXT:CPL P1.0SJMP LOOPSJMP $ENDC語言程序:#include /包含特殊功能寄存器庫sbit P1_0=P10;void main()char i;TMOD=0 x02;TH0=0 x06;TL0=0 x06;TR0=1;for(;) if (TF0) TF0

16、=0;P1_0=! P1_0; /查詢計數(shù)溢出第6章 MCS-51單片機內(nèi)部資源及編程 如果定時時間大于65536s,這時用一個定時/計數(shù)器直接處理不能實現(xiàn),這時可用兩個定時/計數(shù)器共同處理或一個定時/計數(shù)器配合軟件計數(shù)方式處理。 【例【例6-3】設(shè)系統(tǒng)時鐘頻率為12MHZ,編程實現(xiàn)從P1.1輸出周期為1s的方波。 根據(jù)例6-2的處理過程,這時應(yīng)產(chǎn)生500ms的周期性的定時,定時到則對P1.1取反就可實現(xiàn)。由于定時時間較長,一個定時/計數(shù)器不能直接實現(xiàn),可用定時/計數(shù)器T0產(chǎn)生周期性為10ms的定時,然后用一個寄存器R2對10ms計數(shù)50次或用定時/計數(shù)器T1對10ms計數(shù)50次實現(xiàn)。系統(tǒng)時鐘

17、為12MHZ,定時/計數(shù)器T0定時10ms,計數(shù)值N為10000,只能選方式1,方式控制字為00000001B(01H),初值X:X=65536-10000=55536=1101100011110000B則TH0=11011000B=D8H,TL0=11110000B=F0H。第6章 MCS-51單片機內(nèi)部資源及編程 (1)用寄存器R2作計數(shù)器軟件計數(shù),中斷處理方式。匯編程序:ORG 0000HLJMP MAINORG 000BHLJMP INTT0ORG 0100HMAIN:MOV TMOD,#01HMOV TH0,#0D8HMOV TL0,#0F0HMOV R2,#00HSETB EASE

18、TB ET0SETB TR0SJMP $INTT0:MOV TH0,#0D8HMOV TL0,#0F0HINC R2CJNE R2,#32H,NEXTCPL P1.1MOV R2,#00HNEXT:RETIEND第6章 MCS-51單片機內(nèi)部資源及編程 C語言程序:#include /包含特殊功能寄存器庫sbit P1_1=P11;char i;void main()TMOD=0 x01;TH0=0 xD8;TL0=0 xf0;EA=1;ET0=1;i=0;TR0=1;while(1);void time0_int(void) interrupt 1 /中斷服務(wù)程序TH0=0 xD8;TL0=

19、0 xf0;i+;if (i= =50) P1_1=! P1_1;i=0;第6章 MCS-51單片機內(nèi)部資源及編程 (2) 用定時/計數(shù)器T1計數(shù)實現(xiàn),定時/計數(shù)器T1工作于計數(shù)方式時,計數(shù)脈沖通過T1(P3.5)輸入,設(shè)定時/計數(shù)器T0定時時間到對T1(P3.5)取反一次,則T1(P3.5)每20ms產(chǎn)生一個計數(shù)脈沖,那么定時500ms只須計數(shù)25次,設(shè)定時/計數(shù)器T1工作于方式2,初值X=256-25=231= 11100111B=E7H,TH1=TL1=E7H。因為定時/計數(shù)器T0工作于方式1,定時,則這時方式控制字為01100001B(61H)。定時/計數(shù)器T0和T1都采用中斷方式工作

20、。匯編程序如下:ORG 0000HLJMP MAINORG 000BHMOV TH0,#0D8HMOV TL0,#0F0HCPL P3.5RETIORG 001BHCPL P1.1RETI第6章 MCS-51單片機內(nèi)部資源及編程 ORG 0100HMAIN:MOV TMOD,#61HMOV TH0,#0D8HMOV TL0,#0F0HMOV R2,#00HMOV TH1,#0E7HMOV TL1,#0E7HSETB EASETB ET0SETB ET1SETB TR0SETB TR1SJMP $ENDC語言程序如下:#include /包含特殊功能寄存器庫sbit P1_1=P11;sbit

21、P3_5=P35;void main()第6章 MCS-51單片機內(nèi)部資源及編程 TMOD=0 x61;TH0=0 xD8;TL0=0 xf0;TH1=0 xE7; TL1=0 xE7;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;while(1);void time0_int(void) interrupt 1 /T0中斷服務(wù)程序 TH0=0 xD8;TL0=0 xf0;P3_5=!P3_5;void time1_int(void) interrupt 3 /T1中斷服務(wù)程序 P1_1=! P1_1;第6章 MCS-51單片機內(nèi)部資源及編程 6.3 串行接口串行接口6.3.1 通

22、訊的基本概念通訊的基本概念一并行通信和串行通信一并行通信和串行通信計算機01001001計算機01001001(或外設(shè))D0D1D2D3D4D5D6D7控制或選通狀態(tài)計算機計算機(或外設(shè))計算機與外界的通信有兩種基本方式:并行通信和串行通信。第6章 MCS-51單片機內(nèi)部資源及編程 根據(jù)信息傳送的方向,串行通信可以分為單工、半雙工和全雙工3種。 (a) A B (b) (c) A B A B s s二同步通信和異步通信二同步通信和異步通信串行通信按信息的格式又可分為異步通信和同步通信兩種方式。1串行異步通信方式串行異步通信方式 串行異步通信方式的特點是數(shù)據(jù)在線路上傳送時是以一個字符(字節(jié))為單

23、位,未傳送時線路處于空閑狀態(tài),空閑線路約定為高電平“1”。傳送一個字符又稱為一幀信息,傳送時每一個字符前加一個低電平的起始位,然后是數(shù)據(jù)位,數(shù)據(jù)位可以是58位,低位在前,高位在后,數(shù)據(jù)位后可以帶一個奇偶校驗位,最后是停止位,停止位用高電平表示,它可以是1位、1位半或2位。格式如圖 .第6章 MCS-51單片機內(nèi)部資源及編程 第n+1個字符起始位奇偶校驗位停止位下一個起始位D2D1D0D3D4D5D6D7數(shù)據(jù)位D0D10010/10/10/10/10/10/10/10/10/10/10/1D2第n個字符 由于一次只傳送一個字符,因而一次傳送的位數(shù)比較少,對發(fā)送時鐘和接收時鐘的要求相對不高,線路簡

24、單,但傳送速度較慢。 2串行同步通信方式串行同步通信方式串行同步通信方式的特點是數(shù)據(jù)在線路上傳送時以字符塊為單位,一次傳送多個字符,傳送時須在前面加上一個或兩個同步字符,后面加上校驗字符,格式如圖:同步字符1同步字符2數(shù)據(jù)塊校驗字符1校驗字符2同步方式時一次連續(xù)傳送多個字符,傳送的位數(shù)多,對發(fā)送時鐘和接收時鐘要求較高,往往用同一個時鐘源控制,控制線路復(fù)雜,傳送速度快。第6章 MCS-51單片機內(nèi)部資源及編程 三波特率三波特率波特率是指串行通信中,單位時間傳送的二進制位數(shù),單位為bps。 在異步通信中,傳輸速度往往又可用每秒傳送多少個字節(jié)來表示(Bps)。它與波特率的關(guān)系為:波特率(bps)=一

25、個字符的二進制位數(shù)字符/秒(Bps)例如:每秒傳送200個字符,每個字符1位起始位、8個數(shù)據(jù)位、1個校驗位和1個停止位。則波特率為2200bps。 6.3.2 MCS-51單片機串行口功能與結(jié)構(gòu)單片機串行口功能與結(jié)構(gòu)一功能一功能MCS-51單片機具有一個全雙工的串行異步通信接口,可以同時發(fā)送、接收數(shù)據(jù),發(fā)送、接收數(shù)據(jù)可通過查詢或中斷方式處理,使用十分靈活第6章 MCS-51單片機內(nèi)部資源及編程 它有四種工作方式,分別是方式0、方式1、方式2和方式3。其中:方式0,稱為同步移位寄存器方式,一般用于外接移位寄存器芯片擴展I/O接口。方式1,8位的異步通信方式,通常用于雙機通信。方式2和方式3,9位

26、的異步通信方式,通常用于多機通信。二結(jié)構(gòu)二結(jié)構(gòu)發(fā)送SBUF接收SBUF發(fā)送控制器接收控制器輸入移位寄存器串行口控制寄存器波特率發(fā)生器串行口中斷內(nèi)部總線門+RXD(P3.0)TXD(P3.1)RITI第6章 MCS-51單片機內(nèi)部資源及編程 MCS-51單片機串行口主要由發(fā)送數(shù)據(jù)寄存器、發(fā)送控制器、輸出控制門、接收數(shù)據(jù)寄存器、接收控制器、輸入移位寄存器等組成 從用戶使用的角度,它由三個特殊功能寄存器組成:發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器合起用一個特殊功能寄存器SBUF(串行口數(shù)據(jù)寄存器),串行口控制寄存器SCON和電源控制寄存器PCON。 三串行口控制寄存器三串行口控制寄存器SCONSCOND7D

27、6D5D4D3D2D1D098HSM0SM1SM2RENTB8RB8TIRI其中:SM0、SM1:串行口工作方式選擇位。用于選擇四種工作方式 SM0SM1方式功能波特率00方式0移位寄存器方式fosc/1201方式18位異步通信方式可變10方式29位異步通信方式fosc/32或fosc/6411方式39位異步通信方式可變第6章 MCS-51單片機內(nèi)部資源及編程 SM2:多機通信控制位。 REN:允許接收控制位。當REN=1,則允許接收,當REN=0,則禁止接收。TB8:發(fā)送數(shù)據(jù)的第9位。 RB8:接收數(shù)據(jù)的第9位。 TI:發(fā)送中斷標志位。 RI:接收中斷標志位。 四電源控制寄存器四電源控制寄存

28、器PCONPCOND7D6D5D4D3D2D1D087HSMOD當SMOD位為1,則串行口方式1、方式2、方式3的波特率加倍。 第6章 MCS-51單片機內(nèi)部資源及編程 6.3.3 串行口的工作方式一方式一方式0 方式0通常用來外接移位寄存器,用作擴展I/O口。方式0工作時波特率固定為:fosc /12。工作時,串行數(shù)據(jù)通過RXD輸入和輸出,同步時鐘通過TXD輸出。發(fā)送和接收數(shù)據(jù)時低位在前,高位在后,長度為8位。 (1)發(fā)送過程 在TI=0時,當CPU執(zhí)行一條向SBUF寫數(shù)據(jù)的指令時,如MOV SBUF,A,就啟動發(fā)送過程。經(jīng)過一個機器周期,寫入發(fā)送數(shù)據(jù)寄存器中的數(shù)據(jù)按低位在前,高位在后從RX

29、D依次發(fā)送出去,同步時鐘從TXD送出。8位數(shù)據(jù)(一幀)發(fā)送完畢后,由硬件使發(fā)送中斷標志TI置位,向CPU申請中斷。 (2)接收過程第6章 MCS-51單片機內(nèi)部資源及編程 在RI=0的條件下,將REN(SCON.4)置“1”就啟動一次接收過程。串行數(shù)據(jù)通過RXD接收,同步移位脈沖通過TXD輸出。在移位脈沖的控制下,RXD上的串行數(shù)據(jù)依次移入移位寄存器。當8位數(shù)據(jù)(一幀)全部移入移位寄存器后,接收控制器發(fā)出“裝載SBUF”信號,將8位數(shù)據(jù)并行送入接收數(shù)據(jù)緩沖器SBUF中,同時,由硬件使接收中斷標志RI置位,向CPU申請中斷。 二方式二方式1 方式1為8位異步通信方式,在方式1下,一幀信息為10位

30、:1位起始位(0),8位數(shù)據(jù)位(低位在前)和1位停止位(1)。TXD發(fā)送數(shù)據(jù)端,RXD為接收數(shù)據(jù)端。波特率可變,由定時/計數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD位決定。即:波特率=2SMOD(T1的溢出率)/32。(1)發(fā)送過程在TI=0時,當CPU執(zhí)行一條向SBUF寫數(shù)據(jù)的指令時,如MOV SBUF,A,就啟動了發(fā)送過程。數(shù)據(jù)由TXD引腳送出,發(fā)送時鐘由定時/計數(shù)器T1送來的溢出信號經(jīng)過16分頻或32分頻后得到,第6章 MCS-51單片機內(nèi)部資源及編程 在發(fā)送時鐘的作用下,先通過TXD端送出一個低電平的起始位,然后是8位數(shù)據(jù)(低位在前),其后是一個高電平的停止位,當一幀數(shù)據(jù)發(fā)送

31、完畢后,由硬件使發(fā)送中斷標志TI置位,向CPU申請中斷,完成一次發(fā)送過程。(2)接收過程當允許接收控制位REN被置1,接受器就開始工作,由接收器以所選波特率的16倍速率對RXD引腳上的電平進行采樣。當采樣到從“1”到“0”的負跳變時,啟動接收控制器開始接收數(shù)據(jù)。在接收移位脈沖的控制下依次把所接收的數(shù)據(jù)移入移位寄存器,當8位數(shù)據(jù)及停止位全部移入后,根據(jù)以下狀態(tài),進行響應(yīng)操作。 如果RI=0、SM2=0,接收控制器發(fā)出“裝載SBUF”信號,將輸入移位寄存器中的8位數(shù)據(jù)裝入接收數(shù)據(jù)寄存器SBUF,停止位裝入RB8,并置RI=1,向CPU申請中斷。 如果RI=0、SM2=1,那么只有停止位為“1”才發(fā)

32、生上述操作。 RI=0、SM2=1且停止位為“0”,所接收的數(shù)據(jù)不裝入SBUF,數(shù)據(jù)將會丟失。 如果RI=1,則所接收的數(shù)據(jù)在任何情況下都不裝入SBUF,即數(shù)據(jù)丟失。第6章 MCS-51單片機內(nèi)部資源及編程 三方式三方式2和方式和方式3 方式2和方式3時都為9位異步通信接口,接收和發(fā)送一幀信息長度為11位,即1個低電平的起始位,9位數(shù)據(jù)位,1個高電平的停止位。發(fā)送的第9位數(shù)據(jù)放于TB8中,接收的第9位數(shù)據(jù)放于RB8中。TXD為發(fā)送數(shù)據(jù)端,RXD為接收數(shù)據(jù)端。方式2和方式3的區(qū)別在于波特率不一樣,其中方式2的波特率只有兩種:fosc/32或fosc/64,方式3的波特率與方式1的波特率相同,由定

33、時/計數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD位決定,即:波特率波特率=2SMOD(T1的溢出率)的溢出率)/32。在方式1時,也需要對定時/計數(shù)器T1進行初始化。 1發(fā)送過程發(fā)送過程 方式2和方式3發(fā)送的數(shù)據(jù)為9位,其中發(fā)送的第9位在TB8中,在啟動發(fā)送之前,必須把要發(fā)送的第9位數(shù)據(jù)裝入SCON寄存器中的TB8中。準備好TB8后,就可以通過向SBUF中寫入發(fā)送的字符數(shù)據(jù)來啟動發(fā)送過程,發(fā)送時前8位數(shù)據(jù)從發(fā)送數(shù)據(jù)寄存器中取得,發(fā)送的第9位從TB8中取得。一幀信息發(fā)送完畢,置TI為1。 第6章 MCS-51單片機內(nèi)部資源及編程 2接收過程接收過程方式2和方式3的接收過程與方式1類似,

34、當REN位置1時也啟動接收過程,所不同的是接收的第9位數(shù)據(jù)是發(fā)送過來的TB8位,而不是停止位,接收到后存放到SCON中的RB8中,對接收是否有判斷也是用接收的第9位,而不是用停止位。其余情況與方式1相同。6.3.4 串行口的編程及應(yīng)用串行口的編程及應(yīng)用一串行口的初始化編程一串行口的初始化編程1串行口控制寄存器串行口控制寄存器SCON位的確定。位的確定。根據(jù)工作方式確定SM0、SM1位;對于方式2和方式3還要確定SM2位;如果是接收端,則置允許接收位REN為1;如果方式2和方式3發(fā)送數(shù)據(jù),則應(yīng)將發(fā)送數(shù)據(jù)的第9位寫入TB8中。2設(shè)置波特率。設(shè)置波特率。對于方式0,不需要對波特率進行設(shè)置。對于方式2

35、,設(shè)置波特率僅須對PCON中的SMOD位進行設(shè)置。第6章 MCS-51單片機內(nèi)部資源及編程 對于方式1和方式3,設(shè)置波特率不僅須對PCON中的SMOD位進行設(shè)置,還要對定時/計數(shù)器T1進行設(shè)置,這時定時/計數(shù)器T1一般工作于方式28位可重置方式,初值可由下面公式求得:由于: 波特率波特率=2SMOD(T1的溢出率)的溢出率)/32則: T1的溢出率的溢出率=波特率波特率32/2SMOD而T1工作于方式2的溢出率又可由下式表示: T1的溢出率的溢出率=fosc/(12(256-初值)初值)所以: T1的初值的初值=256 - fosc2SMOD /(12波特率波特率32)二串行口的應(yīng)用二串行口的

36、應(yīng)用 通常用于三種情況:利用方式0擴展并行I/O口;利用方式1實現(xiàn)點對點的雙機通信;利用方式2或方式3實現(xiàn)多機通信。 1利用方式利用方式0擴展并行擴展并行I/O口口MCS-51單片機的串行口在方式0時,當外接一個串入并出的移位寄存器,就可以擴展并行輸出口,當外接一個并入串出的移位寄存器時,就可以擴展并行輸入口。第6章 MCS-51單片機內(nèi)部資源及編程 【例【例6-4】用8051單片機的串行口外接串入并出的芯片CD4094擴展并行輸出口控制一組發(fā)光二極管,使發(fā)光二極管從左至右延時輪流顯示。CD4094是一塊8位的串入并出的芯片,帶有一個控制端STB,當STB=0時,打開串行輸入控制門,在時鐘信號

37、CLK的控制下,數(shù)據(jù)從串行輸入端DATA一個時鐘周期一位依次輸入;當STB=1,打開并行輸出控制門,CD4094中的8位數(shù)據(jù)并行輸出。使用時,8051串行口工作于方式0,8051的TXD接CD4094的CLK,RXD接DATA,STB用P1.0控制,8位并行輸出端接8個發(fā)光二極管。如圖所示。 8051 RXD TXD P1.0 DATA CLK STB第6章 MCS-51單片機內(nèi)部資源及編程 設(shè)串行口采用查詢方式,顯示的延時依靠調(diào)用延時子程序來實現(xiàn)。程序如下:匯編程序:ORG 0000HLJMP MAINORG 0100HMAIN:MOV SCON,#00HMOV A,#01HCLR P1.0

38、START:MOV SBUF,ALOOP:JNB TI,LOOPSETB P1.0ACALL DELAYCLR TIRL ACLR P1.0SJMP STARTDELAY:MOV R7,#05HLOOP2:MOV R6,#0FFHLOOP1:DJNZ R6,LOOP1DJNZ R7,LOOP2RETEND第6章 MCS-51單片機內(nèi)部資源及編程 C語言程序:#include /包含特殊功能寄存器庫sbit P1_0=P10;void main()unsigned char i,j;SCON=0 x00;j=0 x01;for (; ;)P1_0=0;SBUF=j;while (!TI) ;P1

39、_0=1;TI=0;for (i=0;i=254;i+) ;j=j*2;if (j= =0 x00) j=0 x01;第6章 MCS-51單片機內(nèi)部資源及編程 【例【例6-5】 用8051單片機的串行口外接并入串出的芯片CD4014擴展并行輸入口,輸入一組開關(guān)的信息。CD4014是一塊8位的并入串出的芯片,帶有一個控制端P/S,當P/S=1時,8位并行數(shù)據(jù)置入到內(nèi)部的寄存器;當P/S=0時,在時鐘信號CLK的控制下,內(nèi)部寄存器的內(nèi)容按低位在前從QB串行輸出端依次輸出;使用時,8051串行口工作于方式0,8051的TXD接CD4094的CLK,RXD接QB,P/S用P1.0控制,另外,用P1.1

40、控制8并行數(shù)據(jù)的置入。如圖所示。 8051 RXD TXD P1.0QB CLK P/S P1.1K0K7 K第6章 MCS-51單片機內(nèi)部資源及編程 串行口方式0數(shù)據(jù)的接收,用SCON寄存器中的REN位來控制,采用查詢RI的方式來判斷數(shù)據(jù)是否輸入。程序如下:匯編程序:ORG 0000HLJMP MAINORG 0100HMAIN:SETB P1.1START:JB P1.1,STARTSETB P1.0CLR P1.0MOV SCON,#10HLOOP:JNB RI,LOOPCLR RIMOV A,SBUF第6章 MCS-51單片機內(nèi)部資源及編程 C語言程序:#include /包含特殊功能

41、寄存器庫sbit P1_0=P10;sbit P1_1=P11;void main()unsigned char i;P1_1=1;while (P1_1= =1) ;P1_0=1;P1_0=0;SCON=0 x10;while (!RI) ;RI=0;i=SBUF;第6章 MCS-51單片機內(nèi)部資源及編程 2利用方式利用方式1實現(xiàn)點對點的雙機通信實現(xiàn)點對點的雙機通信 要實現(xiàn)甲與乙兩臺單片機點對點的雙機通信,線路只須將甲機的TXD與乙機的RXD相連,將甲機的RXD與乙機的TXD相連,地線與地線相連。 【例【例6-6】 用匯編語言編程通過串行實現(xiàn)將甲機的片內(nèi)RAM中30H3FH單元的內(nèi)容傳送到乙

42、機的片內(nèi)RAM的40H4FH單元中。80518051甲機 RXD TXD GNDTXDRXDGND 乙機線路連接如圖 甲、乙兩機都選擇方式1:8位異步通信方式,最高位用作奇偶校驗,波特率為1200bps,甲機發(fā)送,乙機接收,因此甲機的串口控制字為40H,乙機的串口控制字為50H。第6章 MCS-51單片機內(nèi)部資源及編程 由于選擇的是方式1,波特率由定時/計數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD位決定。則須對定時/計數(shù)器T1初始化。設(shè)SMOD=0,甲、乙兩機的振蕩頻率為12MHZ,由于波特率為1200。定時/計數(shù)器T1選擇為方式2,則初值為:初值=256 - fosc2SMOD /

43、(12波特率32)=256-12000000/(12120032)230=E6H根據(jù)要求定時/計數(shù)器T1的方式控制字為20H。甲機的發(fā)送程序:TSTART:MOV TMOD,#20H MOV TL1,#0E6HMOV TH1,#0E6HMOV PCON,#00HMOV SCON,#40HMOV R0,#30HMOV R7,#10HSETB TR1LOOP:MOV A,R0MOV C,PMOV A.7,C MOV SBUF,AWAIT:JNB TI,WAIT CLR TI INC R0 DJINZ R7,LOOP RET第6章 MCS-51單片機內(nèi)部資源及編程 乙機接收程序:RSTART:MOV

44、 TMOD,#20H MOV TL1,#0E6H MOV TH1,#0E6HMOV PCON,#00HMOV R0,#40H MOV R7,#10HSETB TR11LOOP:MOV SCON,#50H WAIT:JNB RI,WAITMOV A,SBUFMOV C,PJC ERROR ANL A,#7FH MOV R0,AINC R0DJINZ R7,LOOPRET第6章 MCS-51單片機內(nèi)部資源及編程 3多機通信多機通信通過MCS-51單片機串行口能夠?qū)崿F(xiàn)一臺主機與多臺從機進行通信,主機和從機之間能夠相互發(fā)送和接收信息。但從機與從機之間不能相互通信。 MCS-51單片機串行口的方式2和方

45、式3是9位異步通信,發(fā)送信息時,發(fā)送數(shù)據(jù)的第9位由TB8取得,接收信息的第9位放于RB8中,而接收是否有效要受SM2位影響,當SM2=0時,無論接收的RB8位是0還是1,接收都有效,RI都置1;當SM2=1時,只有接收的RB8位等于1時,接收才有效,RI才置1。利用這個特性便可以實現(xiàn)多機通信。多機通信時,主機每一次都向從機傳送兩個字節(jié)信息,先傳送從機的地址信息,再傳送數(shù)據(jù)信息,處理時,地址信息的TB8位設(shè)為1,數(shù)據(jù)信息的TB8位設(shè)為0。多機通信過程如下:(1)所有從機的SM2位開始都置為1,都能夠接收主機送來的地址。(2)主機發(fā)送一幀地址信息,包含8位的從機地址,TB8置1,表示發(fā)送的為地址幀

46、。第6章 MCS-51單片機內(nèi)部資源及編程 (3)由于所有從機的SM2位都為1,從機都能接收主機發(fā)送來的地址,從機接收到主機送來的地址后與本機的地址相比較,如接收的地址與本機的地址相同,則使SM0位為0,準備接收主機送來的數(shù)據(jù),如果不同,則不作處理。(4)主機發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù)時TB8置為0,表示為數(shù)據(jù)幀。(5)對于從機,由于主機發(fā)送的第9位TB8為0,那么只有SM2位為0的從機可以接收主機送來的數(shù)據(jù)。這樣就實現(xiàn)主機從多臺從機選擇一臺從機進行通信了?!纠纠?-8】要求設(shè)計一個一臺主機,255臺從機的多機通信的系統(tǒng)。1)硬件線路圖如下圖 RXDTXD8051 GND主機.RXD TXDGND從

47、#FERXD TXDGND從#01RXD TXDGND從#00第6章 MCS-51單片機內(nèi)部資源及編程 2)軟件設(shè)計 通信協(xié)議通信時,為了處理方便,通信雙方應(yīng)制定相應(yīng)的協(xié)議,在本例中主、從機串行口都設(shè)為方式3,波特率為1200bps,PCON中的SMOD位都取0,設(shè)fosc為12MHZ,根據(jù)例6.7定時/計數(shù)器T1的方式控制字為20H,初值為E6H,主機的SM2位設(shè)為0,從機的SM2開始設(shè)為1,從機地址從00HFEH。另外還制定如下幾條簡單的協(xié)議:主機發(fā)送的控制命令:00H:要求從機接收數(shù)據(jù)。(TB8=0)01H:要求從機發(fā)送數(shù)據(jù)。(TB8=0)FFH:命令所有從機的SM2位置1,準備接收主機

48、送來的地址。(TB8=1)從機發(fā)給主機狀態(tài)字格式如圖 D7D6D5D4D3D2D1D0ERRTRDYRRDY其中:ERR=1,表示從機接收到非法命令。TRDY=1,表示從機發(fā)送準備就緒。RRDY=1,表示從機接收準備就緒。第6章 MCS-51單片機內(nèi)部資源及編程 開始串口初始化發(fā)送地址幀發(fā)送命令幀命令從機復(fù)位命令分類主機發(fā)送數(shù)據(jù)主機接收數(shù)據(jù)從機應(yīng)答否?從機應(yīng)答地址?從機應(yīng)答否?命令正確否?從機接收就緒?從機發(fā)送就緒?未發(fā)完?未接收完?結(jié)束否否否否否否否否是是是是是是是是0100 主機的通信程序流程第6章 MCS-51單片機內(nèi)部資源及編程 從機采用中斷處理,主程序中對串口初始化,中斷系統(tǒng)初始化。

49、中斷服務(wù)程序中實現(xiàn)信息的接收與發(fā)送,從機中斷服務(wù)程序流程見圖,主程序略。中斷服務(wù)程序CLR RI現(xiàn)場保護地址相符?SM2=0本機地址送主機接收下一幀是命令幀?命令幀分類ERR=1送主機接收就緒?發(fā)送就緒?RRDY=0送主機RRDY=1送主機TRDY=1送主機接收數(shù)據(jù)發(fā)送數(shù)據(jù)接收完?發(fā)送完?TRDY=0送主機SM2=1恢復(fù)現(xiàn)場中斷返回否否否否否否是是是是是是01H00H非法命令第6章 MCS-51單片機內(nèi)部資源及編程 主機的通信程序設(shè)計設(shè)發(fā)送、接收數(shù)據(jù)塊長度為16字節(jié)。這里僅編寫主機發(fā)16個字節(jié)到01號從機的程序和主機從02號從機接收16個字節(jié)的程序。(略) 從機的通信程序設(shè)計從機接收、發(fā)送數(shù)據(jù)

50、塊長度為16字節(jié),所有的從機的程序相同,只是不同的從機的本機號SLAVE不一樣。 (略)第6章 MCS-51單片機內(nèi)部資源及編程 6.4 中斷系統(tǒng)中斷系統(tǒng)6.4.1 中斷的基本概念中斷的基本概念1中斷源及中斷請求中斷源及中斷請求2中斷優(yōu)先權(quán)控制中斷優(yōu)先權(quán)控制3中斷允許與中斷屏蔽中斷允許與中斷屏蔽4中斷響應(yīng)與中斷返回中斷響應(yīng)與中斷返回6.4.2 MCS-51單片機的中斷系統(tǒng)單片機的中斷系統(tǒng)一中斷源一中斷源INT0 INT1 1外部中斷外部中斷和和 外部引腳P3.2和P3.3輸入,有兩種觸發(fā)方式:電平觸發(fā)及跳變(邊沿)觸發(fā)。由特殊功能寄存器TCON來管理. 第6章 MCS-51單片機內(nèi)部資源及編程

51、 TCOND7D6D5D4D3D2D1D0(88H)TF1TR1TF0TR0IE1IT1IE0IT0IT0(IT1):外部中斷0(或1)觸發(fā)方式控制位。IT0(或IT1)被設(shè)置為0,則選擇外部中斷為電平觸發(fā)方式;IT0(或IT1)被設(shè)置為1,則選擇外部中斷為邊沿觸發(fā)方式。IE0(IE1):外部中斷0(或1)的中斷請求標志位。 在電平觸發(fā)方式時,CPU在每個機器周期的S5P2采樣P3.2(或P3.3),若P3.2(或P3.3)引腳為高電平,則IE0(IE1)清0,若P3.2(或P3.3)引腳為低電平,則IE0(IE1)置1,向CPU請求中斷;CPU響應(yīng)后能夠由硬件自動將IE0(或IE1)清零。在

52、邊沿觸發(fā)方式時,若第一個機器周期采樣到P3.2(或P3.3)引腳為高電平,第二個機器周期采樣到P3.2(或P3.3)引腳為低電平時,由IE0(或IE1)置1,向CPU請求中斷。第6章 MCS-51單片機內(nèi)部資源及編程 對于電平觸發(fā)方式,只要P3.2(或P3.3)引腳為低電平,IE0(或IE1)就置1,請求中斷,CPU響應(yīng)后不能夠由硬件自動將IE0(或IE1)清零。如果在中斷服務(wù)程序返回時,P3.2(或P3.3)引腳還為低電平,則又會中斷,這樣就會出一次請求,中斷多次的情況。為避免這種情況,只有在中斷服務(wù)程序返回前撤消P3.2(或P3.3)的中斷請求信號,即使P3.2(或P3.3)為高電平。通常

53、通過下圖所示外電路來實現(xiàn) . INTx8051 P1.0 Q D SCLK外部中斷請求信號第6章 MCS-51單片機內(nèi)部資源及編程 外部中斷請求信號通過D觸發(fā)器加到單片機P3.2(或P3.3)引腳上。當外部中斷請求信號使D觸發(fā)器的CLK端發(fā)生正跳變時,由于D端接地,Q端輸出0,向單片機發(fā)出中斷請求。CPU響應(yīng)中斷后,利用一根口線P1.0作應(yīng)答線。 并在中斷服務(wù)程序中加以下兩條指令來撤除中斷請求。ANL P1,#0FEHORL P1,#01H2定時定時/計數(shù)器計數(shù)器T0和和T1中斷中斷當定時/計數(shù)器T0(或T1)溢出時,由硬件置TF0(或TF1)為“1”,向CPU發(fā)送中斷請求,當CPU響應(yīng)中斷后

54、,將由硬件自動清除TF0(或TF1)。3串行口中斷串行口中斷MCS-51的串行口中斷源對應(yīng)兩個中斷標志位:串行口發(fā)送中斷標志位TI和串行口接收中斷標志位RI。無論哪個標志位置“1”,都請求串行口中斷,到底是發(fā)送中斷TI還是接收中斷RI,只有在中斷服務(wù)程序中通過指令查詢來判斷。串行口中斷響應(yīng)后,不能由硬件自動清“0”,必須由軟件對TI或RI清“0”。第6章 MCS-51單片機內(nèi)部資源及編程 二中斷允許控制二中斷允許控制 MCS-51單片機中沒有專門的開中斷和關(guān)中斷指令,對各個中斷源的允許和屏蔽是由內(nèi)部的中斷允許寄存器IE的各位來控制的。中斷允許寄存器IE的字節(jié)地址為A8H,可以進行位尋址. IE

55、D7D6D5D4D3D2D1D0(A8H)EAET2ESET1EX1ET0EX0EA:中斷允許總控位。EA=0,屏蔽所有的中斷請求;EA=1,開放中斷。 ET2:定時器/計數(shù)器T2的溢出中斷允許位 ES:串行口中斷允許位。 ET1:定時器/計數(shù)器T1的溢出中斷允許位。 EX1:外部中斷 INT1的中斷允許位。 ET0:定時器/計數(shù)器T0的溢出中斷允許位。 EX0:外部中斷 INT0的中斷允許位。 第6章 MCS-51單片機內(nèi)部資源及編程 三優(yōu)先權(quán)控制三優(yōu)先權(quán)控制 每個中斷源有兩級控制:高優(yōu)先級和低優(yōu)先級。通過由內(nèi)部的中斷優(yōu)先級寄存器IP來設(shè)置.中斷優(yōu)先級寄存器IP的字節(jié)地址為B8H,可以進行位

56、尋址. IPD7D6D5D4D3D2D1D0(B8H)PT2PSPT1PX1PT0PX0PT2:定時器/計數(shù)器T2的中斷優(yōu)先級控制位,只用于52子系列。PS:串行口的中斷優(yōu)先級控制位。PT1:定時器/計數(shù)器T1的中斷優(yōu)先級控制位。 PX1:外部中斷INT1的中斷優(yōu)先級控制位。 PT0:定時器/計數(shù)器T0的中斷優(yōu)先級控制位。PX0:外部中斷INT0的中斷優(yōu)先級控制位。 如果某位被置“1”,則對應(yīng)的中斷源被設(shè)為高優(yōu)先級;如果某位被清“0”,則對應(yīng)的中斷源被設(shè)為低優(yōu)先級。對于同級中斷源,系統(tǒng)有默認的優(yōu)先權(quán)順序, 第6章 MCS-51單片機內(nèi)部資源及編程 中斷源優(yōu)先級順序最高最低外部中斷0定時/計數(shù)器

57、T0中斷外部中斷1定時/計數(shù)器T1中斷串行口中斷定時/計數(shù)器T2中斷通過中斷優(yōu)先級寄存器IP改變中斷源的優(yōu)先級順序可以實現(xiàn)兩個方面的功能:改變系統(tǒng)中斷源的優(yōu)先權(quán)順序和實現(xiàn)二級中斷嵌套。對于中斷優(yōu)先權(quán)和中斷嵌套,MCS-51單片機有以下三條規(guī)定。(1)正在進行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷,一直到該中斷服務(wù)程序結(jié)束,返回了主程序且執(zhí)行了主程序中的一條指令后,CPU才響應(yīng)新的中斷請求。(2)正在進行的低優(yōu)先級中斷服務(wù)程序能被高優(yōu)先級中斷請求所中斷,實現(xiàn)兩級中斷嵌套。第6章 MCS-51單片機內(nèi)部資源及編程 (3)CPU同時接收到幾個中斷請求時,首先響應(yīng)優(yōu)先級最高的中斷請求。四、

58、MCS-51中斷系統(tǒng)的邏輯結(jié)構(gòu) IE0INT0IT0=0IT0=1或IEEX0EAIE1INT1IT1=0IT1=1或EX1ET1ET0或ES或ET2TF0TF1TIRITF2EXF2查詢順序(識別)查詢順序(識別)查詢硬件高優(yōu)先級中斷中斷入口地址低優(yōu)先級中斷中斷入口地址PT2PSPT1PX1PT0PX0IP第6章 MCS-51單片機內(nèi)部資源及編程 五中斷響應(yīng)五中斷響應(yīng)1中斷響應(yīng)的條件中斷響應(yīng)的條件(1) 無同級或高級中斷正在處理。(2) 現(xiàn)行指令執(zhí)行到最后一個機器周期且已結(jié)束。(3) 若現(xiàn)行指令為RETI或訪問IE、IP的指令時,執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完畢。2中斷響應(yīng)過程中斷響應(yīng)過程(1) 根據(jù)中斷請求源的優(yōu)先級高低,對相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器置“1”。(2) 保護斷點,即把程序計數(shù)器PC的內(nèi)容壓入堆棧保存。(3) 清內(nèi)部硬件可清除的中斷請求標志位(IE0、IE1、TF0、TF1)。(4) 把被響應(yīng)的中斷服務(wù)程序入口地址送入PC,從而轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序執(zhí)行。 第6章 MCS-51單片機內(nèi)部資源及編程 各中斷服務(wù)程序的入口地址見表中斷源入口地址外部中斷00003H定時/計數(shù)器0000BH外部中斷10013H定時/計數(shù)器1001BH串行口0023H定時/計數(shù)器2(僅52子系列有)002BH3中斷響應(yīng)時間中斷響應(yīng)

溫馨提示

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

評論

0/150

提交評論