定時(shí)器串口中斷_第1頁(yè)
定時(shí)器串口中斷_第2頁(yè)
定時(shí)器串口中斷_第3頁(yè)
定時(shí)器串口中斷_第4頁(yè)
定時(shí)器串口中斷_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

定時(shí)器串口中斷第1頁(yè)/共77頁(yè)6.1MCS-51可編程定時(shí)/計(jì)數(shù)器51系列內(nèi)部有2個(gè)16位的定時(shí)/計(jì)數(shù)器T0、T152系列內(nèi)部有3個(gè)16位的定時(shí)/計(jì)數(shù)器T0、T1、T2功能:定時(shí)計(jì)數(shù)串行口的波特率發(fā)生器定時(shí)/計(jì)數(shù)器的可編程特性:⑴確定其工作方式是定時(shí)還是計(jì)數(shù)⑵預(yù)置定時(shí)或計(jì)數(shù)初值⑶當(dāng)定時(shí)時(shí)間到或計(jì)數(shù)終止時(shí),開(kāi)放或禁止中斷響應(yīng)⑷如何啟動(dòng)定時(shí)或計(jì)數(shù)器工作上頁(yè)下頁(yè)回目錄工作方式不同第2頁(yè)/共77頁(yè)一、定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與工作原理1、結(jié)構(gòu)CPUTH1(8位)TL1(8位)T1

T1(P3.5)(8DH)(8BH)7070TH0(8位)TL0(8位)T0

T0(P3.4)(8CH)(8AH)707

0TCON(88H)TMOD(89H)啟動(dòng)啟動(dòng)溢出溢出工作方式工作方式圖6-1定時(shí)/計(jì)數(shù)器邏輯結(jié)構(gòu)上頁(yè)下頁(yè)回目錄控制寄存器方式寄存器計(jì)數(shù)器1計(jì)數(shù)器0“+1”“+1”第3頁(yè)/共77頁(yè)2、工作原理⑴定時(shí)器定時(shí)原理:定時(shí)器工作方式時(shí),定時(shí)輸入信號(hào)來(lái)自CPU內(nèi)部振蕩信號(hào),在每一個(gè)機(jī)器周期計(jì)數(shù)器做一次“+1”運(yùn)算。如果定時(shí)器的計(jì)數(shù)器+1產(chǎn)生溢出,則標(biāo)志定時(shí)時(shí)間到,向CPU提出中斷申請(qǐng)。上頁(yè)下頁(yè)回目錄結(jié)構(gòu)2個(gè)16位T/C分別由8位計(jì)數(shù)器TH0、TL0、

TH1、TL1組成控制寄存器TCON:控制T/C的啟停、中斷等方式寄存器TMOD:控制T/C的工作方式T0T1時(shí)鐘精度會(huì)影響定時(shí)精度。第4頁(yè)/共77頁(yè)∵1個(gè)機(jī)器周期=12振蕩脈沖∴計(jì)數(shù)速率為振蕩頻率的1/12若單片機(jī)的晶振主頻為12MHz則計(jì)數(shù)周期為1μs⑵計(jì)數(shù)器由外部引腳(T0為P3.4,T1為P3.5)輸入計(jì)數(shù)脈沖外部輸入脈沖寬度應(yīng)大于2個(gè)機(jī)器周期>TCY>TCY上頁(yè)下頁(yè)回目錄外部輸入脈沖發(fā)生負(fù)跳變時(shí),進(jìn)行“+1”計(jì)數(shù)下降沿“+1”高電平低電平TCY:為機(jī)器周期*定時(shí)、計(jì)數(shù)不占用CPU時(shí)間,產(chǎn)生溢出時(shí)將向CPU提出中斷申請(qǐng)*第5頁(yè)/共77頁(yè)二、定時(shí)計(jì)數(shù)器的方式寄存器和控制寄存器1、方式寄存器TMODGATEC/TM1M0GATEC/TM1M0LSBMSB(89H)TMOD控制T1控制T0門(mén)控位工作方式選擇位操作方式選擇上頁(yè)下頁(yè)回目錄第6頁(yè)/共77頁(yè)GATEC/TM1M0GATEC/TM1M0INT1INT0引腳輸入電平的控制GATE:門(mén)控位。設(shè)定T1、T0運(yùn)行時(shí)是否受GATE=0不受外部中斷控制C/T=00方式013位定時(shí)器/計(jì)數(shù)器01方式116位定時(shí)器/計(jì)數(shù)器10方式2可自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器11方式3T0分為2個(gè)8位計(jì)數(shù)器,T1停止計(jì)數(shù)M1M0操作方式功能表6-1操作方式選擇上頁(yè)下頁(yè)回目錄1受外部中斷控制0為定時(shí)功能1為計(jì)數(shù)功能第7頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄2、控制寄存器TCONLSBMSB(88H)TCONTF1TR1TF0TR0IE1IT1IE0IT0T1、T0

啟/停控制位T1、T0

溢出標(biāo)志位與外部中斷INT1、INT0有關(guān)將在中斷系統(tǒng)介紹“0”停止“1”啟動(dòng)“1”

有溢出“0”

無(wú)溢出可由軟件控制定時(shí)器啟、??捎芍噶钋濉?”工作指示有無(wú)溢出第8頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄三、定時(shí)/計(jì)數(shù)器的4種工作方式⑴方式0M1M0=0013位的定時(shí)計(jì)數(shù)器,由TH的8位和TL的低5位組成T1(P3.5)GATETR1INT1震蕩器÷12TL15位TH18位TF1中斷申請(qǐng)KC/T=0C/T=1控制圖6-3定時(shí)/計(jì)數(shù)器方式0邏輯圖111“+1”中斷申請(qǐng)TL4~0以T1為例:13位計(jì)數(shù)器溢出TF1“+1”“+1”第9頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄⑵方式1M1M0=0116位的定時(shí)計(jì)數(shù)器,由TH的8位和TL的8位組成T1(P3.5)GATETR1INT1震蕩器÷12TL18位TH18位TF1中斷申請(qǐng)KC/T=0C/T=1控制圖6-4定時(shí)/計(jì)數(shù)器方式1邏輯圖16位計(jì)數(shù)器“+1”1以T1為例:中斷申請(qǐng)溢出TF1“+1”“+1”第10頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄⑶方式2M1M0=10可自動(dòng)重裝載的8位計(jì)數(shù)器TH1(TH0)被定義為賦值寄存器賦計(jì)數(shù)初值TL1(TL0)被定義為計(jì)數(shù)器圖6-5定時(shí)/計(jì)數(shù)器方式2邏輯圖T1(P3.5)

GATETR1INT1震蕩器÷12TL18位TF1中斷申請(qǐng)KC/T=0C/T=1控制TH18位重裝載重裝載1“+1”以T1為例:中斷申請(qǐng)TL18位溢出TF1“+1”“+1”第11頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄⑷方式3M1M0=11T0被分成2個(gè)相互獨(dú)立的8位計(jì)數(shù)器TL0、TH0TL0使用自己本身的一些控制位C/T、GATE、TR0TF0、INT0等。TH0只能做定時(shí)器,并使用T1的控制位TR1、TF1,同時(shí)占用T1的中斷源第12頁(yè)/共77頁(yè)震蕩器÷121/12f0scTL08位TF0中斷KC/T=0C/T=1控制1/12f0scT0(P3.4)GATETR0INT0KTH08位TF1中斷控制1/12f0scTR1圖6-6定時(shí)/計(jì)數(shù)器方式3邏輯圖上頁(yè)下頁(yè)回目錄1TH0借用了T1的TR1和TF1,因此控制了T1的中斷此時(shí)T1只能用在一些不要中斷的情況下“+1”“+1”1“+1”“+1”TF0TF1

中斷

中斷“+1”第13頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄四、定時(shí)/計(jì)數(shù)器的初始化初始化一般有以下幾個(gè)步驟:⑴確定工作方式,對(duì)方式寄存器TMOD賦值⑵預(yù)置定時(shí)或計(jì)數(shù)初值,將其寫(xiě)入TL0、TH0或TL1、TH1中⑶根據(jù)需要對(duì)中斷允許寄存器有關(guān)位賦值,以開(kāi)放或禁止定時(shí)/計(jì)數(shù)器中斷⑷啟動(dòng)定時(shí)/計(jì)數(shù)器,將TR0或TR1賦值為“1”計(jì)數(shù)初值的設(shè)定:最大計(jì)數(shù)值M:不同的工作方式M值不同方式0:M=213=8192方式1:M=216=65536方式2、3:M=28=256第14頁(yè)/共77頁(yè)計(jì)數(shù)初值X的計(jì)算方法:計(jì)數(shù)方式:X=M-計(jì)數(shù)值(X即為計(jì)數(shù)值的補(bǔ)碼數(shù))上頁(yè)下頁(yè)回目錄定時(shí)方式:(M-X)×T=定時(shí)值∴X=M-定時(shí)值/T其中T為機(jī)器周期,時(shí)鐘的12分頻,若晶振為6MHz,則T=2μs,若晶振為12MHz,則T=1s第15頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄五、定時(shí)/計(jì)數(shù)器應(yīng)用舉例1、作定時(shí)器用例6-2

設(shè)主頻為12MHz,利用定時(shí)器T1定時(shí)。使P1.0輸出周期為2ms的方波。解:用P1.0作方波輸出信號(hào),周期為2ms的方波即可用每1ms改變一次電平的方法完成,故定時(shí)值可設(shè)置為1ms??勺觥?1”運(yùn)算1000次,使T1工作在方式1,即16位計(jì)數(shù)器定時(shí)初值:X=M-計(jì)數(shù)次數(shù)=216

-1000=64536=FC18H1ms1msT=2ms第16頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄GATEC/TM1M0控制T1控制T00001選擇方式1選擇定時(shí)器方式INT1不參與控制TMOD確定工作方式10H第17頁(yè)/共77頁(yè)MOVTMOD,#10HMOVTH1,#0FCHMOVTL1,#18HSETBEASETBET1SETBTR1SJMP$ORG001BHAJMPBR1BR1:MOVTH1,#0FCHMOVTL1,#18HCPLP1.0RETI;T1按方式0工作;;給計(jì)數(shù)器賦初值;CPU開(kāi)中斷;T1允許中斷;啟動(dòng)T1;模擬主程序;T1中斷入口;轉(zhuǎn)T1中斷服務(wù);;重裝T1的初值;輸出方波;返回程序:上頁(yè)下頁(yè)回目錄為什么要重裝T1初值?第18頁(yè)/共77頁(yè)例6-3

根據(jù)例6-2的要求產(chǎn)生周期為2ms的方波,但不用中斷方式,而用查詢(xún)方式工作,查詢(xún)標(biāo)志為T(mén)F1上頁(yè)下頁(yè)回目錄MOVTMOD,#10HSETBTR1LOOP:MOVTH1,#0FCHMOVTL1,#18HJNBTF1,$CPLP1.0CLRTF1SJMPLOOP;T1按方式1工作;啟動(dòng)T1定時(shí);給計(jì)數(shù)器賦初值;TF1=0,則繼續(xù)查詢(xún);;TF1←0;輸出方波;返回第19頁(yè)/共77頁(yè)2、作計(jì)數(shù)器用(自學(xué))例6-4

用T0監(jiān)視一生產(chǎn)流水線,每生產(chǎn)100個(gè)工件,發(fā)出一包裝命令,包裝成一箱,并記錄其箱數(shù)上頁(yè)下頁(yè)回目錄MCS-51P1.0T0Vcc包裝機(jī)包裝命令100個(gè)光源理解題意第20頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄GATEC/TM1M0控制T1控制T0TMOD選方式2選計(jì)數(shù)器INT0不參與控制⑵計(jì)數(shù)初值X=256-100=9CH⑶用P1.0啟動(dòng)外設(shè)發(fā)包裝命令⑷用R5R4作箱數(shù)計(jì)數(shù)器⑴06H置入方式字TMOD0110第21頁(yè)/共77頁(yè)程序:MOVTMOD,#6MAIN:MOVP1.0,#0MOVR5,#0MOVR4,#0MOVTH0,#9CHMOVTL0,#9CHSETBEASETBET0SETBTR0SJMP$ORG000BHLJMPCOUNT下頁(yè);P1.0為低;箱數(shù)計(jì)數(shù)器清“0”;置T0工作方式;計(jì)數(shù)初值送計(jì)數(shù)器;;T0開(kāi)中斷;CPU開(kāi)中斷;啟動(dòng)T0;;主程序;T0中斷入口;轉(zhuǎn)向中斷服務(wù)上頁(yè)回目錄ORG0000HLJMPMAINORG0030H第22頁(yè)/共77頁(yè)COUNT:MOVA,R4ADDA,#1MOVR4,AMOVA,R5ADDCA,#0MOVR5,ASETBP1.0MOVR3,#100DLY:NOPDJNZR3,DLYCLRP1.0RETI中斷服務(wù):;;;;箱計(jì)數(shù)器加“1”;;;啟動(dòng)外設(shè)包裝;給外設(shè)足夠時(shí)間;;延時(shí);停止包裝;中斷返回上頁(yè)下頁(yè)回目錄END沒(méi)有保護(hù)現(xiàn)場(chǎng)第23頁(yè)/共77頁(yè)3、門(mén)控位GATE的應(yīng)用GATEC/TM1M0控制T1控制T0TMOD選方式1選定時(shí)器方式INT0為高時(shí),T1開(kāi)始計(jì)數(shù)1001上頁(yè)下頁(yè)回目錄例6-5

用GATE控制位,測(cè)量INT1(P3.3)引腳上正脈沖的寬度(晶振為12MHz,正脈沖寬度小于65ms)第24頁(yè)/共77頁(yè)T1(P3.5)GATETR1INT1震蕩器÷12TL18位TH18位TF1中斷KC/T=0C/T=1控制16位計(jì)數(shù)器“+1”1INT1INT1為高時(shí)T1開(kāi)始計(jì)數(shù)INT1為低時(shí)T1停止計(jì)數(shù)00111寬度≤65ms計(jì)數(shù)值

即μs數(shù)1上頁(yè)下頁(yè)回目錄“+1”“+1”第25頁(yè)/共77頁(yè)INT1INT1為高時(shí)T1開(kāi)始計(jì)數(shù)INT1為低時(shí)T1停止計(jì)數(shù)上頁(yè)下頁(yè)回目錄MOVTMOD,#90HMOVTL1,#0MOVTH1,#0

JBP3.3,$

SETBTR1JNBP3.3,$JBP3.3,$CLRTR1:.編程:;置T1方式控制字;;T1從0開(kāi)始計(jì)數(shù);等INT1低電平;T1允許計(jì)數(shù);等INT1高電平上升沿到來(lái);等INT1低電平到來(lái);停止計(jì)數(shù)“與”CLRTR1第26頁(yè)/共77頁(yè)定時(shí)器/計(jì)數(shù)器使用中應(yīng)注意的問(wèn)題:1、不易實(shí)現(xiàn)長(zhǎng)時(shí)間高精度定時(shí);2、長(zhǎng)定時(shí)問(wèn)題??第27頁(yè)/共77頁(yè)3、運(yùn)行中讀定時(shí)器值有時(shí)需要在定時(shí)器運(yùn)行中讀出計(jì)數(shù)器的值因?yàn)槎〞r(shí)器不斷運(yùn)行,不可能在同一時(shí)刻讀取THX和TLX值,如不注意便可能讀錯(cuò)。如先讀(TLX),然后讀(THX),由于定時(shí)器不斷運(yùn)行,讀(THX)前,若恰好產(chǎn)生TLX溢出向THX進(jìn)位情況,則讀得的(TLX)值就完全不對(duì)了。第28頁(yè)/共77頁(yè)一種可能解決錯(cuò)讀問(wèn)題的方法是:先讀(THX),后讀(TLX),再讀(THX),若兩次讀得的(THX)沒(méi)有發(fā)生變化,則可確定讀出的內(nèi)容是正確的。RDTIMER:MOV A,TH0 MOV R0,TL0 CJNEA,TH0,RDTIMER MOV R1,A RET 比較兩次讀的(TH0),不等重復(fù)再讀;讀(TH0);讀(TL0)第29頁(yè)/共77頁(yè)4、定時(shí)器溢出同步問(wèn)題定時(shí)器溢出時(shí),自動(dòng)產(chǎn)生中斷請(qǐng)求。但中斷是否得到響應(yīng),取決于其它中斷服務(wù)程序是否在運(yùn)行,或取決于正在執(zhí)行的是什么樣的指令。所以定時(shí)中斷請(qǐng)求得到響應(yīng)的時(shí)間是不固定的。在一些對(duì)定時(shí)精度要求十分苛刻的場(chǎng)所對(duì)此誤差進(jìn)行補(bǔ)償。補(bǔ)償方法:在定時(shí)中斷請(qǐng)求得到響應(yīng)的時(shí)候,停止定時(shí)器計(jì)數(shù),讀出計(jì)數(shù)值(反映了中斷響應(yīng)的延遲時(shí)間),根據(jù)該值,計(jì)算出到下一次中斷時(shí)需要的時(shí)間,據(jù)此來(lái)重裝載計(jì)數(shù)器初值和啟動(dòng)定時(shí)器。第30頁(yè)/共77頁(yè)例:定時(shí)周期為1MS的補(bǔ)償程序。 CLR EA CLR TR1 MOV A,#LOW(-1000+7) ADD A,TL1 MOV TL1,A MOV A,#HIGH(-1000+7) ADDCA,TH1 MOV TH1,A SETB TR1

;禁止所有中斷;停止定時(shí)器1運(yùn)行;期望數(shù)的低位字節(jié);進(jìn)行修正;重裝載;高位字節(jié)做類(lèi)似處理;再啟動(dòng)定時(shí)器運(yùn)行1US1US1US1US1US1US1US第31頁(yè)/共77頁(yè)5.2MCS-51串行口上頁(yè)下頁(yè)回目錄串行通信:將數(shù)據(jù)的各個(gè)位一位一位地通過(guò)單條1位寬的傳輸線按順序分時(shí)傳送的通信方式。即通信雙方一次傳輸一個(gè)二進(jìn)制位。CPU與外界進(jìn)行信息交換方式:并行通信、串行通信。串行通信與并行通信比較:1、通信距離:并行通信適合于近距離傳輸,一般小于30米;串行通信適合遠(yuǎn)距離傳輸,可以從幾米到數(shù)千公里。2、通信速率:近距離傳輸并行通信速率高,遠(yuǎn)距離傳輸串行通信速率高。3、抗干擾性:串行通信只有一兩根信號(hào)線,信號(hào)間互相干擾可以忽略。4、設(shè)備和費(fèi)用:因通信線路費(fèi)用趨高,對(duì)遠(yuǎn)距離通信,串行通信費(fèi)用明顯低得多。第32頁(yè)/共77頁(yè)串行通信實(shí)現(xiàn)得方法:使用硬件接口電路,再輔之以必要的軟件驅(qū)動(dòng)程序。如USB通信、IRDA高速紅外通信第33頁(yè)/共77頁(yè)串行通信方式:MCS-51內(nèi)部有一個(gè)全雙工的異步串行通信接口UART波特率:每秒鐘能夠發(fā)送或接收的二進(jìn)制位數(shù)。全雙工TRRT半雙工TRTR單工TR第34頁(yè)/共77頁(yè)一、串行通信的基本方式1、異步傳送方式一幀數(shù)據(jù)由4部分組成:起始位、數(shù)據(jù)位、奇偶位、停止位1/01/01/01/01/01/01/01/01/001一幀數(shù)據(jù)起始位數(shù)據(jù)位奇偶位停止位01/01/01/0起始位數(shù)據(jù)位11/0停止位第n個(gè)字符第n+1個(gè)字符上頁(yè)下頁(yè)回目錄LSBMSB字符的發(fā)送是隨機(jī)進(jìn)行的,收發(fā)雙方必須對(duì)傳送的字符規(guī)定一定的格式。這種格式稱(chēng)為“幀”。一個(gè)字符在異步傳送中稱(chēng)為一幀數(shù)據(jù)。以字符為單位進(jìn)行的串行數(shù)據(jù)通信第35頁(yè)/共77頁(yè)為邏輯“0”信號(hào),占用一位,用來(lái)通知接收設(shè)備,一個(gè)新的字符開(kāi)始了數(shù)據(jù)位:起始位:奇偶位:5~8位。數(shù)據(jù)的最低位在前,最高位在后。緊跟在最高位之后,占用一位,奇偶校驗(yàn)時(shí),根據(jù)協(xié)議置“1”或“0”.數(shù)據(jù)正確性校驗(yàn).停止位:為邏輯“1”信號(hào),占用1位或2位,當(dāng)接收端收到停止位時(shí),表示一幀數(shù)據(jù)結(jié)束。2、同步傳送方式數(shù)據(jù)塊開(kāi)始有1~2同步字符SYNC,后面是按順序傳送的數(shù)據(jù)塊。數(shù)據(jù)結(jié)構(gòu):上頁(yè)下頁(yè)回目錄第36頁(yè)/共77頁(yè)異步串行通信的特點(diǎn):1、可靠性較高,且易于實(shí)現(xiàn)。異步通信是1次傳送1幀數(shù)據(jù),接收設(shè)備在收到起始信號(hào)后只要在一個(gè)字符的傳輸時(shí)間內(nèi)和發(fā)送設(shè)備保持同步就能正確接收。就允許收發(fā)設(shè)備之間的時(shí)鐘頻率可略有偏差,而下一字符起始位的到來(lái)又使同步重新校準(zhǔn),不會(huì)因累計(jì)效應(yīng)而產(chǎn)生錯(cuò)位。2、數(shù)據(jù)傳輸?shù)男屎退俾事S捎诋惒酵ㄐ乓诿總€(gè)字符的前后加上起始位和停止位這樣的附加位,使得傳輸有效的數(shù)據(jù)位減少,效率降低。如:傳輸ASCII碼:1個(gè)起始位、7個(gè)數(shù)據(jù)位、1個(gè)奇偶校驗(yàn)位、1個(gè)停止位,數(shù)據(jù)傳輸速率為240字符/秒,則波特率為2400位/秒,有效數(shù)據(jù)位為240*7=1680位/秒,傳輸效率只有70%。3、傳輸速率慢。因?yàn)楫惒酱袛?shù)據(jù)通信數(shù)據(jù)格式允許上一幀數(shù)據(jù)和下一幀數(shù)據(jù)之間有空閑位。第37頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄二、MCS-51串行口結(jié)構(gòu)1、數(shù)據(jù)緩沖器SBUF包括物理上獨(dú)立的發(fā)送緩沖器、接收緩沖器發(fā)送緩沖器:只能寫(xiě)入不能讀出.MOVSBUF,A接收緩沖器:只能讀出不能寫(xiě)入.MOVA,SBUF二者共用一個(gè)地址99H2、串行口控制寄存器SCON字節(jié)地址為98H,可位尋址,位地址為98H~9FHSM0SM1SM2RENTB8RB8TIRISCON(98H)D7D0第38頁(yè)/共77頁(yè)SM0SM1SM2RENTB8RB8TIRISCOND7D0SM0、SM1:串行口工作方式選擇位,如表6-3所示

000移位寄存器方式(用于I/O擴(kuò)展)0118位UART,波特率可變1029位UART,波特率為fosc/32或fosc/641139位UART,波特率可變SM0SM1

方式功能表6-3串行口工作方式上頁(yè)下頁(yè)回目錄第39頁(yè)/共77頁(yè)SM0SM1SM2RENTB8RB8TIRISCOND7D0SM2:多機(jī)通信控制位。在方式2或方式3中,如果置SM2=1,則接收到的第9位數(shù)據(jù)RB8為“1”時(shí),才置位接收中斷標(biāo)志RI=1;如果置SM2=0,無(wú)論RB8為何值,均置位接收中斷標(biāo)志RI=1。允許接收控制位。由軟件置“1”時(shí),允許接收,置“0”時(shí),禁止接收REN:在方式1時(shí),如果置SM2=1,則只有接收到有效的停止位時(shí)才置位RI。在方式0時(shí),應(yīng)置SM2=0。第40頁(yè)/共77頁(yè)TB8:在方式2和方式3中要發(fā)送的第9位數(shù)據(jù),需要時(shí)由軟件置位或復(fù)位RB8:在方式2和方式3中要接收的第9位數(shù)據(jù),在方式1時(shí),如SM2=0,RB8是接收到的停止位。在方式0中,不使用RB8TI:發(fā)送中斷標(biāo)志。在方式0串行發(fā)送第8位結(jié)束時(shí)由硬件置“1”,或在其他方式中串行發(fā)送停止位的開(kāi)始時(shí)置“1”,必須由軟件清“0”RI:接收中斷標(biāo)志。在方式0串行接收到第8位結(jié)束時(shí)由硬件置“1”,或在其他方式中接收到停止位的中間時(shí)置“1”,必須由軟件清“0”上頁(yè)下頁(yè)回目錄SM0SM1SM2RENTB8RB8TIRISCOND7D0第41頁(yè)/共77頁(yè)3、特殊功能寄存器PCON其字節(jié)地址87H,沒(méi)有位尋址功能。PCON(87H)SMODSMOD:波特率選擇位。SMOD=1時(shí),波特率加倍三、串行口工作方式1、方式0移位寄存器輸入輸出方式,可外接移位寄存器,以擴(kuò)展I/O口,數(shù)據(jù)由RXD提供,移位同步脈沖由TXD提供。方式0的波特率是固定的,為fosc/12。上頁(yè)下頁(yè)回目錄第42頁(yè)/共77頁(yè)2、方式1波特率可變的8位異步通信接口方式。波特率=2SMOD/32×T1溢出率上頁(yè)下頁(yè)回目錄幀格式:1個(gè)起始位8個(gè)數(shù)據(jù)位1個(gè)停止位第43頁(yè)/共77頁(yè)3、方式29位異步通信接口方式。傳送一幀數(shù)據(jù)信息為11位波特率=2SMOD/64×fosc上頁(yè)下頁(yè)回目錄4、方式39位異步通信接口方式。波特率=2SMOD/64×T1的溢出率其他與方式2類(lèi)似1個(gè)起始位9個(gè)數(shù)據(jù)位(SBUF+TB8/RB8)1個(gè)停止位方式2、3的幀格式:第44頁(yè)/共77頁(yè)四、波特率的設(shè)計(jì)⑴方式0的波特率是固定的:波特率=fosc/12⑵方式2波特率取決于SMOD波特率=2SMOD/32×T1的溢出率方式2波特率=2SMOD/64×foscSMOD=0時(shí),波特率=fosc/64,SMOD=1時(shí),波特率=fosc/32⑶方式1、3波特率取決于T1的溢出率SMOD=0時(shí),波特率=T1的溢出率/32,SMOD=1時(shí),波特率=T1的溢出率/16上頁(yè)下頁(yè)回目錄第45頁(yè)/共77頁(yè)⑷定時(shí)器1作波特率發(fā)生器T1采用方式2定時(shí)器工作方式T1的溢出率=fosc/[12×(28-初值)]串口工作于方式1、3時(shí)波特率:波特率=2SMOD/32×T1的溢出率=2SMOD×

fosc/[32×12×(28-初值)]上頁(yè)下頁(yè)回目錄通信時(shí),人工約定一BPS值,計(jì)算定時(shí)器初值第46頁(yè)/共77頁(yè)表6-4給出常用波特率和定時(shí)器T1各參數(shù)關(guān)系。表6-4定時(shí)器1產(chǎn)生的常用波特率波特率串行口方式1.3情況Fosc/MHzSMOD定

時(shí)

1C/T模

式重

值62.5K12102FFH19.2K11.0592102FDH9.6K11.0592002FDH4.8K11.0592002FAH2.4K11.0592002F4H1.2K11.0592002E8H137.5K11.9860021DH110600272H11012001FEEBH第47頁(yè)/共77頁(yè)5.2.5串行口的應(yīng)用1.方式0應(yīng)用

例5-6應(yīng)用串行口方式0輸出,在串行口外接移位寄存器,構(gòu)成顯示器接口。

作用?第48頁(yè)/共77頁(yè)設(shè)顯示緩沖區(qū)設(shè)在DISBUF開(kāi)始的區(qū)域中,下面是顯示子程序清單。DISPLY:MOVSCON,#0;選擇串行口為方式0發(fā)送

MOVR7,#3;字節(jié)計(jì)數(shù)

MOVR0,#DISBUF;R0指向顯示緩沖區(qū)

SETBP1.0;選通TXD同步移位時(shí)鐘L1:MOVA,@R0;取要顯示的數(shù)

MOVDPTR,#TABLE;地址調(diào)整

MOVCA,@A+DPTR;查字形表

MOVSBUF,A;開(kāi)始發(fā)送

JNBTI,$;等待一幀發(fā)送完

CLRTI;清發(fā)送中斷標(biāo)志

INCR0;修改顯示緩沖區(qū)指針

DJNZR7,L1;三個(gè)LED顯示完了嗎?

CLRP1.0;關(guān)TXD

RET

;返回TABLE:DB11H,D7H,32H,92H,D4H;

DB98H,18H,D8H,10H,90H;字形碼表

第49頁(yè)/共77頁(yè)3.方式2或方式3的應(yīng)用串行口方式2、方式3常用于多機(jī)通信,如果采用主從式構(gòu)成多機(jī)系統(tǒng),多臺(tái)從機(jī)可以減輕主機(jī)的工作負(fù)擔(dān),構(gòu)成廉價(jià)的分布式多機(jī)系統(tǒng)。電路結(jié)構(gòu)如圖6-16所示。串行口方式2或方式3數(shù)據(jù)幀的第9位是可編程位,可利用程控靈活改變TB8的狀態(tài),接收時(shí),當(dāng)接收機(jī)的SM2=1時(shí),只有接收到的RB8=1,才能置位RI,接收數(shù)據(jù)才有效,而當(dāng)接收機(jī)SM2=0時(shí),無(wú)論收到的RB8是“0”還是“1”都能置位RI,接收到的數(shù)據(jù)有效。利用這種特點(diǎn)可實(shí)現(xiàn)多機(jī)通信。

第50頁(yè)/共77頁(yè)圖5-17多機(jī)通信原理流程

YN第51頁(yè)/共77頁(yè)51串行接口可擴(kuò)展應(yīng)用:1、擴(kuò)展RS-232接口(MAX232CPE等)。2、擴(kuò)展RS-485接口(75LBC184等)。3、擴(kuò)展GPRS無(wú)線通信接口。4、擴(kuò)展無(wú)線紅外通信接口5、。。。。。第52頁(yè)/共77頁(yè)串行通信使用中應(yīng)注意問(wèn)題1、波特率誤差對(duì)數(shù)據(jù)接收的影響2、RS-485接口舉例3、通信協(xié)議制定4、通信的可靠性措施第53頁(yè)/共77頁(yè)2、遠(yuǎn)距離串行通信設(shè)計(jì)舉例MCS-51單片機(jī)的UART收發(fā)的是TTL電平,通信距離是有限的。通過(guò)適當(dāng)接口電路,設(shè)計(jì)成RS-232、RS-485接口。8031TXDP1.0RXD485接口芯片DIRE/DERIABVCCGNDSN75LBC184、MAX485、SN75176…..RS-485是平衡傳輸方式的串行接口標(biāo)準(zhǔn),100KBPS下可傳輸1200米。第54頁(yè)/共77頁(yè)3、通信協(xié)議目的地址源地址命令碼數(shù)據(jù)長(zhǎng)度數(shù)據(jù)校驗(yàn)碼目的地址:欲接收數(shù)據(jù)的儀表地址(編號(hào))數(shù)據(jù)長(zhǎng)度:要發(fā)送數(shù)據(jù)個(gè)數(shù)源地址:發(fā)送該幀數(shù)據(jù)的儀表的地址(編號(hào))數(shù)據(jù):發(fā)送的內(nèi)容。校驗(yàn)碼:自數(shù)據(jù)長(zhǎng)度始到數(shù)據(jù)最后一個(gè)字節(jié)所形成的校驗(yàn)碼值。通信雙方對(duì)數(shù)據(jù)傳送控制的一種約定,包括數(shù)據(jù)格式、波特率、檢糾錯(cuò)方式、控制字符含義等。例如:BPS=9600,方式3,和校驗(yàn)。數(shù)據(jù)包格式為:命令碼:解釋后續(xù)數(shù)據(jù)含義或指令對(duì)方要完成的操作。第55頁(yè)/共77頁(yè)目的地址源地址命令碼數(shù)據(jù)長(zhǎng)度數(shù)據(jù)校驗(yàn)碼例:1#機(jī)要發(fā)送(1、2、3、4)數(shù)據(jù)給2#機(jī),命令碼為01,采用和校驗(yàn)方式。02H01H01H04H01H、2H、03H、04H00H、10H和校驗(yàn):01H+01H+04H+01H+02H+03H+04H=0010H第56頁(yè)/共77頁(yè)4、提高通信可靠性措施1)、通信協(xié)議中要有差錯(cuò)校驗(yàn)功能 如:奇偶校驗(yàn)、和校驗(yàn)、CRC校驗(yàn)、信息冗余比較等2)、錯(cuò)誤重發(fā)及次數(shù)限制 發(fā)現(xiàn)校驗(yàn)錯(cuò)誤,則進(jìn)行信息重發(fā),重發(fā)N次后仍然有錯(cuò)誤,則進(jìn)行錯(cuò)誤報(bào)警及處理。3)、超時(shí)重發(fā)及次數(shù)限制 發(fā)出信息后在一定時(shí)間內(nèi)收不到對(duì)方信息,稱(chēng)為超時(shí)。出現(xiàn)超時(shí)應(yīng)進(jìn)行信息重發(fā),重發(fā)N次后仍然有錯(cuò)誤,則進(jìn)行錯(cuò)誤報(bào)警及處理第57頁(yè)/共77頁(yè)5.3MCS-51單片機(jī)中斷系統(tǒng)上頁(yè)下頁(yè)回目錄中斷概念:當(dāng)計(jì)算機(jī)執(zhí)行正常程序時(shí),由于系統(tǒng)中出現(xiàn)某些需要緊急處理的情況或特殊請(qǐng)求時(shí),需打斷當(dāng)前正在運(yùn)行的程序,轉(zhuǎn)而對(duì)這些緊急情況進(jìn)行處理,處理完后,再返回被打斷的程序繼續(xù)執(zhí)行的能力。中斷源:引起中斷的事件或設(shè)備稱(chēng)為中斷源采用中斷的優(yōu)點(diǎn):良好的中斷系統(tǒng)使CPU具有處理隨機(jī)應(yīng)變的能力,從而擴(kuò)大應(yīng)用范圍,提高CPU工作效率。第58頁(yè)/共77頁(yè)一、中斷的一般功能1、中斷的屏蔽與開(kāi)放中斷屏蔽:稱(chēng)為關(guān)中斷,CPU不響應(yīng)中斷請(qǐng)求稱(chēng)為開(kāi)中斷,CPU可響應(yīng)中斷請(qǐng)求中斷開(kāi)放:2、中斷響應(yīng)與中斷返回中斷請(qǐng)求RETI主程序響應(yīng)中斷中斷服務(wù)子程序返主程序繼續(xù)執(zhí)行主程序上頁(yè)下頁(yè)回目錄圖6-18(a)中斷響應(yīng)中斷請(qǐng)求PC斷點(diǎn)PC斷點(diǎn)第59頁(yè)/共77頁(yè)3、中斷優(yōu)先級(jí)

中斷開(kāi)放的情況下,如果有幾個(gè)中斷請(qǐng)求同時(shí)發(fā)生,應(yīng)首先響應(yīng)中斷優(yōu)先級(jí)較高的中斷4、中斷嵌套低級(jí)中斷請(qǐng)求RETI主程序響應(yīng)低級(jí)中斷高級(jí)中斷服務(wù)子程序返主程序繼續(xù)執(zhí)行主程序高級(jí)中斷請(qǐng)求響應(yīng)高級(jí)中斷返低級(jí)中斷上頁(yè)下頁(yè)回目錄圖6-18(b)中斷嵌套R(shí)ETI低級(jí)中斷服務(wù)子程序低級(jí)中斷服務(wù)子程序第60頁(yè)/共77頁(yè)二、中斷源5個(gè)中斷源2個(gè)優(yōu)先級(jí)2個(gè)外部中斷3個(gè)內(nèi)部中斷INT0(P3.2)INT1(P3.3)T0T1UART上頁(yè)下頁(yè)回目錄與中斷有關(guān)的特殊功能寄存器:IP:中斷優(yōu)先控制寄存器IE:中斷允許控制寄存器TCON:定時(shí)/計(jì)數(shù)控制寄存器SCON:UART控制寄存器MCS–51中斷要點(diǎn)MCS–51中斷要點(diǎn)第61頁(yè)/共77頁(yè)三、中斷控制寄存器1、中斷允許寄存器IEEA/

/

ES

ET1

EX1

ET0

EX0INT0INT1T1T0UARTCPU0

禁止中斷1

允許中斷0

禁止1

允許

總中斷控制位

總中斷控制位IE(A8)每個(gè)中斷的開(kāi)放和禁止是單獨(dú)可控的,可編程的,由具體任務(wù)決定。ET2T2CPUIE的相應(yīng)位可由軟件置為“0”或“1”,禁止或開(kāi)放某個(gè)中斷上頁(yè)下頁(yè)回目錄第62頁(yè)/共77頁(yè)2、定時(shí)/計(jì)數(shù)器控制寄存器TCONTCON(88H)TF1

TF0

IE1

IT1

IE0IT0

INT1

INT0觸發(fā)方式控制位0

低電平觸發(fā)1

邊沿↓觸發(fā)

INT1

INT0外部中斷請(qǐng)求標(biāo)志1硬件置位申請(qǐng)中斷0CPU響應(yīng)中斷后自動(dòng)清除T1T0溢出標(biāo)志1

由硬件置位申請(qǐng)中斷0CPU響應(yīng)中斷后由硬件自動(dòng)清除,也可由指令清除上頁(yè)下頁(yè)回目錄中斷請(qǐng)求標(biāo)志TR1TR0第63頁(yè)/共77頁(yè)3、中斷優(yōu)先級(jí)寄存器IP//

/

PS

PT1

PX1

PT0

PX0IP(B8)PT2INT0INT1T1T0UART0

低優(yōu)先級(jí)中斷源1高優(yōu)先級(jí)中斷源T2上頁(yè)下頁(yè)回目錄3、優(yōu)先級(jí)結(jié)構(gòu)中斷優(yōu)先級(jí)控制遵循的兩個(gè)基本原則:⑴一個(gè)正在執(zhí)行的低級(jí)中斷服務(wù)程序,能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷,但不能被同優(yōu)先級(jí)中斷請(qǐng)求所中斷。⑵一個(gè)正在執(zhí)行的高級(jí)中斷服務(wù)程序,不能被任何中斷請(qǐng)求所中斷,直到返回。2個(gè)中斷優(yōu)先級(jí)可位尋趾第64頁(yè)/共77頁(yè)實(shí)現(xiàn)這兩個(gè)原則的方法:上頁(yè)下頁(yè)回目錄

中斷系統(tǒng)內(nèi)部設(shè)置了兩個(gè)不可尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器。一個(gè)指出正在處理高優(yōu)先級(jí)中斷,并阻止所有其他中斷;另一個(gè)指出正在處理低優(yōu)先級(jí)中斷,并阻止了除高優(yōu)先級(jí)中斷外的其他任何中斷。高優(yōu)先級(jí)狀態(tài)觸發(fā)器低優(yōu)先級(jí)狀態(tài)觸發(fā)器是不可尋址的當(dāng)CPU響應(yīng)高級(jí)中斷,并進(jìn)入中斷服務(wù)時(shí)“1”“1”RETI“0”當(dāng)CPU響應(yīng)低級(jí)中斷,并進(jìn)入中斷服務(wù)時(shí)“1”RETI“0”第65頁(yè)/共77頁(yè)

在同級(jí)的中斷源同時(shí)發(fā)生中斷請(qǐng)求時(shí),CPU內(nèi)部采用硬件查詢(xún)邏輯,決定同級(jí)中斷源優(yōu)先級(jí)別高低。查詢(xún)順序:外部中斷請(qǐng)求

INT0定時(shí)/計(jì)數(shù)器T0定時(shí)/計(jì)數(shù)器T1串行口UART定時(shí)/計(jì)數(shù)器T2外部中斷請(qǐng)求

INT1最高最低上頁(yè)下頁(yè)回目錄第66頁(yè)/共77頁(yè)上頁(yè)下頁(yè)回目錄源允許圖6-19MCS-51中斷系統(tǒng)總體邏輯結(jié)構(gòu)總允許優(yōu)先級(jí)自然優(yōu)先級(jí)中斷源自然優(yōu)先級(jí)中斷源查詢(xún)硬件查詢(xún)硬件

低級(jí)中斷請(qǐng)求

矢量地址送PCIPIETCONSCONEX0ET0EX1ET1ESEAINT0INT1T0T1RXTXRITIIE0IE1TF0TF1IT1011010101010矢量地址送PC

高級(jí)中斷請(qǐng)求IT001中斷標(biāo)志中斷標(biāo)志INT01IE0自然優(yōu)先級(jí)矢量地址送PC“+1”TF10自然優(yōu)先級(jí)

矢量地址送PCEA“+1”“+1”第67頁(yè)/共77頁(yè)四、中斷響應(yīng)過(guò)程中斷響應(yīng)的三個(gè)條件:⑴CPU不是正在處理同級(jí)或高級(jí)中斷請(qǐng)求⑵現(xiàn)行機(jī)器周期是所執(zhí)行指令的最后一個(gè)機(jī)器周期⑶正在執(zhí)行的指令不是RETI,或不在訪問(wèn)IE或IP外部中斷請(qǐng)求INT0定時(shí)/計(jì)數(shù)器T0溢出定時(shí)/計(jì)數(shù)器T1溢出串行口UART定時(shí)/計(jì)數(shù)器T2溢出外部中斷請(qǐng)求INT1中斷入口地址:0003H000BH0013H001BH0023H002BH上頁(yè)下頁(yè)回目錄中斷源矢量地址第68頁(yè)/共77頁(yè)五、外部中斷響應(yīng)時(shí)序與觸發(fā)方式1、外部中斷響應(yīng)時(shí)間M1M3M4M5M2S5P1S5P2INT被采樣并鎖存到IE0IE1中CPU進(jìn)行中斷查詢(xún)保護(hù)斷點(diǎn),長(zhǎng)調(diào)用至入口中斷服務(wù)(1)中斷響應(yīng)順利,不受阻,需要3個(gè)機(jī)器周期(2)如果中斷受阻:上頁(yè)下頁(yè)回目錄①正在處理同級(jí)或高級(jí)中斷,這要視中斷服務(wù)的長(zhǎng)短②執(zhí)行的指令不是最后一個(gè)機(jī)器周期,等待不超過(guò)3個(gè)周期③正在執(zhí)行指令是RETI,或正訪問(wèn)IE、IP,則需返回主程序后,再執(zhí)行一條主程序的指令才能響應(yīng)該中斷,等待不超過(guò)5個(gè)周期則需要3~8個(gè)機(jī)器周期:中斷被響應(yīng)時(shí)間是不確定的。第69頁(yè)/共77

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論