单片机学习——LED跑马灯设计(自用)
使用元件:51单片机、138译码器、573锁存器、LED灯
硬件设计思路:通过p25、p26、p27口输入二进制数,输入的二进制编码通过或非门输出到锁存器Yn口(IO扩展开发模式)。Yn口控制锁存器是否在工作状态(LE引脚为高电平时在工作状态)。锁存器P0口接LED灯,通过软件编程实现对LED灯亮的控制。
软件部分:
#include "reg52.h"
sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7; //控制二进制数译码器输入的串口
void delay(unsigned int t)
{
while(t--);
while(t--);
} //流水灯必备的延时
void LEDrunning()
{
unsigned char i ;
HC138_A = 0;
HC138_B = 0;
HC138_C = 1; //100控制二进制4输入
for(i=1;i<3;i++)
{
P0=0x00; //低电平,开灯
delay(60000);
delay(60000);
P0=0xff; //高电平,关灯
delay(60000);
delay(60000);
} //闪烁三次
for(i=1;i<=8;i++) //for循环做移位函数
{
P0=0xff << i; //高电平左移,控制灯开
delay(60000);
delay(60000);
}
for(i=1;i<=8;i++)
{
P0=-(0xff << i); //低电平右移,控制灯关
delay(60000);
delay(60000);
}
}
void main()
{
while (1)
{
LEDrunning() ;
}
}