‘壹’ 51单片机按键控制按下K1四个led灯循环亮,再按一下全灭,c程序怎么写
在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。
#include<reg51.h>
#include<intrins.h>
仿真图效果。
‘贰’ 请教一下STC单片机1秒钟内按2下按钮开关LED灯亮代码怎样写啊
很简单的。
循环(1){
检测按键,等待按下;
发现按下后,延时消抖,等待释放,然后执行下面的循环;
循环(1){ //循环检测1秒钟
发现按下后,灯亮,等待释放,然后就跳出循环;
延时10ms;
次数加一;
次数不到100,继续循环
到了100(即1s了),关灯,然后就跳出循环;
}
}
‘叁’ 单片机按下按键1,灯亮,按下按键2,灯灭,按下按键3,灯闪烁,求代码
主要程序如下:
flag是用来记忆按键状态,按下key3,flag置1,程序中检测到flag是1才闪烁,松手后LED仍然闪烁,同时下一轮还可以检测另外两个按键
while(1)
{
if(key1==0)//判断按键是否按下
{
Delay1ms(10);//延时消抖
if(key1==0)
{
while(key1==0);//等待按键抬起
LED=1;
flag=0;
}
}
if(key2==0)//判断按键是否按下
{
Delay1ms(10);//延时消抖
if(key2==0)
{
while(key2==0);//等待按键抬起
LED=0;
flag=0;
}
}
if(key3==0)//判断按键是否按下及是否在走时
{
Delay1ms(10);//延时消抖
if(key3==0)
{
while(key3==0);//等待按键抬起
flag=1;
}
if(flag==1)
{
LED=!LED;
Delay1ms(200);
}
}
‘肆’ 单片机开关闭合灯亮,开关断开灯灭
单片机程序问题,开关问题。
1、单片机程序问题:检查单片机的程序是否正确,是否存在逻辑错误或死循环等问题。
2、开关问题:检查开关是否正常,是否存在接触不良或损坏等问题,更换损坏的开关或清洁接触不良的开关。
‘伍’ 单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED暗!循环
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。
‘陆’ 单片机按下开关灯就亮,5秒后灭掉
//假设晶振12MHZ,按键输入P1.0,LED控制P2.0,都是低电平有效
#include "reg51.h"
unsigned int YSJS=0;
sbit KEY=P1^0;按键
sbit LED=P2^0;灯
void Timer1Init(void) //500微秒@12.000MHz
{
AUXR &= 0xBF; //定时器时钟12T模式
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x10; //设置定时器模式
TL1 = 0x0C; //设置定时初值
TH1 = 0xFE; //设置定时初值
TF1 = 0; //清除TF1标志
ET1 = 1; //使能定时器1中断
EA =1; //开总中断
}
void main(void)
{
LED=1;
while(1)
{
if(KEY==0)
{
LED=0;
TR1=1; //定时器1开始计时
}
}
}
void TIMER1(void) interrupt 3 //定时器1中断函数使用默认寄存器组
{
TH1 = 0XFE; //定时器1定时时间=500us
TL1 = 0X0C;
YSJS++;
if(YSJS==10000) //500uS*10000=5000000us=5s
{
LED=1;
TR1=0;
}
}