#include<reg52.h>
void init_LED_buss()
{
P0=0xff;
P2=(P2 &0x1f) |0x80;
P2 &=0x1f;
P0=0x00;
P2=(P2 &0x1f) |0xa0;
P2 &=0x1f;
}
void hc138(unsigned char cannl)
{
switch(cannl)
{
case 4:P2=(P2 &0x1f) |0x80;break;
case 5:P2=(P2 &0x1f) |0xa0;break;
}
}
void delay(unsigned char t)
{
while(t--);
}
void Display()
{
unsigned char Time,i;
for(Time=0;Time<100;Time++)
{
for(i=0;i<80;i++)
{
P0=0x00;
delay(Time);
P0=0xff;
delay(100-Time);
}
}
for(Time=100;Time>0;Time--)
{
for(i=0;i<80;i++)
{
P0=0x00;
delay(Time);
P0=0xff;
delay(100-Time);
}
}
}
void main()
{
init_LED_buss();
hc138(4);
while(1)
{
Display();
}
}
【蓝桥杯单片机】LED的基本操作(呼吸灯)
最新推荐文章于 2023-11-25 21:05:58 发布
这篇博客介绍了使用8051单片机和HC138译码器实现LED灯控制的初始化过程,展示了如何通过cannl参数切换不同LED通道,并利用定时器创建交替亮灭效果。核心代码涉及P0口配置、HC138控制和延时函数。
摘要由CSDN通过智能技术生成