




已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章 MCS-51單片機(jī)內(nèi)部資源及編程,MCS-51單片機(jī)的內(nèi)部資源主要有并行I/O口、定時(shí)器/計(jì)數(shù)器、串行接口以及中斷系統(tǒng),MCS-51單片機(jī)的大部分功能就是通過(guò)對(duì)這些資源的利用來(lái)實(shí)現(xiàn)的。下面分別對(duì)其介紹,并用匯編語(yǔ)言和C語(yǔ)言分別給出相應(yīng)例子。,6.1 并行輸入/輸出接口,6.1.1 并行口應(yīng)用與編程,【例6-1】 利用單片機(jī)的P1口接8個(gè)發(fā)光二極管,P0口接8個(gè)開關(guān),編程實(shí)現(xiàn),當(dāng)開關(guān)動(dòng)作時(shí),對(duì)應(yīng)的發(fā)光二極管亮或滅。 只須把P0口的內(nèi)容讀出后,通過(guò)P1口輸出即可。 匯編程序: ORG 0100H MOV P0,#0FFH LOOP: MOV A,P0 MOV P1,A SJMP LOOP,C51語(yǔ)言程序: #include void main(void) unsigned char i; P0=0xff; for(;) i=P0;P1=i; ,6.2 定時(shí)/計(jì)數(shù)器接口,6.2.1 定時(shí)/計(jì)數(shù)器的主要特性,1MCS-51系列中51子系列有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器:定時(shí)/計(jì)數(shù)器T0和定時(shí)/計(jì)數(shù)器T1,52子系列有三個(gè),還有一個(gè)定時(shí)/計(jì)數(shù)器T2。 2每個(gè)定時(shí)/計(jì)數(shù)器既可以對(duì)系統(tǒng)時(shí)鐘計(jì)數(shù)實(shí)現(xiàn)定時(shí),也可以對(duì)外部信號(hào)計(jì)數(shù)實(shí)現(xiàn)計(jì)數(shù)功能,通過(guò)編程設(shè)定來(lái)實(shí)現(xiàn)。 3每個(gè)定時(shí)/計(jì)數(shù)器都有多種工作方式,其中T0有四種工作方式;T1有三種工作方式,T2有三種工作方式。通過(guò)編程可設(shè)定工作于某種方式。 4每一個(gè)定時(shí)/計(jì)數(shù)器定時(shí)計(jì)數(shù)時(shí)間到時(shí)產(chǎn)生溢出,使相應(yīng)的溢出位置位,溢出可通過(guò)查詢或中斷方式處理。,6.2.1 定時(shí)/計(jì)數(shù)器T0、T1的結(jié)構(gòu)及工作原理,加法計(jì)數(shù)器在使用時(shí)注意兩個(gè)方面。 第一,由于它是加法計(jì)數(shù)器,每來(lái)一個(gè)計(jì)數(shù)脈沖,加法器中的內(nèi)容加1個(gè)單位,當(dāng)由全1加到全0時(shí)計(jì)滿溢出,因而,如果要計(jì)N個(gè)單位,則首先應(yīng)向計(jì)數(shù)器置初值為X,且有: 初值X=最大計(jì)數(shù)值(滿值)M計(jì)數(shù)值N 在不同的計(jì)數(shù)方式下,最大計(jì)數(shù)值(滿值)不一樣,一般來(lái)說(shuō),當(dāng)定時(shí)器/計(jì)數(shù)器工作于R位計(jì)數(shù)方式時(shí),它的最大計(jì)數(shù)值(滿值)為2的R次冪。 第二,當(dāng)定時(shí)/計(jì)數(shù)器工作于計(jì)數(shù)方式時(shí),對(duì)芯片引腳T0(P3.4)或T1(P3.5)上的輸入脈沖計(jì)數(shù),計(jì)數(shù)過(guò)程如下:在每一個(gè)機(jī)器周期的S5P2時(shí)刻對(duì)T0(P3.4)或T1(P3.5)上信號(hào)采樣一次,如果上一個(gè)機(jī)器周期采樣到高電平,下一個(gè)機(jī)器周期采樣到低電平,則計(jì)數(shù)器在下一個(gè)機(jī)器周期的S3P2時(shí)刻加1計(jì)數(shù)一次。因而需要兩個(gè)機(jī)器周期才能識(shí)別一個(gè)計(jì)數(shù)脈沖,所以外部計(jì)數(shù)脈沖的頻率應(yīng)小于振蕩頻率的1/24。,6.2.2 定時(shí)/計(jì)數(shù)器的方式和控制寄存器,一定時(shí)/計(jì)數(shù)器的方式寄存器TMOD,其中: M1、M0為工作方式選擇位 ,用于對(duì)T0的四種工作方式,T1的三種工作方式進(jìn)行選擇,選擇情況如下,C/T:定時(shí)或計(jì)數(shù)方式選擇位,當(dāng)C/T=1時(shí)工作于計(jì)數(shù)方式;當(dāng)C/T=0時(shí)工作于定時(shí)方式。,GATE:門控位,用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)是否受外部中斷請(qǐng)求信號(hào)的影響。,二定時(shí)/計(jì)數(shù)器的控制寄存器TCON,其中: TF1:定時(shí)/計(jì)數(shù)器T1的溢出標(biāo)志位,當(dāng)定時(shí)/計(jì)數(shù)器T1計(jì)滿時(shí),由硬件使它置位,如中斷允許則觸發(fā)T1中斷。進(jìn)入中斷處理后由內(nèi)部硬件電路自動(dòng)清除。 TR1:定時(shí)/計(jì)數(shù)器T1的啟動(dòng)位,可由軟件置位或清零,當(dāng)TR1=1時(shí)啟動(dòng);TR1=0時(shí)停止。,TF0:定時(shí)/計(jì)數(shù)器T0的溢出標(biāo)志位,當(dāng)定時(shí)/計(jì)數(shù)器T0計(jì)滿時(shí),由硬件使它置位,如中斷允許則觸發(fā)T0中斷。進(jìn)入中斷處理后由內(nèi)部硬件電路自動(dòng)清除。 TR0:定時(shí)/計(jì)數(shù)器T0的啟動(dòng)位,可由軟件置位或清零,當(dāng)TR0=1時(shí)啟動(dòng);TR0=0時(shí)停止。,6.2.3 定時(shí)/計(jì)數(shù)器的工作方式,一方式0,方式1是13位的定時(shí)/計(jì)數(shù)方式,因而最大計(jì)數(shù)值(滿值)為2的13次冪,等于8192。如計(jì)數(shù)值為N,則置入的初值X為: X=8192-N 如定時(shí)/計(jì)數(shù)器T0的計(jì)數(shù)值為1000,則初值為7192,轉(zhuǎn)換成二進(jìn)制數(shù)為1110000011000B,則TH0=11100000B,TL0=00011000B。,二方式1,方式1的結(jié)構(gòu)與方式0結(jié)構(gòu)相同,只是把13位變成16位, 16位的加法計(jì)數(shù)器被全部用上。,由于是16位的定時(shí)/計(jì)數(shù)方式,因而最大計(jì)數(shù)值(滿值)為2的16次冪,等于65536。如計(jì)數(shù)值為N,則置入的初值X為: X=65536-N 如定時(shí)/計(jì)數(shù)器T0的計(jì)數(shù)值為1000,則初值為65536-1000=64536,轉(zhuǎn)換成二進(jìn)制數(shù)為1111110000011000B,則TH0=11111100B,TL0=00011000B。,三方式2,方式2下,16位的計(jì)數(shù)器只用了8位來(lái)計(jì)數(shù),用的是TL0(或TL1)的8位來(lái)進(jìn)行計(jì)數(shù),而TH0(或TH1)用于保存初值。當(dāng)TL0(或TL1)計(jì)滿時(shí)則溢出,一方面使TF0(或TF1)置位,另一方面溢出信號(hào)又會(huì)觸發(fā)圖6.5上的三態(tài)門,使三態(tài)門導(dǎo)通,TH0(或TH1)的值就自動(dòng)裝入TL0(或TL1)。,由于是8位的定時(shí)/計(jì)數(shù)方式,因而最大計(jì)數(shù)值(滿值)為2的8次冪,等于256。如計(jì)數(shù)值為N,則置入的初值X為: X=256-N 如定時(shí)/計(jì)數(shù)器T0的計(jì)數(shù)值為100,則初值為256-100=156,轉(zhuǎn)換成二進(jìn)制數(shù)為10011100B,則TH0= TL0=10011100B。 注意: 由于方式2計(jì)滿后,溢出信號(hào)會(huì)觸發(fā)三態(tài)門自動(dòng)地把TH0(或TH1)的值裝入TL0(或TL1)中,因而如果要重新實(shí)現(xiàn)N個(gè)單位的計(jì)數(shù),不用重新置入初值。,四方式3,方式3只有定時(shí)/計(jì)數(shù)器T0才有,當(dāng)M1M0兩位為11時(shí),定時(shí)/計(jì)數(shù)器T0工作于方式3,方式3的結(jié)構(gòu)如下圖. 方式3下,定時(shí)/計(jì)數(shù)器T0被分為兩個(gè)部分TL0和TH0,其中,TL0可作為定時(shí)/計(jì)數(shù)器使用,占用T0的全部控制位:GATE、C/T、TR0和TF0;而TH0固定只能作定時(shí)器使用,對(duì)機(jī)器周期進(jìn)行計(jì)數(shù),這時(shí)它占用定時(shí)/計(jì)數(shù)器T1的TR1位、TF1位和T1的中斷資源。,6.2.4 定時(shí)/計(jì)數(shù)器的初始化編程及應(yīng)用,一定時(shí)/計(jì)數(shù)器的編程,MCS-51單片機(jī)定時(shí)/計(jì)數(shù)器初始化過(guò)程如下: 1根據(jù)要求選擇方式,確定方式控制字,寫入方式控制寄存器TMOD。 2根據(jù)要求計(jì)算定時(shí)/計(jì)數(shù)器的計(jì)數(shù)值,再由計(jì)數(shù)值求得初值,寫入初值寄存器。 3根據(jù)需要開放定時(shí)/計(jì)數(shù)器中斷(后面須編寫中斷服務(wù)程序)。 4設(shè)置定時(shí)/計(jì)數(shù)器控制寄存器TCON的值,啟動(dòng)定時(shí)/計(jì)數(shù)器開始工作。 5.等待定時(shí)/計(jì)數(shù)時(shí)間到,到則執(zhí)行中斷服務(wù)程序;如用查詢處理則編寫查詢程序判斷溢出標(biāo)志,溢出標(biāo)志等于1,則進(jìn)行相應(yīng)處理。,二定時(shí)/計(jì)數(shù)器的應(yīng)用,通常利用定時(shí)/計(jì)數(shù)器來(lái)產(chǎn)生周期性的波形。利用定時(shí)/計(jì)數(shù)器產(chǎn)生周期性波形的基本思想是:利用定時(shí)/計(jì)數(shù)器產(chǎn)生周期性的定時(shí),定時(shí)時(shí)間到則對(duì)輸出端進(jìn)行相應(yīng)的處理。如產(chǎn)生周期性的方波只須定時(shí)時(shí)間到對(duì)輸出端取反一次即可。,【例6-2】 設(shè)系統(tǒng)時(shí)鐘頻率為12MHZ,用定時(shí)/計(jì)數(shù)器T0編程實(shí)現(xiàn)從P1.0輸出周期為500s的方波。 分析:從P1.0輸出周期為500s的方波,只須P1.0每250s取反一次則可。當(dāng)系統(tǒng)時(shí)鐘為12MHZ,定時(shí)/計(jì)數(shù)器T0工作于方式2時(shí),最大的定時(shí)時(shí)間為256s,滿足250s的定時(shí)要求,方式控制字應(yīng)設(shè)定為00000010B(02H)。系統(tǒng)時(shí)鐘為12MHZ,定時(shí)250s,計(jì)數(shù)值N為250,初值X=256-250=6,則TH0=TL0=06H。,匯編程序: ORG 0000H LJMP MAIN ORG 000BH ;中斷處理程序 CPL P1.0 RETI ORG 0100H ;主程序 MAIN:MOV TMOD,#02H MOV TH0,#06H MOV TL0,#06H SETB EA SETB ET0 SETB TR0 SJMP $ END,C語(yǔ)言程序: #include /包含特殊功能寄存器庫(kù) sbit P1_0=P10; void main() TMOD=0x02; TH0=0x06;TL0=0x06; EA=1;ET0=1; TR0=1; while(1); void time0_int(void) interrupt 1 /中斷服務(wù)程序 P1_0=!P1_0; ,(1)采用中斷處理方式的程序:,(2)采用查詢方式處理的程序,匯編程序: ORG 0000H LJMP MAIN ORG 0100H ;主程序 MAIN:MOV TMOD,#02H MOV TH0,#06H MOV TL0,#06H SETB TR0 LOOP:JBC TF0,NEXT ;查詢計(jì)數(shù)溢出 SJMP LOOP NEXT:CPL P1.0 SJMP LOOP SJMP $ END,C語(yǔ)言程序: #include /包含特殊功能寄存器庫(kù) sbit P1_0=P10; void main() char i; TMOD=0x02; TH0=0x06;TL0=0x06; TR0=1; for(;) if (TF0) TF0=0;P1_0=! P1_0; /查詢計(jì)數(shù)溢出 ,如果定時(shí)時(shí)間大于65536s,這時(shí)用一個(gè)定時(shí)/計(jì)數(shù)器直接處理不能實(shí)現(xiàn),這時(shí)可用兩個(gè)定時(shí)/計(jì)數(shù)器共同處理或一個(gè)定時(shí)/計(jì)數(shù)器配合軟件計(jì)數(shù)方式處理。,【例6-3】設(shè)系統(tǒng)時(shí)鐘頻率為12MHZ,編程實(shí)現(xiàn)從P1.1輸出周期為1s的方波。 根據(jù)例6-2的處理過(guò)程,這時(shí)應(yīng)產(chǎn)生500ms的周期性的定時(shí),定時(shí)到則對(duì)P1.1取反就可實(shí)現(xiàn)。由于定時(shí)時(shí)間較長(zhǎng),一個(gè)定時(shí)/計(jì)數(shù)器不能直接實(shí)現(xiàn),可用定時(shí)/計(jì)數(shù)器T0產(chǎn)生周期性為10ms的定時(shí),然后用一個(gè)寄存器R2對(duì)10ms計(jì)數(shù)50次或用定時(shí)/計(jì)數(shù)器T1對(duì)10ms計(jì)數(shù)50次實(shí)現(xiàn)。系統(tǒng)時(shí)鐘為12MHZ,定時(shí)/計(jì)數(shù)器T0定時(shí)10ms,計(jì)數(shù)值N為10000,只能選方式1,方式控制字為00000001B(01H),初值X: X=65536-10000=55536=1101100011110000B 則TH0=11011000B=D8H,TL0=11110000B=F0H。,(1)用寄存器R2作計(jì)數(shù)器軟件計(jì)數(shù),中斷處理方式。 匯編程序: ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 ORG 0100H MAIN:MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H MOV R2,#00H SETB EA SETB ET0 SETB TR0 SJMP $ INTT0:MOV TH0,#0D8H,MOV TL0,#0F0H INC R2 CJNE R2,#32H,NEXT CPL P1.1 MOV R2,#00H NEXT:RETI END,C語(yǔ)言程序: #include /包含特殊功能寄存器庫(kù) sbit P1_1=P11; char i; void main() TMOD=0x01; TH0=0xD8;TL0=0xf0; EA=1;ET0=1; i=0; TR0=1; while(1); void time0_int(void) interrupt 1 /中斷服務(wù)程序 TH0=0xD8;TL0=0xf0; i+; if (i= =50) P1_1=! P1_1;i=0; ,(2) 用定時(shí)/計(jì)數(shù)器T1計(jì)數(shù)實(shí)現(xiàn),定時(shí)/計(jì)數(shù)器T1工作于計(jì)數(shù)方式時(shí),計(jì)數(shù)脈沖通過(guò)T1(P3.5)輸入,設(shè)定時(shí)/計(jì)數(shù)器T0定時(shí)時(shí)間到對(duì)T1(P3.5)取反一次,則T1(P3.5)每20ms產(chǎn)生一個(gè)計(jì)數(shù)脈沖,那么定時(shí)500ms只須計(jì)數(shù)25次,設(shè)定時(shí)/計(jì)數(shù)器T1工作于方式2,初值X=256-25=231= 11100111B=E7H,TH1=TL1=E7H。因?yàn)槎〞r(shí)/計(jì)數(shù)器T0工作于方式1,定時(shí),則這時(shí)方式控制字為01100001B(61H)。定時(shí)/計(jì)數(shù)器T0和T1都采用中斷方式工作。,匯編程序如下: ORG 0000H LJMP MAIN ORG 000BH MOV TH0,#0D8H MOV TL0,#0F0H CPL P3.5 RETI,ORG 001BH CPL P1.1 RETI,ORG 0100H MAIN:MOV TMOD,#61H MOV TH0,#0D8H MOV TL0,#0F0H MOV R2,#00H MOV TH1,#0E7H MOV TL1,#0E7H SETB EA SETB ET0 SETB ET1 SETB TR0 SETB TR1 SJMP $ END,C語(yǔ)言程序如下: #include /包含特殊功能寄存器庫(kù) sbit P1_1=P11; sbit P3_5=P35; void main(), TMOD=0x61; TH0=0xD8;TL0=0xf0; TH1=0xE7; TL1=0xE7; EA=1; ET0=1;ET1=1; TR0=1;TR1=1; while(1); void time0_int(void) interrupt 1 /T0中斷服務(wù)程序 TH0=0xD8;TL0=0xf0; P3_5=!P3_5; void time1_int(void) interrupt 3 /T1中斷服務(wù)程序 P1_1=! P1_1; ,6.3 串行接口,6.3.1 通訊的基本概念,一并行通信和串行通信,計(jì)算機(jī)與外界的通信有兩種基本方式:并行通信和串行通信。,根據(jù)信息傳送的方向,串行通信可以分為單工、半雙工和全雙工3種。,二同步通信和異步通信,串行通信按信息的格式又可分為異步通信和同步通信兩種方式。,1串行異步通信方式,串行異步通信方式的特點(diǎn)是數(shù)據(jù)在線路上傳送時(shí)是以一個(gè)字符(字節(jié))為單位,未傳送時(shí)線路處于空閑狀態(tài),空閑線路約定為高電平“1”。傳送一個(gè)字符又稱為一幀信息,傳送時(shí)每一個(gè)字符前加一個(gè)低電平的起始位,然后是數(shù)據(jù)位,數(shù)據(jù)位可以是58位,低位在前,高位在后,數(shù)據(jù)位后可以帶一個(gè)奇偶校驗(yàn)位,最后是停止位,停止位用高電平表示,它可以是1位、1位半或2位。格式如圖 .,由于一次只傳送一個(gè)字符,因而一次傳送的位數(shù)比較少,對(duì)發(fā)送時(shí)鐘和接收時(shí)鐘的要求相對(duì)不高,線路簡(jiǎn)單,但傳送速度較慢。,2串行同步通信方式,串行同步通信方式的特點(diǎn)是數(shù)據(jù)在線路上傳送時(shí)以字符塊為單位,一次傳送多個(gè)字符,傳送時(shí)須在前面加上一個(gè)或兩個(gè)同步字符,后面加上校驗(yàn)字符,格式如圖:,同步方式時(shí)一次連續(xù)傳送多個(gè)字符,傳送的位數(shù)多,對(duì)發(fā)送時(shí)鐘和接收時(shí)鐘要求較高,往往用同一個(gè)時(shí)鐘源控制,控制線路復(fù)雜,傳送速度快。,三波特率,波特率是指串行通信中,單位時(shí)間傳送的二進(jìn)制位數(shù),單位為bps。,在異步通信中,傳輸速度往往又可用每秒傳送多少個(gè)字節(jié)來(lái)表示(Bps)。它與波特率的關(guān)系為: 波特率(bps)=一個(gè)字符的二進(jìn)制位數(shù)字符/秒(Bps),例如:每秒傳送200個(gè)字符,每個(gè)字符1位起始位、8個(gè)數(shù)據(jù)位、1個(gè)校驗(yàn)位和1個(gè)停止位。則波特率為2200bps。,6.3.2 MCS-51單片機(jī)串行口功能與結(jié)構(gòu),一功能,MCS-51單片機(jī)具有一個(gè)全雙工的串行異步通信接口,可以同時(shí)發(fā)送、接收數(shù)據(jù),發(fā)送、接收數(shù)據(jù)可通過(guò)查詢或中斷方式處理,使用十分靈活,它有四種工作方式,分別是方式0、方式1、方式2和方式3。其中: 方式0,稱為同步移位寄存器方式,一般用于外接移位寄存器芯片擴(kuò)展I/O接口。 方式1,8位的異步通信方式,通常用于雙機(jī)通信。 方式2和方式3,9位的異步通信方式,通常用于多機(jī)通信。,二結(jié)構(gòu),MCS-51單片機(jī)串行口主要由發(fā)送數(shù)據(jù)寄存器、發(fā)送控制器、輸出控制門、接收數(shù)據(jù)寄存器、接收控制器、輸入移位寄存器等組成,從用戶使用的角度,它由三個(gè)特殊功能寄存器組成:發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器合起用一個(gè)特殊功能寄存器SBUF(串行口數(shù)據(jù)寄存器),串行口控制寄存器SCON和電源控制寄存器PCON。,三串行口控制寄存器SCON,其中: SM0、SM1:串行口工作方式選擇位。用于選擇四種工作方式,SM2:多機(jī)通信控制位。,REN:允許接收控制位。當(dāng)REN=1,則允許接收,當(dāng)REN=0,則禁止接收。,TB8:發(fā)送數(shù)據(jù)的第9位。,RB8:接收數(shù)據(jù)的第9位。,TI:發(fā)送中斷標(biāo)志位。,RI:接收中斷標(biāo)志位。,四電源控制寄存器PCON,當(dāng)SMOD位為1,則串行口方式1、方式2、方式3的波特率加倍。,6.3.3 串行口的工作方式,一方式0,方式0通常用來(lái)外接移位寄存器,用作擴(kuò)展I/O口。方式0工作時(shí)波特率固定為:fosc /12。工作時(shí),串行數(shù)據(jù)通過(guò)RXD輸入和輸出,同步時(shí)鐘通過(guò)TXD輸出。發(fā)送和接收數(shù)據(jù)時(shí)低位在前,高位在后,長(zhǎng)度為8位。,(1)發(fā)送過(guò)程,在TI=0時(shí),當(dāng)CPU執(zhí)行一條向SBUF寫數(shù)據(jù)的指令時(shí),如MOV SBUF,A,就啟動(dòng)發(fā)送過(guò)程。經(jīng)過(guò)一個(gè)機(jī)器周期,寫入發(fā)送數(shù)據(jù)寄存器中的數(shù)據(jù)按低位在前,高位在后從RXD依次發(fā)送出去,同步時(shí)鐘從TXD送出。8位數(shù)據(jù)(一幀)發(fā)送完畢后,由硬件使發(fā)送中斷標(biāo)志TI置位,向CPU申請(qǐng)中斷。,(2)接收過(guò)程,在RI=0的條件下,將REN(SCON.4)置“1”就啟動(dòng)一次接收過(guò)程。串行數(shù)據(jù)通過(guò)RXD接收,同步移位脈沖通過(guò)TXD輸出。在移位脈沖的控制下,RXD上的串行數(shù)據(jù)依次移入移位寄存器。當(dāng)8位數(shù)據(jù)(一幀)全部移入移位寄存器后,接收控制器發(fā)出“裝載SBUF”信號(hào),將8位數(shù)據(jù)并行送入接收數(shù)據(jù)緩沖器SBUF中,同時(shí),由硬件使接收中斷標(biāo)志RI置位,向CPU申請(qǐng)中斷。,二方式1,方式1為8位異步通信方式,在方式1下,一幀信息為10位:1位起始位(0),8位數(shù)據(jù)位(低位在前)和1位停止位(1)。TXD發(fā)送數(shù)據(jù)端,RXD為接收數(shù)據(jù)端。波特率可變,由定時(shí)/計(jì)數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD位決定。 即:波特率=2SMOD(T1的溢出率)/32。,(1)發(fā)送過(guò)程,在TI=0時(shí),當(dāng)CPU執(zhí)行一條向SBUF寫數(shù)據(jù)的指令時(shí),如MOV SBUF,A,就啟動(dòng)了發(fā)送過(guò)程。數(shù)據(jù)由TXD引腳送出,發(fā)送時(shí)鐘由定時(shí)/計(jì)數(shù)器T1送來(lái)的溢出信號(hào)經(jīng)過(guò)16分頻或32分頻后得到,,在發(fā)送時(shí)鐘的作用下,先通過(guò)TXD端送出一個(gè)低電平的起始位,然后是8位數(shù)據(jù)(低位在前),其后是一個(gè)高電平的停止位,當(dāng)一幀數(shù)據(jù)發(fā)送完畢后,由硬件使發(fā)送中斷標(biāo)志TI置位,向CPU申請(qǐng)中斷,完成一次發(fā)送過(guò)程。,(2)接收過(guò)程,當(dāng)允許接收控制位REN被置1,接受器就開始工作,由接收器以所選波特率的16倍速率對(duì)RXD引腳上的電平進(jìn)行采樣。當(dāng)采樣到從“1”到“0”的負(fù)跳變時(shí),啟動(dòng)接收控制器開始接收數(shù)據(jù)。在接收移位脈沖的控制下依次把所接收的數(shù)據(jù)移入移位寄存器,當(dāng)8位數(shù)據(jù)及停止位全部移入后,根據(jù)以下狀態(tài),進(jìn)行響應(yīng)操作。, 如果RI=0、SM2=0,接收控制器發(fā)出“裝載SBUF”信號(hào),將輸入移位寄存器中的8位數(shù)據(jù)裝入接收數(shù)據(jù)寄存器SBUF,停止位裝入RB8,并置RI=1,向CPU申請(qǐng)中斷。 如果RI=0、SM2=1,那么只有停止位為“1”才發(fā)生上述操作。 RI=0、SM2=1且停止位為“0”,所接收的數(shù)據(jù)不裝入SBUF,數(shù)據(jù)將會(huì)丟失。 如果RI=1,則所接收的數(shù)據(jù)在任何情況下都不裝入SBUF,即數(shù)據(jù)丟失。,三方式2和方式3,方式2和方式3時(shí)都為9位異步通信接口,接收和發(fā)送一幀信息長(zhǎng)度為11位,即1個(gè)低電平的起始位,9位數(shù)據(jù)位,1個(gè)高電平的停止位。發(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的波特率相同,由定時(shí)/計(jì)數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD位決定,即: 波特率=2SMOD(T1的溢出率)/32。 在方式1時(shí),也需要對(duì)定時(shí)/計(jì)數(shù)器T1進(jìn)行初始化。,1發(fā)送過(guò)程,方式2和方式3發(fā)送的數(shù)據(jù)為9位,其中發(fā)送的第9位在TB8中,在啟動(dòng)發(fā)送之前,必須把要發(fā)送的第9位數(shù)據(jù)裝入SCON寄存器中的TB8中。準(zhǔn)備好TB8后,就可以通過(guò)向SBUF中寫入發(fā)送的字符數(shù)據(jù)來(lái)啟動(dòng)發(fā)送過(guò)程,發(fā)送時(shí)前8位數(shù)據(jù)從發(fā)送數(shù)據(jù)寄存器中取得,發(fā)送的第9位從TB8中取得。一幀信息發(fā)送完畢,置TI為1。,2接收過(guò)程,方式2和方式3的接收過(guò)程與方式1類似,當(dāng)REN位置1時(shí)也啟動(dòng)接收過(guò)程,所不同的是接收的第9位數(shù)據(jù)是發(fā)送過(guò)來(lái)的TB8位,而不是停止位,接收到后存放到SCON中的RB8中,對(duì)接收是否有判斷也是用接收的第9位,而不是用停止位。其余情況與方式1相同。,6.3.4 串行口的編程及應(yīng)用,一串行口的初始化編程,1串行口控制寄存器SCON位的確定。,根據(jù)工作方式確定SM0、SM1位;對(duì)于方式2和方式3還要確定SM2位;如果是接收端,則置允許接收位REN為1;如果方式2和方式3發(fā)送數(shù)據(jù),則應(yīng)將發(fā)送數(shù)據(jù)的第9位寫入TB8中。,2設(shè)置波特率。,對(duì)于方式0,不需要對(duì)波特率進(jìn)行設(shè)置。 對(duì)于方式2,設(shè)置波特率僅須對(duì)PCON中的SMOD位進(jìn)行設(shè)置。,對(duì)于方式1和方式3,設(shè)置波特率不僅須對(duì)PCON中的SMOD位進(jìn)行設(shè)置,還要對(duì)定時(shí)/計(jì)數(shù)器T1進(jìn)行設(shè)置,這時(shí)定時(shí)/計(jì)數(shù)器T1一般工作于方式28位可重置方式,初值可由下面公式求得: 由于: 波特率=2SMOD(T1的溢出率)/32 則: T1的溢出率=波特率32/2SMOD 而T1工作于方式2的溢出率又可由下式表示: T1的溢出率=fosc/(12(256-初值) 所以: T1的初值=256 - fosc2SMOD /(12波特率32),二串行口的應(yīng)用,通常用于三種情況:利用方式0擴(kuò)展并行I/O口;利用方式1實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的雙機(jī)通信;利用方式2或方式3實(shí)現(xiàn)多機(jī)通信。,1利用方式0擴(kuò)展并行I/O口,MCS-51單片機(jī)的串行口在方式0時(shí),當(dāng)外接一個(gè)串入并出的移位寄存器,就可以擴(kuò)展并行輸出口,當(dāng)外接一個(gè)并入串出的移位寄存器時(shí),就可以擴(kuò)展并行輸入口。,【例6-4】用8051單片機(jī)的串行口外接串入并出的芯片CD4094擴(kuò)展并行輸出口控制一組發(fā)光二極管,使發(fā)光二極管從左至右延時(shí)輪流顯示。,CD4094是一塊8位的串入并出的芯片,帶有一個(gè)控制端STB,當(dāng)STB=0時(shí),打開串行輸入控制門,在時(shí)鐘信號(hào)CLK的控制下,數(shù)據(jù)從串行輸入端DATA一個(gè)時(shí)鐘周期一位依次輸入;當(dāng)STB=1,打開并行輸出控制門,CD4094中的8位數(shù)據(jù)并行輸出。使用時(shí),8051串行口工作于方式0,8051的TXD接CD4094的CLK,RXD接DATA,STB用P1.0控制,8位并行輸出端接8個(gè)發(fā)光二極管。如圖所示。,設(shè)串行口采用查詢方式,顯示的延時(shí)依靠調(diào)用延時(shí)子程序來(lái)實(shí)現(xiàn)。程序如下: 匯編程序: ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV SCON,#00H MOV A,#01H CLR P1.0 START:MOV SBUF,A LOOP:JNB TI,LOOP SETB P1.0 ACALL DELAY CLR TI,RL A CLR P1.0 SJMP START DELAY:MOV R7,#05H LOOP2:MOV R6,#0FFH LOOP1:DJNZ R6,LOOP1 DJNZ R7,LOOP2 RET END,C語(yǔ)言程序: #include /包含特殊功能寄存器庫(kù) sbit P1_0=P10; void main() unsigned char i,j; SCON=0x00; j=0x01; for (; ;) P1_0=0; SBUF=j; while (!TI) ; P1_0=1;TI=0; for (i=0;i=254;i+) ; j=j*2; if (j= =0x00) j=0x01; ,【例6-5】 用8051單片機(jī)的串行口外接并入串出的芯片CD4014擴(kuò)展并行輸入口,輸入一組開關(guān)的信息。,CD4014是一塊8位的并入串出的芯片,帶有一個(gè)控制端P/S,當(dāng)P/S=1時(shí),8位并行數(shù)據(jù)置入到內(nèi)部的寄存器;當(dāng)P/S=0時(shí),在時(shí)鐘信號(hào)CLK的控制下,內(nèi)部寄存器的內(nèi)容按低位在前從QB串行輸出端依次輸出;使用時(shí),8051串行口工作于方式0,8051的TXD接CD4094的CLK,RXD接QB,P/S用P1.0控制,另外,用P1.1控制8并行數(shù)據(jù)的置入。如圖所示。,串行口方式0數(shù)據(jù)的接收,用SCON寄存器中的REN位來(lái)控制,采用查詢RI的方式來(lái)判斷數(shù)據(jù)是否輸入。程序如下: 匯編程序: ORG 0000H LJMP MAIN ORG 0100H MAIN:SETB P1.1 START:JB P1.1,START SETB P1.0 CLR P1.0 MOV SCON,#10H LOOP:JNB RI,LOOP CLR RI MOV A,SBUF ,C語(yǔ)言程序: #include /包含特殊功能寄存器庫(kù) 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=0x10; while (!RI) ; RI=0; i=SBUF; ,2利用方式1實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的雙機(jī)通信,要實(shí)現(xiàn)甲與乙兩臺(tái)單片機(jī)點(diǎn)對(duì)點(diǎn)的雙機(jī)通信,線路只須將甲機(jī)的TXD與乙機(jī)的RXD相連,將甲機(jī)的RXD與乙機(jī)的TXD相連,地線與地線相連。,【例6-6】 用匯編語(yǔ)言編程通過(guò)串行實(shí)現(xiàn)將甲機(jī)的片內(nèi)RAM中30H3FH單元的內(nèi)容傳送到乙機(jī)的片內(nèi)RAM的40H4FH單元中。,線路連接如圖,甲、乙兩機(jī)都選擇方式1:8位異步通信方式,最高位用作奇偶校驗(yàn),波特率為1200bps,甲機(jī)發(fā)送,乙機(jī)接收,因此甲機(jī)的串口控制字為40H,乙機(jī)的串口控制字為50H。,由于選擇的是方式1,波特率由定時(shí)/計(jì)數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD位決定。則須對(duì)定時(shí)/計(jì)數(shù)器T1初始化。 設(shè)SMOD=0,甲、乙兩機(jī)的振蕩頻率為12MHZ,由于波特率為1200。定時(shí)/計(jì)數(shù)器T1選擇為方式2,則初值為: 初值=256 - fosc2SMOD /(12波特率32) =256-12000000/(12120032)230=E6H 根據(jù)要求定時(shí)/計(jì)數(shù)器T1的方式控制字為20H。 甲機(jī)的發(fā)送程序: TSTART:MOV TMOD,#20H MOV TL1,#0E6H MOV TH1,#0E6H MOV PCON,#00H MOV SCON,#40H MOV R0,#30H MOV R7,#10H SETB TR1 LOOP:MOV A,R0,MOV C,P MOV A.7,C MOV SBUF,A WAIT:JNB TI,WAIT CLR TI INC R0 DJINZ R7,LOOP RET,乙機(jī)接收程序: RSTART:MOV TMOD,#20H MOV TL1,#0E6H MOV TH1,#0E6H MOV PCON,#00H MOV R0,#40H MOV R7,#10H SETB TR11 LOOP:MOV SCON,#50H WAIT: JNB RI,WAIT MOV A,SBUF MOV C,P JC ERROR ANL A,#7FH MOV R0,A INC R0 DJINZ R7,LOOP RET,3多機(jī)通信,通過(guò)MCS-51單片機(jī)串行口能夠?qū)崿F(xiàn)一臺(tái)主機(jī)與多臺(tái)從機(jī)進(jìn)行通信,主機(jī)和從機(jī)之間能夠相互發(fā)送和接收信息。但從機(jī)與從機(jī)之間不能相互通信。,MCS-51單片機(jī)串行口的方式2和方式3是9位異步通信,發(fā)送信息時(shí),發(fā)送數(shù)據(jù)的第9位由TB8取得,接收信息的第9位放于RB8中,而接收是否有效要受SM2位影響,當(dāng)SM2=0時(shí),無(wú)論接收的RB8位是0還是1,接收都有效,RI都置1;當(dāng)SM2=1時(shí),只有接收的RB8位等于1時(shí),接收才有效,RI才置1。利用這個(gè)特性便可以實(shí)現(xiàn)多機(jī)通信。 多機(jī)通信時(shí),主機(jī)每一次都向從機(jī)傳送兩個(gè)字節(jié)信息,先傳送從機(jī)的地址信息,再傳送數(shù)據(jù)信息,處理時(shí),地址信息的TB8位設(shè)為1,數(shù)據(jù)信息的TB8位設(shè)為0。,多機(jī)通信過(guò)程如下: (1)所有從機(jī)的SM2位開始都置為1,都能夠接收主機(jī)送來(lái)的地址。 (2)主機(jī)發(fā)送一幀地址信息,包含8位的從機(jī)地址,TB8置1,表示發(fā)送的為地址幀。,(3)由于所有從機(jī)的SM2位都為1,從機(jī)都能接收主機(jī)發(fā)送來(lái)的地址,從機(jī)接收到主機(jī)送來(lái)的地址后與本機(jī)的地址相比較,如接收的地址與本機(jī)的地址相同,則使SM0位為0,準(zhǔn)備接收主機(jī)送來(lái)的數(shù)據(jù),如果不同,則不作處理。 (4)主機(jī)發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù)時(shí)TB8置為0,表示為數(shù)據(jù)幀。 (5)對(duì)于從機(jī),由于主機(jī)發(fā)送的第9位TB8為0,那么只有SM2位為0的從機(jī)可以接收主機(jī)送來(lái)的數(shù)據(jù)。這樣就實(shí)現(xiàn)主機(jī)從多臺(tái)從機(jī)選擇一臺(tái)從機(jī)進(jìn)行通信了。,【例6-8】要求設(shè)計(jì)一個(gè)一臺(tái)主機(jī),255臺(tái)從機(jī)的多機(jī)通信的系統(tǒng)。 1)硬件線路圖如下圖,2)軟件設(shè)計(jì) 通信協(xié)議 通信時(shí),為了處理方便,通信雙方應(yīng)制定相應(yīng)的協(xié)議,在本例中主、從機(jī)串行口都設(shè)為方式3,波特率為1200bps,PCON中的SMOD位都取0,設(shè)fosc為12MHZ,根據(jù)例6.7定時(shí)/計(jì)數(shù)器T1的方式控制字為20H,初值為E6H,主機(jī)的SM2位設(shè)為0,從機(jī)的SM2開始設(shè)為1,從機(jī)地址從00HFEH。另外還制定如下幾條簡(jiǎn)單的協(xié)議: 主機(jī)發(fā)送的控制命令: 00H:要求從機(jī)接收數(shù)據(jù)。(TB8=0) 01H:要求從機(jī)發(fā)送數(shù)據(jù)。(TB8=0) FFH:命令所有從機(jī)的SM2位置1,準(zhǔn)備接收主機(jī)送來(lái)的地址。(TB8=1) 從機(jī)發(fā)給主機(jī)狀態(tài)字格式如圖,其中: ERR=1,表示從機(jī)接收到非法命令。 TRDY=1,表示從機(jī)發(fā)送準(zhǔn)備就緒。 RRDY=1,表示從機(jī)接收準(zhǔn)備就緒。, 主機(jī)的通信程序流程,從機(jī)采用中斷處理,主程序中對(duì)串口初始化,中斷系統(tǒng)初始化。中斷服務(wù)程序中實(shí)現(xiàn)信息的接收與發(fā)送,從機(jī)中斷服務(wù)程序流程見圖,主程序略。, 主機(jī)的通信程序設(shè)計(jì) 設(shè)發(fā)送、接收數(shù)據(jù)塊長(zhǎng)度為16字節(jié)。這里僅編寫主機(jī)發(fā)16個(gè)字節(jié)到01號(hào)從機(jī)的程序和主機(jī)從02號(hào)從機(jī)接收16個(gè)字節(jié)的程序。(略), 從機(jī)的通信程序設(shè)計(jì) 從機(jī)接收、發(fā)送數(shù)據(jù)塊長(zhǎng)度為16字節(jié),所有的從機(jī)的程序相同,只是不同的從機(jī)的本機(jī)號(hào)SLAVE不一樣。 (略),6.4 中斷系統(tǒng),6.4.1 中斷的基本概念,1中斷源及中斷請(qǐng)求,2中斷優(yōu)先權(quán)控制,3中斷允許與中斷屏蔽,4中斷響應(yīng)與中斷返回,6.4.2 MCS-51單片機(jī)的中斷系統(tǒng),一中斷源,1外部中斷,和,外部引腳P3.2和P3.3輸入,有兩種觸發(fā)方式:電平觸發(fā)及跳變(邊沿)觸發(fā)。由特殊功能寄存器TCON來(lái)管理.,IT0(IT1):外部中斷0(或1)觸發(fā)方式控制位。IT0(或IT1)被設(shè)置為0,則選擇外部中斷為電平觸發(fā)方式;IT0(或IT1)被設(shè)置為1,則選擇外部中斷為邊沿觸發(fā)方式。,IE0(IE1):外部中斷0(或1)的中斷請(qǐng)求標(biāo)志位。,在電平觸發(fā)方式時(shí),CPU在每個(gè)機(jī)器周期的S5P2采樣P3.2(或P3.3),若P3.2(或P3.3)引腳為高電平,則IE0(IE1)清0,若P3.2(或P3.3)引腳為低電平,則IE0(IE1)置1,向CPU請(qǐng)求中斷;CPU響應(yīng)后能夠由硬件自動(dòng)將IE0(或IE1)清零。在邊沿觸發(fā)方式時(shí),若第一個(gè)機(jī)器周期采樣到P3.2(或P3.3)引腳為高電平,第二個(gè)機(jī)器周期采樣到P3.2(或P3.3)引腳為低電平時(shí),由IE0(或IE1)置1,向CPU請(qǐng)求中斷。,對(duì)于電平觸發(fā)方式,只要P3.2(或P3.3)引腳為低電平,IE0(或IE1)就置1,請(qǐng)求中斷,CPU響應(yīng)后不能夠由硬件自動(dòng)將IE0(或IE1)清零。如果在中斷服務(wù)程序返回時(shí),P3.2(或P3.3)引腳還為低電平,則又會(huì)中斷,這樣就會(huì)出一次請(qǐng)求,中斷多次的情況。為避免這種情況,只有在中斷服務(wù)程序返回前撤消P3.2(或P3.3)的中斷請(qǐng)求信號(hào),即使P3.2(或P3.3)為高電平。通常通過(guò)下圖所示外電路來(lái)實(shí)現(xiàn) .,外部中斷請(qǐng)求信號(hào)通過(guò)D觸發(fā)器加到單片機(jī)P3.2(或P3.3)引腳上。當(dāng)外部中斷請(qǐng)求信號(hào)使D觸發(fā)器的CLK端發(fā)生正跳變時(shí),由于D端接地,Q端輸出0,向單片機(jī)發(fā)出中斷請(qǐng)求。CPU響應(yīng)中斷后,利用一根口線P1.0作應(yīng)答線。,并在中斷服務(wù)程序中加以下兩條指令來(lái)撤除中斷請(qǐng)求。 ANL P1,#0FEH ORL P1,#01H,2定時(shí)/計(jì)數(shù)器T0和T1中斷,當(dāng)定時(shí)/計(jì)數(shù)器T0(或T1)溢出時(shí),由硬件置TF0(或TF1)為“1”,向CPU發(fā)送中斷請(qǐng)求,當(dāng)CPU響應(yīng)中斷后,將由硬件自動(dòng)清除TF0(或TF1)。,3串行口中斷,MCS-51的串行口中斷源對(duì)應(yīng)兩個(gè)中斷標(biāo)志位:串行口發(fā)送中斷標(biāo)志位TI和串行口接收中斷標(biāo)志位RI。無(wú)論哪個(gè)標(biāo)志位置“1”,都請(qǐng)求串行口中斷,到底是發(fā)送中斷TI還是接收中斷RI,只有在中斷服務(wù)程序中通過(guò)指令查詢來(lái)判斷。串行口中斷響應(yīng)后,不能由硬件自動(dòng)清“0”,必須由軟件對(duì)TI或RI清“0”。,二中斷允許控制,MCS-51單片機(jī)中沒有專門的開中斷和關(guān)中斷指令,對(duì)各個(gè)中斷源的允許和屏蔽是由內(nèi)部的中斷允許寄存器IE的各位來(lái)控制的。中斷允許寄存器IE的字節(jié)地址為A8H,可以進(jìn)行位尋址.,EA:中斷允許總控位。EA=0,屏蔽所有的中斷請(qǐng)求;EA=1,開放中斷。,ET2:定時(shí)器/計(jì)數(shù)器T2的溢出中斷允許位,ES:串行口中斷允許位。,ET1:定時(shí)器/計(jì)數(shù)器T1的溢出中斷允許位。,EX1:外部中斷 INT1的中斷允許位。,ET0:定時(shí)器/計(jì)數(shù)器T0的溢出中斷允許位。,EX0:外部中斷 INT0的中斷允許位。,三優(yōu)先權(quán)控制,每個(gè)中斷源有兩級(jí)控制:高優(yōu)先級(jí)和低優(yōu)先級(jí)。通過(guò)由內(nèi)部的中斷優(yōu)先級(jí)寄存器IP來(lái)設(shè)置.中斷優(yōu)先級(jí)寄存器IP的字節(jié)地址為B8H,可以進(jìn)行位尋址.,PT2:定時(shí)器/計(jì)數(shù)器T2的中斷優(yōu)先級(jí)控制位,只用于52子系列。 PS:串行口的中斷優(yōu)先級(jí)控制位。 PT1:定時(shí)器/計(jì)數(shù)器T1的中斷優(yōu)先級(jí)控制位。,PX1:外部中斷INT1的中斷優(yōu)先級(jí)控制位。,PT0:定時(shí)器/計(jì)數(shù)器T0的中斷優(yōu)先級(jí)控制位。,PX0:外部中斷INT0的中斷優(yōu)先級(jí)控制位。,如果某位被置“1”,則對(duì)應(yīng)的中斷源被設(shè)為高優(yōu)先級(jí);如果某位被清“0”,則對(duì)應(yīng)的中斷源被設(shè)為低優(yōu)先級(jí)。對(duì)于同級(jí)中斷源,系統(tǒng)有默認(rèn)的優(yōu)先權(quán)順序,,外部中斷0 定時(shí)/計(jì)數(shù)器T0中斷 外部中斷1 定時(shí)/計(jì)數(shù)器T1中斷 串行口中斷 定時(shí)/計(jì)數(shù)器T2中斷,通過(guò)中斷優(yōu)先級(jí)寄存器IP改變中斷源的優(yōu)先級(jí)順序可以實(shí)現(xiàn)兩個(gè)方面的功能:改變系統(tǒng)中斷源的優(yōu)先權(quán)順序和實(shí)現(xiàn)二級(jí)中斷嵌套。,對(duì)于中斷優(yōu)先權(quán)和中斷嵌套,MCS-51單片機(jī)有以下三條規(guī)定。 (1)正在進(jìn)行的中斷過(guò)程不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷,一直到該中斷服務(wù)程序結(jié)束,返回了主程序且執(zhí)行了主程序中的一條指令后,CPU才響應(yīng)新的中斷請(qǐng)求。 (2)正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù)程序能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷,實(shí)現(xiàn)兩級(jí)中斷嵌套。,(3)CPU同時(shí)接收到幾個(gè)中斷請(qǐng)求時(shí),首先響應(yīng)優(yōu)先級(jí)最高的中斷請(qǐng)求。,四、MCS-51中斷系統(tǒng)的邏輯結(jié)構(gòu),五中斷響應(yīng),1中斷響應(yīng)的條件,(1) 無(wú)同級(jí)或高級(jí)中斷正在處理。 (2) 現(xiàn)行指令執(zhí)行到最后一個(gè)機(jī)器周期且已結(jié)束。 (3) 若現(xiàn)行指令為RETI或訪問(wèn)IE、IP的指令時(shí),執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完畢。,2中斷響應(yīng)過(guò)程,(1) 根據(jù)中斷請(qǐng)求源的優(yōu)先級(jí)高低,對(duì)相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置“1”。 (2) 保護(hù)斷點(diǎn),即把程序計(jì)數(shù)器PC的內(nèi)容壓入堆棧保存。 (3) 清內(nèi)部硬件可清除的中斷請(qǐng)求標(biāo)志位(IE0、IE1、TF0、TF1)。 (4) 把被響應(yīng)的中斷服務(wù)程序入口地址送入PC,從而轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序執(zhí)行。,各中斷服務(wù)程序的入口地址見表,3中斷響應(yīng)時(shí)間,所謂中斷響應(yīng)時(shí)間是指CPU檢測(cè)到中斷請(qǐng)求信號(hào)到轉(zhuǎn)入中斷服務(wù)程序入口所需要的機(jī)器周期。 MCS-51單片機(jī)響應(yīng)中斷的最短時(shí)間為3個(gè)機(jī)器周期。,6.4.4 MCS-51中斷系統(tǒng)的應(yīng)用,【例6-9】某工業(yè)監(jiān)控系統(tǒng),具有溫度、壓力、PH值等多路監(jiān)控功能,中斷源的連接如圖6.26所示。對(duì)于PH值
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手車置換培訓(xùn)
- 電力安全生產(chǎn)法律法規(guī)培訓(xùn)
- 2025消防設(shè)施培訓(xùn)
- 復(fù)星醫(yī)藥產(chǎn)品經(jīng)理培訓(xùn)
- 我的喜怒哀樂(lè)心理健康活動(dòng)
- 大學(xué)生自我意識(shí)培養(yǎng)與心理健康
- 語(yǔ)言文字規(guī)范化培訓(xùn)資料
- 護(hù)理科研培訓(xùn)心得體會(huì)
- 2025高校教育信息化
- 中層經(jīng)理管理能力提升特訓(xùn)營(yíng)
- 眼鏡店經(jīng)營(yíng)管理制度
- 學(xué)校五年發(fā)展規(guī)劃2026-2030年
- 2025年全國(guó)保密教育線上培訓(xùn)考試試題庫(kù)附答案(完整版)含答案詳解
- 期末培優(yōu)拔高卷(試題)-2023-2024學(xué)年五年級(jí)下冊(cè)數(shù)學(xué)北師大版
- 中華民族共同體概論課件專家版2第二講 樹立正確的中華民族歷史觀
- 抖音認(rèn)證承諾函
- 設(shè)施農(nóng)用地管理政策---培訓(xùn)會(huì)--課件(第二部分)
- 英語(yǔ)活動(dòng)小組活動(dòng)記錄表(共10頁(yè))
- 2022社區(qū)工作者考試試題-歷年真題及答案
- 安全員上崗證繼續(xù)教育考試
- 市政工程創(chuàng)杯方案(范本)
評(píng)論
0/150
提交評(píng)論