Ⅰ 如何實現51單片機的按鍵k1按下,LED流水燈向右移動,按鍵k2被按下,LED流水燈向左移動
51單片機實現方法:
按鍵控制標志位flag取反。
然後把下面的代碼放到循環里:
U8 temp0 = 1。
U8 temp1 = 0x80。
U8 i = 0。
if(flag == 1)。
{。
for(i=0;i<8;i++)。
{。
P1=temp0<<i。
}。
}。
else。
{。
for(i=0;i<8;i++)。
{。
P1=temp1>>i。
}。
}。
}。
對控制LED口的寄存器進行位操作,按k1左移,按K2就是右移了。
51單片機是對兼容英特爾8051指令系統的單片機的統稱。51單片機廣泛應用於家用電器、汽車、工業測控、通信設備中。因為51單片機的指令系統、內部結構相對簡單,所以國內許多高校用其進行單片機入門教學。
51單片機的特點:
同樣的一段程序,在各個單片機廠家的硬體上運行的結果都是一樣的,如ATMEL的89C51(已經停產)、89S51,PHILIPS,和WINBOND等,我們常說的已經停產的89C51指的是ATMEL公司的AT89C51單片機。
同時是在原基礎上增強了許多特性,如時鍾,更優秀的是由Flash(程序存儲器的內容至少可以改寫1000次)存儲器取代了原來的ROM(一次性寫入),AT89C51的性能相對於8051已經算是非常優越的了。
Ⅱ 怎麼用QX-MCS51單片機開發板實現按鈕互鎖。按鈕k1控制燈D1xz.net,k2控制燈D2
主要軟體實現。
K1按下時,D2翻轉;同理K2
Ⅲ 單片機C語言 兩個按鍵控制8位花樣流水燈,P1.0接按鍵k1,P1.1接按鍵k2,P0口的8位接8個發光二極體的陰極
1、設定一個標志位,由K2控制,按下一次標志位加1,共1、2、3 三個標志位;
2、設P0=0XFE;
3、如果標志位為1,P0循環右移1位;
4、如果標志位為2,P0循環左移1位;
5、如果標志位為3,P0=0XFC,然後循環右移2位;
Ⅳ 51單片機怎麼用三個按鍵控制分別為時鍾,秒錶,倒計時
假如三個按鍵分別為k1,k2,k3。
用k1選擇3個功能,按一下切換一個功能。
在時鍾狀態下,用k2選擇調節位,用於調時,分別選小時的十位,個位,分的十位,個位,開始計時這5個狀態。k3調節位加一,只能按加一調節了。
在秒錶狀態下,k2為計時和停止切換。k3為清0。
在倒計時狀態下,k2和k3作用與秒錶相同。倒計時初始值只好固定的。
Ⅳ 單片機匯編語言按鍵控制流水燈,兩個開關k1,k2。實現功能按下k1,流水燈左移動,按下k2,流水燈右移動。
K1EQUP1.0
K2EQUP1.1
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVA,#0FEH
CLR00H
CLR01H
LOOP:
JBK1,LOOP1
SETB00H
CLR01H
SJMPLOOP
LOOP1:
JBK2,LOOP2
SETB01H
CLR00H
LOOP2:
JB01H,LOOP3
JB00H,LOOP4
SJMPMAIN
LOOP3:
MOVP0,A
RRA
LCALLDELAY
SJMPLOOP
LOOP4:
MOVP0,A
RLA
LCALLDELAY
SJMPLOOP
DELAY:
MOVR2,#200
DLY:
MOVR3,#250
DJNZR3,$
DJNZR2,DLY
RET
END
Ⅵ 51單片機,1602動態顯示時鍾,有獨立按鍵(3個k1,k2,k3)分別控制選擇,加1,減一
你好,
我這又一個參考程序,是用郭天祥的TX-1C開發板寫的,有3個按鍵,調節游標,時間加,時間減。引腳方便可以根據自己的開發板更改,其他程序內容不變。
希望我的回答能幫助到你。
Ⅶ 誰知道用單片機如何點下K1、K2、K3、K4來控制四盞燈 要求點下時不亮鬆手才亮。 要求用SWITCH語句。急用!
main()
{
unsigned char i;
P1 &= 0xC3;//所有的燈亮
while()
{
while(P3&0x3C==0x3C);//同時檢測4個按鍵
i = P3 & 0x3C;//有按鍵按下,讀取鍵值
delay();//按鍵去抖延時10 - 50ms,自己定
if(P3 & 0x3C == i)//按鍵確認
{
switch(i)
{
case 0x38:P1^0 = 1;while(!P3^2);P1^0 = 0;break;//按鍵K1按下燈滅,等待按鍵松開D1亮
case 0x34:P1^1 = 1;while(!P3^3);P1^1 = 0;break;//k2
case 0x2C:P1^2 = 1;while(!P3^4);P1^2 = 0;break;//K3
case 0x1C:P1^3 = 1;while(!P3^5);P1^3 = 0;//K4
}
}
}
}