導航:首頁 > 編程語言 > 中斷led顯示程序

中斷led顯示程序

發布時間:2025-08-11 18:48:37

⑴ 單片機c語言程序高手進 這個程序應該怎樣實現中斷

給你個思路吧。
首先來個鍵盤掃描程序。採集是A鍵按下還是B鍵按下。如果是A鍵按下的話,就給LED1口輸出高電平然後延時1S,延時程序可以用delay來粗略延時,也可以用定時器精確延時;延時1S過後,讓LED1口輸出低電平,然後再延時1S。給這段程序用while或者for語句來循環5次,這樣就能得到啟動LED1(1S閃爍一次,持續10S)的動作了;
然後再這段語句後面啟動另一個定時器,用來定時20S。可以讓這個定時器定時50ms,然後循環變數加400次,就是20S的定時了。
在此期間,如果A鍵又按下了,就判斷看定時器是否循環超過400次,如果超過了,就說明A鍵按下距離前一個狀態已經超過20S了,這樣的話,就重復 啟動LED1(1S閃爍一次,持續10S)的動作,如果循環變數沒超過400次的話,就說明 20S內A鍵已經被再按一次了,這樣的話,就執行 LED2(0.5秒閃爍一次,持續20S) 這個動作。
而LED2(0.5秒閃爍一次,持續20S)的程序就是 LED2的IO口輸出高電平,然後延時0.5秒,然後LED2口輸出低電平,延時0.5秒。之後再用while或者for語句,循環這段程序10次,就能完成 LED2(0.5秒閃爍一次,持續20S)這個動作了。
當然,再鍵盤掃描程序中,如果按下的是B鍵的話,就直接讓LED2口輸出高電平。這樣,LED2就會一直亮了

⑵ 單片機C語言定時中斷LED燈程序求修改

#include<reg52.h>
sbit P00=P0^復0;
sbit key=P1^0;
unsigned int i=0;
void main(void)
{
TMOD=0x10;//設定定時器制的工作模式為定時器1方式1
TH1=15536/256;//向定時器裝入初值高八位
TL1=15536%256;//向定時器裝入初值低八位
EA=1;//開總開關
ET1=1;//開分開關
TR1=1;//啟動定時器
while(1)
{
if(key==0)TR1=0;

else TR1=1;

}
}
void t1(void) interrupt 3//定時器0服務函數
{
TH1=15536/256;//向定時器裝入初值高八位
TL1=15536%256;//向定時器裝入初值低八位

if(++i==30)//延時1.5S
{
i=0;
P00=~P00;//閃爍
}
}

閱讀全文

與中斷led顯示程序相關的資料

熱點內容
荒漠屠夫78版本 瀏覽:985
網站怎麼記住信息 瀏覽:543
在哪裡去學編程 瀏覽:172
遠程不能復制文件 瀏覽:578
c51中多位元組數據採用什麼格式 瀏覽:462
無線網路非常卡 瀏覽:449
win10鎖屏界面幻燈片文件夾是空的 瀏覽:653
appstore圖標大小 瀏覽:22
有jk鬧鍾的界面是什麼app 瀏覽:333
失效的文件可以在哪裡找到 瀏覽:834
怎麼往微信群里發文件 瀏覽:270
火柴人聯盟100版本 瀏覽:970
qq超市14店擺法 瀏覽:499
中斷led顯示程序 瀏覽:212
為什麼ps的jpg文件很大 瀏覽:495
js捕獲異常的方法 瀏覽:941
extjsgrid批量選中 瀏覽:47
數據線注塑機成形多少錢一個頭 瀏覽:525
cass怎麼載入工具條 瀏覽:338
java取消注釋 瀏覽:423

友情鏈接