锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

STC89C52RC单片机控制流水灯

时间:2022-10-30 18:30:00 89二极管

本项目采用STC89C52RC单片机控制P1口连接的8个LED流水灯控制系统的设计和生产。源文连接:基于STC89C52RC流水灯设计。

流水灯控制系统设计电路:

图片

设计要求:首先点亮连接P1.7引脚的LED灯延迟一段时间后熄灭,然后点亮连接P1.6引脚连接的LED灯,延迟一段时间后熄灭,这次按照这个顺序点亮每一个LED直到直到最后一个连接到点亮P1.0引脚的发光LED等,再从P1.7引脚的LED灯开始点亮,循环不止,产生动态显示的流水控制效果。

流水灯控制系统的源程序如下:

///程序功能:采用库函数实现的流水灯控制程序
#include//包含头文件reg51.h,定义了51单片机专用寄存器
#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重复执行循环语句,实现状态循环的右移和延迟,从而达到流水灯的效果。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章