交通信号钟的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计目的
1、了解交通信号钟管理的基本工作原理。
2、熟悉AT89S51单片机的各种工作方式和应用。
3、熟悉应用编程,掌握利用软硬件相结合的方法。
4、掌握多位LED显示问题的解决及显示方法。
5、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
6、通过单片机课程设计,熟练掌握编程的方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
7、通过交通信号钟的设计和简单程序的编写,最终提高我们的逻辑抽象能力。
8、通过此次课程设计掌握仿真软件的应用,能将软硬件结合起来,对程序进行编辑和校验。
二、设计要求
1、设计一个十字路口的交通灯控制电路,要求甲车道和乙车道两条交叉道路上的车辆交替运行,每次通行时间为25秒;
2、要求黄灯先亮5秒,才能变换运行车道;
3、黄灯亮时,要求每秒钟闪亮一次;
4、根据交通灯控制系统框图,画出完整的电路图和波形图。
三、总体设计
1、AT89S51单片机的简介
89S51是MCS-51系列单片机的典型产品,我们就这一代表性的机型进行系统的讲解。
89S51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
(1)中央处理器
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
(2)数据存储器RAM
89S51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
(3)程序存储器(ROM)
89S51共有4KB掩膜ROM,最大可扩展64K字节,用于存放用户程序,原始数据或表格。
(4)定时/计数器:
89S51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
(5)并行输入输出(I/O)口:
89S51共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
(6)中断系统
89S51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
2、89S51单片机的引脚
89S51单片机内部总线是单总线结构,即数据总线和地址总线是公用的. 89S51有40条引脚, 与其他51系列单片机引脚是兼容的. 这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分. 89S51单片机为双列直插式封装结构, 如图3.2所示.
图3.2 89S51引脚分配图
89S51单机的电源线有以下两种:
(1) VCC:+5V电源线。
电源线
(2) GND:接地线。
89S51单片机的外接晶体引脚有以下两种:
(1)XTAL1:片内振荡器反相放大器的输入端和内部时钟工作的输入端。
采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。
(2) XTAL2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。
采用外部振荡器时,该引脚悬空。
外接晶体引脚。
控制线 89S51单片机的控制线有以下几种:
(1) RST:复位输入端,高电平有效。
(2) ALE/PROG:地址锁存允许/编程线。
(3) PSEN:外部程序存储器的读选通线。
(4) EA/Vpp:片外ROM允许访问端/编程电源端。
3、交通钟设计流程图
四、各部分电路设计(1)时钟电路设计南北绿灯,东西红灯延时25秒
南北绿灯闪5次转黄灯,东西红灯,延时
一秒
南北红灯,东西绿灯
延时25秒
东西绿灯闪5次转黄灯,南北红灯,延时
一秒
开始
结束
如上图所示,采用内部时钟产生方式,在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡。
其发出的时钟脉冲直接送入片内定时控制部件。
(2)复位电路设计
如上图所示,采用上电+按钮电平复位方式,当按下按钮时,RST管脚高电平触发。
为保证复位可靠,RC时间常数应大于两个机器周期,电容取22uf,电阻取1K欧。
(3)灯控制电路设计
如上图所示,交通灯状态显示电路由东西南北四个方向各三个LED灯组成,分别显示四个方向上红、黄、绿三个状态,用以指示十字路口各方向车辆的行驶。
通过软件编程,可使路口交通变化情况为:南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,甲车道和乙车道两条交叉道路上的车辆交替运行,每次通行时间为25秒;黄灯先亮5秒,才能变换运行车道;黄灯亮时,要求每秒钟闪亮一次。
(4)倒计时交通钟电路设计
如上图所示,交通显示钟由两个共阴极两位数码管来实现倒计时。
由于P0口输出电流小,需外接上电阻,接到P1口的P1.0~P1.7口用单片机来控制其片选。
(5)按键控制电路设计
如上图所示,开关控制由三个连接到单片机的控制按钮组成。
通过软件编程,
一道有车而另一道无车(实验时用开关K0 和K1 控制),交通灯控制系统能立即让有车道放行。
有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B 道均为红灯,紧急车由K2 开关模拟。
返回正常状态时通过复位电路的复位开关进行控制。
五、整体电路图
六、设计总结
1、设计过程中遇到的问题及解决方法
仿真软件中找不到AT89S52,所以用AT89S51代替,在向仿真软件的单片机输入程序时需要HEX格式的文件,通过网上搜索找到了keil
Uvision软件将写好编程的TXT文档建成HEX文件,仿真时可能会出错,
所以需要不断调试电路与程序,直到达到设计要求为止。
2、设计体会
通过这次课程设计,加强了我们动手、思考和解决问题的能力。
让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在
书本上的知识与实际的应用存在着不小的差距。
书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这
方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结
果甚至很差别很大。
特别是电路完成后,所有的焊接都与我们设计的方案一
样,但当我们接通电源时,所看到的结果与我们料想的完全不同,十二盏灯
都亮了,我们也都知道,任何实验都不可能一次就成功的,我们认真的去检
查,可是检查了好久都没有任何发现,只知道单片机的IO口的输出与我们
所输入的程序不相符合,我们逐步排查,最先检查LED灯电路的接法是否合
理,然后检查时钟电路的晶振是否有问题,然后再检查复位电路是否完好,
最后功夫不负有心人,我们把复位电路接地电阻断开后,就发现LED灯有规
律的熄灭了,经过我们的认真检查,对位选控制位口的改正,最后电路基本
上都实现了我们预先设计的功能。
这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结
论,才能提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到
问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的
过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握
得不够牢固。
3、对设计的建议
以后应该下更多的功夫到实践中去,到图书馆或者上网获取更多的知识,单靠书本是不行的,可以定时开放实验室供学生进行实践学习,另外
设计时间比较短,为了更好地符合设计要求,应花更多时间投入到学习当
中去。
实践是掌握只是的一个很好的途径。
参考文献
[1]李明毕万新主编单片机原理与接口技术,大连理工大学出版社
[2]张毅坤主编单片微型计算机原理及应用.西安电子科技大学出版
社
[3]杨恢先黄辉先主编单片机原理及其应用,人民邮电出版社
[4]刘瑞新主编单片机原理及应用教程,机械工业出版社
[5]蔡明文冯先成主编单片机课程设计,华中科技大学出版社
附录一:参考程序清单如下:
LED EQU P1
ORG 0000H
LJMP START
ORG 0030H
START:MOV SP,#60H
LCALL S0 ;初始状态
LCALL S1 ;南北绿灯,东西红灯
LCALL S2 ;南北绿灯闪转黄灯,东西红灯LCALL S3 ;南北红灯,东西绿灯
LCALL S4 ;南北红灯,东西绿灯闪转黄灯LJMP START
S0: MOV A,#00100001B ;南北红灯,东西红灯MOV LED,A
MOV R2,#10 ;延时
LCALL DELAY
RET
S1: MOV A,#10000001B ;南北绿灯,东西红灯MOV LED,A
MOV R2,#200 ;延时
LCALL DELAY
RET
S2: MOV A,#00000001B ;南北绿灯灭,东西红灯亮FLASH: MOV A,#01000001B ;南北黄灯,东西红灯
MOV LED,A
MOV R2,#03H
LCALL DELAY
MOV A,#10000001B ;南北绿灯,东西红灯
MOV LED,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH
RET
S3: MOV A,#00100100B ;南北红灯,东西绿灯MOV LED,A
MOV R2,#200 ;延时
LCALL DELAY
RET
S4: MOV A,#00100010B
MOV LED,A
MOV R3,#03H
LCALL DELAY
FLASH1: MOV A,#00100010B ;南北红灯亮,东西绿灯灭MOV LED,A
MOV R2,#03H
LCALL DELAY
MOV A,#01000000B
MOV LED,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH1
RET
DELAY:PUSH 02H ;延时子程序PUSH 01H
PUSH 00H
DELAY1: MOV R1,#00H
DELAY2: MOV R0,#0C2H
DJNZ R0,DELAY2
DJNZ R1,DELAY2 ;延时
DJNZ R2,DELAY1
POP 00H
POP 01H
POP 02H
RET
END。