STC89C52RC单片机控制流水灯
时间:2022-10-30 18:30:00
本项目采用STC89C52RC单片机控制P1口连接的8个LED流水灯控制系统的设计和生产。源文连接:基于STC89C52RC流水灯设计。
流水灯控制系统设计电路:
设计要求:首先点亮连接P1.7引脚的LED灯延迟一段时间后熄灭,然后点亮连接P1.6引脚连接的LED灯,延迟一段时间后熄灭,这次按照这个顺序点亮每一个LED直到直到最后一个连接到点亮P1.0引脚的发光LED等,再从P1.7引脚的LED灯开始点亮,循环不止,产生动态显示的流水控制效果。
流水灯控制系统的源程序如下:
///程序功能:采用库函数实现的流水灯控制程序
#include
#include
//函数名:delay
//函数功能:实现软件延迟
//形式参数:无符号整形变量i,控制空循环的循环次数
//返回值:没有
void delay(unsigned int i) //定义延迟函数
{ unsigned int k;
for (k=0;k }
void main() //主函数
{ ///主程序开始
P1 = 0x7F; //P1端口输出0x7F
while(1) //无限循环
{ ///
P1 = _cror_(P1,1); //调用内部函数_cror_(),将P二进制数值循环右移
delay(5000); //延时
} ///
} //结束控制程序
程序通过向P1口写入8位二进制数,以改变每个引脚的输出状态,从而控制8个发光二极管的亮灭。其中,P1=0x7F,将P1口的8位设置为011111111输出,点亮P1.七引脚连接的发光二极管。内部函数可以通过_cror_()实现循环右移功能P1端口在01111111、10111111…通过1111110之间的变化while重复执行循环语句,实现状态循环的右移和延迟,从而达到流水灯的效果。