proteus的单片机控制模拟交通灯的设计

合集下载

单片机控制交通灯控制系统设计-基于Proteus仿真

单片机控制交通灯控制系统设计-基于Proteus仿真

单片机控制交通灯控制系统设计-基于Proteus仿真单片机控制交通灯控制系统设计目录引言…………………………………………………………… - 3 -第1章概述 ............................................... - 3 -1.1单片机认识 .............................................. - 4 - 1.2 单片机的应用........................................... - 4 - 1.3设计任务 ................................................ - 5 - 第2章系统总体方案及硬件设计.......................... - 5 -2.1交通管理的方案 .......................................... - 5 - 2.2总体硬件设计 ............................................ - 6 - 2.3系统时钟电路 ............................................ - 6 - 2.4系统复位电路 ............................................ - 6 - 2.5数码管显示电路 .......................................... - 7 - 2.6路灯指示电路 ............................................ - 7 - 2.7按键电路设计 ............................... 错误~未定义书签。

第3章软件系统设计 ...................................... - 9 - - 1 -3.1设计思路及关键技术........................................ - 9 - 3.2 软件流程 ................................................. - 9 - 3.3 交通灯的设计程序说明 ..................................... - 9 -3.4 延时函数 ................................................ - 10 - 3.5 延时函数 ................................................ - 10 - 3.6显示函数 ................................................ - 10 - 3.7定时器0中断函数......................................... - 10 - 第4章Proteus软件仿真 ................................. - 12 -4.1 Proteus软件仿真......................................... - 12 - 4.2 南北路灯切换时仿真 ...................................... - 12 - 4.3 紧急情况下的仿真 ........................................ - 13 - 4.4东西紧急情况下的仿真..................................... - 14 - 第5章心得体会 .......................................... - 15 - 参考文献 .................................................... - 15 - 附1 源程序代码............................................. - 17 - 单片机控制交通灯控制系统设计摘要交通灯是我们日常出行时经常看见的交通控制系统,极大地改善了我们的日常出行。

protues仿真单片机模拟交通灯

protues仿真单片机模拟交通灯

protues仿真单片机模拟交通灯部门: xxx时间: xxx制作人:xxx整理范文,仅供参考,可下载自行修改主电路图<图一)Static Display子图<图二)仿真效果<图三)仿真效果<图四)仿真效果<图五)仿真效果<图六)汇编语言程序:SECOND1 EQU 30HSECOND2 EQU 31HDBUF EQU 40HTEMP EQU 44HLED_G1 BIT P2.1 。

东西路口绿灯LED_Y1 BIT P2.2 。

东西路口黄灯LED_R1 BIT P2.3 。

东西路口红灯LED_G2 BIT P2.4 。

南北路口绿灯LED_Y2 BIT P2.5 。

南北路口黄灯LED_R2 BIT P2.6 。

南北路口红灯ORG 0000HLJMP STARTORG 0100HSTART: MOV TMOD,#01H 。

置T0为工作方式1MOV TH0,#3CH 。

置T0定时初值50msMOV TL0,#0B0HCLR TF0SETB TR0 。

启动T0CLR AMOV P1,A 。

关闭不相关地LED。

***************************************************b5E2RGbC APLOOP: M OV R2,#20 。

置1s计数初值,50ms*20=1sMOV R3,#20 。

红灯亮20sMOV SECOND1,#25 。

东西路口计时显示初值25sMOV SECOND2,#25 。

南北路口计时显示初值25sLCALL D ISPLAYLCALL S TATE1 。

调用状态1WAIT1: JNB TF0,WAIT1 。

查询50ms到否CLR TF0MOV TH0,#3CH 。

恢复T0定时初值50msMOV TL0,#0B0HDJNZ R2,WAIT1 。

判断1s到否?未到继续状态1MOV R2,#20 。

置50ms计数初值DEC SECOND1 。

基于Proteus的数字交通灯电路设计与实现

基于Proteus的数字交通灯电路设计与实现

基于Proteus的数字交通灯电路设计与实现要基于Proteus进行数字交通灯电路的设计与实现,可以按照以下步骤进行操作:
1. 打开Proteus软件,创建一个新的工程。

2. 在工程中选择一个适当的微控制器模型,例如Arduino UNO。

3.在工程中选择一个合适的LED灯模型,用于表示交通灯的红、黄、绿三种状态。

4.将LED灯模型拖放到电路图中,并与微控制器的相应引脚连接。

5.在电路图中添加一个电阻,用于限流保护LED灯。

6. 编写Arduino程序代码,实现交通灯的控制逻辑。

例如,可以使用if语句和延时函数来控制LED灯的亮灭。

7. 将编写好的Arduino程序代码上传到微控制器中。

8.保存并仿真运行电路图,观察交通灯的工作状态。

9.可以通过更改程序代码中的延时时间和控制逻辑,来模拟不同的交通灯工作模式,如红绿灯交替、黄灯闪烁等。

完成以上步骤后,即可实现基于Proteus的数字交通灯电路设计与实现。

基于Proteus模拟软件的交通灯系统设计说明书

基于Proteus模拟软件的交通灯系统设计说明书

3rd International Conference on Mechanical Engineering and Intelligent Systems (ICMEIS 2015)Design of Traffic Light System Based on Proteus SimulationXuexuan CaiNorth China Electric Power University, Baoding, 071000, ChinaKeywords: proteus simulation software,traffic light systemAbstract. Based on the proteus simulation software, the paper realizes the individual timing and separated control on the transportation of Channel A and B with the 8254 counter and 8255 programmable parallel interface. The method of timing plus interruption control is adopted to count the passing time of vehicles in two directions separately, which enables the convenient change of passing times in two directions.1.Design Scheme1.1 Display of traffic lights under normal operationThe intel 8255A opening is used for display, leaving the PA7 and PA6 unused. The PA0, PA1 and PA2 respectively control the green light, yellow right and red light of Channel A, while the PA3, PA4 and PA5 differently control the green light, yellow right and red light of Channel B. Then, situation 1: when green light is in Channel A and red light in Channel B, 00100001B should be output in the 8255A opening; situation 2: when yellow light is in Channel A and red light in Channel B, 00100010B should be output in the 8255A opening; situation 3: when red light is in Channel A and green light in Channel B, 00001100B should be output in the 8255A opening; situation 4: when red light is in Channel A and yellow light in Channel B, 00010100B should be output in the 8255A opening.As to the time control, the frequency generator of counter 0 and working method 2 is used in the counter/ timer 8253. As the CLK0 pin receipts the 1MHz clock signal and the A8253 inputs 50000 (note: it is stipulated that the lower eight ones should be input before the higher eight ones in the programming), the result after calculation is just 0.05 seconds. The output of counter 0 is received by the clock signal of counter 1, which is working on the method 0: the counting will stop until the counter 0 finishes the method of outputting the jumping signals. As the counter 0 and 1 are counting in concatenation, the intended time can be controlled only by writing the value of counter 1 into the main program and the output of counter 1 will be received by PC0. For example, the situation 1 will maintain 25s without outside interruption and the B8253 should be input 500, namely 01100100B, with 0 in the higher eight ones. Situation 3 is the same with situation 1, while situation 4 is the same with situation 2. The query working method is adopted in timing. In the ending of the counting, the output 1 of PC0 means entering into the next working condition and 0 means continuing the query.1.2 Breaking off the switch in the state of emergencyDuring the process of simulation design, the emergency state of the switch simulation should be connected to PC1. In the state of emergency, PC1 will be low. The query working method is adopted in the foregoing situations of the display lights of the counter. The examination on whether the situation of the PC1 is 0 is added in the process. If the output is 1, the query will be continued; if the output is 0, the interrupt program will be conducted. If the interrupt program shows that red light is in both Channel A and Channel B, the query working method will unceasingly check out the situation of PC1 to find out whether it has recovered to be 1. If the situation becomes 1, the state of emergency has been relived and the primary state can be carried on by returning the scene; if the situation is still 0, the state of emergency isn’t relived and the lights should be kept red.2.Debug ResultsAfter the debug, the light display will be in cycle operation. If the green light of Channel A is interrupted, the red light of Channel A and B will be bright after the switch is pressed. The primary operation situation will be recovered when the switch is regained to Channel A and Channel B.The results of debug are as follows:Figure 1 Green light in Channel A and red light in Channel BFigure 2 Yellow light in Channel A and red light in Channel BFigure 3 Red light in Channel A and green light in Channel BFigure 4 Red light in Channel A and yellow light in Channel B Brief description on the debug results:(1)Figure 1 means Channel A is allowed to pass as there is green light but it is forbidden to pass Channel B as there is red light.(2)Figure 2 means that the 25s for green light in Channel A is up, the green light turns into yellow light reminding the coming of red light in the direction and red light is still in Channel B to forbid passing.(3)Figure 3 means that the 5s for yellow light in Channel A is up, it will turn into red light to forbid passing and there is green light in Channel B to allow passing.(4)Figure 5-4 means that the 25s for green light in Channel B is up, it turns into yellow light reminding the coming of red light in the direction and red light is still in Channel A to forbid passing.(5)The 5s is up and the system recovers to the primary state, namely, green light in south-north direction to allow passing and red light in Channel B to forbid passing, as shown in the following Figure. Based on the 60s cycle, the working functions of traffic lights are realized.(6) In case of emergencies, the button can be pressed to make red light on in both Channel A and Channel B, which is shown as follows:Figure 5 Red Light in both Channel A and Channel B3.SummaryThe paper conducts examination and simulation on the designed traffic system based on the proteus simulation software. By the simulation exercises, the functions of pins in 8086 chips can be understood more profoundly, such as how to use 8255 programmable parallel interface chips, how to take advantage of 8253 to make timing or output the pulses of certain frequency and how could the 8259 produce maskable interruption, etc. After the comparison between the simulation and the practical wirings and some slight adjustments on the program, the simulative traffic light system is easily built on the experiment box.References[1] Hong Yongquan. Microcomputer Principles and Interfacing Techniques [M]. Beijing: Science Press, 2009[2] Xu Zeming. Control Traffic Lights by Microcomputer [J]. Software Guide, 2007 (5)[3] Xiang Xinjian. Microcomputer Traffic Light Control System [J]. ASPT Source Journal, 1997 (09)。

基于Proteus的智能交通灯的仿真设计

基于Proteus的智能交通灯的仿真设计

基于Proteus的智能交通灯的仿真设计智能交通灯是一种基于现代科技的交通管理设备,通过智能化的控制系统和传感器,能够根据交通流量和道路情况,自动调整交通信号灯的时间和模式,以提高交通效率和安全性。

Proteus是一种功能强大的电子设计自动化(EDA)软件,它可以用于电路仿真和PCB设计。

在智能交通灯的仿真设计中,Proteus可以帮助我们建立交通信号灯的电路模型,并模拟不同情况下的交通流量和信号控制策略。

首先,我们需要设计交通信号灯的电路模型。

在Proteus中,我们可以使用元件库中的数字逻辑元件和LED元件来构建交通信号灯的电路。

通过连接适当的电源和控制信号,我们可以模拟交通信号灯的工作状态。

接下来,我们可以使用Proteus的仿真功能来模拟不同情况下的交通流量和信号控制策略。

通过设置不同的输入信号和参数,我们可以观察交通信号灯在不同条件下的工作效果。

比如,我们可以模拟高峰时段和低峰时段的交通流量,观察交通信号灯的调整情况以及车辆通过的效率。

在仿真设计中,我们还可以使用Proteus的调试功能来分析交通信号灯的电路和控制逻辑。

通过设置断点和监视变量,我们可以观察电路中各个信号的变化情况,以及控制逻辑的执行过程。

这有助于我们发现潜在的问题并进行调整和改进。

除了仿真设计,Proteus还可以用于PCB设计和实际制造。

通过将电路设计转化为PCB布局,我们可以将交通信号灯的电路制作成实际的电子板,并安装在实际的交通信号灯中进行测试和调试。

总之,基于Proteus的智能交通灯的仿真设计可以帮助我们模拟不同情况下的交通流量和信号控制策略,并分析交通信号灯的电路和控制逻辑。

这有助于我们优化交通信号灯的设计,提高交通效率和安全性。

同时,Proteus还可以用于PCB设计和实际制造,使我们的设计能够实际应用于交通管理中。

基于Proteus的智能交通灯设计与仿真实现

基于Proteus的智能交通灯设计与仿真实现

基于Proteus的智能交通灯设计与仿真实现智能交通灯是一种通过传感器和智能控制系统实现交通信号灯的智能化管理,能够根据交通流量和道路状况进行智能调控,以提高交通效率和减少交通堵塞。

本文将基于Proteus软件进行智能交通灯的设计和仿真实现。

首先,我们需要明确智能交通灯的基本功能和设计要求。

智能交通灯主要需要实现以下功能:1.根据交通流量进行智能控制。

通过传感器检测道路上的交通流量,智能交通灯可以根据实时的交通情况智能地调整信号灯的时间,以提高交通效率。

2.考虑不同道路的优先级。

在交叉路口附近,智能交通灯需要根据不同道路的优先级来调整信号灯的时间,以确保交通的顺畅和安全。

3.考虑行人的过马路需求。

智能交通灯需要合理地安排行人的过马路时间,以保证行人的安全和顺畅。

接下来,我们将使用Proteus软件进行智能交通灯的设计和仿真实现。

Proteus是一款电子电路设计和仿真软件,可以用来模拟和验证电子电路的性能和功能。

首先,我们需要设计智能交通灯的硬件电路。

在Proteus中,我们可以使用元器件库中的LED灯和开关等元件来构建交通灯的电路。

同时,我们还需要添加传感器来检测交通流量和行人的需求。

在设计电路的过程中,我们需要考虑不同道路的优先级和行人的过马路需求。

根据道路的优先级,我们可以设置不同道路对应的信号灯的亮灭时间。

同时,我们还可以设置传感器来检测行人的需求,以在需要的时候提供行人过马路的时间。

完成电路设计后,我们可以使用Proteus中的仿真功能来验证电路的性能和功能。

在仿真过程中,可以模拟不同道路的交通流量和行人的过马路需求,以观察交通灯是否能够根据实时情况进行智能调控。

在仿真过程中,我们可以观察交通灯的状态变化和信号灯的亮灭时间,以评估交通灯的性能和效果。

如果发现问题,我们可以对电路进行调整和优化,以提升交通灯的智能化管理能力。

总结起来,基于Proteus的智能交通灯设计和仿真实现是一种高效且可靠的方法。

基于Proteus与单片机的交通灯控制系统的设计

基于Proteus与单片机的交通灯控制系统的设计
利用单 片机设计应用系统应考虑在满足设计要求 的前提下 ,硬件 电路要 尽可能地简单 ,最大 限度地用程序 设 计完成 系统 的各项 功能[2].因此 本文 以STC89C52单 片机为控制 核心 ,设计 交通灯 的控 制系统 .在该系统 中 STC89C52和外 围电路 的各个模块进行信息交流并且进行相应的控制 ,系统组成框 图如图l所 示.
摘 要 :对 交通 灯控 制系统进行 了研 究,设计 了一种基 于 Proteus与单 片机的 交通灯控制 系统.设 计 包括 系统硬 件 电路的各
个组成部分 、系统的工作模 式,利用 Proteus和 Keil软件进行整合 实现 了该 系统 的仿真.仿真结果表明: 系统 实用性强 、
操 作简单 、扩展 功能强.
笔者提 出了一种基于 Proteus与单片机 的交通灯控制系统的设计方案 .本系统采用 STC89C52单片机 为核 心,并利用 Proteus和 Keil软件进行联合仿真实现 了该系统的仿真 . 1 系统设计方案
东西 、南北两干道交 于一个 十字路 口,各干道有一组交通指示灯 ,每一个状态方 向上均有一组 红、绿灯 , 即一组交通指示灯都有左转 、直行 、右转 3组红 、绿灯和一个黄灯,指示车辆和行 人安全 通行 .红灯点亮禁止 通行 ,绿灯 点亮允许通行 .黄灯 闪烁提示人们注意交通灯状态 即将切换 . 1.1 系统硬 件 电路 的设 计
第 14卷 第 4期 2012年 8月
衡 水 学 院学 报
Journal ofH engshui University
Vo1.14,N o.4 Aug.2012
基 于 Proteus与单 片机 的交通 灯 控 制 系统 的设 计
郭 海 丽
(衡 水 学 院 电 子 信 息 工程 学 院 ,河 北 衡 水 053000)

交通灯(proteus仿真设计+程序)

交通灯(proteus仿真设计+程序)

52单片机简易交通灯proteus仿真设计原理交通灯作为日常生活中必不可少的交通标志,它的设计是单片机初学者必不可少要接受的一项课题,下面简单介绍用proteus仿真一个由52单片机控制的简易交通灯。

本设计主要要求以下几个方面:一是根据系统控制要求设计硬件电路,这里是用PROTEUS软件来完成;二是根据硬件电路编写相应的程序流程图然后编写相关程序,这里程序的编制主要是用KeilC51软件来完成;三是在KEIL上用已经编好的程序生成.hex文件载入到PROTEUS中,实现PROTEUS与KEIL的联调,完成调试和仿真,观察调试结果是否满足设计要求,。

一:设计方案及重点:首先南北方向红灯、东西方向绿灯亮,南北方向红灯35秒、东西方向绿灯35秒,相应的数码管显示对应的数字并读秒,同时南北方向红色的交通灯和东西方向的绿色交通灯接通点亮显示,当东西方向的绿灯时间到,则东西方向的绿灯转为黄灯,同时数码管显示黄灯的时间3秒,东西方向的黄色二极管接通点亮,此时南北方向的红灯不变。

南北方向的红灯和东西方向的黄灯时间同时到,此时南北方向的红灯跳转为绿灯,时间同北方向的绿灯时间到,南北绿灯跳转为黄灯,东西方向的红灯不变,当南北方向的黄灯和东西方向的红灯时间到,南北方向的黄灯跳转为红灯,东西方向的红灯跳转为绿灯。

设计重点:1.数码显示管的计时2.数码管控制交通灯的转换3.锁存器与位选器端口的选择4.电路连接与程序编写二:仿真器件的介绍:1.单片机芯片:AT89C52, AT89C52是一个低电压,高性能CMOS 8位单片机, AT89C52单片机在电子行业中有着广泛的应用。

2.数码管:7SEG-MPX2-CC,这是一个两位数共阴极的数码管, 1就是左边数码管的阴极2就是右边数码管的阴极,a,b,c,d,e,f,g,就是数码管的段码,dp就是数码管的小数点3.锁存器与位选器:74HC573,具体作用:74HC573锁存器在数码管显示时作用的确是为了节省IO口,单片机P0口先发送abcdefghp段选信号,这时使用一个74HC573将段选信号保存住,单片机P0口再发送位选信号,此时单片机P0口信号不影响被锁存住的段选信号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AT89C51单片机的片内硬件结构AT89C51单片机的主要工作特性:1.内含4KB 的FLASH 存储器,擦写次数1000次。

2.内含28字节的RAM 。

3.具有32根可编程I/O 线。

4.具有2个16位可编程定时器。

5.具有6个中断源、5个中断矢量、2级优先权的中断结构。

6.具有1个全双工的可编程串行通信接口。

7.具有一个数据指针DPTR 。

8.两种低功耗工作模式,即空闲模式和掉电模式。

9.具有可编程的3级程序锁定定位。

AT89C51的工作电源电压为5(1±0.2)V 且典型值为5V ,最高工作频率为24MHz 。

AT89C51各部分的组成及功能:单片机的中央处理器(CPU )是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

(1) 运算器运算器主要用来实现算术、逻辑运算和位操作。

其中包括算术和逻辑运算单元ALU 、振荡器和时钟电路数据存储器 128字节程序存储器 14KBCPU两个16位定时器 计数器中断 控制总线扩展控制器并行可编程 I/O 口可编程 串行口内部总线外部中断扩展控制P0 P1 P2 P3RXD TXD累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。

ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。

算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。

暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。

ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。

累加器是CPU使用最频繁的一个寄存器。

ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。

单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。

B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。

运算结果存于AB寄存器中。

(2)控制器控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。

AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。

复位时PC的内容是0000H。

(3)存储器片机内部的存储器分为程序存储器和数据存储器。

AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。

(4)外围接入电路AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。

AT89C51的工作原理:1.引脚排列及其功能AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。

(1)I/O口线P0口—8位、漏极开路的双向I/O口。

当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。

在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。

P0口也可做通用I/O 口使用,但需加上拉电阻。

作为普通输入时,应输出锁存器配置1。

P0口可驱动8个TTL负载。

P1口—8位、准双向I/O口,具有内部上拉电阻。

P1口是为用户准备的I/O双向口。

在编程和校验时,可用作输入低8位地址。

用作输入时,应先将输出锁存器置1。

P1口可驱动4个TTL负载。

P2—8位、准双向I/O口,具有内部上拉电阻。

当使用外存储器或外扩I/O口时,P2口输出高8位地址。

在编程和校验时,P2口接收高字节地址和某些控制信号。

P3—8位、准双向I/O口,具有内部上拉电阻。

P3口可作为普通I/O口。

用作输入时,应先将输出锁存器置1。

在编程/校验时,P3口接收某些控制信号。

它可驱动4个TTL负载。

(2)控制信号线RST—复位输入信号,高电平有效。

在振荡器稳定工作时,在RST脚施加两个机器周期以上的高电平,将器件复位。

EA/V PP—外部程序存储器访问允许信号EA。

当EA信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H-FFFFH;当EA接V CC时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。

在编程时,该引脚可接编程电压5V或12V。

在编程校验时,该引脚可接V CC。

PSEN—片外程序存储器读选通信号PSEN,低电平有效。

在片外程序存储器取指期间,当PSEN有效时,程序存储器的内容被送至P0口;在访问外部RAM时,PSEN 无效。

ALE/PROG—低字节锁存信号ALE。

在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。

此外,ALE端连续输出正脉冲,频率为晶振频率的1/6,可做外部定时脉冲使用。

(3)外部晶振引线XTAL1—片内振荡器反向放大器和时钟发生线路的输入端。

使用片内振荡器时,连接外部石英晶体和微调电容。

XTAL2—片内振荡器反相放大器的输出端。

当使用片内振荡器时,外接石英晶体和微调电容。

2.存储器组织和特殊功能寄存器AT89C51的存储器将程序存储器和数据存储器分开,并有各自的存储空间和访问指令。

它有4个存储空间:片内存储器、片外存储器、片内数据存储器及片外存储器。

3.时钟电路和工作时序(1)振荡器电路原理(2)震荡电路的接法第一章硬件电路原理图设计第二章软件程序设计源程序:SECOND EQU 30HH_RED BIT P2.1 ;定义IO端口H_GREEN BIT P2.2H_YELLOW BIT P2.3L_RED BIT P2.4L_GREEN BIT P2.5L_YELLOW BIT P2.6ORG 0000HLJMP MAINORG 0030HMAIN: MOV TMOD,#01H ;设置定时器0,为方式1 MOV TH0,#3CH ;置定时器的初始值,定时50ms MOV TL0,#0B0HCLR TF0 ;清定时器0溢出标志SETB T R0 ;启动定时器START: CLR AMOV P1,A ;首先关闭显示MOV P3,A;***********************************;状态1,东西方向绿灯亮,南北方向红灯亮;***********************************MOV R2,#20MOV R3,#21MOV SECOND,#20 ;20秒初值LCALL STATE1LCALL COUNT;***********************************;状态2,东西方向绿灯闪,南北方向红灯亮;***********************************MOV R0,#01H ;标志位,南北方向绿灯闪MOV R2,#2MOV R3,#4MOV R4,#10MOV SECOND,#3 ;3秒初值LCALL DISPLAYLCALL STATE2LCALL COUNT1;***********************************;状态3,东西方向黄灯闪,南北方向红灯亮;***********************************MOV R0,#02H ;标志位,南北方向黄灯闪MOV R2,#2MOV R3,#3MOV R4,#10MOV SECOND,#2 ;2秒初值LCALL STATE3LCALL COUNT1;************************************;状态4,东西方向红灯亮,南北方向绿灯亮;************************************MOV R2,#20MOV R3,#21MOV SECOND,#20 ;20秒初值LCALL STATE4LCALL COUNT;************************************;状态5,东西方向红灯亮,南北方向绿灯闪;************************************MOV R0,#03H ;标志位,东西方向绿灯闪MOV R2,#2MOV R3,#4MOV R4,#10MOV SECOND,#3 ;3秒初值LCALL STATE5LCALL COUNT1;************************************;状态6,东西方向红亮,南北方向黄灯闪;************************************MOV R0,#04H ;标志位,东西方向黄灯闪MOV R2,#2MOV R3,#3MOV R4,#10MOV SECOND,#2 ;2秒初值LCALL STATE6LCALL COUNT1LJMP START;************************************;计时程序;************************************COUNT: LCALL DISPLAYWAIT1: JNB TF0,WAIT1 ;定时器50ms未到,则等待CLR T F0 ;定时器50ms到了;清定时器0溢出标志MOV TH0,#3CHMOV TL0,#0B0HLCALL DISPLAYDJNZ R2,WAIT1 ;是否到1秒MOV R2,#20DEC SECOND ;到1秒则秒值减1DJNZ R3,WAIT1 ;20秒是否倒计时减完,未完则返回RETCOUNT1: LCALL DISPLAYWAIT2: JNB TF0,WAIT2CLR T F0MOV TH0,#3CHMOV TL0,#0B0HLCALL DISPLAYDJNZ R4,WAIT2 ;是否到500ms,未到则返回CJNE R0,#01H ,D1CPL L_GREEN ;到了500ms,则闪南北方向绿灯D1: CJNE R0,#02H ,D2CPL L_YELLOW ;闪南北方向黄灯D2: CJNE R0,#03H ,D3CPL H_GREEN ;闪东西方向绿灯D3: CJNE R0,#04H ,D4CPL H_YELLOW ;闪东西方向黄灯D4: MOV R4,#10DJNZ R2,WAIT2 ;是否到1秒MOV R2,#2DEC SECONDDJNZ R3,WAIT2RET;********************************;LED显示状态;********************************STATE1: SETB H_RED ;东西方向绿灯亮,南北方向红灯亮CLR H_GREENCLR H_YELLOWCLR L_REDSETB L_GREENCLR L_YELLOWRETSTATE2: CLR H_GREEN ;东西方向绿灯闪,南北方向红灯亮CLR H_YELLOWCLR L_REDCLR L_GREENCLR L_YELLOWRETSTATE3: CLR H_RED ;东西方向黄灯闪,南北方向红灯亮CLR H_YELLOWCLR L_REDCLR L_GREENSETB L_YELLOWRETSTATE4: CLR H_RED ;东西方向红灯亮,南北方向绿灯亮SETB H_GREENCLR H_YELLOWSETB L_REDCLR L_GREENCLR L_YELLOWRETSTATE5: CLR H_RED ;东西方向红灯亮,南北方向绿灯闪SETB H_GREENCLR H_YELLOWCLR L_GREENCLR L_YELLOWRETSTATE6: CLR H_RED ;东西方向红灯亮,南北方向黄灯闪CLR H_GREENSETB H_YELLOWCLR L_REDCLR L_YELLOWRET;*******************************;显示程序;********************************DISPLAY: MOV A,SECONDMOV B,#10DIV ABMOV DPTR,#LEDMAPMOVC A,@A+DPTRMOV P1,A ;显示十位MOV A,BMOVC A,@A+DPTR ;显示个位MOV P3,ARETLEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END11 / 11。

相关文档
最新文档