首先让8路LED灯闪烁3遍后熄灭,接着依次点亮LED灯,继电器吸合一会儿后断开,然后依次熄灭LED灯,蜂鸣器鸣叫一会儿后关闭,程序循环实现上述功能关闭,程序循环实现上述功能
//最简版本
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint t) //延时函数
{
while(t--);
while(t--);
}
void InitHC138(uchar n) //138锁存器选择函数
{
switch(n)
{
case 4:P2=(P2 & 0x1f) | 0x80; break;
case 5:P2=(P2 & 0x1f) | 0xa0; break;
case 6:P2=(P2 & 0x1f) | 0xc0; break;
case 7:P2=(P2 & 0x1f) | 0xe0; break;
}//原理后文讲解
}
void OutPutP0(uchar channel,uchar dat) //P0口输出函数
{
InitHC138(channel);
P0=dat;
}
void LEDrunning()
{
unsigned char i;
InitHC138(4); //Y4输出低电频
for(i=3;i>0;i--)
{
OutPutP0(4,0x00);
delay(60000);
delay(60000);
OutPutP0(4,0xff);
delay(60000);
delay(60000);
}
InitHC138(5); //Y5输出低电频
OutPutP0(5,0x40);
delay(60000);
delay(60000);
OutPutP0(5,0x00);
InitHC138(4); //Y4输出低电频
for(i=1;i<=8;i++)
{
OutPutP0(4,~(0xff<<i));
delay(60000);
delay(60000);
}
InitHC138(5); //Y5输出低电频
OutPutP0(5,0x40);
delay(60000);
delay(60000);
OutPutP0(5,0x00);
}
void InitSystem() //初始化函数--关闭无关设备蜂鸣器
{
InitHC138(5); //Y5输出低电频
OutPutP0(5,0x00);
}
void main()
{InitSystem();
while(1)
{
LEDrunning();
}
}
版权声明:本文为CSDN博主「私は受験する重今の男」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_53090305/article/details/121964691
暂无评论