1樓:匿名使用者
你沒有鬆手監測呀!就是在按鍵處理程式後要加一個while(k1!=0);就是隻有你鬆開按鍵後才認為本次按鍵執行完畢,不然就會一直重複執行按鍵按下的程式,那麼你的d1一直就會執行亮滅操作!
2樓:匿名使用者
1、你看看微控制器資料手冊你的微控制器p0口內部上拉沒,一般的微控制器p0口都是沒上拉的,使用p0口一般都需要外部上拉。要麼不使用p0口。
2、程式要寫工整點,賣相真不好。
3、就按教科書的寫程式如下:
#include
#include
typedef unsigned char byte;
typedef unsigned int word;
sbit k1 = p2^0;
sbit led_out = p0^0;
void keyscan();
void delayms(word z);
void main()
void keyscan()}}
void delayms(word z)
//我表示抄樓上一個延時函式鴨梨山大,x>0後面是逗號,第二個for迴圈後面沒分號。
3樓:匿名使用者
你沒要延遲去抖動
void delay(uint z)
delay(20) 在你的按鍵那個地方延遲20就好了if(s1==0)
delay(20)
if(s1==0)
d1=!d1
4樓:匿名使用者
while(!k1);//等待放開才繼續.
5樓:匿名使用者
#include
sbit p32=p3^2;
main () }
if(x==1)
p0=0x00;
else
p0=0xff;}}
51微控制器怎麼用c語言寫一個按鈕控制一個led的閃爍,按一下開始閃爍,再按就滅掉
6樓:匿名使用者
bit flash;//閃爍標誌位
sbit led=p0^0;
sbit p01=p0^1;
sbit p02=p0^2;
void main()
}void scankey()//鍵盤掃描//按住按鍵的動作
flash=~flash;//按鍵按下後執行動作}}}void ledflash()
else led=0;
}void delay(unsigned int i)這個程式是現寫的。。應該能執行,有些細節沒有寫,自己修改下,只是個大框而已(比如函式宣告,定義埠什麼的)
7樓:流13氓2兔
#include
sbit x=p3^0;//p3.0接按鈕sbit y=p1^0;//p1.0接ledvoid main()
y=0;//停止閃爍}}
注意我是在keil c裡面編寫的,你要注意電路圖的電平
8樓:匿名使用者
sbit key = p1_0;
sbit led = p1_1;
#define led_on 0
main()
while(!key)
}上面這個是按下閃,鬆開滅的程式,稍微改一下,就可以做到要求的功能。
main()
while( key )
while( ! key )
while( key )}
9樓:匿名使用者
用一箇中斷子程式和閃爍燈主程式。
求一微控制器c語言程式:兩個按鍵控制兩個led key1按一下led1亮 再按一下led1滅 key2按下led2亮 led1滅
10樓:取綽號好難
按一下是有push and release 事件,要計算bounce?
要用interrupt 或是polling?
既然是微控制器,就用interrupt表示,再寫下流程圖,根據流程圖寫功能程式
byte key1=0,key2=0;
irq key1()
irq key2()
while(1)
else
if(key2)}
11樓:做而論道
#include
sbit key1 = p1^0;
sbit key2 = p1^1;
sbit led1 = p1^2;
sbit led2 = p1^3;
void delay(unsigned int x)//key1按一下led1亮 再按一下led1滅//key2按下led2亮 led1滅
main()
else } } }
}//--------------------------------
#include
sbit key1 = p1^0;
sbit key2 = p1^1;
sbit led1 = p1^2;
sbit led2 = p1^3;
void delay(unsigned int x)main()
}if(!key2) }}}
12樓:
while(1)
微控制器用c語言,按鈕控制一個led燈,要求按下鬆開,led亮,按下鬆開,led暗!迴圈
13樓:自我程式設計
你要什麼微控制器
。我這裡只能用51微控制器(晶振11.0592mhz)演示比如我將按鈕連p1.6,led連p1.7。如下圖:
那你**裡,只要寫一個延遲函式,主函式迴圈檢查按鈕,按鈕彈起時p1.7取反就行。
//大致**如下:
#include
sbit k1=p1^6;
sbit led=p1^7;
void delay(uint xms);
void main() }
}}void delay(uint xms)
微控制器C51C程式問題,求翻譯成微控制器程式語言
現在都用c語言 編寫微控制器程式,c語言就是程式語言,而且是高階語言,易懂易讀,是單片版機程式設計的最好的語言權了。而你說的翻譯,是要翻譯成組合語言程式吧。如果你看不懂c語言程式,只學了組合語言,這種現象還很多,因很多學校還在講組合語言 其實非常落後 那你用keil 編譯這個程式時,選中生成彙編 就...
微控制器c語言延時程式,51微控制器C語言中delay函式是怎麼定義和使用的?
用定時器 可以衍生出定時中斷和標記迴圈查詢法 還有直接用軟體語句硬性延時 這個需要實際測試和調校過才比較準 但不管是哪一種,其最終 還是要依據微控制器工作頻率,具體的需要解釋太多,你還是看看對應微控制器的datasheet的各模組說明吧 可以用for迴圈延時 但是精度不夠 最好用定時器中斷 比如用定...
急!急!急!請高手幫忙編寫C語言的微控制器程式設計。。要能通過的謝啦
先看懂一下程式再說,一下程式是除錯成功的時鐘程式 你在這個基礎上一定能改出來的 include include define uchar unsigned char define uint unsigned int 12864 埠定義 sbit rs p3 5 資料指令選擇輸入 sbit en p3...