自动控制网—学习自动控制技术电气自动化技术从这里开始!
当前位置: 自动控制网 > 自动化 > 单片机 >

单片机交通灯控制毕业设计

时间:2014-11-12 10:27来源:www.eadianqi.com 编辑:自动控制网
一、设计课题:单片机交通灯控制 二、设计目的: (1)掌握单片机定时 ,计数器的编程应用。 (2)通过对交通灯控制程序的编写与调试,掌握中断程序的结构 (3)进一步熟练使用开发系统的各种调试方法 三、课题任务的控制要求 东西、南北两干道交于一个十字路口,

一、 设计课题:单片机交通灯控制

自动控制网www.eadianqi.com版权所有

二、 设计目的: 本文来自www.eadianqi.com

(1)掌握单片机定时 ,计数器的编程应用。
(2)通过对交通灯控制程序的编写与调试,掌握中断程序的结构
(3)进一步熟练使用开发系统的各种调试方法 自动控制网www.eadianqi.com版权所有

三、 课题任务的控制要求 自动控制网www.eadianqi.com版权所有

东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道比南北道的车流量大,指示灯燃亮的方案如表1。 本文来自www.eadianqi.com

  本文来自www.eadianqi.com

 

60s

自动控制网www.eadianqi.com版权所有

5s 自动控制网www.eadianqi.com版权所有

80s 本文来自www.eadianqi.com

5s 本文来自www.eadianqi.com

...... 自动控制网www.eadianqi.com版权所有

东西道 自动控制网www.eadianqi.com版权所有

红灯亮 本文来自www.eadianqi.com

黄灯亮

本文来自www.eadianqi.com

绿灯亮

本文来自www.eadianqi.com

黄灯亮

本文来自www.eadianqi.com

...... 本文来自www.eadianqi.com

南北道 自动控制网www.eadianqi.com版权所有

绿灯亮 自动控制网www.eadianqi.com版权所有

黄灯亮

自动控制网www.eadianqi.com版权所有

红灯亮 本文来自www.eadianqi.com

黄灯亮

自动控制网www.eadianqi.com版权所有

......

自动控制网www.eadianqi.com版权所有

 

本文来自www.eadianqi.com

[表1 自动控制网www.eadianqi.com版权所有

表1说明:        

本文来自www.eadianqi.com

(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车" title="下一页">> >> >>| 辆通过,行人禁止通行。时间为60秒。 本文来自www.eadianqi.com

(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。       

本文来自www.eadianqi.com

(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为80秒。 东西方向车流大 通行时间长。 自动控制网www.eadianqi.com版权所有

(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。 本文来自www.eadianqi.com

(5)此表可根据车流量动态设定红绿灯初始值。 本文来自www.eadianqi.com

四、 总体设计的框图

本文来自www.eadianqi.com

点击浏览下一页 本文来自www.eadianqi.com

五 、单片机选型

本文来自www.eadianqi.com

选用设备8031单片机一片选用设备:8031弹片机一片,8255并行通用接口芯

本文来自www.eadianqi.com

片一片,74LS07两片,MAX692‘看门狗’一片,共阴极的七段数码管两个双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。

自动控制网www.eadianqi.com版权所有

六 、 单片机交通灯控制硬件设计电路图及各电路模块的说明

本文来自www.eadianqi.com

点击浏览下一页 本文来自www.eadianqi.com

(1) MCS-51的引脚说明 自动控制网www.eadianqi.com版权所有

MCS-51 系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3 口线复用。现在我们对这些引脚的功能加以说明:

本文来自www.eadianqi.com

MCS-51的引脚说明: 本文来自www.eadianqi.com

MCS-51 系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3 口线复用。现在我们对这些引脚的功能加以说明:图如下 自动控制网www.eadianqi.com版权所有

点击浏览下一页 自动控制网www.eadianqi.com版权所有

Pin9:RESET/Vpd 复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器 PC 指向0000H,P0-P3 输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从 0000H 地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器 R0-R7)的状态,8051的初始态。8051 的复位方式可以是自动复位,也可以是手动复位,见下图 2。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部 RAM 的数据不丢失。 自动控制网www.eadianqi.com版权所有

点击浏览下一页 本文来自www.eadianqi.com

图2

自动控制网www.eadianqi.com版权所有

·Pin30:ALE/ 当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE 端将有一个 1/6 时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。

自动控制网www.eadianqi.com版权所有

如果单片机是EPROM,在编程其间, 将用于输入编程脉冲。

本文来自www.eadianqi.com

·Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在 P0 和 P2 口上,外部程序存储器则把指令数据放到 P0 口上,由 CPU 读入并执行。

本文来自www.eadianqi.com

·Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当 EA 为高电平并且程序地址小于 4kB 时,读取内部程序存储器指令数据,而超过 4kB 地址则读取外部指令数据。如 EA 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。 自动控制网www.eadianqi.com版权所有

在编程时,EA/Vpp脚还需加上21V的编程电压。 自动控制网www.eadianqi.com版权所有

(2 )8255可编程并行接口芯片简介: 自动控制网www.eadianqi.com版权所有

8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0 和 PC7~PC0。其内部还有一个控制寄存器,即控制口。通常 A 口、B 口作为输入输出的数据端口。C 口作为控制或状态信息的端口,它在方式字的控制下,可以分成 4 位的端口,每个端口包含一个 4 位锁存器。它们分别与端口 A/B配合使用,可以用作控制信号输出或作为状态信号输入。 自动控制网www.eadianqi.com版权所有

8255可编程并行接口芯片方式控制字格式说明:

本文来自www.eadianqi.com

8255有两种控制命令字;一个是方式选择|<< << < 1 2 3 4 5 6 7 8 > >> >>| 控制字;另一个是C口按位置位/复位控制字。其中C口按位置位/复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可自行查找有关资料。 自动控制网www.eadianqi.com版权所有

方式控制字格式说明如表2: 自动控制网www.eadianqi.com版权所有

表2 自动控制网www.eadianqi.com版权所有

  本文来自www.eadianqi.com

D7

自动控制网www.eadianqi.com版权所有

D6

本文来自www.eadianqi.com

D5 本文来自www.eadianqi.com

D4 自动控制网www.eadianqi.com版权所有

D3 自动控制网www.eadianqi.com版权所有

D2

自动控制网www.eadianqi.com版权所有

D1

自动控制网www.eadianqi.com版权所有

D0 

自动控制网www.eadianqi.com版权所有

 

自动控制网www.eadianqi.com版权所有

D7:设定工作方式标志,1有效。

自动控制网www.eadianqi.com版权所有

D6、D5:A口方式选择

自动控制网www.eadianqi.com版权所有

0 0 —方式0 本文来自www.eadianqi.com

0 1 —方式1

自动控制网www.eadianqi.com版权所有

1 ×—方式2 自动控制网www.eadianqi.com版权所有

D4:A口功能       (1=输入,0=输出)

本文来自www.eadianqi.com

D3:C口高4位功能 (1=输入,0=输出)

自动控制网www.eadianqi.com版权所有

D2:B口方式选择   (0=方式0,1=方式1)

自动控制网www.eadianqi.com版权所有

D1:B口功能       (1=输入,0=输出) 本文来自www.eadianqi.com

D0:C口低4位功能 (1=输入,0=输出) 自动控制网www.eadianqi.com版权所有

8255可编程并行接口芯片工作方式说明:

自动控制网www.eadianqi.com版权所有

方式 0:基本输入/输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。

本文来自www.eadianqi.com

方式 1:选通输入/输出方式。这时 A 口或 B 口的 8 位外设线用作输入或输出,C 口的4条线中三条用作数据传输的联络信号和中断请求信号。

本文来自www.eadianqi.com

方式 2 :双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。

本文来自www.eadianqi.com

(3) 74LS373简介(见下图) 自动控制网www.eadianqi.com版权所有

74LS373 是一种带三态门的 8D锁存器,其管脚示意图如下示: 点击浏览下一页 本文来自www.eadianqi.com

其中:1D-8D为8个输入端。 本文来自www.eadianqi.com

1Q-8Q为8个输出端。

自动控制网www.eadianqi.com版权所有

LE为数据打入端:当LE为“1”时,锁存器输出 状态同输入状态;当LE由“1”变“0”时,数据 打入锁存器 自动控制网www.eadianqi.com版权所有

OE为输出允许端:当OE=0时,三态门打开;

本文来自www.eadianqi.com

当OE=1时,三态门关闭,输出高阻。 自动控制网www.eadianqi.com版权所有

七、单片机交通灯控制毕业设计的程序设计说明

自动控制网www.eadianqi.com版权所有

.控制器的软件设计说明 自动控制网www.eadianqi.com版权所有

7)1.每秒钟的设定

本文来自www.eadianqi.com

延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。

自动控制网www.eadianqi.com版权所有

7)2.计数器硬件延时

自动控制网www.eadianqi.com版权所有

定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC 可得到如下计算通式:

自动控制网www.eadianqi.com版权所有

TC=M-C

自动控制网www.eadianqi.com版权所有

式中,M为计数器摸值,该值和计数器工作方式有关。在方式0时M为213 ;在方式1时M的值为216;在方式2和3为28 自动控制网www.eadianqi.com版权所有

(2). 计算公式 本文来自www.eadianqi.com

T=(M-TC)T计数 自动控制网www.eadianqi.com版权所有

或TC=M-T/T计数

本文来自www.eadianqi.com

T计数是单片机时钟周期TCLK的12倍;TC为定时初值

自动控制网www.eadianqi.com版权所有

如单片机的主脉冲频率为TCLK12MHZ ,经过12分频13

本文来自www.eadianqi.com

方式0     TMAX=2 *1微秒=8.192毫秒 16

自动控制网www.eadianqi.com版权所有

方式1     TMAX=2 *1微秒=65.536毫秒

本文来自www.eadianqi.com

显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题.

自动控制网www.eadianqi.com版权所有

(3) 1秒的方法    我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。 自动控制网www.eadianqi.com版权所有

(4)相应程序代码 本文来自www.eadianqi.com

(1)主程序    自动控制网www.eadianqi.com版权所有

定时器需定时50毫秒,故T0工作于方式1。 初值: 16 本文来自www.eadianqi.com

TC=M-T/ T计数 =2 -50ms/1us=15536=3CBOH

自动控制网www.eadianqi.com版权所有

ORG 1000H

自动控制网www.eadianqi.com版权所有

START: MOV  TMOD,  #01H    ; 令TO为定时器方式1

自动控制网www.eadianqi.com版权所有

MOV  TH0,    #3CH    ;装入定时器初值 自动控制网www.eadianqi.com版权所有

MOV  TL0,    #BOH    ; 自动控制网www.eadianqi.com版权所有

MOV  IE,   &nbsp;  #82H      ;开T0中断

自动控制网www.eadianqi.com版权所有

SEBT   TRO        ;启动T0计数器 本文来自www.eadianqi.com

MOV   RO,    #14H      ;软件计数器赋初值

自动控制网www.eadianqi.com版权所有

LOOP:  SJMP   $          ;等待中断

自动控制网www.eadianqi.com版权所有

(2)中断服务子程序

本文来自www.eadianqi.com

ORG    000BH

自动控制网www.eadianqi.com版权所有

AJMP    BRT0 本文来自www.eadianqi.com

ORG 00BH 本文来自www.eadianqi.com

BRTO:DJNZ R0,NEXT

本文来自www.eadianqi.com

AJMP   TIME  ;     跳转到时间及信号灯显示子程序  本文来自www.eadianqi.com

DJNZ:MOV RO,#14H ;恢复R0值

本文来自www.eadianqi.com

MOV  TH0,    #3CH    ;重装入定时器初值 自动控制网www.eadianqi.com版权所有

MOV  TL0,    #BOH    ; 自动控制网www.eadianqi.com版权所有

MOV  IE,      #82H  本文来自www.eadianqi.com

RET1 自动控制网www.eadianqi.com版权所有

END

本文来自www.eadianqi.com

7) 3 软件延时 本文来自www.eadianqi.com

MCS-51 的工作频率为 2-12MHZ,我们选用的 8031 单片机的工作频率为 6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。 自动控制网www.eadianqi.com版权所有

具体的延时程序分析:

本文来自www.eadianqi.com

DELAY:MOV R4,#08H    延时 1秒子程序

自动控制网www.eadianqi.com版权所有

DE2:LCALL DELAY1 

本文来自www.eadianqi.com

DJNZ R4,DE2

本文来自www.eadianqi.com

RETDELAY1:MOV R6,#0     延时125ms 子程序

本文来自www.eadianqi.com

MOV R5,#0

自动控制网www.eadianqi.com版权所有

DE1:   DJNZ R5,$ 本文来自www.eadianqi.com

DJNZ R6,DE1 本文来自www.eadianqi.com

RET 

自动控制网www.eadianqi.com版权所有

MOV RN,#DATA   字节数数为2      机器周期数为1

本文来自www.eadianqi.com

所以此指令的执行时间为2ms 

本文来自www.eadianqi.com

DELAY1 为一个双重循坏 循环次数为 256*256=65536 所以延时时间=65536*2=1310约为125us  本文来自www.eadianqi.com

DELAY  R4设置的初值为8  主延时程序循环8次,所以125us*8= 1秒 自动控制网www.eadianqi.com版权所有

由于单片机的运行速度很快其他的指令执行时间可以忽略不计。 本文来自www.eadianqi.com

(1) 8051并行口的扩展 本文来自www.eadianqi.com

8051 虽然有 4 个 8 位 I/O 端口,但真正能提供借用的只有 P1 口,因为 P2 和 P0 口通于传送外部传送地址和数据,P3 口也有它的第二功能。因此,8031 通常需要扩展。由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要一个I/O端口,显然8031的端口是不够,需要扩展。

本文来自www.eadianqi.com

扩展的方法有两种:(1)借用外部RAM 地址来扩展I/O端口;(2)采用I/O接口来扩充。我们用8255并行接口信片来扩展I/O端口。 自动控制网www.eadianqi.com版权所有

(2)显示原理: 本文来自www.eadianqi.com

当定时器定时为 1 秒,时程序跳转到时间显示及信号灯显示子程序,它将依次 自动控制网www.eadianqi.com版权所有

信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初重新进入循环。    本文来自www.eadianqi.com

(3) 8255PA 口输出信号接信号灯: 自动控制网www.eadianqi.com版权所有

由于发光二极管为共阳极接法,输出端口为低电平,对应的二极管发光,所以

自动控制网www.eadianqi.com版权所有

用置位方法点亮红,绿,黄发光二极管。

自动控制网www.eadianqi.com版权所有

(4)8255输出信号与数码管的连接: 自动控制网www.eadianqi.com版权所有

LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点量示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上7FH所以 SP上为0伏,不亮为TTL高电平,全亮则显示为8

本文来自www.eadianqi.com

采用共阴级连接:

自动控制网www.eadianqi.com版权所有

其中 自动控制网www.eadianqi.com版权所有

PC0\PB0-a, 自动控制网www.eadianqi.com版权所有

PC1\PB1-b, 

本文来自www.eadianqi.com

PC2\PB2-c, 本文来自www.eadianqi.com

PC3\PB3-d,

自动控制网www.eadianqi.com版权所有

PC4\PB4-e,    自动控制网www.eadianqi.com版权所有

PC5\PB5-f, 自动控制网www.eadianqi.com版权所有

PC6\PB6-g 本文来自www.eadianqi.com

PC7\PB7 -SP接地

本文来自www.eadianqi.com

  本文来自www.eadianqi.com

  自动控制网www.eadianqi.com版权所有

显示数值  本文来自www.eadianqi.com

Dop g f e d c b a

自动控制网www.eadianqi.com版权所有

驱动代码(16进制)

本文来自www.eadianqi.com

0 本文来自www.eadianqi.com

0 0 1 1 1 1 1 1 自动控制网www.eadianqi.com版权所有

3FH

自动控制网www.eadianqi.com版权所有

1

自动控制网www.eadianqi.com版权所有

0 0 0 0 0 1 1 0

自动控制网www.eadianqi.com版权所有

06H

自动控制网www.eadianqi.com版权所有

2 本文来自www.eadianqi.com

0 1 0 1 1 0 1 1

自动控制网www.eadianqi.com版权所有

5BH 本文来自www.eadianqi.com

3 自动控制网www.eadianqi.com版权所有

0 1 0 0 1 1 1 1 本文来自www.eadianqi.com

4FH

本文来自www.eadianqi.com

4 本文来自www.eadianqi.com

0 1 1 0 0 1 1 0 自动控制网www.eadianqi.com版权所有

66H

本文来自www.eadianqi.com

5 自动控制网www.eadianqi.com版权所有

0 1 1 0 1 1 0 0 自动控制网www.eadianqi.com版权所有

6DH 本文来自www.eadianqi.com

6

本文来自www.eadianqi.com

0 1 1 1 1 1 0 0 本文来自www.eadianqi.com

7DH

自动控制网www.eadianqi.com版权所有

7 本文来自www.eadianqi.com

0 0 0 0 0 1 1 1

自动控制网www.eadianqi.com版权所有

07H 自动控制网www.eadianqi.com版权所有

8

本文来自www.eadianqi.com

0 1 1 1 1 1 1 1 自动控制网www.eadianqi.com版权所有

7FH 自动控制网www.eadianqi.com版权所有

  自动控制网www.eadianqi.com版权所有

本文来自www.eadianqi.com

表 3  驱动代码表 本文来自www.eadianqi.com

7)4.5 8255与8051的连接: 本文来自www.eadianqi.com

用 8051 的 P0 口的 p0.7 连接 8255 的片选信号 cs  我们用 8031 的地址采用方式,当p0.7 =0   时片选有效, 其他无效,  p0.1 p0.1 用于选择8255端口 自动控制网www.eadianqi.com版权所有

P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0 自动控制网www.eadianqi.com版权所有

A7    A6   A5   A4   A3   A2   A1  A0

本文来自www.eadianqi.com

1     X    X     X    X    X    0   0  00H为8255 的PA口

自动控制网www.eadianqi.com版权所有

1     X    X     X    X    X    0   1  01H 为8255的PB口

本文来自www.eadianqi.com

1     X    X     X    X    X    1   0  02H 为8255的PC口 自动控制网www.eadianqi.com版权所有

1     X    X     X    X    X    1   1  03H 为8255的控制口

本文来自www.eadianqi.com

由于8051是分时对8255和储存器进行访问所以8051的P0口不会发生冲突 本文来自www.eadianqi.com

八、程序设计

本文来自www.eadianqi.com

1  程序流程图

自动控制网www.eadianqi.com版权所有

点击浏览下一页

自动控制网www.eadianqi.com版权所有

点击浏览下一页 自动控制网www.eadianqi.com版权所有

2  程序源代码

本文来自www.eadianqi.com

ORG 0000H         ;主程序的入口地址 自动控制网www.eadianqi.com版权所有

LJMP MAIN         ;跳转到主程序的开始处 本文来自www.eadianqi.com

ORG 0003H         ;外部中断0的中断程序入口地址          

本文来自www.eadianqi.com

ORG 000BH         ;定时器0的中断程序入口地址       LJMP T0_INT                   ;跳转到中断服务程序处 自动控制网www.eadianqi.com版权所有

ORG 0013H         ;外部中断1的中断程序入口地址      

本文来自www.eadianqi.com

MAIN : MOV SP,#50H

自动控制网www.eadianqi.com版权所有

MOV IE,#8EH       ;CPU 开中断,允许T0中断,T1中断和外部中断1中断

本文来自www.eadianqi.com

MOV TMOD,#51H     ;设置T1为计数方式,T0为定时方式,且都工作于模式1

自动控制网www.eadianqi.com版权所有

MOV TH1,#00H      ;T1 计数器清零 本文来自www.eadianqi.com

MOV TL1,#00H 本文来自www.eadianqi.com

SETB TR1          ;启动T1计时器

本文来自www.eadianqi.com

SETB EX1          ;允许INT1 中断

自动控制网www.eadianqi.com版权所有

SETB IT1          ;选择边沿触发方式

本文来自www.eadianqi.com

MOV DPTR ,#0003H

本文来自www.eadianqi.com

MOV A, #80H        ;给8255赋初值,8255工作于方式0 本文来自www.eadianqi.com

MOVX @DPTR, A

自动控制网www.eadianqi.com版权所有

AGAIN: JB P3.1,N0       ;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1 跳转 本文来自www.eadianqi.com

MOV A,P1     

本文来自www.eadianqi.com

JB P1.7,RED      ;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯间

本文来自www.eadianqi.com

MOV R0,#00H      ;R0 清零

本文来自www.eadianqi.com

MOV R0,A         ;存入东西方向绿灯初始时间 本文来自www.eadianqi.com

MOV R3,A

自动控制网www.eadianqi.com版权所有

LCALL DISP1 自动控制网www.eadianqi.com版权所有

LCALL DELAY 本文来自www.eadianqi.com

AJMP AGAIN 自动控制网www.eadianqi.com版权所有

RED: MOV A,P1

自动控制网www.eadianqi.com版权所有

ANL A,#7FH      ;P1.7 置0 本文来自www.eadianqi.com

MOV R7,#00H     ;R7 清零 自动控制网www.eadianqi.com版权所有

MOV R7,A        ;存入东西方向红灯初始时间 自动控制网www.eadianqi.com版权所有

MOV R3,A 自动控制网www.eadianqi.com版权所有

LCALL DISP1

自动控制网www.eadianqi.com版权所有

LCALL DELAY

自动控制网www.eadianqi.com版权所有

AJMP AGAIN 本文来自www.eadianqi.com

;-------------------------------------------

自动控制网www.eadianqi.com版权所有

N0:    SETB TR0          ;启动T0计时器

自动控制网www.eadianqi.com版权所有

MOV 76H,R7        ;红灯时间存入76H

自动控制网www.eadianqi.com版权所有

N00:   MOV A,76H        ;东西方向禁止,南北方向通行 本文来自www.eadianqi.com

MOV R3,A       

本文来自www.eadianqi.com

MOV DPTR,#0000H  ;置8255A口,东西方向红灯亮,南北方向绿灯亮       MOV A,#0DDH

自动控制网www.eadianqi.com版权所有

MOVX @DPTR, A 本文来自www.eadianqi.com

N01:   JB P2.0,B0

本文来自www.eadianqi.com

N02:   SETB P3.0

本文来自www.eadianqi.com

CJNE R3,#00H,N01  ;比较R3中的值是否为0,不为0转到当前指令处

本文来自www.eadianqi.com

;------黄灯闪烁5秒程序------ 自动控制网www.eadianqi.com版权所有

N1:    SETB P3.0 本文来自www.eadianqi.com

MOV R3,#05H 自动控制网www.eadianqi.com版权所有

MOV DPTR,#0000H  ;置8255A口,东西,南北方向黄灯亮

本文已影响