找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 654|回复: 0
打印 上一主题 下一主题
收起左侧

单片机汇编语言智能能交通灯代码与Proteus仿真图

[复制链接]
跳转到指定楼层
楼主
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

近年来随着机动车辆发展迅速,给城市交通带来巨大压力,城镇道路建设由于历史等各种原因相对滞后,特别是街道各十字路口,更是成为交通网中通行能力的“隘口”和交通事故的“多发源”。为保证交通安全,防止交通阻塞,使城市交通井然有序,交通信号灯在大多数城市得到了广泛应用。而且随着计算机技术、自动控制技术和人工智能技术的不断发展,城市交通的智能控制也有了良好的技术基础,使各种交通方案实现的可能性极大提高。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,是现代城市交通监控指挥系统中最重要的组成部分。本文设计的交通灯管理系统在实现了现代交通灯系统的基本功能的基础上,增加了容错处理技术(双机容错)、左右转提示和紧急情况(重要车队通过、急救车通过等)发生时手动控制等功能,增强了系统的安全性和可控性。
1.2研究意义
现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义。本设计就是遵循上述红灯停,绿灯行的思想来实现的。
第2章 设计方案 2.1设计要求
了解掌握智能交通灯在不同时间段灯亮、灭的控制,根据车辆和行人情况来智能控制交通灯的亮灭时间,采用数字提示时间灯,检测交通灯是否正常工作,实现数据定时存储等功能。
a、对信号调理电路中采用的具体元器件应有器件选型依据;
b、电路的设计应当考虑可靠性和抗干扰设计内容;
c、电路的基本工作原理应有一定说明;
d、电路应当在相应的仿真软件上进行仿真以验证电路正确性。
2.2设计方案
车流量检测利用红外线车辆检测器。红外线车辆检测器是利用被检测物对光束的遮挡或反射,通过同步回路检测物体有无。利用光电开关技术成熟,高速响应,可输出丰富的车辆数据信息,能可靠检测各种特殊车辆。抗干扰性强,不受恶劣气象条件或物体颜色的影响,安装简便。因此车流量检测利用红外线车辆检测器。
采用AT89C51单片机作为主控制器。AT89C51具有两个16位定时器/计数器,5个中断源,便于对车流量进行定时中断检测,可以方便实现车流量检测信号的输入。同时单片机具有功耗小、速度快、价格低等优点,且编程简单,故选用AT89C51单片机作为主控制器。
第3章 设计过程
3.1硬件设计3.1.1AT89C51
AT89C51基本功能描述如下:AT89C51是一种低损耗、高性能、CMOS 八位微处理器,而且在其片种还有4k字节的在线可重复编程快擦快写程序存储器,能重复写入/擦除1000次,数据保存时间为十年。它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低了系统成本。只要程序长度小于4k,四个I/0口全部提供给用户。可用5V电压编程,而且写入时间仅10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。该芯片内RAM和特殊功能寄存器值保持不变,一直到掉电模式被终止。只有VCC电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位、掉电模式可被终止。AT89C51引脚图如图1所示。

图1 AT89C51引脚图
3.1.2ULN2003
ULN2003是具有高耐压、大电流,内部由七个硅NPN达林顿管组成的驱动芯片。它的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。其引脚图如图2所示。
图2 ULN2003引脚图
3.1.3七段数码管
七段数码管分为共阳极及共阴极,共阳极的七段数码管的正极(或阳极)为八个发光二极管的共有正极,其他接点为独立发光二极管的负极(或阴极),使用者只需把正极接电,不同的负极接地就能控制七段数码管显示不同的数字。共阴极的七段数码管与共阳极的只是接驳方法相反而已。
七段数码管已可以特定的集成电路控制,只要向集成电路输入4-bit的二进制数字讯号就能控制七段数码管显示;市面上更有 8421-BCD 代码直接转为七划管控制电平的 IC,方便配合单片机使用。 单片机应用于工业控制等方面时,经常要用LED七段数码管显示一些数据。单片机驱动LED数码管的方法有很多种,可以分为静态输出驱动、动态输出静态驱动和动态扫描驱动等几种方法。其引脚图如图3所示。
图3 七段数码管引脚图
3.2软件设计3.2.1主程序流程图
主程序流程图如图4所示。
图4 主程序流程图
3.2.2中断程序流程图
图5 中断程序流程图
        3.2.3汇编程序设计
ORG 0000H
LJMP 100H
ORG 000BH
LJMP T0_INTERUPT
ORG 100H
EAST_GREEN DATA 70H
EAST_YELLOW DATA 71H
EAST_RED DATA 72H
CAR_NUMBERS DATA 73H
MOV 73H,#20 ;车流量初值
START: MOV DPTR,#TAB
MOV P3,#00H
MOV SP,#60H
MOV R3,#250 ;中断延时15S
MOV R4,#00H ;
MOV TMOD,#01010001B
MOV TH0,#15H
MOV TL0,#0A0H ;60MS初值
MOV TH1,#00H
MOV TL1,#00H
MOV IE,#82H ;开放TO中断
SETB TR0
SETB TR1
SETB P3.5 ;I/O口输入数据前需将其先置1
LOOP:  CLR P3.7 ;中 断检验位清0
MOV A,CAR_NUMBERS
CJNE A,#25,LOOP1
LOOP1: JNC STATE1
CJNE A,#15,LOOP2
LOOP2: JC STATE3
LJMP STATE2
STATE1: MOV EAST_GREEN,#40 ;车流量大于25时,显示状态1
MOV EAST_YELLOW,#5
MOV EAST_RED ,#25
LJMP STATE
STATE2: MOV EAST_GREEN,#30 ;车流量处于15和25之间,显示状态2
MOV EAST_YELLOW,#5
MOV EAST_RED,#25
LJMP STATE
STATE3: MOV EAST_GREEN,#50;车流量小于15时,显示状态3
MOV EAST_YELLOW,#5
MOV EAST_RED,#45
LJMP STATE
STATE: MOV R0,EAST_GREEN ;东西绿灯, 南北红灯
MOV P1,#11011110B
STATE_1: LCALL T0_BCD
LCALL DISPLAY
LCALL DELAY_1S
DJNZ R0,STATE_1
STATE_2: MOV R0,EAST_YELLOW ;显示 黄灯
MOV P1,#11101110B ;低电平有效, 东西由绿灯变为红灯时才需要亮黄灯,南北继续红灯
STATE_22: LCALL T0_BCD
LCALL DISPLAY
LCALL DELAY_1S
MOV P1,#11111110B
MOV 74H,#100
WAIT1: DJNZ 74H,WAIT1
MOV P1,#11101110B
DJNZ R0,STATE_22
STATE_3: MOV R0,EAST_RED ;东西红灯,南北绿灯
MOV P1,#11110011B
STATE_33: LCALL T0_BCD
LCALL DISPLAY
LCALL DELAY_1S
DJNZ R0,STATE_33
STATE_4: MOV R0,EAST_YELLOW ;显示黄灯,南北由绿灯变为红灯时才需要亮黄灯,东西继续红灯
MOV P1,#11110101B
STATE_44: LCALL T0_BCD
LCALL DISPLAY
LCALL DELAY_1S
MOV P1,#11110111B
MOV 74H,#100
WAIT2: DJNZ 74H,WAIT2
MOV P1,#11110101B
DJNZ R0,STATE_44
LJMP LOOP
T0_BCD: MOV A,R0;BCD转换
MOV B,#10
DIV AB
MOV R1,B ;个位数值
MOV R2,A ;十位数值
RET
DISPLAY: ;静态显示
LOW_DIS:MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
HIGH_DIS:MOV A,R2
MOVC A,@A+DPTR
MOV P2,A
RET
T0_INTERUPT:PUSH ACC
DJNZ R3,AGAIN
MOV R3,#250
INC R4
CJNE R4,#4,AGAIN ;车流量检测周期15*4=60S
SETB P3.7 ;检验中断是否发生
MOV R4,#00H
MOV CAR_NUMBERS,TL1
MOV TL1,#0
MOV TH1,#0
AGAIN:MOV TH0,#15H
MOV TL0,#0A0H
POP ACC
NOP
NOP
RETI
DELAY_1S:MOV R7,#10;延时ls程序
DEL1:MOV R6,#100
DEL2:MOV R5,#250
DJNZ R5,$
DJNZ R6,DEL2
DJNZ R7,DEL1
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
第4章 系统仿真与调试结果4.1系统仿真
利用Proteus 软件绘制原理图,原理图如图6所示。
图6 原理图
4.2调试结果
单击仿真界面左下方的开始按扭,仿真就开始了。具体仿真过程如下:
(1)当交通灯开始工作后,执行默认状态:东西方向绿灯,南北方向红灯,倒计时30秒,然后东西黄灯5秒,南北保持红灯5秒,然后东西红灯,南北方向绿灯,倒计时25秒后,南北亮黄灯5秒,东西保持红灯状态5秒后,重新扫描。如图7所示:
图7 默认状态
(2)当手动按下开关,频率小于 15次/分时,执行状态Ⅲ:东西方向绿灯,南北方向红灯,倒计时50秒,然后东西黄灯5秒,南北保持红灯5秒,然后东西红灯,南北方向绿灯,倒计时45秒后,南北亮黄灯5秒,东西方向保持红灯状态5秒后,重新扫描。如图8所示:
图8 状态Ⅲ
(3)当手动按下开关,频率大于15次/分,小于或等于25次/分,执行状态Ⅱ:东西方向绿灯,南北方向红灯,倒计时30秒,然后东西黄灯5秒,南北保持红灯5秒,紧接着东西红灯,南北方向绿灯,倒计时25秒后,南北方向亮黄灯5秒,东西方向保持红灯状态5秒后,重新扫描。如图9所示:
图9 状态Ⅱ
(4)当手动按下开关,频率大于25 次/分,执行状态Ⅰ:东西方向绿灯,南北方向红灯,倒计时40秒,然后东西黄灯5秒,南北保持红灯5秒,紧接着东西红灯,南北方向绿灯,倒计时25秒后,南北亮黄灯5秒,东西保持红灯状态5秒后,重新扫描。如图10所示。
图10 状态Ⅰ
第5章 总结
通过此次设计,使我更加扎实的掌握了有关电子线路方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过自己亲手实践,是我们掌握的知识不再是纸上谈兵。
过而能改,善莫大焉。在设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次设计终于顺利完成了,在设计中遇到了很多问题,最后在师傅的指导下,终于游逆而解。在今后发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到极大的认可。
设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次设计,我掌握了Protes软件的使用方法,了解了红绿灯的实际控制过程,以及如何提高电路的性能等等。
我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像我们提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
回顾起此设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计使我懂得了



文中的插图缺少 无法上传
本人初学,仅供参考,存在错误和不足之处,请大家回帖多多指教,不胜感激.切勿照搬
Proteus8.13仿真下载(仅供参考): 智能交通灯.zip (29.29 KB, 下载次数: 7)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表