单片机按键控制led灯闪烁10次(单片机8个led灯交替闪烁程序)
单片机亮灯程序怎么让8盏灯亮10次然后不亮?
用51单片机来简单说明一下:
用8只LED代表8盏灯(D1~D8),限流电阻用一个9脚排阻RP1,原理图如下:
为了视觉观察观察方便,用一个500ms,也就是0.5秒的延时程序来间隔灯的亮灭变化。当然这个时间是可以自由修改的,修改成1秒的话也可以,只是LED亮灭变化快慢不同而已。
下面是延时程序:
void delay500ms(void) //@12.000MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 23;
j = 205;
k = 120;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//----------------------------
前面原理图采用P1端口驱动LED,定义LED端口为P1:
#define IO_LED P1
//---------------------------
当端口为0时灯亮,为1时熄灭,为了理解方便,用宏定义来定义LED亮灭,增加可读性,也便于理解,如下:
#define DATA_LED_OFF 0xff
#define DATA_LED_ON 0x00
(程序中写“DATA_LED_OFF”,在编译时编译器会自动编译“0xff”。)
//----------------------------
用for循环语句实现LED点亮和熄灭10次:
for(i = 0; i 10; i++)
{
IO_LED = DATA_LED_ON; //点亮LED
delay500ms();
IO_LED = DATA_LED_OFF; //熄灭LED
delay500ms();
}
//----------------------------------
完整的c源程序如下图:
以上仅供参考。
通过控制AT-89C51单片机P1口,控制LED灯的亮灭,
你好:
采用0.5s定时中断一次;
希望我的回答能帮助到你。
单片机控制8个LED灯,完成奇数灯亮偶数灯灭,然后偶数灯亮奇数灯灭,10次,用C语言编程
#includereg51.h
#includeintrins.h
#define uchar unsigned char
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i120;i++);
}
main()
{
uchar i,j;
for(i=0;i10;i++)
{
P0=0xaa;
delay(200);
P0=0x55;
delay(200);
}
for(i=0;i10;i++)
P0=0xfe;
{
for(j=0;j8;j++){P0=_crol_(P0,1);delay(200);}
}
while(1);
}
通过控制AT-89C 51单片机P1口,控制LED灯的亮与灭。每个LED闪烁10次,再移向下一个LED同样10次循环不止编
#includereg51.h
#define uchar unsigned char
#include intrins.h
void delay10ms()
{
int a,b;
for (a=300;a0;a--)
for (b=110;b0;b--);
}
void main()
{
uchar x;
uchar k=~0x01;
P1=0xff;
while(1)
{
for(x=0;x10;x++ )
{
P1=k;
delay10ms();
P1=0xff;
delay10ms();
}
k=_cror_(k,1);
if(x==9)
x=0;
}
}
单片机按键控制led灯闪烁10次的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于单片机8个led灯交替闪烁程序、单片机按键控制led灯闪烁10次的信息别忘了在本站进行查找喔。微信号:ymsc_2016
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~