日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

keil流水灯c语言程序两个一起亮,我用keil c51编了一个流水灯程序,编译无误却只有第一和第二个灯亮了,最后停在第一个灯处不动...

發布時間:2024/9/27 编程问答 39 豆豆

滿意答案

zJ張儉

2014.02.09

采納率:43%????等級:12

已幫助:10469人

你有幾個錯誤:

1 你的定時器沒有重裝,導致第一次中斷和后面的中斷時間不一樣,第一次時間短,后面的時間一直是以65536個周期中斷的.

2 你在中斷函數里用了 for 循環,for循環是一下子就執行完了的,而不是你想象的每中斷一次才執行一次.

for(a=0;a<8;a++)

{

P1=(P1<<1)+1; //----這一句,使得你的第二個燈亮,其實第三,四,五個都亮了,但是因為你的

//----For循環太快了,你看不出來

};

if(a==8) //---執行完for之后,a肯定等于8,所以執行下面的,結果就是第一個燈亮

P1=0xfe;

3 我給你改正的,程序:功能是先是第一個燈亮,再是第一個燈滅,亮2,然后2滅,亮3.....

void time1() interrupt 3

{

tt++;

if(tt==10)

{

tt = 0; //---這句表示中斷10次換一個燈,不可少

//----如果沒有這句tt = 0,則成了中斷256次才換一個燈

P1 =~(1<

//---最好要自己思考,想明白

aa++;

aa &= 0x07;

}

//----別忘記裝入初值,你這個應該是10ms中斷,然后是100ms換一次燈

//-----如果你不裝初值,就成了 65.536ms中斷一次,再加上你前面不加上 tt = 0;

//------就成了16秒才換一次燈

TH1=0xd8;

TL1=0xf0;

}

10分享舉報

總結

以上是生活随笔為你收集整理的keil流水灯c语言程序两个一起亮,我用keil c51编了一个流水灯程序,编译无误却只有第一和第二个灯亮了,最后停在第一个灯处不动...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。