交通指示灯的控制 课程设计.docx
- 文档编号:30229305
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:18
- 大小:316.26KB
交通指示灯的控制 课程设计.docx
《交通指示灯的控制 课程设计.docx》由会员分享,可在线阅读,更多相关《交通指示灯的控制 课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
交通指示灯的控制课程设计
专业课程设计报告
题目:
交通指示灯的控制
所在学院
专业班级
学生姓名
学生学号
指导教师
提交日期2012年10月29日
电气工程学院专业课程设计评阅表
学生姓名学生学号
同组队员专业班级
题目名称交通指示灯的控制
一、学生自我总结
在这次课程设计中,我根据要求设计总体交通灯原理接线图,综合应用单片机原理、微机原理、接口技术等方面的知识,结合单片机仿真机系统的使用方法,通过软硬件结合,使用89C51单片机来设计出符合指标的交通灯控制系统。
过程中遇到了不少问题,其中例如原理接线图接好后,仿真调试发现东西向的交通灯没有亮,在老师的指导下,发现了接线图有部分的缺失,最后还是顺利解决了,成功地完成了“AT89C51交通指示灯的控制”课程设计。
学生签名:
年月日
二、指导教师评定
评分项目
平时成绩
报告(答辩)
综合成绩
权重
50
50
单项成绩
教师评语:
教师签名:
年月日
目录
一、设计目的1
二、设计要求和设计指标1
三、设计内容1
3.1系统硬件组成及原理图1
3.2单片机AT89C512
3.2.1AT89C51的主要性能2
3.2.2AT89C51的引脚功能2
3.2.3AT89C51的内部结构6
3.3各模块电路7
3.3.1主控制系统7
3.3.2通行灯输出控制7
3.3.3晶振电路8
3.4程序设计9
3.5仿真结果与分析10
四、本设计改进建议11
五、总结12
六、主要参考文献12
附录1系统原理图13
附录2源程序14
一、设计目的
本课程设计研究的是以AT89C51单片机为控制器的交通灯控制系统,在学习一定理论基础后,通过完成一个具有综合功能的小型系统,对学生进行的一次全面的综合训练。
课程设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握单片机程序设计及其在生活中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
二、设计要求和设计指标
设计一个十字路口交通灯控制器,用AT89C51单片机控制LED灯模拟显示。
(1)东西向初始状态为绿灯,南北向初始状态为红灯;
(2)东西向的绿灯亮5s后,黄灯开始闪烁(此时绿灯熄灭),黄灯闪烁5次后红灯亮(此时绿灯、黄灯均熄灭),南北向由红灯变为绿灯,5s后南北向黄灯闪烁5次此后变红灯,东西向变绿灯,如此重复。
三、设计内容
3.1系统硬件组成及原理图
根据要实现的具体功能,我们采用AT89C51单片机及外围器件构成最小控制系统,4组3色发光二极管构成信号灯指示模块,硬件原理图如图3.1所示:
图3.1硬件电路原理图
3.2单片机AT89C51
AT89C51是一种高效微控制器,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的Flash只读程序存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)和128×8位的随机存取数据存储器(RAM),该器件采用ATMEL公司的高密度、非易失性存储技术生产,它与MCS-51系统产品兼容,AT89C51单片机功能强大,具有8Kb中央处理器(CPU)和4KbFlash程序存储器,性价比高,可应用于很多要求高性价比的场合,灵活地应用于各个控制领域[2]。
3.2.1AT89C51的主要性能
•内含4Kb可重编程的FPEROM;
•与MCS-51产品指令系统完全兼容;
•128×8位的内部RAM;
•4个8位(32根)双向可位寻址的I/O端口;
•2个16位的计数/定时器;
•全双工方式的串行通道(UART);
•6个中断源;
•5个向量二级中断结构;
•最高时钟振荡频率可达12MHz;
•指令集中64条为单周期指令,支持6种寻址方式,共111条指令;
•低功耗空闲和掉电方式;
•片内振荡器和时钟电路。
3.2.2AT89C51的引脚功能
AT89C51为双列直插(DIP)式封装的51单片机芯片,有39条引脚,其引脚示意及功能分类如图3-2所示。
图3-2AT89C51单片机引脚图
各引脚功能说明如下:
(1)I/O引脚
P0口(39~32脚):
P0.0~P0.7统称为P0口。
P0口是一组8位漏极开路型双向I/O口,分时复用为低8位地址总线和双向数据总线。
作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器时,这组端口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FLASH编程时,P0口作为原码输入口,当Flash进行校验时,P0口输出原码,此时P0外部必须被拉高。
P1口(1~8脚):
P1.0~P1.7统称为P1口,可作为准双向I/O口使用。
P1是一个带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
P1口被外部下拉为低电平时,输出电流,是因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在Flash编程和校验时,P1口作为第八位地址接收。
P2口(21~28脚):
P2.0~P2.7统称为P2口,一般作为准双向I/O使用。
P2是一个带内部上拉电阻的8位双向I/O口。
P2的输出缓冲器可驱动4个TTL逻辑门电路。
当对P2端口写“1”时,内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在接有片外存储器或扩展I/O口且寻址范围超过256B时,P2口用作高8位地址总线。
当给出地址为“1”时,它就利用内部上拉优势,当对外部八位地址数据存储器进行读/写时,P2口便输出其特殊功能寄存器的内容。
在FLASH编程和校验时,P2口接收高八位地址信号和控制信号。
P3口(10~17脚):
P3.0~P3.7统称为P3口。
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口的输出缓冲器可驱动4个TTL逻辑门电路接收输出电流。
当P3口写“1”时,通过内部的上拉电阻上拉为高电平并作为输入口。
此时由于外部下拉为低电平,P3口将输出电流(IIL)。
除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
P3口第二功能祥见表3-1:
表3-1P3口第二功能表
口线
第二功能
信号名称
P3.0
RXD
串行数据接受
P3.1
TXD
串行数据发送
P3.2
外中断0申请
P3.3
外中断1申请
P3.4
T0
定时器/计数器0计数输入
P3.5
T1
定时器/计数器1计数输入
P3.6
外部数据存储器写选通
P3.7
外部数据存储器读选通
(2)外接晶体引脚
XTAL1(19脚):
它在单片机内部是一个反向放大器的输入端,构成了片内振荡器。
当采用外部时钟时,HMOS单片机的该引脚应接地;CHMOS单片机的该引脚作为外部振荡信号的输入端。
XTAL2(18脚):
它在单片机内部是片内振荡器的反向放大器的输出端。
当采用外部时钟时,HMOS单片机的该引脚作为外部振荡信号的输入端;CHMOS单片机的该引脚应悬空不接。
(3)控制线
ALE/
(30脚):
地址锁存允许/编程信号。
在访问片外程序存储器期间,此信号可用于控制锁存P0输出地址总线的低8位,ALE以每机器周期两次进行信号输出;在FLASH编程期间,此引脚用作编程脉冲
的输入端。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率fosc的1/6,可作为对外输出的时钟脉冲或用于定时目的。
但要注意的是:
在访问片外数据存储器期间,ALE脉冲会跳空一个。
若想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE执行MOVX,MOVC指令使ALE起作用。
另外,该引脚将被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
(29脚):
片外程序存储器读选通信号输出端,低电平有效。
在由外部程序存储器读取指令或常数期间,每个机器周期内
两次有效,P0口读回指令或常数。
当访问内部程序存储器时,
信号不跳变。
RST/VPD(9脚):
RST即RESET,VPD为备用电源,该引脚为单片机的上电复位或掉电保护端。
当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。
上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10ms以上才能保证有效复位。
当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。
/VPP(30脚):
为片外程序存储器选用端,访问内部程序存储器控制信号。
当
端接高电平时,CPU访问内部程序存储器。
当
接低电平时,则在此期间外部程序存储器(0000H-FFFFH),则强调CPU访问外部存储器,而不管程序计数器的内容是多少。
此外,该引脚还用做EPROM编程电压的输入端。
在编程期间,此引脚用作21V编程电源VPP的输入端。
[3]
3.2.3AT89C51的内部结构
89C51单片机内部组成结构中包含运算器和控制器(CPU)、片内存储器、4个并行I/O接、串行口、定时/计数器、中断系统、振荡器等功能部件[10]。
其内部结构框图如图3.3所示。
图中PC是程序计数器;PSW是程序状态字寄存器;DPTR是数据指针寄存器。
图3-3AT89C51单片机内部结构框图
运算器和控制器:
89C51的运算器和控制器功能类似于一般微机中的微处理器(CPU),是单片机的核心部件,它决定了单片机的主要功能特性。
它完成逻辑算术运算并协调单片机其它各部分的工作。
各种算术、逻辑运算所涉及到的寄存器包括:
累加器ACC、寄存器B、暂存器1(TEMP1)和暂存器2(TEMP2)、程序状态字寄存器PSW,程序计数器PC,堆栈指针SP,数据指针寄存器DPTR等。
它们位于CPU内部,又称CPU专用寄存器,以区别于I/O接口专用寄存器。
存储器:
MCS-51系列单片机存储器组成是所谓的哈佛结构,存储器的组织方式与通用单片机系统不同,包含程序存储器与数据存储器,其地址空间是相互独立的,而不是程序存储器与数据存储器统一编址。
在89C51单片机中,程序存储器采用EEPROM,而数据存储器采用RAM。
它们又可以进一步分成内部或外部两类[1]。
3.3各模块电路
3.3.1主控制系统
主控器采用AT89C51,是美国ATMEL公司生产的一款性能稳定、低功耗的单片机,兼容MCS-51系列产品指令系统及引脚。
片内含4KB的可重复编程的Flash程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,使用5(1±20﹪)V的电源电压,128×8位的内部RAM,4个8位的双向可位寻址的I/O端口,2个16位定时/计数器,6个中断源,AT89C51单片机可提供许多高性价比的应用,灵活应用于各种控制领域。
单片机的P1口及P2口分别应用于控制南北及东西方向的通行灯,P0口及P3.0~P3.2口应用于4组LED计时器的控制,T0和T1分别作为东西方向和南北方向和车流量流量控制,INT0和INT1分别用于东西方向和南北方向的特种车辆通行紧急转换电路[4]。
3.3.2通行灯输出控制
道口交通灯指示采用高亮度红绿3色发光二极管。
因为南北通行时双向指示牌相同,所以每个端口应具有12mA的吸收电流的能力,而人行道口按4个灯算,因此需24mA的吸收电流,在单片机的输出口接驱动电路74HC244,保护单片机的输出端口[12]。
道口指示灯电路如图3-4所示。
图3-4道口指示灯电路
3.3.3晶振电路
电路采用不同容量的电容,电容器配合晶振将信息电子电路传来的信号按照其控制目标的要求,转换为加在电力电子器件控制端和公端之间,可以使其开通或关断的信号。
图3-5晶振电路
3.4程序设计
主程序主要是负责总体程序的运行功能,主程序流程图如图所示:
图3-6主程序流程图
交通指示灯控制要求如下:
(1)东西向初始状态为绿灯,南北向初始状态为红灯;
(2)东西向的绿灯亮5s后,黄灯开始闪烁(此时绿灯熄灭),黄灯闪烁5次后红灯亮(此时绿灯、黄灯均熄灭),南北向由红灯变为绿灯,5s后南北向黄灯闪烁5次此后变红灯,东西向变绿灯,如此重复。
综上述要求制作程序流程图如下图:
图3-7程序流程图
3.5仿真结果与分析
以电子线路为基础的各种电子产品在安装完成后一般都要进行调试,才能正常地进行工作。
在调试过程中常常会出现各种电路故障,经过检测、排查,才能准确地排除故障。
调试主要是包括调整和测试两个部分。
调整主要是对电路参数的调整。
一般是对电路中可调元器件,例如电容、电感等部分进行调整,使电路功能达到预期的效果。
测试主要是对电路的各项技术指标和功能进行测试和检查,并与设计要求的性能指标相比较,以确定电路是否能实现预期的功能。
红绿灯控制程序道口通行方式控制码数据表。
表4.1道口通行方式控制码数据表
南北方向
端口
控制功能
0~5s
5~10s
10~15s
15~20s
20~25s
P0.5
绿
0
0
1
0
0
P0.4
黄
0
0
0
1
0
P0.3
红
1
1
0
0
1
P0.2
-
0
0
0
0
0
P0.1
-
0
0
0
0
0
P0.0
-
0
0
0
0
0
东西方向
P0.5
-
0
0
0
0
0
P0.4
-
0
0
0
0
0
P0.3
-
0
0
0
0
0
P0.2
绿
1
0
0
0
1
P0.1
黄
0
1
0
0
0
P0.0
红
0
0
1
1
0
交通信号灯控制显示如上图,观察可知其逻辑状态否符合要求。
经过反复多次进行调试,确定逻辑关系正确,在调试过程中,东西方向、南北方向的指示灯要同时调试。
调试结果,该系统是以AT89C51单片机为核心,设计的交通灯控制系统可用于十字路口的交通管理,本设计功能完整,该系统的控制功能与效果同设计要求红绿灯是完全一致。
四、本设计改进建议
系统可以添加由74HC244驱动LED数码管显示通行倒计时,方便监控时间 ,而且更加符合实际情况。
系统还可以添加通过红外接收器接收信号实现特种车辆(119、120等)自动放行,当特种车辆到来时能自动关闭所有绿灯,让特种车辆通过。
设计中特种车辆可采用红外线发生器为发信器,用实时中断来响应特种车的通行要求。
五、总结
通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,大大提高了我们的发现、分析、解决题目的能力,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。
使之不断地战胜别人,超越前人。
同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响,所以这次课程设计对于我们工科来说,对以后就业有及其重大的影响。
六、主要参考文献
[1]郑思铭等.交通灯的一种新型智能控制系统.广东自动话与信息工程,2006
(2):
16-18
[2]郑建光等.基于AT89C51单片机的交通灯控制系统设计.自动化与仪器仪表,2008,(6):
30-33
[3]喻 萍 郭文川.单片机原理与接口技术.北京:
化学工业出版社,2006
[4]李建忠.单片机原理及应用.西安电子科技大学出版社,2008
附录1系统原理图
图3-7系统原理图
附录2源程序
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitRED_A=P0^0;//东西向灯
sbitYELLOW_A=P0^1;
sbitGREEN_A=P0^2;
sbitRED_B=P0^3;//南北向灯
sbitYELLOW_B=P0^4;
sbitGREEN_B=P0^5;
ucharFlash_Count=0;Operation_Type=1;//闪烁次数,操作类型变量
voidDelayMS(uintx)
{
uchari;
while(x--)for(i=0;i<120;i++);
}
voidTraffic_Light()
{
switch(Operation_Type)
{
case1:
//东西向绿灯与南北向红灯亮
RED_A=1;YELLOW_A=1;GREEN_A=0;
RED_B=0;YELLOW_B=1;GREEN_B=1;
DelayMS(2000);
Operation_Type=2;
break;
case2:
//东西向黄灯闪烁,绿灯关闭
DelayMS(300);
YELLOW_A=~YELLOW_A;GREEN_A=1;
if(++Flash_Count!
=10)return;//闪烁5次
Flash_Count=0;
Operation_Type=3;
break;
case3:
//东西向红灯,南北向绿灯亮
RED_A=0;YELLOW_A=1;GREEN_A=1;
RED_B=1;YELLOW_B=1;GREEN_B=0;
DelayMS(2000);
Operation_Type=4;
break;
case4:
//南北向黄灯闪烁5次
DelayMS(300);
YELLOW_B=~YELLOW_B;GREEN_B=1;
if(++Flash_Count!
=10)return;
Flash_Count=0;
Operation_Type=1;
}
}
voidmain()
{
while
(1)
Traffic_Light();
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通指示灯的控制 课程设计 交通 指示灯 控制