基于51单片机的交通灯控制系统设计 联系客服

发布时间 : 星期五 文章基于51单片机的交通灯控制系统设计更新完毕开始阅读49060b42d4d8d15abe234ec2

全速运行调试,观察单片机IO口信号变化,即可模拟观察程序是否正确,哪里出错。

编译通过,程序实现功能并把程序下载到单片机中装好,进行调试。

实物图:

六、 实习总结:

经过三个星期的时间,从不会到会,从没思路到想法无限多。终于还是把这个设计给弄出来了。

刚开始不知道从何入手,以前都是学一些书本上的知识,还不会灵

活应用,而且也没做过什么具体的设计。后来开始动手去做,大量的从网上摄取知识,去图书馆查找资料,复习编程,复习单片机原理。等等。一个小小的电路需要太多的知识,学以致用这个词在这次设计上有了更深刻的体会。

通过设计我对原来学过的知识有了更深的理解,原来想着在大学里学不到很多东西,直到做完实习,才知道是自己不会联系实际应用!当设计接近尾声的时候回顾设计的整个流程,才发现有好多东西都需要更深一步的学习。

在调试的过程中遇到了很多问题,有时候是硬件上的错误自己却认为是软件的错误,有时候软件错又认为是硬件出错了。总之我觉得学到知识最多的地方不是去查资料的时候,而是在调试过程中学到了很多东西,焊工技术、编程思想、设计电路铺板等等都会影响整个电路的工作情况。

而且到最后的时候发现自己设计的电路上面也有很大的不足,比如直接用P1口接数码管的阳极,由于单片机IO口输出电流都比较小,所以导致数码管的亮度不是很亮,所以在共阳极数码管的阳极与IO口相连是应加三极管或者锁存器提供更大的电流。

总之这次设计让我学会了很多东西,最主要的是学会了去查询资料,筛选资料,并大大培养了我的动手能力。

七、 参考文献

[1]梅丽凤:单片机原理与技术接口第三版,清华大学出版社 [2]谭浩强:C语言程序设计第四版,清华大学出版社 [3]龙脉工作室:单片机C语言入门,人民邮电出版社

[4]杨素行:模拟电子技术基础简明教程第三版,高等教育出版社 [4]余孟尝:数字电子技术基础简明教程第三版,高等教育出版社

交通灯程序:

#include

#define uchar unsigned char #define uint unsigned int sbit light_R1=P2^0;

sbit light_G1=P2^1; sbit light_Y1=P2^2; sbit light_R2=P2^3; sbit light_G2=P2^4; sbit light_Y2=P2^5; sbit D1=P1^0;//十位段选 sbit D2=P1^1;//个位段选

/******共阳极数码管编码对应0~9 ~0x3f,~0x06,~0x5b,~0x4f,~0x66, ~0x6d,~0x7d,~0x07,~0x7f,~0x6f ************************/ uchar code tab[10]={

~0x3f,~0x06,~0x5b,~0x4f,~0x66, ~0x6d,~0x7d,~0x07,~0x7f,~0x6f };

uchar T,shi,ge,s,k,kk; void main(void) {

uchar time1=60; T=0;

k=0;//外部中断0控制变量 kk=0; //外部中断1控制变量 TMOD=0x01;//开定时器中断 TH0=(65536-50000)/256;

TL0=(65536-50000)%6; //定时器50ms中断一次 EA=1; //开总中断 ET0=1; TR0=1;

IT0=1; //外部中断0 选择下降沿触发 EX0=1; //开外部 中断 0

IT1=1; //外部中断1 选择下降沿触发 EX1=1; shi=3; ge=0; while(1) {

if(k==1)//判断K1是否按下 {

D1=0; D2=0;

light_G1=1; light_G2=1; light_R1=1; light_R2=1;

light_Y1=0; light_Y2=0; while(k) {

if(kk==1)//判断K2是否按下 {

time1=60; light_Y1=1; light_Y2=1; kk=0; k=0; }