㈠ 51單片機 按鍵按下去 計數一次 程序應該怎麼寫
在按鍵按下後,用循環語句,等待抬起計數
if(按鍵按下)
{
延時;
if(按鍵按下)
{
while(按鍵沒有松開);//如果按鍵沒有松開,程序會停在這里
count++;//按鍵松開後,程序會運行到這里,計數值加1
}
}
㈡ 單片機c語言編了個流水燈,用按鍵怎麼實現它暫停。
實現流水燈的方式有很多種(中斷,定時器,延時等等),看用哪種方式,最簡單的是延時做流水燈,那麼在死循環裡面增加按鍵檢測,判斷出有按鍵按下來時,再進入死循環,程序不往下走就可以暫停,再按跌出死循團拍世環。
#include //51系列單片機定義文件
#define uchar unsigned char //定義無符號字元
#define uint unsigned int //定義無符號整數
void delay(uint); //聲明延時函數
void main(void)
{
uint i;
uchar temp;
uint Flag1=0; 按鍵標志位
uint Flag2=0;
while(1)
{
Flag1 = keyscan();
if(Flag1==1)(Flag2=~Flag2); //如果一旦檢測到一次按鍵掃描就把標志位2 打開;再次就關閉;
if(Flag2==1)// 如果標志位打開就開始流水燈
{
temp=0x01;
for(i=0;i<8;i++) //8個流水燈逐個閃動
{
P1=~temp;
delay(100); //調用延時函數
temp<<=1;
}
}
(2)51單片機通過按鍵暫停程序擴展閱讀:
單片機編程就是硬體賀瞎是單片機,基於單片機進行的程序開發,在有周圍外設支持的情況下,用軟體來控制的部分通過單片機編程來實現。單片機能識別的語言是硬體語言即匯編,因此編程就是圍繞匯編來實現,有直接用匯編程序來編寫的,但是較難調試的編寫,特別是一上規模就更不易實現,因此常用塌肢高級語言來寫然後通過編譯器轉化成匯編。
㈢ 51單片機LED按鍵延時3秒一次點亮,取反按鍵依次熄滅程序是怎麼寫的
現功能:按下按鍵三個全亮,在按下LED2滅,再按下三個LED全滅,如此循環,相當於三檔,第三檔是停止。第一檔和第二檔定時5S,5S終了,停止運行,如果此時再按1次則回到第一檔。如果5S之內按下,則切換到下一檔,實現功能:按下按鍵三個全亮,在按下LED2滅,再按下三個LED全滅,如此循環,相當於三檔,第三檔是停止。第一檔和第二檔定時5S,5S終了,停止運行,如果此時再按1次則回到第一檔。如果5S之內按下,則切換到下一檔。