日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]這是寫的一個簡單的測試定時器0的程序:要實現(xiàn)的目標(biāo)是,LED第一個跟第二個燈先循環(huán)亮起,第三盞燈則以間隔一秒鐘的時間亮起一次,其中,第三盞燈的亮起時間以定時器0的中斷來執(zhí)行,里邊有亮點需要注意。一、不要忘記

這是寫的一個簡單的測試定時器0的程序:要實現(xiàn)的目標(biāo)是,LED第一個跟第二個燈先循環(huán)亮起,第三盞燈則以間隔一秒鐘的時間亮起一次,其中,第三盞燈的亮起時間以定時器0的中斷來執(zhí)行,里邊有亮點需要注意。

一、不要忘記中斷程序中進if語句中的后的tt清零

二、不要忘了把定時器里邊的語句回歸哦,否則老是認(rèn)為中斷服務(wù)程序沒返回主函數(shù)呢

三、這個if語句不應(yīng)寫在主函數(shù)中,因為如果寫在主函數(shù)中,時序會出現(xiàn)問題。因為如果在main函數(shù)中的話,前邊的幾個delay時間會與定時器定的準(zhǔn)確時間產(chǎn)生時序問題,因為delay()的時間長,早過了20個tt時間了,所以會出現(xiàn)時序問題!

四、另外,那個delay函數(shù)的時間也有問題,我還得重新調(diào)試下!

五、注意定時器0的初始化,中斷函數(shù)不需聲明等。

# include
# define uint unsigned int
# define uchar unsigned char
sbit P21=P2^0;
sbit P22=P2^1;
sbit P23=P2^2;
void delay(uint z); //延時函數(shù)聲明
uchar tt;

void main ()
{
TMOD=0x01; //定時器0初始化
TH0=(65536-50000)/256;//約為50ms
TL0=(65536-50000)%256;
EA=1; //開總中斷
ET0=1; //開定時器0中斷
TR0=1; //啟動定時器工作 */

while(1)
{
P23=1; //不要忘了把定時器里邊的語句回歸哦,否則
//老是認(rèn)為中斷服務(wù)程序沒返回主函數(shù)呢
P21=0; //如果是50*20ms=1秒時候,觸發(fā)中斷
delay(2000); //P21與P22以約為1秒的時間間隔閃爍
P21=1;
delay(2000);
P22=0;
delay(2000);
P22=1;
delay(2000);
}
}

void delay(uint z) //延時函數(shù),約為1秒
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void timer0() interrupt 1 //定時器0中斷服務(wù)函數(shù)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==20) //這個if語句不應(yīng)寫在主函數(shù)中,因為如果
{ //寫在主函數(shù)中,時序會出現(xiàn)問題
tt=0; //千萬不要忘記tt清零哇?。。?!
P23=0;
delay(2000); //delay()函數(shù)還要調(diào)試,因為
//延時時間不是按照()中的數(shù)字遞增而遞增的
P21=1;
delay(2000);
P22=1;
delay(2000);
}
}


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉