Ⅰ 如何实现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
}
}
}
}