收藏 分享(赏)

交通灯智能控制系统的设计与实现.doc

上传人:HR专家 文档编号:5879701 上传时间:2019-03-20 格式:DOC 页数:23 大小:532KB
下载 相关 举报
交通灯智能控制系统的设计与实现.doc_第1页
第1页 / 共23页
交通灯智能控制系统的设计与实现.doc_第2页
第2页 / 共23页
交通灯智能控制系统的设计与实现.doc_第3页
第3页 / 共23页
交通灯智能控制系统的设计与实现.doc_第4页
第4页 / 共23页
交通灯智能控制系统的设计与实现.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、广东技术师范学院全国中职骨干专业教师培训班论文题 目: 交通灯智能控制系统的设计与实现 系 别: 电子信息工程 专 业: 电子应用技术一班 姓 名: 白菊容 指导老师: 韩克 柳秀山 时 间: 2007 年 8 月交通灯智能控制系统的设计与实现全国中职骨干教师培训班电子应用技术(1)班 白菊容摘要:本文分析了传统交通灯存在的缺点,提出单片机智能交通灯的设计方案。进一步作系统硬件电路的设计和系统程序的设计,用 PROTEUS 对电路进行仿真的过程和结果。并且说明硬件制作的过程与安装调试的结果。关键词:交通灯、智能、单片机、PROTEUS 仿真一、 引言随着生活水平的提高,家庭汽车拥有量越来越多,

2、城市交通堵塞问题越来越严重,解决城市的交通拥挤问题越来越紧迫。交通灯在这个交通环境中起着一个重要的角色,是交通管理部门管理交通的重要工具。国内的交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车。而目前绝大多数交通灯的时间都是设定好的,还存在以下缺点:1两车道的车辆轮流放行时间相同且固定, 在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。2没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车或急救车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。这些缺点的存在,决定了传统交通灯

3、不能适应当前城市交通的要求,不能使城市车流的调节达到最优。针对道路交通拥挤,交叉路口经常出现拥堵的情况,提出使用智能交通灯的要求。与传统交通灯比较,智能交通灯作以下两点的改进措施:1、根据各道路路口车流量的大小自动调节通行时间。2、考虑特殊车辆通行情况,设计紧急切换开关。事实证明,智能的交通灯能有效地缓解城市的交通压力,减少交通事故;智能的交通灯能为人民节省大量出行时间,创造出更多的社会价值;智能的交通灯为交通顺畅提供了保障,对经济的发展起着一个不可估量的作用。第四章:基于 PROTEUS 的电路仿真二、 智能交通信号灯的设计方案1、智能交通灯的设计要求(1) 、设计一个十字路口的交通灯控制电

4、路,要求南北方向和东西方向两个交叉路口的车辆交替运行,两个方向能根据车流量大小自动调节通行时间,车流量大,通行时间长,车流量小,通行时间短。(2) 、在绿灯转为红灯时,要求黄灯先亮 5 秒钟,才能变换运行车道。(3) 、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用数码管显示器进行显示(采用倒计时的方法) 。(4) 、同步设置人行横道红、绿灯指示。(5) 、考虑到特殊车辆情况,设置紧急转换开头。2、智能交通灯的方案论证目前设计交通灯的方案有很多,有应用 CPLD 实现交通信号灯控制器的设计,有应用 PLC 实现对交通灯控制系统的设计。有应用单片机实现对交通信号灯设计的方法

5、。由于 AT89S51 单片机自单带有 2 计数器,6 个中断源,能满足系统的设计要求。用单片机设计不但设计简单,而且成本低,用其设计的交通灯也满足了要求,所以本文采用单片机设计交通灯。方案 1:采用 AT89C2051 单片机作为控制器,通行倒记时显示采用 16*16点阵 LED 发光管,通行指示也采用 16*16 点阵双色 LED 发光管。该系统设计框架如图 2-1 所示。列驱动采用 74LS595 以实现串行端口扩展,列驱动采用4/16 译码器 74LS154 动态扫描,译码器 74LS154 生成 16 条行选通信号线,再经过驱动器驱动对应的行线。每条行线上需要较大的驱动电流,应选用大

6、功率三极管作驱动管。这种设计方案的优点是图案显示逼真,单片机占用端口资源少;缺点是需要大量的硬件,电路复杂,耗电量大,在模型制作中较少使用。方案 2:采用 AT89S51 单片机作为控制器,通行倒记时显示采用 LED 数码管,通行指示灯采用发光二极管,LED 显示采用动态扫描,以节省端口数。特殊紧急车辆通行采用实时中断完成,车流量大小采用霍尔车辆检测传感器检测电路完成。按以上系统构架设计,单片机端口刚好满足要求。该系统具有电路简单,设计方便,耗电较少,可靠性高等特点。整个电路组成框图如图 2-2 所第四章:基于 PROTEUS 的电路仿真示。通过以上分析可以看出,方案 2 具有综合设计优点,因

7、此,智能交通灯控制系统采用方案 2 设计。三、系统硬件电路的设计如图 3-1 为智能交通灯控制系统总电路原理图。RXDTXDAT89C2051I/O电源列驱动器 74LS595双色 LED显示点矩行驱动器图 2-1T1 P0T0 INT0 P1INT1P2AT89S52LED 显示器复位紧急控制交 通 流量 检 测南北通行灯东西通行灯图 2-2第四章:基于 PROTEUS 的电路仿真图 3-1整套系统由五部分组成:控制系统模块、车流量检测电路,信号灯电路,时间显示电路,紧急转换开关。1、主控制系统主控制器采用 AT89S51 ,是美国 ATMEL 公司生产的低功耗,高性能 CMOS 8 位单片

8、机,片内含 4k bytes 的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器 既可在线编程(ISP)也可用传统方法进行编程及通用 8 位微处理器于单片芯片中, ATMEL 公司的功能强大,低价位 AT89S51 单片机可为我们提供许多高性价比的应用场合,可灵活应用于各种控制领域。单片机的 P1 口及 P2 口分别用于控制南北和东西方向的通行灯,P0 口用于对 LED 记时器的控制, T0 和 T1 作为东西方向和南北方向车流量控制,INT0和 INT1 用于东西方向和南北方向

9、紧急转换控制。2、车辆检测电路如何判断两路口车辆的状况呢?我们要设计一套科学检测车流量而自动调整绿灯放行时间( 需设定上、下限)的控制系统,这样无疑会大大提高车辆通过第四章:基于 PROTEUS 的电路仿真率,有效缓解交通压力。我们在每车道车辆等待线的前方都安装一个霍尔车辆检测传感器,当有一辆车通过时就产生一个脉冲电路,车辆通过检测电路如图3-2 所示。图 3-2 车辆检测电路由于南往北,北往南时间显示相同,所以只要一个方向多车,下次时间就要加长。东往西,西往东也一样,显示时间选择如表 3-1表 3-1 显示时间选择车辆情况 本次该方向通行时间下次该方向通行时间本次该方向通行时间本次该方向通行

10、时间南往北少车,北往南少车 20 秒 20 秒 40 秒 20 秒南往北少车,北往南多车 20 秒 40 秒 40 秒 40 秒南往北多车,北往南少车 20 秒 40 秒 40 秒 40 秒南往北多车,北往南多车 20 秒 40 秒 40 秒 40 秒东往西少车,西往东少车 20 秒 20 秒 40 秒 20 秒东往西少车,西往东多车 20 秒 40 秒 40 秒 40 秒东往西多车,西往东少车 20 秒 40 秒 40 秒 40 秒东往西多车,西往东多车 20 秒 40 秒 40 秒 40 秒3、信号灯电路信号灯用来显示车辆通行状况,下面以一个十字路口为例,说明一个交通车辆车辆第四章:基于

11、PROTEUS 的电路仿真灯的四种状态见图 3-3。每个路口的信号的的转换顺序为:绿黄红 绿灯表示允许通行,黄灯表示禁止通行,但已经驶过安全线的车辆可以继续通行,是绿灯过渡到红灯提示灯。红灯表示禁止通行。绿灯的最短时间为 20 秒,最长时间为 40 秒,红红最短时间为 25 秒,最长时间为 45 秒,黄灯时间为 5 秒。图 3-3 交通信号灯运行状态4、时间显示电路在交通信号灯的正上方安装一个可以显示绿灯通行时间,红灯等待时间的显示电路,采用数码管显示电路是一种很好的方法。由于东往西方向和西往东方向显示的时间相同,南往北方向和北往南方向显示的时间也相同,所以只需要考虑四位数码管显示电路,其中东

12、西方向两位,南北方向两位,两位数码管可以显示的时间为 0-99 秒完全可以满足系统的要求。5、紧急转换开关电路一般情况下交通灯按照车流量大小合理分配通行时间,按一定规律变化,但考虑紧急车通行车况,设计紧急通行开关。即如果南北方向有特殊车辆要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向有特殊车辆要求通过,东西方向转换为绿灯,南北方向为红灯。红黄绿 红黄绿红黄绿红黄绿绿黄红绿黄红绿黄红 红黄绿红黄绿 红黄绿红黄绿 红黄绿绿黄红 绿黄红绿黄红 绿黄红第四章:基于 PROTEUS 的电路仿真四、系统主要程序的设计道口交通灯控制系统控制程序主要分为以下几个模块:初始化程序、主程序、定时中断程

13、序、紧急车辆通行实时响应程序。初始化程序主要完成内存的规划、定时器工作模式的设定、中断方式等的设定。主程序主要负责总体程序管理功能,实现人机交互设定。由于采用动态扫描方式显示时间,因此,主程序大部分时间要调用扫描显示程序。显示程序流程图如图 3-6 所示:第二状态,第二状态显示时间显示时间是否为 0显示时间减 1是否 是显示时间是否为 0第一状态,第一状态显示时间显示时间减 1是否显示时间是否为 0第三状态,第三状态显示时间显示时间减 1否显示时间是否为 0第四状态,第四状态显示时间显示时间减 1是否图 3-4 交通灯的软件设计流程图动态扫描显示程序:MOV R6,#250;显扫描次数LOOP

14、:MOV P0,#5BH ;送 2 的共阴极码CLR P2.0;第一位显示 2ACALL D1MS ;延时 1MS第四章:基于 PROTEUS 的电路仿真SETB P2.0 ;灭第一位MOV P0,#3FH ;送 0 的共阴极码CLR P2.1;第二位显示 0ACALL D1MS ;延时 1MSSETB P2.1 ;灭第二位CLR P2.2;第三位显示 2ACALL D1MS ;延时 1MSSETB P2.2 ;灭第三位MOV P0,#6DH ;送 5 的共阴极码CLR P2.3;第四位显示 5SETB P2.3 ;灭第四位DJNZ R7,LOOP;不够一秒,继续扫描NEXTNUMBER;到一

15、秒显示下一个数D1MS: ;1MS 延时程序MOV R3,#250DJNZ R3,$DJNZ R4,STAT1RET五、基于 PROTEUS 的电路仿真PROTEUS 嵌入式系统仿真与开发平台是由英国公司开发(授权风标科技公司为中国大陆总代理)的 EDA 工具软件,是目前世界上最先进最完整的嵌入式系统设计和仿真平台。Proteus 软件有十多年的历史,在全球广泛使用,除了其具有和其它 EDA 工具一样的原理布图、PCB 自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现实时调试,如有显示及输第四章:基于

16、PROTEUS 的电路仿真出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,您不需要别的,Proteus 为您建立了完备的电子设计开发环境!真正实现了在没有目标原形时就可对系统进行调试,测试和验证。 1、用 PROTEUS 绘制原理图运行 PROTEUS VSM 的 ISIS 后出现相应的界面, 点状的栅格区域为绘图区。左侧的上方为电路图概览区, 下方是元器件列表区。单击 P 后出现的 Pick Device 添加元器件的对话框, 输入所要添加的器件名称, 则该器件就会出现在右侧, 单击 OK 按钮, 完成一个元器件的添加。重复以上过程 , 添加好电路中所需的元器

17、件。在元器件列表区选中某元器件后, 在电路图概览区会出现该元器件, 用鼠标将其拖至绘图区, 将所有需要的元器件在绘图区放置好, 即可开始连线。连线方法很简单, 将鼠标移至元器件引脚后会出现一个小十字, 单击鼠标左键后移动鼠标, 将线引至某一引脚处会再次出现小十字, 再次单击左键就完成了一条连线。在布线时, 如果需要转弯,可以在转弯处单击鼠标左键。图 5-1 就是绘制完成的电路图。图 5-1 绘制完成的电路图第四章:基于 PROTEUS 的电路仿真2、 PROTEUS 对单片机内核的仿真电路图绘制完成后, 再添加 AT89C51 的应用程序。将鼠标移至 AT89C52 上, 单击鼠标右键使之处于

18、选中状态, 在该器件上单击左键, 打开如图 5-2 所示的对话框。在 Program File 栏添加编译好的十六进制格式的程序文件AA.hex(可以接受 3 种格式的文件) ,给 AT89C52 输入晶振频率,此处默认为12MHZ, 单击 OK 按钮完成程序添加工作, 下面就可以进行系统仿真了。单击主界面下方的按钮开始系统仿真。PROTEUS VSM 所进行的是一种交互式仿真, 在仿真进行中可以对各控制按钮、开关等进行操作, 系统对输入的响应会被真实的反映出来。仿真结果如图 5-3。开始仿真后,开关,按钮通过鼠标单击来改变状态,所改变状态的结果会在 LED 和数码管显示出来。仿真结果与设计方

19、案相符。图 5-2 为 AT89C52 添加程序文件第四章:基于 PROTEUS 的电路仿真图 5-3 交通灯仿真界面六、 智能交通灯硬件的制作与调试绘制完电路图并用 PROTEUS 软件进行仿真后证明了系统运行良好。根据仿真电路图制作硬件电路。1、 交通灯主电路的硬件制作根据仿真电路图制作交通灯主电路硬件时要注意下面几点:为了节省耗材,实际硬件制作电路与 PROTEUS 设计电路有所不同。实际电路只用两组信号灯和两组数码管,东西方向共用一组,南北方向共用一组。用 PROTEUS 仿真的电路图可以不加复位电路,不用外接晶振,只需要在为单片机添加程序文件时输入晶振频率就可以了。但在制作硬件时必须

20、焊接上复位电路和外接晶振电路。用 PROTEUS 仿真的电路图单片机的Error!脚可以不用接高电平仿真就能正确运行,但制作硬件时我们必须将Error!端连接到高电平,CPU 才能执行内部程序存储器中的指令。PCB 电路如图 6-1第四章:基于 PROTEUS 的电路仿真如图 6-12、交通灯主电路的硬件调试结果实际制作的硬件电路运行稳定,交通灯硬件运行情况如图 6-2 所示:交通灯正常运行情况第四章:基于 PROTEUS 的电路仿真图 6-2 所示七、结束语。在本文中采用 PROTEUS 设计交通灯控制系统,借助其功能强大的仿真系统对设计的系统进行实时仿真,以检测系统设计的正确性与合理性,并

21、可以根据仿真电路图制作硬件电路,这种设计具有传统逻辑设计方法所无法比拟的优越性。参考文献:基于 PROTEUS 的电路及单片机系统设计与仿真 周润景编著 北京航空航天大学出版社单片机原理及应用 曹巧嫒 电子工业出版社 2002.2新编单片机与应用 潘永雄 西安电子科技大学出版社 2003.2附页:系统程序ORG 0000HA_BIT EQU 20H ;用于存放南北十位数B_BIT EQU 21H ;用于存放南北十位数交通灯应急运行情况第四章:基于 PROTEUS 的电路仿真C_BIT EQU 22H ;用于存放东西十位数D_BIT EQU 23H ; 用于存放东西位数TEMP1 EQU 24H

22、 ;用于存放第一二南北状态要显示的时间TEMP2 EQU 25H ;用于存放第一二东西状态要显示的时间TEMP3 EQU 26H ;用于存放第三第四南北状态要显示的时间TEMP4 EQU 27H;用于存放第三第四南北状态要显示的时间LJMP MAINORG 0003H ;外部中断 0 入口LJMP INT0 ;跳转到外部 0 中断ORG 0013H ;外部中断 1 入口LJMP INT1 ;跳转到外部 1 中断INT0: MOV A,P1 ;外部 0 中断PUSH ACCMOV A,P2 ;中断保护PUSH ACCMOV P1,#0FFH ;清除先前状态MOV P2,#0FFHCLR P1.0

23、CLR P1.4 ;南北通行,东西禁止通行CLR P1.6CLR P2.3JNB P3.2 ,$ ;判断是否还在中断状态MOV P2,A ;返回中断前状态POP ACCRETI ;中断返回INT1:MOV A,P1 ;外部 1 中断PUSH ACC ;中断保护MOV A,P2PUSH ACCMOV P1,#0FFH ;清除先前状态CLR P1.2CLR P2.1CLR P1.3 ;东西通行,南北禁止通行JNB P3.3 ,$ ;判断是否还在中断状态POP ACCMOV P2,A ;返回中断前状态POP ACCMOV P1,ARETI ;中断返回第四章:基于 PROTEUS 的电路仿真MAIN:

24、ORG 0100H ;初始情况MOV P1,#0FFHMOV P2,#0FFH ;灭所有灯MOV TMOD,#55H ;计数方式方式 1MOV IE,#85H ;开中断MOV TEMP1,#20 ;MOV TEMP3,#25MOV TEMP4,#20STAR:MOV P1,#0FFHMOV P2,#0FFH ;灭所有灯MOV A,24H ;将显示时间送 ACJNE A,#20,T40T ;判断时间,选初始值T20T: ;南北通行要显示的时间为 20 的计数器初始值CLR TF0 ;清 TF0CLR TF1 ;清 TF1MOV TH1 ,#0FFH ;送 20 秒时的初始值MOV TL1 ,#0

25、FCH ;在些设计 20 秒 6 辆为多车T40T: ;南北通行要显示的时间为 40 的计数器初始值CLR TF0 ;清 TF0CLR TF1 ;清 TF1MOV TH1,#0FFH ;送 40 秒时的初始值MOV TL1 ,#0F8H ;在些设计 40 秒 8 辆为多车MOV TH0 ,#0FFHMOV TL0 ,#0F8HLJMP TEMP40 ;跳到 40 秒TEMP20: ;TEMP1=20 情况SETB TR0 ;开始计数SETB TR1CLR P1.2CLR P2.1 ;南北通行,东西禁止通行CLR P1.3CLR P1.5MOV TEMP1,#20 ;南北要显示的时间,MOV T

26、EMP2,#25 ;东西要显示的时间STLOP:ACALL DISPLAY1 ;调用显示DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT ;若显示时间不为 0 保持现在状态第四章:基于 PROTEUS 的电路仿真LJMP STAR2 ;若显示时间为 0 跳到第二状态NEXT: LJMP STLOPSTAR2: ;状态 1SETB P1.2CLR P1.1 ;南北黄灯,东西禁止通行SETB P1.3CLR P1.4MOV TEMP1,#05 ;南北要显示的时间,MOV TEMP2,#05 ;东西要显示的时间,ACALL DISPLAY1 ;调用显示DEC TEMP1 ;时间够

27、一秒显示时间减 1DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT2 ;若显示时间不为 0 保持现在状态JB TF1 ,T40 ;判断南北是否多车JB TF0 ,T40 ;判断北南是否多车MOV TEMP1,#20 ;少车下次显示时间为 20 秒LJMP STAR3 ;跳到状态 3T40:MOV TEMP1,#40 ; 多车下次显示时间为 40 秒LJMP STAR3 ;若显示时间为 0 跳到第三状态NEXT2:LJMP STLOP2TEMP40:;TEM=40 程序SETB TR0 ; 开始计数SETB TR1CLR P1.2CLR P2.1 ;南北通行,东西禁止通行CL

28、R P1.3CLR P1.5MOV TEMP1,#40 ;南北要显示的时间,MOV TEMP2,#45 ;东西要显示的时间STLOP11:ACALL DISPLAY1 ;调用显示DEC TEMP1 ;时间够一秒显示时间减 1DEC TEMP2CJNE A,#0,NEXT11 ;若显示时间不为 0 保持现在状态LJMP STAR22 ;若显示时间为 0 跳到第二状态NEXT11: LJMP STLOP11STAR22: ;状态 1SETB P1.2第四章:基于 PROTEUS 的电路仿真CLR P1.1 ;南北黄灯,东西禁止通行SETB P1.3CLR P1.4MOV TEMP1,#05 ;南北

29、要显示的时间,MOV TEMP2,#05 ;东西要显示的时间,STLOP22:ACALL DISPLAY1 ;调用显示DEC TEMP1 ;时间够一秒显示时间减 1DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT22 ;若显示时间不为 0 保持现在状态JB TF1 ,T401 ; 判断是否多车JB TF0 ,T401MOV TEMP1,#20 ;少车下次显示时间为 20 秒LJMP STAR3T401:MOV TEMP1,#40 ;多车下次显示时间为 40 秒LJMP STAR3 ;若显示时间为 0 跳到第三状态NEXT22:LJMP STLOP22CJNE A,#25,T

30、40T1 ;判断时间,选初始值T20T1: ;南北通行要显示的时间为 20 的计数器初始值CLR TF0 ; 清溢出位CLR TF1MOV TH1 ,#0FFH ; 给初值MOV TL1 ,#0FCHMOV TH0 ,#0FFHMOV TL0 ,#0FCHLJMP TEMP320T40T1: ;南北通行要显示的时间为 40 的计数器初始值CLR TF0 ;CLR TF1MOV TH1,#0FFH ;给初值MOV TL1 ,#0F8HMOV TH0 ,#0FFHMOV TL0 ,#0F8HLJMP TEMP340TEMP320:;状态三SETB TR1 ;南北停止计数SETB TR0 ;东西开始

31、计数SETB P1.1 ;东西通行,南北禁止通行CLR P1.0SETB P1.1第四章:基于 PROTEUS 的电路仿真CLR P1.0SETB P1.5CLR P1.6SETB P2.1CLR P2.3MOV TEMP3,#25 ;南北要显示的时间,MOV TEMP4,#20 ;东西要显示的时间,ACALL DISPLAY ;调用显示DEC TEMP3 ;时间够一秒显示时间减 1DEC TEMP4MOV A,TEMP4CJNE A,#0,NEXT33 ;若显示时间不为 0 保持现在状态LJMP STAR34 ;若显示时间为 0 跳到第四状态NEXT33:LJMP STLOP33STAR34

32、: ;状态四SETB P2.3CLR P2.2SETB P1.6 ;东西黄灯,南北禁止通行CLR P1.5MOV TEMP3,#05 ;南北要显示的时间,MOV TEMP4,#05 ;东西要显示的时间,STLOP34:ACALL DISPLAY ;调用显示DEC TEMP3 ;时间够一秒显示时间减 1DEC TEMP4MOV A,TEMP4CJNE A,#0,NEXT34 ;若显示时间不为 0 保持现在状态JB TF1 ,T402JB TF0 ,T402MOV TEMP3,#25LJMP START402:MOV TEMP3,#45LJMP STARNEXT34: LJMP STLOP34TE

33、MP340 :SETB TR1 ;南北停止计数SETB TR0 ;东西开始计数SETB P1.1 ;东西通行,南北禁止通行CLR P1.0第四章:基于 PROTEUS 的电路仿真SETB P1.1CLR P1.0CLR P1.6SETB P2.1CLR P2.3MOV TEMP3,#45 ;南北要显示的时间,MOV TEMP4,#40 ;东西要显示的时间,STLOP43:ACALL DISPLAY ;调用显示DEC TEMP3 ;时间够一秒显示时间减 1DEC TEMP4MOV A,TEMP4CJNE A,#0,NEXT43 ;若显示时间不为 0 保持现在状态LJMP STAR44 ;若显示时

34、间为 0 跳到第四状态NEXT43:LJMP STLOP43STAR44: ;状态四SETB P2.3CLR P2.2SETB P1.6 ;东西黄灯,南北禁止通行MOV TEMP3,#05 ;南北要显示的时间,MOV TEMP4,#05 ;东西要显示的时间,STLOP44:ACALL DISPLAY ;调用显示DEC TEMP3 ;时间够一秒显示时间减 1DEC TEMP4MOV A,TEMP3CJNE A,#0,NEXT44 ;若显示时间不为 0 保持现在状态JB TF1 ,T403JB TF0 ,T403MOV TEMP3,#25LJMP START403:MOV TEMP3,#45LJM

35、P STARNEXT44: LJMP STLOP44;显示DISPLAY1:MOV A,TEMP1 ;将南北要显示的数存放到 AMOV B,#10 ;B=10DIV AB ;A 除以 B 商存 A,余数 BMOV B_BIT,A ; 将 A 放到 20H第四章:基于 PROTEUS 的电路仿真MOV A_BIT,B ;将 B 放到 21HMOV A,TEMP2 ;将东西要显示的数存放到 AMOV B,#10 ;B=10DIV AB ;A 除以 B 商存 A,余数 BMOV C_BIT,A ;将 A 放到 22HMOV D_BIT,B ;将 B 放到 23HMOV DPTR ,#NUMT ;MO

36、V R0,#2 ;R0=2DPL11: MOV R1,#250 ;R1=250MOV A,A_BIT ;将南北要显示的 10 位数送 AMOVC A,A+DPTR ;查表MOV P0,A ;显示南北 10 位数CLR P2.7ACALL D1MS;延时 1MSSETB P2.7 ;灭南北 10 位数MOV A,B_BIT ;将南北要显示的个位数送 AMOVC A,A+DPTR ;查表MOV P0,A ;显示南北个位数CLR P2.6ACALL D1MS ;延时 1MSSETB P2.6 ;灭南北个位数MOV A,C_BIT ;将东西要显示的 10 位数送 AMOVC A,A+DPTR ;查表M

37、OV P0,A ;显示东西 10 位数CLR P2.5ACALL D1MS ;延时 1MSSETB P2.5 ;灭东西 10 位数MOV A,D_BIT ;将东西要显示的个位数送 AMOVC A,A+DPTR ;查表MOV P0,A ;显示东西东西位数ACALL D1MS ;延时 1MSSETB P2.4 ;灭东西个位数DJNZ R1,DPLOP ;循环扫描DJNZ R0,DPL1RET ;等待 1 秒返回;显示DISPLAY:MOV A,TEMP3 ;将南北要显示的数存放到 A第四章:基于 PROTEUS 的电路仿真MOV B,#10 ;B=10DIV AB ;A 除以 B 商存 A,余数

38、BMOV B_BIT,A ; 将 A 放到 20HMOV A_BIT,B ;将 B 放到 21HMOV A,TEMP4 ;将东西要显示的数存放到 AMOV B,#10 ;B=10DIV AB ;A 除以 B 商存 A,余数 BMOV C_BIT,A ;将 A 放到 22HMOV D_BIT,B ;将 B 放到 23HMOV DPTR ,#NUMT ;MOV R0,#2 ;R0=2DPL1: MOV R1,#250 ;R1=250MOV A,A_BIT ;将南北要显示的 10 位数送 AMOVC A,A+DPTR ;查表MOV P0,A ;显示南北 10 位数CLR P2.7ACALL D1MS

39、;延时 1MSSETB P2.7 ;灭南北 10 位数MOV A,B_BIT ;将南北要显示的个位数送 AMOVC A,A+DPTR ;查表MOV P0,A ;显示南北个位数CLR P2.6ACALL D1MS ;延时 1MSSETB P2.6 ;灭南北个位数MOV A,C_BIT ;将东西要显示的 10 位数送 AMOVC A,A+DPTR ;查表MOV P0,A ;显示东西 10 位数CLR P2.5ACALL D1MS ;延时 1MSSETB P2.5 ;灭东西 10 位数MOV A,D_BIT ;将东西要显示的个位数送 AMOVC A,A+DPTR ;查表MOV P0,A ;显示东西东西位数CLR P2.4ACALL D1MS ;延时 1MSSETB P2.4 ;灭东西个位数DJNZ R1,DPLOP ;循环扫描DJNZ R0,DPL1RET ;等待 1 秒返回第四章:基于 PROTEUS 的电路仿真D1MS: MOV R7,#250 ;1MS 延时程序DJNZ R7,$RET 1 到 10 对应电路图数码管表NUMT: DB 7EH,48H,67H,6BH,59HDB 3BH,3FH,68H,7FH,7BH

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 规范标准 > 交通运输

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报