基于51单片机的交通灯毕业设计Word格式文档下载.docx
- 文档编号:19525386
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:10
- 大小:136.22KB
基于51单片机的交通灯毕业设计Word格式文档下载.docx
《基于51单片机的交通灯毕业设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机的交通灯毕业设计Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
1.3交通管理的方案设计
甲、乙两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯。
红灯亮禁止通行,绿灯亮允许通行。
黄灯闪亮提示人们注意绿、红灯的状态即将切换。
指示灯燃亮的方案如表1。
倒计时
30S
5S
……
甲道
红灯亮
绿灯亮
黄灯闪亮
乙道
表1
2硬件设计
使用AT89S52制作的单片机进行设计,5V直流稳压电源供电,采用数码管显示时间,红,绿,黄灯交替显示的方案,
2.1整体设计方框图
整个设计以AT89S52单片机为核心,由数码管显示,红,绿,黄灯显示,复位电路组成。
硬件模块如图1。
图1
芯片简介
AT89S52芯片简介
其引DIP封装的脚图如图2:
图2
主要性能
与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:
0Hz~33Hz、三级加密程序存储器[1]、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。
2.2电路模块
2.2.1数码管显示模块
数码管显示使用动态显示方式,是指一位一位地轮流点亮每个数码管的二极管[2],即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。
红绿灯显示模块
本实验有四种状态:
状态1,乙绿灯亮,甲红灯亮,此时P2.0口[3]的高低电平为0x8f。
状态2,乙黄灯亮,甲红灯亮,此时P2.0口的高低电平为0xaf。
状态3,乙红灯亮,甲绿灯亮,此时P2.0口的高低电平为0xd8。
状态4,乙红灯亮,甲黄灯亮,此时P2.0口的高低电平为0xdb。
再采用显示子程序与延时子程序可使红绿灯灯按照要求点亮。
2.3复位电路
复位方式有多种,本设计采用按键复位。
接线图如图3。
图3
2.4晶振电路
晶振电路原理图如图4:
图4
选取原则:
传统做法,但能够实现所需,即最简单也最是实用。
电容选取30pF,晶振为12MHz[4]。
3软件设计
3.1软件流程图如图5
4心得体会
通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以与在常用编程设计C语言的掌握方面都能向前迈了一大步。
本次课程设计的过程是艰辛的,不过收获却是很大的。
在设计过程中,会出现了一些问题,但都是常见的小问题,如:
代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。
综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。
在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以与和周围同学交流,还初步学回了proteus[5]的基本操作。
由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。
但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则的效率还不是很高等等,这需要在实践中进一步完善。
当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我。
附录Ⅰ参考文献
[1]伍时和.数字电子技术基础.:
清华大学,2009
[2]吴友宇.模拟电子技术基础.:
[3]李朝青.单片机原理与接口技术.四川:
电子科技大学,2005
[4]蔡朝洋.单片机控制实习与专题制作,:
电子工业,2004
[5]赵广林.电路设计与制版,:
人民邮电,2005
附录Ⅱ程序设计
#include<
reg52.h>
#defineuintunsignedint
#defineucharunsignedchar
sbitg1=P2^7;
sbity1=P2^6;
sbitr1=P2^5;
sbitr2=P2^4;
sbity2=P2^3;
sbitg2=P2^2;
uinttt,t1,t2;
uinta,b,c,d,m,k,p1,p2,l,Y1,Y2;
uintt[3]={35,30,5};
ucharcodes[4][10]={{0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9},
{0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9},
{0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9},
{0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79}};
voiddelay(uintn)
{uinti,j;
for(i=0;
i<
n;
i++)
for(j=0;
j<
100;
j++);
}
voiddis(void)
{a=t1%10;
P0=s[0][a];
delay(5);
b=t1/10;
P0=s[1][b];
c=t2%10;
P0=s[2][c];
d=t2/10;
P0=s[3][d];
voidmain()
{
t1=35;
t2=30;
p1=1;
p2=2;
r1=0;
g2=0;
g1=1;
y1=1;
y2=1;
r2=1;
Y1=1;
Y2=1;
tt=0;
EA=1;
//开总中断
ET0=1;
//开定时器0中断
TMOD=0x01;
//设置定时器0为工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
//启动定时器0
EX0=1;
//开外部中断0
IT0=1;
EX1=1;
//开外部中断1
IT1=1;
while
(1)
l=Y1;
Y1=g1;
g1=r1;
r1=l;
if(t2==0)
{t2=t[p2];
p2++;
if(p2==3)p2=0;
l=Y2;
Y2=g2;
g2=r2;
r2=l;
if(Y1==0)
if(tt<
10)
y1=0;
elsey1=1;
if(Y2==0)
y2=0;
elsey2=1;
voidexter0()interrupt0
t[0]=t[0]+5;
t[1]=t[1]+5;
voidexter1()interrupt2
{dis();
}}
voidtime0()interrupt1
tt++;
if(tt==20)
{tt=0;
t1--;
t2--;
if(t1==0)
{t1=t[p1];
p1++;
if(p1==3)p1=0;
t[0]=t[0]-5;
t[1]=t[1]-5;
附录Ⅲ电路设计总图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 交通灯 毕业设计