**
单片机自主学习项目*设计分析 —模拟LED交通灯
**
一、开发背景与需求
1 开发背景
交通事业蓬勃发展,交通流量年年增长,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,为了在叉口的各条干道实现合理的科学分流。本人根据单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,提出了一种用at89c51单片机自动控制交通信号灯及时间显示的方法,同时给出了软硬件的实现方法,为交通指挥自动化提供了一种新的廉价手段,本文介绍了控制基本原理以及控制的表现,大幅度地提高了产品可靠性并降低了制造成本。
2 开发需求
交通灯在安全行车过程中起着十分重要的作用,现在交通同等一般设在十字路口口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用。
二、技术分析与总体设计
1 技术分析
共阳极多位数码管的显示
LED灯的点亮
2 总体设计
图片:
运行代码
#include<reg51.h>
#define int unsigned int
#define char unsigned char
char print[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
int out[2]={6,0};
char outL[2]={0x01,0x02};
char type[4]={0x21,0x12,0x0c,0x12};
void delay(int s);
void left(int ty,int mtime,int nextTy);int big=10;
int min=5;
void main(){left(0,big,1);
}void left(int ty,int mtime,int nextTy){int ms=mtime;int i;int p,time;P2=type[ty];while(ms!=-1){out[0]=ms/10;out[1]=ms%10;time=1000;while(time){for(i=0;i<2;i++){p=out[i];P3=0xff;P3=print[p];P1=outL[i];sleep(1);time--;}}ms--;}if(nextTy==0){left(0,big,1);}if(nextTy==1){left(1,min,2);}if(nextTy==2){left(2,big,3);}if(nextTy==3){left(3,min,0);}
}void delay(int s){int i,j;for(i=s;i>0;i--)for(j=110;j>0;j--);
}
四、系统运行和测试(展示运行结果,用图来表示)
1东西绿灯,南北红灯
2东西南北变黄灯
3东西红灯,南北绿灯
4东西南北变黄灯
5再次循环
五、系统开发总结(谈对单片机应用程序开发的认识)
通过这次课程设计报告不仅更加了解了单片机的使用和功能的强大,还解决了软件闪退问题,收获满满!各位喜欢就拿走吧~
解决方法:Proteus8.9 安装教程、闪退问题解决https://blog.csdn.net/weixin_44578655/article/details/106593468?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase