本设计主要由三部分组成,包括AT89C51单片机、黄色Ø05LED、电阻。该设计着重详细地介绍了LED循环闪烁控制系统的整体系统设计方案、硬件选择基础、软件使用方法及技巧。该电路以AT89C51作为CPU处理单元连接各个功能模块,以黄色Ø05LED作为输出模块来显示闪烁状态和循环状态。通过Protues8.7单片机电路原理图进行连接布线连接各个模块,再用Keil uVision5专业编译软件完成源程序编译和调试,最终进行LED循环闪烁控制系统的实验电路仿真来模拟LED循环闪烁。
单片机源程序如下:
- //程序:led-ss.c
- //功能:LED循环闪烁控制系统
- #include<REGX51.H> //包含头文件REGX51.H,定义了51单片机的所有SFR
- //函数名:delay
- void delay (unsigned int i)
- {
- while(i--); //i次空操作
- }
- void main() //主函数
- {
- unsigned char led ,n,i; //定义字符变量led,n,i
- led=0x01; //给变量led赋值0x01,即二进制数00000001
- for(i=0;i<8;i++) //用for循环控制移位8次
- {
- for(n=0;n<3;n++) //用for循环控制一个灯闪烁3次
- {
- P0=~led; //将led取反后的值送到P0口输出,亮一个灯
- delay(20000); //软件延时
- P0=0xff; //灯熄灭
- delay(20000); //软件延时
- } // 结束3次闪烁
- led<<=1; //将led的二进制数值左移一位
- } //结束for循环
- }
复制代码 |