




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课题: 交通信号灯控制系统设计 学院: 机电与车辆工程学院 专业: 车辆工程 班级: 车辆工程2014- 车辆工程卓越班 姓名: 学号: 指导老师: 2017年6月1311 任 务 书 课题: 交通信号灯控制系统设计一、设计任务在双干线路口上,交通信号灯的变化是定时的。假定:1 放行线,绿灯亮放行25s,黄灯警告5s,然后红灯亮禁止通行。2 2禁止线,红灯亮禁止30s,然后绿灯亮放行。使两条路线交替地成为放行线和禁止线,就可以实现定时交通控制。二、基本要求1、 设计系统的硬件和软件设计;2、撰写课程设计报告。3、课程设计报告由封面、设计任务书、目录、摘要、正文、参考文献、附录等部分组成。4、封面可自行设计,应包含课程设计名称及设计题目、专业、班级、姓名、指导老师、设计日期等内容。5、正文是设计报告的核心部分。应包含以下内容:(1)概述所做课题的意义、本人所做的工作及系统的主要功能;(2)硬件电路设计及描述;(3)软件设计流程图及描述;(4)源程序代码(要有注释);(5)体会和建议等。31交通信号灯控制系统设计摘 要一个完整的交通灯相当于一个简单的单片机系统,该系统有交通灯设置电路、单片机、显示电路等构成。信号灯控制的实现是通过电路与汇编程序的结合来完成,其中信号灯的模拟采用了发光二极管,发光二极管有熄灭、点亮和闪烁三种信号,其中闪烁信号的产生运用了定时程序来实现,而时间倒数方面引进了LED数字显示,克服了人们在等待时的心急的心情,减少了红灯未灭,闯红灯的现象。电路部分原理图是通过用protues软件绘制设计,汇编程序的设计与调试都在KEIL上完成。最后使用protues软件上的虚拟元件来代替所有的电路元件完成整个系统的调试和仿真,这样就大大保证了焊制硬件实物能正常运行。 本系统功能设计完善,采用AT89C51单片机为核心,具有实用,方便,灵活的特点。随着电子技术的广泛应用,车辆日益增多将成为一种发展趋势,所以要有一套安全可靠的交通指示灯。关键字:AT89C51;LED显示;交通灯;5微机原理及运用课程设计目录目录4第一章 概述51.1 设计的意义51.2 设计思路6图161.3 设计满足的基本功能7第二章 方案选择72.1 系统方案的确定7第三章 硬件电路设计83.1 显示电路设计83.3 复位部分电路设计103.4 硬件电路设计框图11第四章 程序设计124.1、流程图12第五章 调试及结果分析135.1 程序编写与调试135.2 仿真结果与分析14第六章 小结15参考文献16附录1电路图16附录217程序清单17附录3原件清单32附录4 操作说明3333微机原理及运用课程设计第一章 概述1.1 设计的意义交通的发达,标志着城市的发达,相对交通的管理则显得越来越重要。交通灯是城市交通中的重要指挥系统,它与人们日常生活密切相关随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必要性。对于复杂的城市交通系统,为了确保安全,保证正常的交通秩序,十字路口的信号控制必需按照一定的规律变化,以便于车辆行人能顺利地通过十字路口。单片机自问世以来,性能不断提高和完善,其资源又能满足很多场合的应用,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、性能可靠、价格低廉,其易于产品化、抗干扰能力强、可在各种恶劣环境下可靠的工作等特点。考虑到单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,拟采用MCS - 51系列的单片机来实现十字路口交通信号灯的控制。另外,单片机课程设计是车辆工程本科学生的必修课程。通过交通灯模拟系统的设计可以进一步认识单片机在控制系统中的重要性。在完成理论学习和必要的实验后,学生掌握了单片机的基本原理和各种基本功能的应用,但对单片机的 硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。交通灯模拟系统的课程设计既让学生巩固了课本学到的理论,还让学生学习了单片机硬件电路设计和用户程序设计的整个过程,同时学习了查阅资料、参考资料的方法。单片机的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试用户程序,来加深对单片机的认识,充分发挥学生的个体创新能力。1.2 设计思路假定以P1口线接6支发光二极管(即交通信号灯),因为电路中有反相器的关系,所以口线输出高电平则“信号灯”熄灭,口线输出低电平则“信号灯”亮。为了实现上述控制要求,P1口共输出4种控制码,如下表所示。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0控制码状态说明空空B线绿灯B线黄灯B线红灯A线绿灯A线黄灯A线红灯111100110F3HA线放行,B线禁止111101010F5HA线警告,B线禁止11011110DEHA线禁止,B线放行11101110EEHA线禁止,B线警告表1A线放行,B线禁止A线警告,B线禁止A线禁止,B线放行A线禁止,B线警告如下图所示,状态循环进行。 F3HF5HEEHDEH图1 状态转换图1.3 设计满足的基本功能在双干线路口上,交通信号灯的变化是定时的。假定:1放行线,绿灯亮放行25s,黄灯警告5s,然后红灯亮禁止通行。2禁止线,红灯亮禁止30s,然后绿灯亮放行。3、显示红绿灯时间使两条路线交替地成为放行线和禁止线,就可以实现定时交通控制。第二章 方案选择2.1 系统方案的确定 交通灯在安全行车过程中起着十分重要的作用, 现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯, 加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用, 但根据实际行车过程中出现的情况, 如何全面有效地利用交通灯指示交通情况,我们尝试用单片机来控制交通灯,在软、硬件方面采取一些改进措施,,使交通灯在控制中灵活而有效。硬件系统是指构成单片机系统的实体和装置,通常由运算器、 控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。在该交通灯系统的设计中采用AT89C52单片机,数码管,LED。第三章 硬件电路设计3.1 显示电路设计LED显示器有两中工作方式:静态显示方式和动态显示方式。静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字型码。送入一次字型码显示自行一直保持,直到送入新字型码为止。 这种方法的优点是占用CPU时间少, 显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。各数码管在显示过程中持续得到显示信号,与各数码管接口的I/O口是专用的。动态显示的特点是将所有位数码管的段选线并联在一起, 由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选, 利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。 动态显示的亮度比静态显示要差一些, 所以在选择限流电阻时应略小于静态显示电路中的。各数码管在显示过程中轮流得到显示信号,与各数码管接口的I/O口是共用的。 该设计采用如下所示的数码管, 分别显示南北和东西灯的剩余时间。分别接单片机管脚的P1口和P3口,具体的共阴数码管下见图。图2 数码管3.2 时钟部分电路设计 时钟电路用于产生MCS-51单片机工作时所必须的时钟控制信号。其内部电路在时钟信号控制下,严格地按时序执行指令进行工作。 在执行指令时, CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定操作。 本设计采用12MHz晶振和两个30Pf瓷片电容,他们构成一个稳定的自激振荡器。该电容的大小影响振荡器频率的高低、振荡器的稳定性和起振的快速性。为单片机提供标准时钟。其中两个瓷片电容起微调作用。 如图所示:图3 自磁感应器3.3 复位部分电路设计复位引脚RST通过一个斯密特触发器与复位电路相连, 斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种方式。该设计采用加电直接复位,复位电容采用10uF,电阻10000欧,为了节省元件,没有采用上电加按键模式。加电瞬间,RES管脚为高电平。通过电阻回路放电,使电压逐渐降为零,从而实现了复位功能。其连接图如下图所示:图4 复位电路3.4 硬件电路设计框图主控部分秒脉冲发生器交通灯倒计时控制部分数码管显示反馈控制图5 设计框图第四章 程序设计4.1、流程图如下给出了基本交通灯主程序流程图,四种状态的子程序流程图,T0中断子程序流程图。通过流程图能够更加清晰有条理的对整个程序进行观察了解,同时流程图也是程序设计的指导。开始T0初始化设置 重载定时初值 启动定时器T0 IS定时是否到 调用“A线放行,B线禁止”的子程序 A线显示减1 调用“A线警告,B线禁止”的子程序 调用“A线禁止,B线放行”的子程序B线显示减1 调用“A线禁止,B线警告”的子程序 返回 图6状态子程序点亮相关红绿黄灯调用A线显示子程序调用B线显示子程判断显示是否结束返回图7第五章 调试及结果分析5.1 程序编写与调试使用keil软件工具时,项目开发流程和其它软件开发项目的流程极其相似。用它来完成一个工程的步骤简要描述如下:(1) 创建一个项目, 从器件库选择目标器件, 配置工具设置。(2) 用汇编语言创建源程序。(3) 用项目管理器生成应用。(4) 修改源程序中的错误。(5) 测试,生成.HEX文件,连接应用。按照上述步骤进行程序编制,设置好相应配置后进行调试。5.2 仿真结果与分析程序编译完毕生成hex文件,导入到电路图结果如下:图8 电路图 正确实现了显示屏30s倒计时显示,竖直方向为A线,水平方向为B线。初始时A线放行绿灯亮,B线禁止红灯亮,25s后,A线警告黄灯亮,B线仍禁止。5s后A线禁止红灯亮,B线放行绿灯亮,再过5s后A线仍禁止,B线警告黄灯亮。然后循环此工作过程。第六章 小结两周的时间匆匆而过,经过两周的努力工作,终于完成了自己的单片机课程设计。虽说忙碌了点,有时还因为处理程序更改设计而熬夜,但看到自己的劳动成果时,所产生的喜悦,把一切疲劳都赶走,那种成就感,是无法言语的。这几天,感觉很充实,当然,也获益匪浅。在实验初期,由于不知所买的开发板的具体布局和元件组成,只能按自己的设想进行初步的功能设计,和流程设计。我还清晰的记得当拿到开发板时的兴奋。不过,兴奋劲一下就没了仿真就是不亮。当天晚上,我就熬夜把程序改了过来。进行到中期时,当把程序写入模拟单片机51后,运行时发现结果并非设想的那么好,而且几乎是彻底的失败,不过,这并没有打击我的积极劲,反而促使我更加专注于程序设计。然而,现实永远是那么残酷,当满怀信心的把自认为接近完美的程序导入后,各种问题不断出现。而令人最无法忍受的是,自己及同学都无法查处逻辑上存在的问题。上周五检查成果时,因为程序本身原因,错误颇多,。当天,检查完后,看到就去请教了他。学长把我带到他的实验室,教会了我如何用Kell软件一条指令一条指令的执行程序和如何采用断点更方便的查看程序的走向以及如何看个端口的输出、各存储单元的值。晚上,用学长教会的方法,不断模拟,终于找到了问题的根源忽视了SP的值的变法。由于我把本该使用转移指令的命令用成了子程序调用,导致SP所存值不断增加,从而当进入中断而想再出来时,由于PC值错误,无法回到中断前的程序。发现这个问题后,我立马改正,终于使主程序正常运行了。不过,键盘输入程序问题犹在。经过模拟键盘程序,发现设计把输入值存入单片机内部存储器RAM58H单元的操作并没有进行,仔细检查发现R1存的地址并不是期望的58H,认真分析后终于明白是自己忘了R1值经过上一子程序操作后已经改变,因此,我改变了存储调用途径,使R1值一直保持期望值。经过又一个通宵,终于完成了主程序的编写,比如当我调试程序时,由于Kell软件本身的缺陷,经常导致我的程序编译时出现警告,导致无法顺利编译,让我误以为是自己程序有问题。后来,我把开发板自带程序以及已经成功运行了的同学的程序写入,发现还是有警告,从而确认是软件问题,所以我就改用同学的电脑完成了调试工作。还有一个问题是,模拟软件,导致P3.3端口信号经常自动有效而导致程序运行时自动进入紧急情况中断,改用开发板后,情况明显改善。在这些过程中,我学会了克制、冷静。在此,感谢所有在设计过程中给予我以帮助的同学和老师。感谢娄艳阳同学在我电脑程序无法使用时,给我在软件上的支持;感谢徐效文老师在专业知识上的教诲指导;授人鱼不如授之以渔,因此,特别感谢学长对我在调试纠错上的指导!谢谢你们! 参考文献1 胡汉才. 单片机原理与接口技术M北京:清华大学出版社,1995.62 楼然苗等. 51系列单片机设计实例M北京:北京航空航天出版社,2003.33 何立民. 单片机高级教程M北京:北京航空航天大学出版社,20014 赵晓安. MCS-51单片机原理及应用M. 天津:天津大学出版社,2001.35 肖洪兵. 跟我学用单片机M. 北京:北京航空航天大学出版社,2002.86 夏继强. 单片机实验与实践教程M. 北京:北京航空航天大学出版社,2001附录1电路图附录2程序清单ORG 0000H AJMP MAIN ORG 0003H LJMP AQW1 /跳到设定时间中断服务程序 ORG 000BH LJMP AQW2 / 跳到跳到特种车辆自动服务程序 ORG 0013H LJMP AQW3 ; 跳到南北有车东西无车中断服务程序 ORG 001BH LJMP AQW4 ; 跳到东西有车南北无车中断服务程序 ;.数字显示代码. ORG 0100H TAB: DB 3FH,6H,5BH,4FH,66H,6DH,7DH,7H,7FH,6FH;主程序 ORG 0300H MAIN: MOV 25H,#25 ; 南北通行时间初始值,存到25H单元 MOV 26H,#25 ; 东西通行时间初始值,存到26H单元 MOV SP,#40H ; 堆栈选址 CLR P3.0 ; MOV TMOD,#66H ; T0、T1都计数方式,工作模式2 ,启动方式TRi确定 MOV TL0,#255 ; 计数器0初值 低8位 MOV TH0,#0 ; 计数器0初值高8位 MOV TL1,#255 ; 计数器1初值 低8位 MOV TH1,#0 ; 计数器1初值高8位 SETB IT0 ; 外部中断一边沿触发 SETB IT1 ; 外部中断二边沿触发 MOV IE,#8FH ; 开中断 SETB TR0 ; T0开始计数 SETB TR1 ; T1 开始计数; .南北绿灯东西红灯. NBLD: CLR P3.0 ; MOV R1,25H ; 南北通行时间30秒(25h)=30,(NBLD即东西绿灯) NBLD1: MOV P2,#1EH ; 点亮南北绿灯东西红灯 MOV 20H,R1 ; 为南北方向显示时间做准备 MOV A,R1 ; ADD A,#5 ; MOV 21H,A ; 为东西方向显示时间做准备 LCALL DISP1 ; 显示通行所剩时间,其中有0.5秒延时 LCALL DISP1 ; 再次显示以便数码管不闪,且再延时0.4秒以便凑够一秒 DJNZ R1,NBLD1 ; 判断30秒是否已完,若未完则从新显示、延时;.南北黄灯闪东西红灯.ShanHD: MOV R2,#5 ; 黄灯闪亮5秒 HD: MOV P2,#1DH ; 点亮黄灯 MOV 22H,R2 ; 为显示时间做准备 LCALL DISP2 ; 黄灯闪亮剩时显示 ,其中延时0.5秒 MOV P2,#1FH ; 熄灭黄灯 LCALL DISP2 ; 显时,且再延时0.5秒以便凑够1秒 DJNZ R2,HD ; 判断5秒是否已完,若未完则从新闪灭、延时和显示;.南北红灯东西绿灯 . DXLD: CLR P3.0 ; MOV R3,26H ; 东西通行20秒 (26H)=20, (DXLD即东西绿灯) DXLD1: MOV P2,#33H ; 点亮南北红灯东西绿灯 MOV 24H,R3 ; 为东西方向显示时间做准备 MOV A,R3 ; ADD A,#5 ; MOV 23H,A ; 为南北方向显示时间做准备 LCALL DISP3 ; 时间显示 ,其中有0.5秒延时 LCALL DISP3 ; 凑够1秒时间 DJNZ R3,DXLD1 ; 判断20秒是否已完;.南北红灯东西黄灯闪.ShanHD1: MOV R2,#5 ; 转入黄灯闪亮5秒 HD1: MOV 22H,R2 ; 为显示做准备 MOV P2,#2BH ; 点亮南北红灯东西黄灯 LCALL DISP2 ; 显示时间,并延时0.5秒 MOV P2,#3BH ; 点亮南北红灯关闭东西黄灯 LCALL DISP2 ; 显时,且再延时0.5秒以便凑够1秒 DJNZ R2,HD1 ; 判断5秒是否到,若未到继续闪灭东西黄灯 AJMP NBLD;.特种车辆通过.Tezhong: MOV P2,#1BH ; 点亮东西南北红灯 SETB P3.0 ; MOV R4,#15 ; 特殊车辆通过时间15秒 QHD: MOV 27H,R4 ; 为显示做准备 LCALL DISP4 ; 显示时间 DJNZ R4,QHD ; 判断15秒是否到,若不到继续显示时间 CLR p3.0 ; AJMP NBLD ; 主程序到此完 ;.延时程序. . DELAY: ACALL DELAY1 ; 10ms延时 ACALL DELAY1 RET DELAY1: MOV R6,#50 ; 5ms延时 ,(5ms=50*50*2us) DE6: MOV R0,#50 DE7: DJNZ R0,DE7 DJNZ R6,DE6 RET;.南北通行的时间显示子程序(其中有0.5秒延时). DISP1: MOV P0,#0 ; 熄灭数码管 MOV R7,#25 ; 以下调用四次5毫秒延时程序,故25*4*5毫秒=0.5秒 RP1: MOV A,20H ; 南北方向要显示的时间移到寄存器A MOV DPTR,#TAB ; 要显示的数字代码表首地址 MOV B,#10 DIV AB ; 要显示的时间与10相除,求出十位和个位 MOVC A,A+DPTR ; 找到十位的显示代码 MOV P1,#00001110B; 选择南北数码管十位片 MOV P0,A ; 送出十位显示代码 LCALL DELAY1 ; 延时5ms以点亮数码管 MOV A,B ; 把个位数移到寄存器A MOVC A,A+DPTR ; 找到个位数显示代码 MOV P1,#00001101B ; 选择南北数码管个位片 MOV P0,A ; 送出个位数显示代码 LCALL DELAY1 ; 延时5ms以点亮数码管 MOV A,21H ; 东西方向要显示的时间移到寄存器A MOV DPTR,#TAB ; 要显示的数字代码表首地址 MOV B,#10 DIV AB ; 要显示的时间与10相除,求出十位和个位 MOVC A,A+DPTR ; 找到十位的显示代码 MOV P1,#00001011B; 选择东西数码管的十位片 MOV P0,A ; 送出十位显示代码 LCALL DELAY1 ; 延时5ms以点亮数码管 MOV A,B ; 把个位数移到寄存器A MOVC A,A+DPTR ; 找到个位的显示代码 MOV P1,#00000111B ; 选择东西数码管的个位片 MOV P0,A ; 送出个位显示码 LCALL DELAY1 DJNZ R7,RP1 ; 是否已循环25次?(25次才够0.5秒) RET ;.黄灯的时间显示子程序. DISP2: MOV P0,#0 ; 熄灭数码管 MOV R7,#25 ; 以下调用两次0.01秒延时程序,故25*0.02=0.5秒 RP2: MOV A,22H ; 要显示的时间移到寄存器A MOV DPTR,#TAB ; 要显示的数字代码表首地址 MOV B,#10 DIV AB ; 要显示的时间与10相除,求出十位和个位 MOVC A,A+DPTR ; 找到十位的显示代码 MOV P1,#00001010B; 选择南北数码管十位片和东西数码管十位片 MOV P0,A ; 送出十位显示代码 LCALL DELAY ; 延时10ms以点亮数码管 MOV P1,#00000101B ; 选择南北数码管个位片和东西数码管个位片 MOV A,B ; 把个位数移到寄存器A MOVC A,A+DPTR ; 找到个位数显示代码 MOV P0,A ; 送出个位数显示代码 LCALL DELAY ; 延时10ms一点亮数码管 DJNZ R7,RP2 RET ;.东西通行的时间显示子程序. DISP3: MOV P0,#0 ; 熄灭数码管 MOV R7,#25 ; 以下调用两次0.01秒延时程序,故10*0.05=0.5秒 RP3: MOV A,23H ; 要南北方向显示的时间移到寄存器A MOV DPTR,#TAB ; 要显示的数字代码表首地址 MOV B,#10 DIV AB ; 要显示的时间与10相除,求出十位和个位 MOVC A,A+DPTR ; 找到十位的显示代码 MOV P1,#00001110B; 选择南北数码管十位片 MOV P0,A ; 送出十位显示代码 LCALL DELAY1 ; 延时5ms以点亮数码管 MOV A,B ; 把个位数移到寄存器A MOVC A,A+DPTR ; 找到个位数显示代码 MOV P1,#00001101B; 选择南北道数码管个位片 MOV P0,A ; 送出个位数显示代码 LCALL DELAY1 ; 延时5ms一点亮数码管 MOV A,24H ; 要东西方向显示的时间移到寄存器A MOV B,#10 DIV AB ; 要显示的时间与10相除,求出十位和个位 MOVC A,A+DPTR ; 找到十位的显示代码 MOV P1,#00001011B ; MOV P0,A ; 送出十位显示代码 LCALL DELAY1 ; 延时5ms以点亮数码管 MOV A,B MOVC A,A+DPTR MOV P1,#00000111B ; 选择东西数码管个位片 MOV P0,A ; 送出个位显示代码 LCALL DELAY1 DJNZ R7,RP3 RET ;.特殊车辆通过的时间显示子程序. DISP4: MOV P0,#0 ; 熄灭数码管 MOV R7,#50 ; 以下调用两次0.01秒延时程序,故40*2*0.01=1秒 RP4: MOV A,27H ; 要显示的时间移到寄存器A MOV DPTR,#TAB ; 要显示的数字代码表首地址 MOV B,#10 DIV AB ; 要显示的时间与10相除,求出十位和个位 MOVC A,A+DPTR ; 找到十位的显示代码 MOV P1,#00001010B; 选择南北、东西数码管十位片 MOV P0,A ; 送出十位显示代码 LCALL DELAY ; 延时10ms以点亮数码管 MOV A,B ; 把个位数移到寄存器A MOVC A,A+DPTR ; 找到个位数显示代码 MOV P1,#00000101B; 选择南北、东西数码管的个位片 MOV P0,A ; 送出个位数显示代码 LCALL DELAY ; 延时10ms一点亮数码管 DJNZ R7,RP4 RET;.设定时间子程序.;根据哪个方向亮绿灯设定那个方向的通行时间,没有绿灯亮不能设定时间,中断;直接退出。 ;. AQW1: MOV IE,#0 ; 关闭中断允许 MOV A,P2 ; 读取交通灯状态 JNB Acc.3,DXSJ ; P2.3,DXSJ ; DXSJ(东西绿灯亮(P2.3=0)则设定东西通行时间 ) JNB Acc.0,NBSJ ; P2.0,NBSJ ; NBSJ (南北绿灯亮(P2.0=0)则设定南北通行时间 ) POP 28H ; POP 28H ; MOV DPTR,#NBLD ; 如果不能调整时间(没有绿灯亮)则退出后从状态1开始,相当于复位。 PUSH DPL ; PUSH DPH ; EXIT: MOV IE,#8FH ; 恢复开中断 RETI ; - - - - -南北通行时间设定 - - - - - NBSJ: POP 28H ; POP 28H ; MOV DPTR,#NBLD ; 此处设时为南北通行时间 PUSH DPL ; 把断点换成南北绿灯(NBLD)入口 PUSH DPH ; XSSM1: MOV A,25H ; 读取南北通行时间 MOV 20H,A ; 为南北方向显示时间做准备 ADD A,#5 ; MOV 21H,A ; 为东西方向显示时间做准备 LCALL DISP1 ; 显示时间 LCALL DELAY1 MOV A,P3 JNB P3.2,EXIT ; 判断有否按下设时确定按钮,若有则退出,若无接着判断加时和减时信号 JNB P3.3,JX ; 判断有否加时信号(p3.3所接按钮是否按下)若有跳转处理,无则扫描减时信号 JNB P3.5,JX1 ; 判断有否减时信号 AJMP XSSM1 ; 从循环显示时间和扫描按键情况 JX: MOV A,25H ; 读出之前设定的时间值(存储在25H单元) ADD A,#1 ; 在之前值基础上加1处理 MOV 25H,A ; 回存到25H单元 MOV 20H,A ; 为南北显示时间做准备 ADD A,#5 ; MOV 21H,A ; 为东西方向显示时间做准备 LCALL DISP1 ; 显示处理后的时间值 AJMP XSSM1 ; 从循环显示时间和扫描按键情况 JX1: MOV A,25H ; 读出之前设定的时间值(存储在25H单元) SUBB A,#1 ; 在之前值基础上减1处理 MOV 25H,A ; 回存到25H单元 MOV 20H,A ; 为南北方向显示时间做准备 ADD A,#5 ; MOV 21H,A ; 为东西方向显示时间做准备 LCALL DISP1 ; 显示处理后的时间值 AJMP XSSM1 ; 从循环显示时间和扫描按键情况; - - - - 东西通行时间设定 - - - - - - DXSJ: POP 28H ; POP 28H ; MOV DPTR,#DXLD ; 此处设时为东西通行时间,故若此步处理后返回则应让东西通行故 PUSH DPL ; 把断点换成东西绿灯(DXLD)入口 PUSH DPH ; XSSM2: MOV A,26H ; 读取东西通行时间值 MOV 24H,A ; 为东西方向显示时间做准备 ADD A,#5 ; MOV 23H,A ; 为南北方向显示时间做准备 LCALL DISP3 ; 显示时间 MOV A,P3 JNB P3.2,EXIT1 ; 判断有否按下设时确定按钮,若有则退出,若无接着判断加时和减时信号 JNB P3.3,JX2 ; 判断有否加时信号(p3.3所接按钮是否按下)若有跳转处理,无则扫描减时信号 JNB P3.5,JX3 ; 判断有否减时信号 AJMP XSSM2 ; 从循环显示时间和扫描按键情况 EXIT1: LJMP EXIT ; 因为如果上游指令(JNB P3.2,EXIT1)为直接JNB p3.2,EXIT则跳出范围 JX2: MOV A,26H ; 读出之前设定的时间值(存储在26H单元) ADD A,#1 ; 在之前值基础上加1处理 MOV 26H,A ; 回存到26H单元 MOV 24H,A ; 为东西方向显时间示做准备 ADD A,#5 ; MOV 23H,A ; 为南北方向显示时间做准备 LCALL DISP3 ; 显示处理后的时间值 AJMP XSSM2 ; 从循环显示时间和扫描按键情况 JX3: MOV A,26H ; 读出之前设定的时间值(存储在26H单元) SUBB A,#1 ; 在之前值基础上减1处理 MOV 26H,A ; 回存到26H单元 MOV 24H,A ; 为东西方向显示时间做准备 ADD A,#5 ; MOV 23H,A ; 为南北方向显示时间做准备 LCALL DISP3 ; 显示处理后的时间值 AJMP XSSM2 ; 从循环显示时间和扫描按键情况 ;.特殊车辆通过,中断服务程序. AQW2: POP 28H ; 弹出断点低位地址 POP 28H ; 弹出断点高位地址 MOV DPTR,#Tezhong ; PUSH DPL ; PUSH DPH ; 把断点换成特种车辆通过的程序段首地址,即Tezhong MOV TMOD,#66H ; T0、T1都计数方式,工作模式2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二手房买卖协议书
- 企业员工培训:提升工作效率的秘诀
- 人工智能与深度学习在智能家居的融合发展
- 国际视野下的职业发展:大学生海外职业规划研究
- 邮储银行南充市南部县2025秋招笔试数量关系题专练及答案
- 邮储银行扬州市广陵区2025秋招笔试金融学专练及答案
- 专业知识能力培训心得课件
- 邮储银行怀化市溆浦县2025秋招英文面试20问及高分答案
- 人民币防伪知识专题培训课件
- 2025标准的企业租赁合同样本
- 微电子器件(4-13)SPICE 中的 MOFET 模型
- 竞选小学家委会演讲稿
- 设备对中培训
- 2024年中国孵化器发展现状研究报告
- 九年级历史上册第四单元单元练习题-部编版(含答案)
- 快乐读书吧:童年(专项训练)-2023-2024学年六年级语文上册(统编版)(含答案)
- 2024电气装置安装工程电气设备交接试验标准
- 山西省太原市志达中学2024-2025学年八年级上学期10月月考数学试题
- 截长补短课件
- 父亲的病鲁迅
- 课程评价课件
评论
0/150
提交评论