51单片机独立按键控制led灯(51单片机独立按键控制led灯左右移动汇编)
51单片机按键控制LED?
定时器让LED引脚输出高低变化的电平,在主函数里判断按键是否按下,如果按下就让LED引脚保持并关闭定时中断。
第二种方法是 主函数里让LED引脚输出高低变化电平,按键用外部中断。
c51单片机:两个独立按键控制一个led,k1按下松开led闪烁,k2按下松开led灭?
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit led=P2^0;//把所要控制的led灯定义为p2.0这个口
sbit k1=P2^1;
sbit k2=P2^2;
void delay(u16 i)
{
while(i--);
}//一个延时程序
void main()
{
if(k1==1)
while(1)
{
led=1;
delay(50000); //大约延时450ms
led=0;
if(k2==1)
break;
}
led=0;
}
思路很简单,就是用检测的方法去扫描相应的按键是否被触发,然后执行相应的子程序。
单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED暗!循环
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。
2、编写相应的代码:#includereg52.h //定义单片机的头文件sbit led=P2^0; //定义单片机的管脚,void main(void) //主函数{ while(1) //无限循环 {led=0x1f; //点亮前面三个灯。这里是十六进制的换算, //不懂得可以查一下资料 }。
3、打开烧写软件,点击【打开文件】,寻找刚刚编写的程序。
4、找到相应的文件夹以后,寻找HEX文件。这是所能烧写软件识别的程序。
5、找到程序以后,将单片机连接到电脑,并点击程序下载,将程序烧写进单片机。
6、程序下载进单片机以后就能够看到八个led点亮了前面三个。
51单片机 2个独立按键控制一个led
//k3是总开关,k1是二级开关。
//先按下k3,然后按下 k1,灯亮灭交替。
//--------------------------------------
//应该先检测二级开关 K1。
//发现 K1 按下后,再检测 K3 是不是已经在按着。
if(!k1) { //先检测二级开关
delay1(10); //消抖
if(!k1) {
while(!k1); //等待松开
//松开后,再检测 k3:
if(!k3) { //再检测总开关
delay1(10); //消抖
if(!k3) {
while(!k3);//等待松开
LED = ~LED;//亮灭交替
}
}
}
}
51单片机的按键控制小灯亮灭的问题(程序类型:c语言)怎么解决?
#include
#define uint unsigned int
sbit LED = P1^0;
sbit KEY1 = P1^2;
void delay(uint);
void main(void)
{
LED = 1; //初始化LED熄灭
KEY1 = 1; //赋值KEY1高电平
while(1)
{
if(!KEY1) //检测到按键按下
{
LED = ~LED; /*LED取反,此时LED = 0,灯亮。当松手时,KEY1 = 1,不满足if语句不
进入循环,LED继续保持当前状态即LED = 0,如果再次按下按键,此时检测到KEY1 = 0,进入循
环,LED取反得到LED = 0,灯亮。*/
delay(500); /*此处延迟,保证连续两次按键动作处在程序的延时过程中,不进行其他程序从而不会影响小灯。*/
}
}
}
void delay(uint z) //延时函数
{
uint x, y;
for(x=85; x0; x--)
for(y=z; y0; y--);
}
可下载到单片机验证。
关于51单片机独立按键控制led灯和51单片机独立按键控制led灯左右移动汇编的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。微信号:ymsc_2016
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~