单片机按键控制led灯亮灭的程序c语言(单片机开关控制led灯的亮灭汇编语言)
单片机 用C语言怎么编写用一个按钮,控制一盏灯的亮与灭的程序?
读取连接按键的IO口,判断是否为低电平,如果是,延时(十毫秒左右可以),再次读取IO口,判断是否为低电平,如果是则表示有有效的按键按下,接着用while判断等待按键释放,然后让连接led的IO口电平取反以控制其亮灭(是强电的灯可以通过此处控制继电器的合、闭来控制灯的亮灭)。参考程序:if(key==0){delayms(10);if(key==10){while(key==0);//等待按键释放,IO口恢复高电平led=!led;//按键控制程序}}
单片机编程:LED发光二极管的初始状态为亮。按一下按键,LED灯灭。再按一下,LED亮,用C语言编程该怎么写
#includereg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit KEY=P3^3; //定义按键输入端口
sbit LED=P1^2; //定义led输出端口
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
KEY=1; //按键输入端口电平置高
while (1) //主循环
{
if(!KEY) //如果检测到低电平,说明按键按下
LED=0;
else
LED=1; //这里使用if判断,如果按键按下led点亮,否则熄灭
//上述4句可以用一句替代 LED=KEY;
//主循环中添加其他需要一直工作的程序
}
}
单片机C语言按键控制LED灯
其实是一样的,也没什么哪个规范这一说,这个看个人习惯了
首先if(SW13==0)是判断此引脚是否为0 (按键按下)
然后一个delay用于按键防抖动
没被注释的那部分是靠if在次判断是否为0按下按下后执行LED_ON函数使LED亮
然后通过while判断按键是否松开,如果松开的话就继续执行LED_OFF将LED关闭
而注释掉的那段是依靠while函数直接判断按键是否处于按下状态
是的话就循环执行LED_ON函数直至判断按键松开(SW13=1)后在继续执行到LED_OFF函数使LED 关闭
不过这两种写法的有个共同缺点就是按键判断是while死循环,如果你这个按键按下后,单片机就只是在判断这个条件成立与否,期间不在进行其他工作
求一单片机c语言程序:两个按键控制两个led,按键按住不放led闪烁,松手led熄灭
一个按键时程序如下:
while(1)
{
if(key==0)//按键按下
{ delayms(20);//延时消抖
if(key==0)//再次判断按键是否按下
{
while(key==0)//按键没有抬起
{ led=!led; delayms(200);}//LED闪烁
}
}
else led=0;
}
用C语言编写一个单片机控制LED灯闪烁变化的编程 急用!!!!!!!!!
C语言实现LED灯闪烁控制配套51单片机开发板。
#include //包含单片机寄存器的头文件
/****************************************
函数功能:延时一段时间
*****************************************/
void delay(void) //两个void意思分别为无需返回值,没有参数传递。
{
unsigned int i; //定义无符号整数,最大取值范围65535。
for(i=0;i20000;i++) //做20000次空循环。
; //什么也不做,等待一个机器周期。
}
/*******************************************************
函数功能:主函数 (C语言规定必须有也只能有1个主函数)。
********************************************************/
void main(void)
{
while(1) //无限循环。
{
P0=0xfe; //P1=1111 1110B, P0.0输出低电平。
delay(); //延时一段时间。
P0=0xff; //P1=1111 1111B, P0.0输出高电平。
delay(); //延时一段时间。
}
}
单片机驱动LED灯的源程序:
#includereg52.h //头文件。
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P1^7; //位定义。
void delay_ms(uint);//mS级带参数延时函数。
void main()
{
while(1)
{
LED1=0;
delay_ms(1000);
LED1=1;
delay_ms(1000);
}
}
void delay_ms(uint z) //延时子程序
{
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
扩展资料:
单片机应用分类:
通用型:
这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
总线型:
这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。
另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
控制型:
这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型。
通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
参考资料来源:百度百科-单片机
51单片机按键控制按下K1四个led灯循环亮,再按一下全灭,c程序怎么写
在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。
#includereg51.h
#includeintrins.h
仿真图效果。
关于单片机按键控制led灯亮灭的程序c语言和单片机开关控制led灯的亮灭汇编语言的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。微信号:ymsc_2016
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~