定時(shí)器中斷C語(yǔ)言程序_第1頁(yè)
定時(shí)器中斷C語(yǔ)言程序_第2頁(yè)
定時(shí)器中斷C語(yǔ)言程序_第3頁(yè)
定時(shí)器中斷C語(yǔ)言程序_第4頁(yè)
定時(shí)器中斷C語(yǔ)言程序_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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)介

1、定時(shí)器中斷c語(yǔ)言解析interrupt x using yinterrupt表示中斷優(yōu)先級(jí),using表示所用工作寄存器組。interrupt x using y跟在interrupt后面的xx值得是中斷號(hào),就是說(shuō)這個(gè)函數(shù)對(duì)應(yīng)第幾個(gè)中斷端口,一般在51中0外部中斷01定時(shí)器02外部中斷13定時(shí)器14串行中斷其它的根據(jù)相應(yīng)得單片機(jī)有自己的含義,實(shí)際上c在編譯的時(shí)候就是把你這個(gè)函數(shù)的入口地址放到這個(gè)對(duì)應(yīng)中斷的跳轉(zhuǎn)地址using y這個(gè)y是說(shuō)這個(gè)中斷函數(shù)使用的那個(gè)寄存器組就是51里面一般有4個(gè)r0-r7寄存器,如果你的終端函數(shù)和別的程序用的不是同一個(gè)寄存器組則進(jìn)入中斷的時(shí)候就不會(huì)將寄存器組壓入堆棧返

2、回時(shí)也不會(huì)彈出來(lái)節(jié)省代碼和時(shí)間外部中斷INT0void intsvr0(voidinterrupt0using1定時(shí)/計(jì)數(shù)器T0void timer0(voidinterrupt1using1外部中斷INT1void intsvr1(voidinterrupt2using1定時(shí)/計(jì)數(shù)器T1void timer1(voidinterrupt3using1串口中斷void serial0(voidinterrupt4using1單片機(jī)的C語(yǔ)言HNBCC培訓(xùn)電話:137*一,中斷的概念中斷:當(dāng)計(jì)算機(jī)執(zhí)行正常程序時(shí),系統(tǒng)中出現(xiàn)某些急需處理的異常情況和特殊請(qǐng)求.中斷的執(zhí)行:當(dāng)CPU正在執(zhí)行某一程序時(shí),若

3、有中斷響應(yīng),則CPU轉(zhuǎn)而執(zhí)行中斷服務(wù)程序,當(dāng)中斷服務(wù)程序執(zhí)行完畢后,CPU自動(dòng)返回原來(lái)的程序繼續(xù)執(zhí)行.中斷服務(wù)程序的語(yǔ)句寫法與函數(shù)的寫法完全相同,所以,中斷服務(wù)程序也是函數(shù),只在函數(shù)頭部有不同(后續(xù).中斷服務(wù)程序的執(zhí)行與函數(shù)的執(zhí)行不同:函數(shù)的執(zhí)行是有固定位置的,是通過(guò)函數(shù)的調(diào)用來(lái)完成的;而中斷服務(wù)程序的執(zhí)行是不固定位置的,只要有中斷響應(yīng),在一定條件下都會(huì)去響應(yīng)中斷,即執(zhí)行中斷服務(wù)程序.二,中斷源中斷源:任何引起計(jì)算機(jī)中斷的事件,一般一臺(tái)機(jī)器允許有許多個(gè)中斷源.8051系列單片機(jī)至少有5個(gè)可能的中斷(8052有6個(gè),其它系列成員最多可達(dá)15個(gè).下面以5個(gè)中斷源為例.8051單片機(jī)的五個(gè)中斷源是:

4、外部中斷請(qǐng)求0,由INT0(P3.2輸入;外部中斷請(qǐng)求1,由INT1(P3.3輸入;片內(nèi)定時(shí)器/計(jì)數(shù)器0溢出中斷請(qǐng)求;片內(nèi)定時(shí)器/計(jì)數(shù)器1溢出中斷請(qǐng)求;片內(nèi)串行口發(fā)送/接收中斷請(qǐng)求.三,與中斷有關(guān)的寄存器1,定時(shí)/計(jì)數(shù)器控制寄存器TCONTF1TR1TF0TR0IE1IT1IE0IT0D7D6D5D4D3D2D1D0.IT0,IT1:外部中斷0,1觸發(fā)方式選擇位,由軟件設(shè)置;1下降沿觸發(fā)方式,INT0/INT1管腳上高到低的負(fù)跳變可引起中斷;0電平觸發(fā)方式,INT0/INT1管腳上低電平可引起中斷.IE0,IE1:外部中斷0,1請(qǐng)求標(biāo)志位;當(dāng)外部中斷0,l依據(jù)觸發(fā)方式滿足條件,產(chǎn)生中斷請(qǐng)求時(shí)由

5、硬件置位(IE0/IE1=1;當(dāng)CPU響應(yīng)中斷時(shí)由硬件清除(IE0/IE1=0.TR0,TR1:啟動(dòng)定時(shí)/計(jì)數(shù)器0,1.TF0,TF1:定時(shí)器/計(jì)數(shù)器0,1(T/C0,T/C1溢出中斷請(qǐng)求標(biāo)志;當(dāng)T/C0,1計(jì)數(shù)溢出時(shí)由硬件置位(TF0/TF1=l;當(dāng)CPU響應(yīng)中斷由硬件清除(TFO/TF1=0.三,與中斷有關(guān)的寄存器2,串行口控制寄存器SCONTI RID7D6D5D4D3D2D1D0.RI:串行口接收中斷請(qǐng)求標(biāo)志位;當(dāng)串行口接收完一幀數(shù)據(jù)后請(qǐng)求中斷,由硬件置位(RI=1RI必須由軟件清"0".TI:串行口發(fā)送中斷請(qǐng)求標(biāo)志位.當(dāng)串行口發(fā)送完一幀數(shù)據(jù)后請(qǐng)求中斷,由硬件置位(

6、TI=1TI必須由軟件清"0".三,與中斷有關(guān)的寄存器3,中斷允許寄存器IEEA ET2ES ET1EX1ET0EX0D7D6D5D4D3D2D1D0.EX0,EX1:外部中斷0,1的中斷允許位;l外部中斷0,1開(kāi)中斷;0外部中斷0,1關(guān)中斷.ET0,ET1:定時(shí)器/計(jì)數(shù)器0,1(T/C0,T/C1溢出中斷允許位;1T/C0,T/Cl開(kāi)中斷;0T/C0,T/Cl關(guān)中斷.ES:串行口中斷允許位;1串行口開(kāi)中斷;0串行口關(guān)中斷.ET2:定時(shí)器/計(jì)數(shù)器2(T/C2溢出中斷允許位;1T/C2開(kāi)中斷;0T/C2關(guān)中斷.EA:CPU開(kāi)/關(guān)中斷控制位.1CPU開(kāi)中斷.0CPU關(guān)中斷.80

7、51復(fù)位時(shí),IE被清"0",此時(shí)CPU關(guān)中斷,各中斷源的中斷也都屏蔽三,與中斷有關(guān)的寄存器4,中斷優(yōu)先級(jí)寄存器IPPS PT1PX1PT0PX0D7D6D5D4D3D2D1D0.PX0,PX1:外部中斷0,1中斷優(yōu)先級(jí)控制位;1高優(yōu)先級(jí);0低優(yōu)先級(jí).PT0,PT1:定時(shí)器/計(jì)數(shù)器0,1中斷優(yōu)先級(jí)控制位;1高優(yōu)先級(jí);0低優(yōu)先級(jí).PS:串行口中斷優(yōu)先級(jí)控制位;1高優(yōu)先級(jí);0低優(yōu)先級(jí).8051復(fù)位時(shí),IP被清"0",5個(gè)中斷源都在同一優(yōu)先級(jí),其內(nèi)部?jī)?yōu)先級(jí)的順序從高到低為:外部中斷0(IE0定時(shí)器/計(jì)數(shù)器0(TF0外部中斷1(IE1定時(shí)器/計(jì)數(shù)器1(TF1串行口

8、中斷(RI+TI四,中斷響應(yīng)8051的CPU在每個(gè)機(jī)器周期采樣各中斷源的中斷請(qǐng)求標(biāo)志位,如果沒(méi)有下述阻止條件,將在下一個(gè)機(jī)器周期響應(yīng)被激活了的最高級(jí)中斷請(qǐng)求:1.CPU正在處理同級(jí)或更高級(jí)的中斷;2.現(xiàn)行機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期;3.正在執(zhí)行的是RETI或是訪問(wèn)IE或IP的指令.CPU在中斷響應(yīng)后完成如下的操作:1.硬件清除相應(yīng)的中斷請(qǐng)求標(biāo)志;2.執(zhí)行一條硬件子程序,保護(hù)斷點(diǎn),并轉(zhuǎn)向中斷服務(wù)程序人口3.結(jié)束中斷時(shí)執(zhí)行RETI指令,恢復(fù)斷點(diǎn),返回主程序.8051的CPU在響應(yīng)中斷請(qǐng)求時(shí),由硬件自動(dòng)形成轉(zhuǎn)向與該中斷源對(duì)應(yīng)的服務(wù)程序入口地址,這種方法為硬件向量中斷法.五,中斷服務(wù)程序

9、的入口地址編號(hào)中斷源人口地址0外部中斷00003H1定時(shí)器/計(jì)數(shù)器0000BH2外部中斷10013H3定時(shí)器/計(jì)數(shù)器1001BH4串行口中斷0023H各中斷服務(wù)程序入口地址僅間隔8個(gè)字節(jié),編譯器在這些地址放入無(wú)條件轉(zhuǎn)移指令跳轉(zhuǎn)到服務(wù)程序的實(shí)際地址.六,中斷服務(wù)程序的語(yǔ)法規(guī)則中斷服務(wù)程序的語(yǔ)法規(guī)則如下:函數(shù)的返回值函數(shù)名(參數(shù)interrupt nusing m函數(shù)體;對(duì)中斷程序而言,函數(shù)的返回值和參數(shù)一般為errupt n中n的取值為031的常數(shù),不允許用表達(dá)式,表示中斷向量的編號(hào). using m中m的取值為03的常數(shù),不允許用表達(dá)式,表示內(nèi)部RAM中的工作寄存器.七,中斷說(shuō)

10、明中斷不允許用于外部函數(shù),它對(duì)函數(shù)目標(biāo)代碼影響如下z·當(dāng)調(diào)用函數(shù)時(shí),SFR中的ACC,B,DPH,DPL和PSW(當(dāng)需要時(shí)入錢;.如果不使用寄存器組切換,甚至中斷函數(shù)所需的所有工作寄存器都入錢;.函數(shù)退出前,所有的寄存器內(nèi)容出錢;·函數(shù)由8051的指令"RETI"終止.中斷服務(wù)程序使用的任何程序也使用同一寄存器組.八,中斷例子#includereg51.hunsigned char status;bit flag;void service_int(interrupt2using2flag=1;status=P1;void main(voidIP=0x04

11、;IE=0x84;for(;if(flagswitch(statuscase0:break;case1:break;case2:break;case3:break;default:;flag=0;圖見(jiàn)書中P148習(xí)題試設(shè)計(jì)滿足下列要求的電路圖:1單片機(jī)采用89C51,時(shí)鐘11.0592MHz;2有4個(gè)指示燈表示狀態(tài);3外接12位A/D芯片AD574;4有4*4的鍵盤;5有字符型LCD(畫成插座形式,12Pin插座,管腳接法見(jiàn)書P253;6有串行接口與計(jì)算機(jī)連接;7設(shè)置8位二進(jìn)制的地址,地址范圍可表示為0255;8外接EEPROM.定時(shí)器/計(jì)數(shù)器(T/C8051系列單片機(jī)至少有兩個(gè)16位內(nèi)部定時(shí)

12、器/計(jì)數(shù)器,8052有三個(gè)定時(shí)器/計(jì)數(shù)器,其中有兩個(gè)是基本定時(shí)器/計(jì)數(shù)器是定時(shí)器/計(jì)數(shù)器.它們既可以編程為定時(shí)器使用,也可以編程為計(jì)數(shù)器使用.若是計(jì)數(shù)內(nèi)部晶振驅(qū)動(dòng)時(shí)鐘,它是定時(shí)器;若是計(jì)數(shù),8051的輸入管腳的脈沖信號(hào),它是計(jì)數(shù)器.當(dāng)T/C工作在定時(shí)器時(shí),對(duì)振蕩源12分頻的脈沖計(jì)數(shù),即每個(gè)機(jī)器周期計(jì)數(shù)值加1,計(jì)數(shù)率=1/12f osc.例當(dāng)晶振為12MHz時(shí),計(jì)數(shù)率=1000kHz,即每1s計(jì)數(shù)值加1.當(dāng)T/C工作在計(jì)數(shù)器時(shí),計(jì)數(shù)脈沖來(lái)自外部脈沖輸入管腳T0(P3.4或T1(P3.5,當(dāng)T0或T1腳上負(fù)跳變時(shí)計(jì)數(shù)值加1.識(shí)別管腳上的負(fù)跳變需兩個(gè)機(jī)器周期,即24個(gè)振蕩周期.所以T0或T1腳輸入的

13、可計(jì)數(shù)外部脈沖的最高頻率為1/24fosc,當(dāng)晶振為12MHZ時(shí),最高計(jì)數(shù)率為500kHz,高于此頻率將計(jì)數(shù)出錯(cuò).一,與T/C有關(guān)的SFR1,計(jì)數(shù)寄存器Th和TLT/C是16位的,計(jì)數(shù)寄存器由TH高8位和TL低8位構(gòu)成.在特殊功能寄存器(SFR中,對(duì)應(yīng)T/C0為TH0和TL0;對(duì)應(yīng)T/C1為TH1和TL1.定時(shí)器/計(jì)數(shù)器的初始值通過(guò)TH1/TH0和TL1/TL0設(shè)置.2,定時(shí)器/計(jì)數(shù)器控制寄存器TCON前面已介紹.二,與T/C有關(guān)的SFR3,T/C的方式控制寄存器TMOD.C/T:計(jì)數(shù)器或定時(shí)器選擇位;1為計(jì)數(shù)器;0為定時(shí)器.GATE:門控信號(hào);1T/C的啟動(dòng)受到雙重控制,即要求TR0/TR1

14、和INT0/INT1同時(shí)為高;0T/C的啟動(dòng)僅受TR0或TR1控制.GATE C/T M1M0GATE C/T M1M0D7D6D5D4D3D2D1D0T/C1T/C0三,四種工作方式M1M0方式功能00013位定時(shí)器/計(jì)數(shù)器,TL是低5位,TH是高8位01116位定時(shí)器/計(jì)數(shù)器102常數(shù)自動(dòng)重裝的8位定時(shí)器/計(jì)數(shù)器113僅用于T/C0,是兩個(gè)8位定時(shí)器/計(jì)數(shù)器利用定時(shí)器編寫時(shí)鐘程序.四,T/C工作方式的說(shuō)明1.方式0:當(dāng)TMOD中MlM0=00時(shí),T/C工作在方式0;方式0為13位的T/C,由TH的高8位,TL的低5位的計(jì)數(shù)值,滿計(jì)數(shù)值213,但啟動(dòng)前可以預(yù)置計(jì)數(shù)初值.若T/C開(kāi)中斷(ET=

15、1且CPU開(kāi)中斷(EA=1時(shí),則定時(shí)器/計(jì)數(shù)器溢出時(shí),CPU轉(zhuǎn)向中斷服務(wù)程序時(shí),且TF白動(dòng)清0.2.方式1:當(dāng)TMOD中MlM0=01時(shí),T/C工作在方式1;方式1與方式0基本相同.唯一區(qū)別在于計(jì)數(shù)寄存器的位數(shù)是16位的,由TH和TL寄存器各提供8位,滿計(jì)數(shù)值為216.四,T/C工作方式的說(shuō)明3.方式2:當(dāng)TMOD中MlM0=10時(shí),T/C工作在方式2;方式2是8位的可自動(dòng)重載的T/C,滿計(jì)數(shù)值為28;在方式0和方式1中,當(dāng)計(jì)數(shù)滿后,若要進(jìn)行下一次定時(shí)/計(jì)數(shù),須用軟件向TH和TL重裝預(yù)置計(jì)數(shù)初值;方式2中TH和TL被當(dāng)作兩個(gè)8位計(jì)數(shù)器,計(jì)數(shù)過(guò)程中,TH寄存8位初值并保持不變,由TL進(jìn)行8位計(jì)數(shù)

16、.計(jì)數(shù)溢出時(shí),除產(chǎn)生溢出中斷請(qǐng)求外,還自動(dòng)將TH中初值重裝到TL,即重裝載. 4.方式3:方式3只適合于T/C0.當(dāng)T/CO工作在方式3時(shí),TH0和TL0成為兩個(gè)獨(dú)立的8位計(jì)數(shù)器.五,定時(shí)器/計(jì)數(shù)器的初始化在使用8051的定時(shí)器/計(jì)數(shù)器前,應(yīng)對(duì)它進(jìn)行編程初始化,主要是對(duì)TCON和TMOD編程;計(jì)算和裝載T/C的計(jì)數(shù)初值.一般完成以下幾個(gè)步驟:(1確定T/C的工作方式編程TMOD寄存器;(2計(jì)算T/C中的計(jì)數(shù)初值,并裝載到TH和TL;(3T/C在中斷方式工作時(shí),須開(kāi)CPU中斷和源中斷編程IE寄存器;(4啟動(dòng)定時(shí)器/計(jì)數(shù)器編程TCON中TR1或TR0位.六,定時(shí)器/計(jì)數(shù)器的初值計(jì)算在定時(shí)器方式下,

17、T/C是對(duì)機(jī)器周期脈沖計(jì)數(shù)的,若fosc=12MHz,一個(gè)機(jī)器周期為12/fosc=1s,則:方式013位定時(shí)器最大定時(shí)間隔=213×1s=8.192ms;方式116位定時(shí)器最大定時(shí)間隔=216×1s=65.536ms;方式28位定時(shí)器最大定時(shí)間隔=28×1s=256s.若使T/C工作在定時(shí)器方式1,要求定時(shí)1ms,求計(jì)數(shù)初值.設(shè)計(jì)數(shù)初值為x,則有:(216-x×1s=1000s或x=216一1000因此,TH,TL可置-1000;即:TH=-1000/256;TL=-1000%256.對(duì)一般fosc有下列公式(設(shè)定時(shí)時(shí)間為times:(216-x

18、15;12/fosc=times例1,設(shè)單片機(jī)的fosc=12MHz,要求在P1.0腳上輸出周期為2ms的方波采用查詢方式.#includereg51.hsbit P1_0=P10;void main(voidTMOD=0x01;TR0=1;for(;TH0=-1000/256;TL0=-1000%256;dowhile(!TF0;P1_0=!P1_0;TF0=0;采用中斷方式.#includereg51.h>sbit P1_0=P10;void timer0(voidinterrupt1using1P1_0=!P1_0;TH0=-1000/256;TL0=-1000%256;void

19、main(voidTMOD=0x01;P1_0=0;TH0=-1000/256;TL0=-1000%256;EA=1;ET0=1;TR0=1;dowhile(1;例2,設(shè)單片機(jī)的fosc=6MHz,要求在P1.7腳上的指示燈亮一秒滅一秒. void main(voidP1_7=0;P1_0=1;TMOD=0x61;TH0=-50000/256;TL0=-50000%256;TH1=-5;TL1=-5;IP=0x08;EA=l;ET0=1;ET1=l;TR0=l;TR1=1;for(;#includesbit P1_0=P10;sbit P1_7=P17;void timer0(interrup

20、t1using1P1_0=!P1_0;TH0=-50000/256;TL0=-50000%256;void timer1(interrupt3using2P1_7=!P1_7;#define uchar unsigned charuchar time;uchar period=250;uchar high=50;void timer0(interrupt l using1TH0=-8333/256;TL0=-8333%256;if(+time=highP1=0;else if(time=periodtime=0;P1=1;void main(voidTMOD=0x01;TH0=-8333/25

21、6;TL0=-8333%256;EA=l;ET0=1;TR0=1;dowhile(1;#include#define uchar unsigned char#define uint unsigned intuchar time,status,percent,period;bit one_round;uint oldcount,target=500;void pulse(voidinterrupt1using lTH0=-833/256;TL0=-833%256;ET0=l;if(+time=percentP1=0;else if(time=100time=0;P2=l;void tachmet

22、er(voidinterrupt2using2unionuint word;structuchar hi;uchar lo;byte;newcount;newcount_byte.hi=TH1;newcount_byte.lo=TLl;period=newcount.word-oldcounts;oldcount=newcount.word;one-round=1;void main(voidIP=0x04;TMOD=0x01;TCON=0x54;TH1=0;TL1=0;IE=0x86;for(;if(one_roundif(periodif(percent0-percent;串行口8051系

23、列單片機(jī)有一個(gè)標(biāo)準(zhǔn)的串行通信接口,發(fā)送數(shù)據(jù)時(shí)由TXD端口送出,接收數(shù)據(jù)時(shí)由RXD 端口輸入.內(nèi)置兩個(gè)緩沖器SBUF,一個(gè)接受緩沖器,另一個(gè)是接收緩沖器,可實(shí)行全雙工的串行通信.近距離可直接用TTL電平,若與計(jì)算機(jī)通信,則需要將電平轉(zhuǎn)換成RS232電平形式,若需長(zhǎng)距離通信可以采用RS485電平形式,通信的數(shù)據(jù)必須通過(guò)軟件的編寫來(lái)完成.一,與串行口有關(guān)的SFR1,串行口控制寄存器SCONSM0SM1SM2REN TB8RB8TI RID7D6D5D4D3D2D1D0.SM0,SM1:串行口工作方式控制位(見(jiàn)書P158.SM2:多機(jī)通信控制位(方式2,3;1只有接收到第9位(RB8為1,RI才置位;

24、0接收到字符RI就置位.REN:串行口接收允許位;1允許串行口接收;0禁止串行口接收.TB8:方式2和方式3時(shí),為發(fā)送的第9位數(shù)據(jù),也可以作奇偶校驗(yàn)位.RB8:方式2和方式3時(shí),為接收到的第9位數(shù)據(jù);方式1時(shí),為接收到的停止位.TI:發(fā)送中斷標(biāo)志;由硬件置位,必須由軟件清0.RI:接收中斷標(biāo)志;由硬件置位,必須由軟件清0.一,與串行口有關(guān)的SFR2,電源控制寄存器PCONSMODD7D6D5D4D3D2D1D0PCON的第7位SMOD是與串行口的波特率設(shè)置有關(guān)的選擇位.SMOD:串行口波特率加倍位.1方式1,3波特率=定時(shí)器1溢出率/16;方式2波特率為fosc/32;0方式1,3波特率=定時(shí)

25、器1溢出率/32;方式2波特率為fosc/64.二,串行口的工作方式1.方式0方式0為移位寄存器輸入/輸出方式,串行數(shù)據(jù)通過(guò)RXD輸入/輸出,TXD則用于輸出移位時(shí)鐘脈沖.方式0時(shí),收發(fā)的數(shù)據(jù)為8位,低位在前.波特率固定為fosc/12,其中fosc為單片機(jī)外接晶振頻率.發(fā)送是以寫SBUF寄存器的指令開(kāi)始的,8位輸出結(jié)束時(shí)TI被置位.二,串行口的工作方式2.方式1方式1是10位異步通信方式,1位起始位(0,8位數(shù)據(jù)位和1位停止位(1.其中的起始位和停止位在發(fā)送時(shí)是自動(dòng)插入的.接收到的停止位為1;方式1的波特率是可變的,波特率可由以下計(jì)算公式計(jì)算得到:方式1波特率=2SMOD.(定時(shí)器1的溢出率

26、/32其中的SMOD為PCON的最高位.定時(shí)器1的方式0,1,2,都可以使用,其溢出率為定時(shí)時(shí)間的倒數(shù)值.二,串行口的工作方式3.方式2和方式3這兩種方式都是11位異步接收/發(fā)送方式,它們的操作過(guò)程完全一樣,所不同的是波特率:方式2波特率=2SMOD.(fosc/64;方式3波特率同方式1(定時(shí)器l作波特率發(fā)生器.三,串行口的初始化在使用串行口之前,應(yīng)對(duì)它進(jìn)行編程初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1,串行口控制和中斷控制寄存器.具體步驟如下:(1確定定時(shí)器1的工作方式編程TMOD寄存器;(2計(jì)算定時(shí)器1的初值裝載TH1,TL1,具體TH1和TL1的值可查表得到;(3啟動(dòng)定時(shí)器1編程TCON中

27、的TR1位,即置TR1為1;(4確定串行口的控制編程SCON;(5串行口在中斷方式工作時(shí),須開(kāi)CPU和源中斷編程IE寄存器.四,串行口舉例1#includereg51.h>#define uchar unsigned char#define uint unsigned int uchar idata trdata10= 'M','C','S','-','5','1', 0x0d, 0x0a,0x00; void main(void uchar i; uint j; TMOD=0x20; TL1=0xfd;TH1=0xfd; SCON=0xd8;PCON=0x00; TR1=1; while(1 i=0; while(trdatai!=0x00 SBUF=trdatai; while(TI=0; TI=0; i+; for (j=0;j void main(void unsigned char a; TMOD=Ox20; TL1=0xfd;TH1=0xfd; SCON=Oxd8;PCON=0x00; TR

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論