标题:
51单片机霹雳灯示例(Proteus仿真电路,C语言程序代码)
[打印本页]
作者:
abba
时间:
2020-12-5 22:37
标题:
51单片机霹雳灯示例(Proteus仿真电路,C语言程序代码)
功能:按键按下,P2连接的led灯呈现来回闪烁的霹雳灯现象。
下面是Proteus仿真电路
霹雳灯.jpg
(244.92 KB, 下载次数: 60)
下载附件
2020-12-5 22:33 上传
(注:没画最小系统)
下面为C语言程序
#include<reg51.h>
#define LED P2
void delay100ms(void) ;
void delay10ms(void) ;
sbit S1=P1^0;
main()
{
unsigned char i;
LED=0xff;
while(1)
{
if(S1==0)
{
delay10ms();
if(S1==0 )
{
LED=0xfe;
delay100ms();
for(i=0;i<7;i++)
{
delay100ms();
LED=(LED<<1)|0x01;
}
for(i=0;i<7;i++)
{
delay100ms();
LED=(LED>>1)|0x80;
}
LED=0xff;
LED=0xfd;
for(i=0;i<5;i++)
{
delay100ms();
LED=(LED<<1)|0x03;
}
for(i=0;i<5;i++)
{
delay100ms();
LED=(LED>>1)|0xc0;
}
LED=0xff;
LED=0xfb;
for(i=0;i<3;i++)
{
delay100ms();
LED=(LED<<1)|0x07;
}
for(i=0;i<3;i++)
{
delay100ms();
LED=(LED>>1)|0xcf0;
}
LED=0xff;
for(i=0;i<3;i++)
{
LED=0x00;
delay100ms();
LED=0xff;
delay100ms();
}
}
}
}
}
void delay100ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=130;a>0;a--);
}
void delay10ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
下面附件有仿真电路和程序代码
霹雳灯.zip
(42.69 KB, 下载次数: 25)
2020-12-5 22:37 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
1145748255
时间:
2022-3-30 11:52
for(a=130;a>0;a--);
}
void delay10ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1