当前位置:文档之家› RS485控制交通灯1

RS485控制交通灯1

RS485控制交通灯1
RS485控制交通灯1

一、题义分析及解决方案

1.题义要求分析

本题要求利用两台PC机和两套STAR ES98PCI实验仪。主机通过RS485发出控制命令给从机,从机收到控制命令,检验命令的正确性(从机将接收来的两次命令进行比较,看是否一致,检验正误),执行命令——控制交通灯,交通灯有单行线无左转和双行线带有左转和右转两种模式,通过RS485通信,实现这两种模式的交通灯控制。

对于题意分析,首先,主机是如何将命令通过什么来发送给从机的,主从机之间是怎么样建立起连接的,它们之间需不需要通信协议,需要的话应怎样设置;交通灯两种模式的切换,主机是以什么方式让从机接收到命令后切换。再者,从机接收到命令后如何来处理,具体怎么样实现交通灯的控制。其次,怎样用八个交通灯模拟实现双行线交通灯的转换。最后,在模式切换这个问题中是否可以实现即时切换。

总结如下:

(1)怎么利用RS485总线技术。

(2)需不需要设置RS485通信协议,怎样设置。

(3)主从机通信,串行与并行的转换如何实现。

(4)从机如何将接收到的命令进行比较与执行。

(5)从机控制交通灯如何实现。

(6)交通灯运行状态怎么实现,交通灯状态的切换问题怎么解决。

2.解决问题方法和及思路

1)硬件部分

主从机是通过RS485来建立通信的,RS485支持远距离传输,因此可直接将该芯片的A、B端相连。RS485内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与8250连接时分别与8250的SOUT和SIN相连即可。主机通过8255连接的按键来发送不同的数值达到交通灯模式的控制与切换。从机接到控制命令,通过比较后来执行单行线或双行线。从机的8255主要负责八个交通灯不够实现双行线的使用,把东西或南北方向的黄灯当作是否左转的标志性灯,若黄灯代表可以左转,若黄灯灭代表不可以左转,以此实现了交通灯的模式实现。由于并行输出输入与串行通信之间需要沟通的桥梁,主从机中的8250起到了串并转换的作用。

2)软件部分

根据硬件需要采用MAX485PAC芯片,为实现对通信的控制,采用汇编语言,控制MAX485PAC的工作方式,实现主机对从机的控制。通讯为RS485接口。

在主机上使用8255A芯片,为实现对通信的控制,8255连接小键盘,根据对键盘接受的数值不用发出不同的命令。从机上采用8255A芯片是来控制交通灯,通过汇编语言编程,分别编程控制8255的工作方式,在编程时应考虑到状态的转换采用查询方式控制,根据需求分析可采用8255的方式0下工作具体如下设置:

8255A芯片的PA、PB、PC三口的工作方式为方式0,将8255的PA口接发光二极管,PB口作为段选码,PC口作位选码。

二、硬件设计

1.选择芯片RS485

1)芯片RS485在本设计中的作用

该芯片实现主机对从机的控制,其控制信号为串行通讯。在从机接受命令经过检验后执行命令实现对交通灯的控制。

2)芯片RS485功能分析

MAX485接口芯片是Maxim公司的一种RS-485芯片。

图1 RS485芯片引脚定义

RO——接收数据的 TTL电平输出;

RE——低电平有效的接收允许;

DE——高电平有效的发送允许;

DI——发送数据的TTL电平输入;

A——485差分信号的正向端;

B——485差分信号的反向端。

MAX485是芯片接口的一种类型

DIP封装(Dual In-line Package),也叫双列直插式封装技术,是一种最简单的封装方式。指采用双列直插形式封装的集成电路芯片,绝大多数中小规模集成电路均采用这种封装形式,其引脚数一般不超过100。DIP封装的CPU芯片有两排引脚,需要插入到具有DIP结构的芯片插座上。当然,也可以直接插在有相同焊孔数和几何排列的电路板上进行焊接。DIP封装的芯片在从芯片插座上插拔时应特别小心,以免损坏管脚。DIP封装结构形式有:多层陶瓷双列直插式DIP,单层陶瓷双列直插式DIP,引线框架式DIP(含玻璃陶瓷封接式,塑料包封结构式,陶瓷低熔玻璃封装式)等。

采用单一电源+5 V工作,额定电流为300 μA,采用半双工通讯方式。它完成将TTL电平转换为RS-485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE

和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100Ω的电阻。

可以串行口取电,可以驱动RS232与MAX485实现通信。没加负载时电压有5。16V,加负载后降制3V左右。

MAX485接TTL端可以直接接单片机的Txd与Rxd,另一端是Rs232电平的,与PC机连接。只是电平转换,不用软件驱动。

2.选择芯片8255A

1)芯片8255A在本设计中的作用

通过8255A的三个I/O端口A口、B口、C口与发光二极管以及LED显示器连接起来控制交通灯的规律性变化以及倒计时显示。

2)芯片8255A功能设计

PA、PB、PC三口均工作在方式0状态。:PB0~PB3接黄灯,PB4~PB7接红灯;PA0~PA3接绿灯,PA4~PA7作为段选码;PC0~PC7作为位选码。在用8255A前首先要对它进行初始化,设置它的方式选择控制字。

方式0的工作特点:

这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。其功能为:

两个8位通道:通道A、B。两个四位通道:通道C高4位和低四位;任何一个通道可以作输入/输出;输出是锁存的;输入是不锁存的;在方式0时各个通道的输入/输出可有16种不同的组合。方式0的使用场合:同步传送是在外设控制过程的各种动作时间为固定,且已知的条件下使用的。因此,传送中不要应答信号。输入时,执行程序只要给出IN指令;而输出时,也只给出OUT指令,就能实现数据的输入或输出。优点是程序简单,接口的硬件开销小。

查询式传输时,要先查询一个外设的状态,当该状态表示外设已准备好时,方能开始查询传输,否则CPU将继续查询。但在方式0,没有规定固定的应答信号,所以,这时将通道A、B作为数据通道,把通道C的4个位(高4位或低4位)规定为输出口,用来输出一些控制信号,而把通道C的另外4个位规定为输入口,用来输入外设的状态。这样,利用通道C来配合通道A和B的输入/输出操作。

8255A方式选择控制字说明:

控制字格式如下:

图2 8255A控制字格式

D7=1工作方式控制标志。D5D6组合设定A口工作方式:00~方式0、01~方式1、10/11~方式2。D4设定A口的输入/输出,D4=1输入D4=0输出。D3C口高位输入/输出选择,D3=1输入D3=0输出。D2B口工作方式选择,D2=1方式1;D2=0方式0。D1B口输入/输出选择D1=1输入D1=0输出。D0设定C口低位输入/输出D0=1输入D0=0输出。

3)芯片8255A技术参数

表1 8255A技术参数表

(DAR)工作电流最大为4MA。8255的输出电压不高,连接到LED时,最好加入一个驱动器起到电流放大的作用。

3.选择芯片8250

1)芯片8250在本设计中的作用

通过8250的SOUT与SIN与完成串行信号与并行信号的转换。

2)芯片8250功能设计

8250通过波特率发生控制电路设置双方的波特率,发送器将待发送的内容自动转存到发送移位寄存器,在发送器时钟的控制下,由SOUT引脚发送出去。接收器在接收时钟控制下,由SIN引脚输入的串行数据逐位存入移位寄存器,转换后的并行数据存入接收缓冲寄存器,等待CPU读取。通信线控制寄存器保

存CPU写入的通讯数据格式,状态寄存器提供串行数据发送和接收时的状态16550的控制字格式如下:

图3 8250控制字格式

3)芯片8250技术参数

表2 8250内部寄存器及其复位状态

波特率的设置参数:在除数寄存器的高8位和低8位分别写入00H,0F0H 实现波特率为4800的设置。

4.硬件总逻辑图及其说明

本设计以STAR ES598PCI试验仪及8250,8255,及MAX485之间的连接,

8086CPU的数据总线和8250,8255A的数据总线相连,8086的读写控制分别和8250,8255A的读写控制相连。8250地址锁存的地址线A0、A1、A2分别与8255A 的地址线A0、A1、A2相连。8255A地址锁存的地址线A1、A2分别与8255A 的地址线A0、A1相连。译码器分别与和8250及8255A的片选CS相连。8255A 的三个端口的功能为:PA口接发光二极管,PB口作为段选码,PC口作位选码。

三、控制程序设计

1.控制程序设计思路说明

实验由两台PC机两套STAR ES598PCI实验仪完成。主机通过RS485发出控制命令给从机,从机收到控制命令,通过对两次命令的比较检验命令的正确性,然后执行命令,用8255A芯片控制发光二极管来实现交通灯的闪烁。交通灯有单行线和双行线两种模式需要切换,切换命令也是由主机通过RS485对从机的通讯实现的。其中单行线和双行线的实现方式不同。

2.程序流程图

图5 MAX485接收发送程序流程图

图6 程序主流程图

图7 倒计时显示子流程图

图8 500ms延时程3.控制程序

主机程序:

..MODEL TINY

PCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址, 也为DMA & 32 BIT RAM板卡上的8237提供基地址)

Vendor_ID EQU 10EBH ;厂商ID 号

Device_ID EQU 8376 ;设备ID号

.STACK 100 .DATA IO_Bit8_BaseAddress DW ? msg0 DB 'BIOS 不支持访问PCI $' msg1 DB '找不到Star PCI9052板卡 $' msg2 DB '读8位I/O 空间基地址时出错$' COM1_ADD DW 00FBH ;8250控制寄存器地址 COM2_ADD DW 00F8H ;8250除数寄存器地址 COM3_ADD DW 0FCH ;MODEM 控制寄存器地址 COM4_ADD DW 0FDH ;8250通信状态寄存器地址 ADR DW 00E0H ;用于清除PCI9052上一次写操作产生的地址 BUF DB 100 DUP (?) ;存储按键的键号 COM_ADD DW 00D3H ;8255A 控制口偏移量 PA_ADD DW 00D0H ;PA 口偏移量 PC_ADD DW 00D2H ;PC 口偏移量 .CODE START: MOV AX,@DATA MOV DS,AX NOP CALL InitPCI CALL ModifyAddress ;根据PCI 提供的基地址,将偏移地址转化为实地址址 ;程序开始 BEGIN1: ;初始化8250 MOV DX,COM1_ADD ;8250控制寄存器地址送DX MOV AL,80H ;置DLAB=1,设置除数寄存器 OUT DX,AL MOV DX,COM2_ADD ;除数寄存器地址送DX MOV AX,18H ;波特率为4800bit/s OUT DX,AL MOV AL,00H INC DX OUT DX,AL MOV DX,COM1_ADD ;8250控制寄存器地址送DX MOV AL,1BH ;8位数据位,偶校验,1位停止位 OUT DX,AL MOV DX,COM3_ADD MOV AL,03H OUT DX,AL MOV DX,COM2_ADD MOV AL,0 ;禁止所有中断

INC DX OUT DX,AL ;8255A 初始化 MOV DX,COM_ADD ; 置8255A 控制口地址 MOV AL,90H ;8255A 的初始化 OUT DX,AL MOV DX,COM_ADD ;对pc0设置1,使其对MAX485RE/DE 端,使其处于发送 MOV AL, 01H OUT DX,AL

;检测是否有键按下 WAIT1: AND AL,00H MOV DX,PA_ADD IN AL,DX ;读键盘值 CMP AL,0FFH JZ WAIT1 ;所有列线为高,无键按下 ;有键按下,延时去抖动 CALL DL500ms CALL DL500ms ;按键识别 PUSH CX MOV CX,2 MOV SI,0 LOOP1: MOV BUF[SI],AL CALL TRANS INC SI LOOP LOOP1 POP CX JMP WAIT1 ;查询方式发送子程序 TRANS PROC NEAR AGAIN: MOV DX,COM4_ADD ;通信状态寄存器地址送DX IN AL,DX TEST AL,20H ;检测发送器是否准备就绪 JZ AGAIN MOV DX,COM2_ADD MOV AL,BUF[SI] ;取出发送区域的待发送数据 OUT DX,AL ;指向下一个待发送数据 ;MOV DX,COM4_ADD ;IN AL,DX MOV DX,ADR OUT DX,AL ;用于清除PCI9052上一次写操作产生的地址 RET TRANS ENDP DL500ms PROC NEAR PUSH AX PUSH DX MOV DX,500 ;延时500ms MOV AH,0FFH ;星研公司提供的软中断 INT 21H

POP DX POP AX RET DL500ms ENDP InitPCI PROC NEAR MOV AH,00H MOV AL,03H INT 10H ;清屏 MOV AH,0B1H MOV AL,01H INT 1AH CMP AH,0 JZ InitPCI2 LEA DX,msg0 InitPCI1: MOV AH,09H INT 21H JMP Exit InitPCI2: MOV AH,0B1H MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在

Star PCI9052板卡

LEA DX,msg1

JMP InitPCI1

InitPCI3: MOV DI,PCIBAR3

MOV AH,0B1H

MOV AL,09H

INT 1AH ;读取该卡PCI9052基地址

JNC InitPCI4

LEA DX,msg2

JMP InitPCI1

InitPCI4: AND CX,0FFFCH

MOV IO_Bit8_BaseAddress,CX

RET

InitPCI ENDP ModifyAddress PROC NEAR

ADD COM_ADD,CX

ADD PA_ADD,CX

ADD PC_ADD,CX

ADD COM1_ADD,CX

ADD COM2_ADD,CX

ADD COM3_ADD,CX

ADD ADR,CX

ADD COM4_ADD,CX

RET

ModifyAddress ENDP

Exit: MOV AH,4CH

INT 21H

END START

从机程序:

.MODEL TINY PCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址, 也为DMA & 32 BIT RAM板卡上的8237提供基地址)

Vendor_ID EQU 10EBH ;厂商ID 号

Device_ID EQU 8376 ;设备ID号

.STACK 100

.DATA

IO_Bit8_BaseAddress DW ?

msg0 DB 'BIOS不支持访问PCI $'

msg1 DB '找不到Star PCI9052板卡 $'

msg2 DB '读8位I/O空间基地址时出错$'

errormsg DB '数据接收错误!重新发送数据$'

COM_ADD DW 00D3H

;8255A控制口偏移量

PA_ADD DW 00D0H ;PA口偏移量PB_ADD DW 00D1H ;PB口偏移量PC_ADD DW 00D2H ;PC口偏

移量

COM1_ADD DW 00FBH ;8250控制寄存器地址

COM2_ADD DW 00F8H ;8250除数寄存器地址

COM3_ADD DW 00FCH ;MODEM控制寄存器地址

COM4_ADD DW 00FDH ;8250通信状态寄存器地址

ADR DW 00E0H ;用于清除

PCI9052上一次写操作产生的地址

LED_Data DB 01111101B ;东西绿

灯,南北红灯

DB 11111101B ;东西绿灯闪

烁,南北红灯

DB 11010111B ;

东西红灯,南北绿灯

DB 11011111B ;东西红灯,

南北绿灯闪烁

DB 00111001B ;东西绿灯,

南北红灯

DB 10111001B ;东西绿灯闪烁,南北红灯

DB 10010011B ;东西红灯,南北绿灯

DB 10011011B ;东西红灯,南北绿灯闪烁

REC_DATA DB 100 DUP ( ? ) ;存放接收的数据TIMES DW ? ;要接收的数据个数

.CODE

START: MOV AX,@DATA

MOV DS,AX

NOP

CALL InitPCI

CALL MoDIfyAddress ;根据PCI 提供的基地址,将偏移地址转化为实地址;程序开始

;初始化8250

MOV DX,COM1_ADD ;8250控制寄存器地址送DX

MOV AL,80H ;置DLAB=1,设置除数寄存器

OUT DX,AL

MOV DX,COM2_ADD ;除数寄存器地址送DX

MOV AL,18H ;波特率为4800bit/s

OUT DX,AL

INC DX

MOV AL,00H

OUT DX,AL

MOV DX,COM1_ADD ;8250控制寄存器地址送DX

MOV AL,1BH ;8位数据位,偶校验,1位停止位

OUT DX,AL

MOV DX,COM3_ADD

MOV AL,03H

OUT DX,AL MOV

DX,COM2_ADD ;禁止所有中断 MOV AL,0 INC DX

OUT DX,AL

;初始化8255A

MOV DX,COM_ADD ;初始化8255控制口,将地址设置成COM_ADD

MOV Al,80H ;方式0下,PA,PB,PC口全为输出口 OUT DX,Al ;二极管全亮

MOV DX,PA_ADD

MOV AL, 00H ;对pc0设置0,使其对MAX485RE/DE端,使其处于接收态

OUT DX,AL

LOOP1:

CALL RECEIVE

TEST

AL,REC_DATA ;比较两次接收到的命令是否一致

JZ LOOP1

CMP AL,7FH

JZ START1

CMP AL,0DFH

JZ START4

JMP LOOP1

;单行线程序

START1:

ADD DL,0FFH MOV

REC_DATA[SI],DL

MOV

REC_DATA[SI+1],DL

LEA

BX,LED_Data

CALL DL500ms ;将控制信息表的首地址给BX

MOV DX,PA_ADD MOV Al,0 ;Al 为0表示查表中第一个字节的内容 XLAT ;查表,将表中第一个字节的内容放入Al 中 OUT DX,Al ;东西绿灯,南北红灯 MOV CX,6 CALL DL500ms START2: MOV Al,1 XLAT OUT DX,Al ;东西绿灯闪烁,南北红灯 MOV Al,0 XLAT OUT DX,Al ;东西绿灯亮,南北红灯 CALL DL500ms LOOP START2 CALL DL2S MOV Al,2 ;东西红灯,南北绿灯 XLAT OUT DX,Al CALL DL2S MOV CX,6 START3: MOV Al,3 ;东西红灯,南北绿灯闪烁 XLAT OUT DX,Al CALL DL500ms MOV Al,2 ;东西红灯,南北绿灯亮 XLAT OUT DX,Al CALL DL500ms LOOP START3 CALL RECEIVE CMP AL,7FH JZ START1 CMP AL,0DFH JZ START4 JMP LOOP1 JMP START1 START0 : JMP START1 ;双行线程序 START4 : ADD DL,0FFH MOV REC_DATA[SI],DL MOV REC_DATA[SI+1],DL LEA BX,LED_Data ;将控制信息表的首地址给BX CALL DL500ms MOV DX,PA_ADD MOV Al,4 ;Al 为0表示查表中第五个字节的内容 XLAT ;查表,将表中第五个字节的内容放入Al 中 OUT DX,Al ;东西绿灯,南北红灯,黄灯均亮 MOV CX,6 ;绿灯闪烁3次 CALL DL500ms START5: MOV Al,5 XLAT OUT DX,Al ;东西绿灯灭,南北红灯,黄灯均亮 CALL DL500ms MOV Al,4 XLAT OUT DX,Al ;东西绿灯,南北红灯,黄灯均亮 CALL DL500ms LOOP START5 CALL DL2S MOV Al,6 ;东西红灯,南北绿灯,黄灯均亮

XLAT

OUT DX,Al

CALL DL500ms

MOV CX,6

START6:

MOV Al,7 ;东西红灯,南北绿灯灭,黄灯均亮

XLAT

OUT DX,Al

CALL DL500ms

MOV Al,6 ;东西红灯,南北绿灯亮,黄灯均亮

XLAT

OUT DX,Al

CALL DL500ms

LOOP START6

CALL RECEIVE CMP AL,7FH

JZ START0

CMP AL,0DFH

JZ START4

JMP LOOP1

JMP START4

error1:

LEA DX,errorMSG

MOV AH,09H

INT 21H

JMP LOOP1

;查询方式接收子程序

RECEIVE PROC NEAR

;MOV SI,0

;MOV CX,2

REPIN:

MOV DX,COM4_ADD ;通信状态寄存器地址

IN AL,DX

TEST AL,1EH ;检测接收的数据有无错误

JNZ ERROR1

TEST AL,01H ;检测接收缓冲器中是否有数据

JZ REPIN

MOV DX,COM2_ADD ;数据接收寄存器地址送DX

IN AL,DX

MOV REC_DATA,AL

MOV DX,ADR

OUT DX,AL

MOV

DX,COM2_ADD ;数据接收寄存器端口地址

IN

AL,DX ;再次从数据接收寄存器中读取数据

MOV DX,ADR

OUT DX,AL

CLC ;接收成功,清CF标志位

JMP DONE

ERROR: STC ;接收不成功,置CF标志位

DONE: RET

RECEIVE ENDP

;延时500ms

DL500ms PROC NEAR

PUSH AX

PUSH DX

MOV DX,500

MOV AH,0FFH

INT 21H

POP DX

POP AX

RET

DL500ms ENDP

;延时7s

;DL7S PROC NEAR

; PUSH CX

; MOV CX,14

; DL7S1: CALL DL500ms ; LOOP DL7S1

; POP CX

; RET

;DL7S ENDP

;延时2秒

DL2S PROC NEAR

PUSH CX

MOV CX,4

DL2S1: CALL DL500ms LOOP DL2S1

POP CX

RET

DL2S ENDP

;程序结束

InitPCI PROC NEAR

MOV AH,00H

MOV Al,03H

INT 10H ;清屏

MOV AH,0B1H

MOV Al,01H

INT 1AH

CMP AH,0

JZ InitPCI2

LEA DX,msg0

InitPCI1: MOV AH,09H

INT 21H

JMP Exit

InitPCI2: MOV AH,0B1H

MOV Al,02H

MOV CX,Device_ID

MOV DX,Vendor_ID

MOV SI,0

INT 1AH

JNC InitPCI3 ;是否存在Star PCI9052板卡

LEA DX,msg1

JMP InitPCI1

InitPCI3: MOV DI,PCIBAR3

MOV AH,0B1H

MOV Al,09H

INT 1AH ;读取该卡PCI9052基地址

JNC InitPCI4

LEA DX,msg2

JMP InitPCI1

InitPCI4: AND CX,0FFFCH

MOV IO_Bit8_BaseAddress,CX

RET

InitPCI ENDP

MoDIfyAddress PROC NEAR

ADD COM_ADD,CX

ADD COM1_ADD,CX ADD

COM2_ADD,CX

ADD

COM3_ADD,CX

ADD

COM4_ADD,CX

ADD PA_ADD,CX

ADD ADR,CX

ADD PB_ADD,CX

ADD PC_ADD,CX

RET

MoDIfyAddress ENDP

Exit: MOV AH,4CH

INT 21H

END START

四、上机调试过程

1.硬件调试

主机:8255A的PA口接JP74的键盘,8250的SIN、SOUT端口分别与MAX485PCA 的RO、DI端口相连。

从机:8255的PA口接发光二极管,PB口作为段选码,PC口作位选码。 8250的SIN、SOUT端口分别与MAX485PCA的RO、DI端口相连。

主机与从机通过MAX485PCA的A、B端口相连。

2.软件调试

在调试的过程中,采用单步运行的方式,每次都要检查一下程序中用到的寄存器里面的数值,看它们是否是理论上程序运行后的数值。从中判断所写程序的正确性。检查寄存器数值还可以了解程序的运行方式,比如循环、判断的语句执行后程序的运行走向等。

随着实验的深入,我们做交通灯的同学在一起讨论,分别增加了相应的子程序用来实现相应的功能,但在程序的调试过程中却出现了各种错误现象,后来在单步调试过程下发现程序设计时多是采用的自己想向的代码设计,从而出现的错误很多,分别对各个程序代码进行了修改,但还是不能实现正常的交通灯的变化规律,不是灯的变化不按交通灯的变化规律变化,就是在实现绿灯的倒计时时不能实现,也即是交通灯的变化和绿灯倒计时程序不能相溶,但是我们在调试时就是不知问题出现在那处,后经过老师指导知道是倒计时子程序调用时出现问题,在老师的指导下,对倒计时时间的正确显示和功能实现,单步调试中倒计时实现后,红绿灯的变化却又不能出现正常的结果,在变化中出现多个灯同时亮和同时灭的现象,后经过改正得以实现交通灯的正常变化和绿灯的倒计时显示。

3.联机调试

在主从机的联机调试中,我们采取的是单独的调试方法,先调试主机8255A 读键盘的功能,然后是从机采用单独对红绿灯部分的调试。这两部分没有问题后就是联机通信部分。首先检查波特率,传输数据的位数,校验,停止位等是否保持一致。通过检查8250的发送寄存器和接受寄存器是否一致检验联机是否成功。

4.调试结果及问题的提出

调试的结果即上位机根据要求发出相应控制命令发给从机,使从机实现相应功能转换。下位机主要任务是实现交通灯的具体作用,模拟交通现场。程序一开始,四个方向的灯全为红灯,等待接收主机发出的命令,接收完命令并验证,实现单行线与双行线的功能。由于通信需求,主机部分需要实现串行信号转化为并行信号传输。

有实验肯定会遇到问题,主要是对于RS485总线技术的了解,然后是关于计算机数据传输是需要串行与并行的转换,对于从机部分,怎么去控制交通灯的变化,在交通灯变化中交通灯运行状态怎么实现,交通灯状态的切换问题怎么解决,倒计时时间如何显示,倒计时间用什么来控制等等。这些问题都是在实验中一步步进展中不断出现的。

五、设计结果分析及问题讨论

1.课程设计结果及分析

程序所要达到的目的是:使用者根据不同需要,在主机按下键盘不同的键,主机把此键值通过RS485传到从机,从机判断键值是否符合标准,若满足条件,执行单行线或双行线,红绿灯相应显示其状态。

此通讯系统中,8250完成的是串行数据与并行数据的转换,实现双方通信

需求的设置。MAX485PCA完成主从机间数据的交换。在主机中,8255A的作用是从键盘中读取键值的作用,从机中8255A作用有两个,一个是完成红绿灯的转换,另一个是调节控制LED显示灯。

此课题为RS485通讯实验,因此主要内容重点是RS485的通讯部分,其功能是8250实现双方通信需求的设置,包括波特率,传输数据的位数,校验,停止位等,双方需保持一致。再配合MAX485PCA实现双方数据的传输。

在从机控制交通灯中:一开始是四个路口的灯全亮,然后是东西方向上的绿灯亮,同时南北方向上的红灯亮,并且40s开始倒记时,倒记时为0时,东西方向绿亮开始闪烁三次,南北方向上的红灯不变,2s以后东西方向变为红灯,南北方向变为绿灯,倒记时20s开始,倒记时结束后,南北方向绿灯闪烁三次,东西红灯不变,在这以后又是东西绿灯,南北红灯按此规则交替变换。

8255A在初始化时分别把PA口、PB口、PC口设置成输出,在方式0下工作这样就可以通过片选信号CS对PA口设置控制信息选择红绿灯的灯亮,将输入的“1”代表灯亮,“0”代表灭状态的信息送入PA口进行输出。PB,PC口的状态信息用来选择7段LED灯的选择,这样,设置各个灯的状态信息为“1”或“0”实现LED灯的7段码选择,完成倒计时显示程序和控制板一样的,从而在8255A 芯片的PA口、PB口、PC口分别输出相应的信息。

2.问题讨论

首先在实验的初期要确立芯片的选择,在串行与并行及其双方通信是用8250,在控制键盘读取和红绿灯的转换是用8255A。芯片确立好后,即是接口之间的连线。再后在用到RS485的通信协议中没有头绪,后来问到老师给予了解答,对于这种简单的双机通讯,只需要对于8250的波特率,传输数据的位数,校验,停止位保持一致即可。对于红绿灯倒记时的LED显示器,怎么用是个问题,在找过资料后了解了LED的显示原理,7位段选码的使用方法后解决了问题。对于单行线,双行线的区别起初并不知道怎么区分,因为红绿黄灯只有8个,不能够完全模拟双行线,咨询老师后,解决方法是双行线通过加入黄灯,以区别单行线。

3.收获、体会和建议

经过二个星期左右的课程设计,收获和体会颇深。通过这两个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。这次实验过后增强了用汇编语言程序编写的能力,更深地理解了汇编语言中的一些知识点。这次的课程设计也让我看到了团队的力量,有不懂不明白的问题通过与同学与老师的交流更易更深的解决与理解。

通过本次课程设计,加强了自己的动手实践能力,操作能力及解决问题的能力。并且通过查阅相关资料,学习书本及课堂中老师不曾介绍过的知识。同时也学会了在动手实践的过程中,发现问题,分析问题,在最短的时间内寻找问题的解决方案。更重要的是通过本次的课程设计,我学到了关于微机原理课程的更多

相关内容,了解了RS485芯片的作用、内部结构、引脚的功能、工作方式、技术参数等等。更加深入认识了8255A的内部构造、控制字、方式字的设置以及通过8255A控制输出量。

在这次实践中,从硬件到软件一步步仔细的检查,找错纠错,给我们一个很好的锻炼机会。从一开始拿到题目到最后课程设计顺利完成,老师和同学都给予了很大的帮助,同时也学会了查资料找线索来解决一些从前并未接触过或不懂得问题。总的来说,虽然课程设计的时间有限,但在这有限的时间里,不仅完成了作业,提交了结果,也丰富了这门硬件课程的更多知识,更深入地了解了这门专业课的精髓,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

张老师在课程设计之前就说过,谁下的功夫吃的苦多深谁到最后把结果做出来就会感受到更多的成就感与喜悦。果然是这样,大家陆续完成课程设计后的感受都是如此。一件看似非常难的事情,如果有决心和毅力也会最终会完成,并且会感受到与做简单的事情不同的愉悦。

用状态机设计的交通灯控制器

/module traffic (clock, reset, sensor1, sensor2, red1, yellow1, green1, red2, yellow2, green2); input clock, reset, sensor1, sensor2; output red1, yellow1, green1, red2, yellow2, green2; // Define the states. Enumerated type pragma allows Spectrum to chose encoding. parameter /*exemplar enum ee1 */ st0 = 0, st1 = 1, st2 = 2, st3 = 3, st4 = 4, st5 = 5, st6 = 6, st7 = 7; reg [2:0] /* exemplar enum ee1 */ state, nxstate ; reg red1, yellow1, green1, red2, yellow2, green2; // Update the state with the next state on the clock edge // or reset value. always @(posedge clock or posedge reset) begin if (reset) state = st0 ; else state = nxstate; end // // Calculate the next state and the outputs // based on the present state and the inputs // always @(state or sensor1 or sensor2) begin // Default values for the outputs

交通灯控制器的设计

交通灯控制器的设计 LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】

电子设计自动化实训说明书 题目:交通灯控制器的设计 系部:信息与控制工程学院 专业:电子信息工程 班级: 06级1班 学生姓名: 朱清美学号: 015 指导教师:张建军 2009年12月21日 目录 1摘要............................................................... 2设计任务与要求..................................................... 3设计原理及框图..................................................... 4单元电路设计及仿真调试............................................. 状态控制器的设计................................................ 状态译码器设计及仿真调试........................................ 定时系统设计及仿真调试.......................................... 秒脉冲发生器设计................................................ 5个人总结 (14) 6参考文献........................................................... 1摘要: 分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案。关键词:交通控制交通灯时间发生器定时器1 引言随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道

交通信号灯控制系统

交通信号控制系统 1. 设计任务 设计一个十字路口交通控制系统,要求: (1)东西(用A表示)、南北(用B表示)方向均有绿灯、黄灯、红灯指示,其持续时间分别是30秒、3秒和30秒,交通灯运行的切换示意图如图1-1 所示。 (2)系统设有时钟,以倒计时方式显示每一路允许通行的时间。 (3)当东西或南北两路中任意一路出现特殊情况时,系统可由交警手动控制立即进入特殊运行状态,即红灯全亮,时钟停止记时,东西、南北两路所有车辆停止通行;当特殊运行状态结束后,系统恢复工作,继续正常运行。 2.总体框图 本系统主要由分频计、计数器和控制器等电路组成,总体框图如1-2所示。分频计将晶振送来的信号变为1Hz时钟信号;当紧急制动信号无效时,选择开关将1Hz脉冲信号送至计数器进行倒计时计数,并使控制器同步控制两路红、黄、绿指示灯时序切换;当紧急制动信号有效时,选择开关将紧急制动信号送至计数器使其停止计数,同时控制器控制两路红灯全亮,所有车辆停止运行。 2-1 交通灯总体结构框图 3 模块设计 (1)分频器 设晶振产生的信号为2MHz,要求输出1Hz时钟信号,则分频系数为2M,需要21位计数器。用VHDL设计的2M分频器文本文件如下:

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpin2m IS PORT(clk:IN STD_LOGIC; reset:IN STD_LOGIC; --时钟输入 clk_out:out STD_LOGIC); END ENTITY fenpin2m; ARCHITECTURE one OF fenpin2m IS signal count:integer range 0 to 1999999; BEGIN PROCESS(clk) BEGIN if reset='1' then count<=0; clk_out<='0'; else if clk'EVENT and clk='1'THEN IF count<999999 THEN count<=count+1; clk_out<='0'; ELSif count<1999999 then count<=count+1; clk_out<='1'; else count<=0; END IF; END IF; END IF; END PROCESS ; END one; (2) 模30倒计时计数器 采用原理图输入法,用两片74168实现。74168为十进制可逆计数器,当U/DN=0时实现9~0减法计数,记到0时TCN=0;当U/DN=1时实现0~9加法计数,计到9时TCN=0;ENTN+ENPN=0时执行计数,否则计数器保持。该电路执行减法计数,当两片计数器计到0时同步置数,因此该计数器的计数范围是29~0,当系统检测到紧急制动信号有效时,CP=0计数器停止计数。

基于单片机的十字路口交通灯控制系统设计

长沙航空职业技术学院毕业设计(论文) 题目:基于单片机的十字路口 交通灯控制系统设计 学生姓名 系别航空电子电气工程系 专业应用电子技术专业 学号 指导教师 职称

目录 摘要 (2) 前言 (4) 第一章绪论 (5) 1.1背景 (5) 1.2 设计的目的及意义 (5) 1.3 交通灯控制系统设计的任务与要求 (5) 1.4 设计实现的主要功能 (6) 第二章交通灯的总体方案设计与论证 (7) 2.1 显示界面方案 (7) 2.2 输入方案 (7) 第三章交通灯原理分析 (8) 3.1 交通灯显示时序的理论分析 (8) 3.2 交通灯显示的理论分析 (9) 3.2.1倒计时显示的理论分析 (9) 3.2.2状态灯显示的理论分析 (10) 第四章交通灯系统硬件设计 (11) 4.1 交通灯系统设计芯片选择 (11) 4.2.1系统构成: (12) 4.2.2七段数码管介绍: (12) 第五章交通灯系统软件设计 (14) 5.1程序设计流程图 (14) 5.2 交通灯系统编程信息 (16) 第六章交通灯的仿真及调试 (17) 6.1 Proteus软件仿真 (17) 6.2功能调试 (18) 6.3 交通灯实物调试 (19) 结论 (21) 致谢 (22) 参考文献 (23) 附录 A(源程序) (24) 附录 B(电路原理图) (27) 附录 C(PCB图) (28)

摘要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MCS-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿、黄灯燃亮时间的功能;红绿灯循环点亮,倒计时剩3秒时黄灯警示,显示时间通过P2口输出至双位数码管。本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。 关键词:单片机;交通灯;AT89C51

基于FPGA下的交通灯控制器设计

引言 随着城乡的经济发展,车辆的数量在迅速的增加,交通阻塞的问题已经严重影响了人们的出行。 现在的社会是一个数字化程度相当高的社会,很多的系统设计师都愿意把自己的设计设计成集成电路芯片,芯片可以在实际中方便使用。随着EDA技术的发展,嵌入式通用及标准FPGA器件的呼之欲出,片上系统(SOC)已经近在咫尺。FPGA/CPLD 以其不可替代的地位及伴随而来的极具知识经济特征的IP芯片产业的崛起,正越来越受到业内人士的密切关注。FPGA就是在这样的背景下诞生的,它在数字电路中的地位也越来越高,这样迅速的发展源于它的众多特点。交通等是保障交通道路畅通和安全的重要工具,而控制器是交通灯控制的主要部分,它可以通过很多种方式来实现。在这许许多多的方法之中,使用FPGA和VHDL语言设计的交通灯控制器,比起其他的方法显得更加灵活、易于改动,并且它的设计周期性更加短。 城市中的交通事故频繁发生,威胁着人们的生命健康和工作生活,交通阻塞问题在延迟出行时间的同时,还会造成更多的空气污染和噪声污染。在这种情况下,根据每个道路的实际情况来设置交通灯,使道路更加通畅,这对构建和谐畅通的城市交通有着十分重要的意义。

第一章软件介绍 1.1 QuartusⅡ介绍 本次毕业设计是基于FPGA下的设计,FPGA是现场可编程门阵列,FPGA开发工具种类很多、智能化高、功能非常的强大。可编程QuartusⅡ是一个为逻辑器件编程提供编程环境的软件,它能够支持VHDL、Verilog HDL语言的设计。在该软件环境下,设计者可以实现程序的编写、编译、仿真、图形设计、图形的仿真等许许多多的功能。在做交通灯控制器设计时选择的编程语言是VHDL语言。 在这里简单的介绍一下QuartusⅡ的基本部分。图1-1-1是一幅启动界面的图片。在设计前需要对软件进行初步的了解,在图中已经明显的标出了每一部分的名称。 图 1-1-1 启动界面 开始设计前我们需要新建一个工程,首先要在启动界面上的菜单栏中找到File,单击它选择它下拉菜单中的“New Project Wizard”时会出现图1-1-2所显示的对话框,把项目名称按照需要填好后单击Next,便会进入图 1-1-3 显示的界面。

用51单片机控制交通灯汇编语言编写

基于51单片机的交通灯控制系统设计 摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。交通灯控制系统由80C51单片机、键盘、LED 显示、交通灯延时组成。系统除具有基本交通灯功能外,还具有时间设置、LED信息显示功能,市交通实现有效控制。 关键词:交通灯,单片机,自动控制 一引言 当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这个技术在19世纪就已经出现了。 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转方式玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,是警察受伤,遂被取消! 电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯时通行信号灯,面对绿灯的车辆可以直行,左转弯和右转弯,除非两一种标志禁止某一种转向。左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行。红灯是禁行信号灯,面对红灯的车辆必需在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已经十分接近停车线而不能安全停车的可以进入交叉路口! 二概要设计 2.1 设计思路 利用单片机实现交通灯的控制,该任务分以下几个方面: a 实现红、绿、黄灯的循环控制。要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。 b 用数码管显示倒计时。可以利用动态显示或静态显示,串行并出或者并行并出实现。 C 实现急通车。这需要人工实现,编程时利用到中断才能带到目的,只要有按钮按下,那么四个方向全部显示红灯,禁止以诶车辆通行。当情况解除,让时间回到只能隔断处继续进行。 2.2总体设计框图 见图一:

交通灯信号控制器仿真设计

交通灯信号控制器仿真设计 一、设计目的 1、巩固和加强《数字电子技术》课程的理论知识。 2、掌握电子电路的一般设计方法,了解电子产品研制开发过程。 3、掌握电子电路安装和调试的方法及其故障排除方法,学会用Multisim软 件仿真。 4、通过查阅手册和文献资料,培养学生独立分析问题、解决问题以及团队协作能力。巩固所学知识,加强综合能力,提高实验技能,启发创新能力的效果 5、培养学生创新能力和创新思维。让学生通过动手动脑解决实际问题,巩固课程中所学的理论知识和实验技能。 二、设计要求 1、设计一个十字路口的交通灯控制电路,要求东西方向和南北方向车道两条交叉道路上的车辆交替运行,每次通行时间都设为45s。时间可设置修改。 2、在绿灯转为红灯时,要求黄灯先亮5s,才能变换运行车道。 3、黄灯亮时,要求每秒闪亮一次。 4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示。 5、假定+5V电源给定。 三、总体概要设计 设计一个十字路口的交通灯控制电路,要求东西方向和南北方向车道两条交叉道路上的车辆交替运行,每次通行时间都为45s,每次绿灯变红时黄灯先亮5秒。该交通灯控制系统的总体设计方案如下图所示所示。90进制加法计数器作为该系统的主控制电路,控制东西方向和南北方向交通的及LED显示,秒信号发生器产生整个定时系统的时间脉冲,通过加法计数器对秒脉冲加计数,当到达固定时刻,控制LED显示的减法计数器进行数制转换,交通灯做出相应的变化。 交通灯控制系统的总体设计方案 电

电路流程图 四、局部细节设计 一、秒脉冲电路部分

二、主控电路(89进制加法计数器)部分 三、东西方向减法计数器及LED显示部分

交通信号灯控制器

太原理工大学现代科技学院数字电子技术基础课程设计 设计名称交通信号灯控制器 专业班级自动化12-1 学号 姓名 指导教师张文爱

交通信号灯控制器 一、设计要求: 通过采用数字电路对交通灯控制电路的设计,提出使交通灯控制电路用数字信号自动控制十字路口两组红、黄、绿交通灯的状态转换的方法,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。因此,在本次课程设计里,将以传统的设计方法为基础来实现设计交通控制信号灯。 1.设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。 2.用红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号。 3.主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 4.主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。 5.在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。 二.设计方案: 1,设计思想及方案论证: 本设计要求设计一个主干道绿灯45秒、支干道绿灯25秒的交通灯控制系统,每次由绿灯变为红灯时应有5秒黄灯亮作为过渡,分别用红、黄、绿三色发光二极管表示信号灯,并用数码管显示倒计时。因此,本设计需

要一个脉冲产生模块、信号灯模块、倒计时模块、数码显示模块和主控模块。脉冲产生电路用以驱动倒计时电路,置数电路将交通灯亮时间预置到计数电路和寄存器中,信号灯模块对信号灯的各种状态进行循环控制,倒计时模块以基准时间秒为单位做倒计时,数码显示模块显示倒计时的时间,主控模块对电路种的各个模块进行级联控制。 交通信号灯控制电路,交通灯采用发光二极管,显示时间则采用自带译码器的数码管显示。系统需要每秒减数,所以可以采用数字电路箱产生秒脉冲(数字电路实验箱中已给出),经由一个脉冲驱动电路后产生信号灯需要的三种脉冲,即45s,25s,5s,传递给控制器,由控制器发出状态。译码器接受状态后译码,输出控制信号灯和数码管显示的状态。 2,设计方案的工作原理: 1.倒计时电路(定时电路) 倒计时器由两位4位十进制可逆同步计数器(双时钟)74LS192、一个非门和一或门构成。其组成如图所示,其中74LS192是上升沿触发,CPU

基于单片机的交通灯控制系统

基于单片机的交通灯控制系统 一、实验目的 1、了解交通灯的控制方法 2、掌握8051单片机基本操作 3、掌握keil和PrOteuS软件的使用 二、实验原理 通过对十字路口的观察,发现红绿灯的控制原理:首先南北方向右转加直行的绿灯亮起。此时,东西方向为红灯;当右转加直行绿灯倒计时进入最后5秒, 绿灯切换为黄灯并开始闪烁,东西方向红灯不变;接着南北方向切换为左转灯,东西方向依然是红灯;同样当倒计时进入最后5秒时,黄灯开始闪烁。东西方向为红灯。然后东西方向的右转加直行绿灯亮起,以此类推。 三、实验内容及程序 主程序: void main (VOid)

Busy_LED=O; SPeCiaLLED=O; ITO=1; //INTO 负跳变触发 TMOD=O X OI;//定时器工作于方式1 TH0=(65536-50000)∕256;// 定时器赋初值TL0=(65536- 50000)%256; EA=1; //CPU开中断总允许 ET0=1;//开定时中断 EX0=1;//开外部INTO中断 TR0=1;// 启动定时 while(1) { Flag_EW_Yellow=0; //EW关黄灯显示信号 Time_EW=EW; Time_SN=SN; WhiIe(Time_SN>=5) {P仁S[0]; /∕SN 通行,EW红灯 DiSPIay();} P仁0x00; WhiIe(Time_SN>=0 ) {Flag_SN_Yellow=1; EW_Red=1; /∕SN //SN开黄灯信号位 黄灯亮,等待左拐信号,EW红灯 DiSPIay(); } Flag_SN_Yellow=0; /∕SN关黄灯显示信号Time_SN=SNL; WhiIe(Time_SN>=5) {P仁S[2];//SN左拐绿灯亮,EW红灯 DiSPIay();} P仁0x00; WhiIe(Time_SN>=0 ) {Flag_SN_YeIIow=1; EW_Red=1; /∕SN //SN开黄灯信号位 黄灯亮,等待停止信号,EW红灯 DiSPIay(); }

交通灯控制器的课程设计

交通灯控制器的课程设计

课程设计 课题:交通灯控制器的设 计

一、设计目的: 学习QuartusII的使用方法,熟悉可编程逻辑器 件的使用。通过制作来了解交通灯控制系统,交 通灯控制系统主要是实现城市十字交叉路口红绿 灯的控制。在现代化的大城市中, 十字交叉路口 越来越多,在每个交叉路口都需要使用红绿灯进 行交通指挥和管理,红、黄、绿灯的转换要有一个 准确的时间间隔和转换顺序,这就需要有一个安 全、自动的系统对红、黄、绿灯的转换进行管理, 本系统就是基于此目的而开发的。 二、设计任务: 1.满足如下时序要求: 南北方向红灯亮时,东西方向绿灯亮,反之亦 然。 2.每一方向的红(绿)黄灯共维持30秒。 3.当某一方向绿灯亮时,置显示器为30秒,然 后以每秒减1计数方式工作,直至减到数为3 秒时,红绿灯熄灭,黄灯开始间隙闪耀3秒, 减到为0,红绿灯交换,一次工作循环结束, 进入下一步另一方向的工作循环。 4.红绿黄灯均采用发光二极管。

5.设计由晶振电路产生1Hz标准秒信号的单元电 路。 6.要求对整体电路进行仿真,观察并记录下仿真 波形。 三、设计原理: ●交通灯有四个状态: G1 Y1 R1 G2 Y2 R2 S1. 亮灭灭灭灭亮 S2. 灭闪灭灭灭亮 S3. 灭灭亮亮灭灭 S4. 灭灭亮灭闪灭然后重复状态S1. ●分频器 分频器实现的是将高频时钟信号转换成底频的时钟 信号,用于触发控制器、计数器和扫描显示电路。 该分频器将时钟信号分频成1HZ和4HZ的时钟信 号。 ●控制器 控制器的作用是根据计数器的计数值控制发光二极 管的亮、灭,以及输出倒计时数值给七段数码管的 分位译码电路。此外,当检测到为夜间模式时,手 动控制点亮黄灯的二极管。

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

目录 一引言 (2) 二概要设计 (2) 2.1 设计思路 (2) 2.2总体设计框图 (2) 三硬件设计 (3) 3.1LED循环电路设计 (3) 3.1.1 89cs51单片机概述 (3) 3.1.2 LED循环说明 (5) 3.2 倒计时显示电路 (5) 3.2.1 74LS164芯片 (5) 3.2.2 共阴极数码显示管 (6) 3.2.3 倒计时电路 (6) 3.2.4 急通车电路 (7) 四软件按设计 (7) 4.1 程序流程图: (7) 4.2 LED红绿灯显示 (8) 4.3倒计时显示 (9) 4.4 急通车控制 (9) 4.5程序代码 (9) 五总结 (9) 参考文献 (9) 附录一: (9) 附录二: (10)

基于51单片机的交通灯控制系统设计 摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。交通灯控制系统由80C51单片机、键盘、LED 显示、交通灯延时组成。系统除具有基本交通灯功能外,还具有时间设置、LED信息显示功能,市交通实现有效控制。 关键词:交通灯,单片机,自动控制 一引言 当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这个技术在19世纪就已经出现了。 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转方式玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,是警察受伤,遂被取消! 电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯时通行信号灯,面对绿灯的车辆可以直行,左转弯和右转弯,除非两一种标志禁止某一种转向。左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行。红灯是禁行信号灯,面对红灯的车辆必需在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已经十分接近停车线而不能安全停车的可以进入交叉路口! 二概要设计 2.1 设计思路 利用单片机实现交通灯的控制,该任务分以下几个方面: a 实现红、绿、黄灯的循环控制。要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。 b 用数码管显示倒计时。可以利用动态显示或静态显示,串行并出或者并行并出实现。 C 实现急通车。这需要人工实现,编程时利用到中断才能带到目的,只要有按钮按下,那么四个方向全部显示红灯,禁止以诶车辆通行。当情况解除,让时间回到只能隔断处继续进行。 2.2总体设计框图 见图一:

交通灯信号控制器仿真设计

交通灯信号控制器仿真设计 08机电2班 张丽云 0811116041 1.前言 城市十字交叉路口为确保车辆、行人安全有序地通过,都设有指挥信号灯。交通信号灯的出现,使交通得以有效地管制,对于疏导交通、减少交通事故有明显的效果。现有2条主干道汇合点形成十字交叉口,为确保车辆安全、迅速的通行,在交叉路口的每条道上设置一组交通灯,交通灯由红、黄、绿3色组成。红灯亮表示此通道禁止车辆通过路口;黄灯亮表示此通道未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮表示该通道车辆可以通行。要求设计一交通灯控制电路以控制十字路口两组交通灯的状态转换,指挥车 由表1可以得出信号灯状态的逻辑表达式: A G =n Q 1n Q 0 A Y =n Q 1n Q 0 A R =n Q 1

B G =n Q 1n Q 0 B Y =n Q 1n Q 0 B R =n Q 1 由特性方程: 10+n Q = n Q 1n Q 0+n Q 1n Q 0 11+n Q = n Q 1n Q 0+n Q 1n Q 0 1+n Q = J n Q +K n Q 可得 0J =n Q 1,0K =n Q 1;1J =n Q 0,1K =n Q 0 要实现45s 的倒计时,需选用两个74190芯片级联成一个从99到00的计数器,其中作为个位数的74190芯片的CLK 接秒脉冲发生器,再把个位数74190芯片输出端A Q 、D Q 用一个与门连起来,再接在十位数74190芯片的CLK 端。当个位数减到0时,再减1就会变成9,0(0000)和9(1001)之间的A Q 、D Q 同时由0变为1,把A Q 、D Q 与起来接在十

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

课程设计报告 题目:基于单片机的(数显)交通灯控制系统设计 目录 摘要 (3) 一、设计背景 (4) 二、方案分析与对比 (4) 2.1方案分析 (4) 2.2方案对比 (4) 三、智能交通灯控制系统的硬件设计 (4)

3.1 STC89S5单片介 (4) 3.2 控制器的原理框图 (8) 3.3 紧急转换电 (8) 四、智能交通灯控制系统的软件设计 (10) 4.1交通灯的软件设计流程图 (10) 4.2 控制器的软件设计 (10) 五、系统分析及改进措施 (12) 六、心得体会 (13) 参考文献 (14) 附录 (14) 摘要: 自从1858年英国人,发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改变了改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故有显著的效果。 近年来,随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入人民的生活当中。本模拟交通灯系统利用单片机STC89C52作为核心元件,实现了通过信号灯根据区域车流现实对路面状况的智能控制。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。 本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统。和复位电路控制电路等组成,较好模拟了,交通路面的控制。 关键词:交通灯单片机数码管 Abstract: In 1858, since the invention of primitive mechanical a wrench to the traffic lights, the more than a hundred years, the traffic lights changed to change the traffic and transport in their everyday lives as an important position, increasing

交通灯控制器

电子线路课程设计(报告)题目交通灯控制器 院系专业 班级学号 学生姓名 指导教师 日期

目录 一题目要求与方案论证 (2) 1.1(设计题题目)交通灯控制器 (2) 1.1.1题目要求 (2) 1.1.2 方案论证 (2) 1.2(实训题题目)波形发生器与计数器 (4) 1.2.1题目要求 (4) 1.2.2方案论证 (4) 二电子线路设计与实现 (7) 2.1交通灯控制器电路设计 (7) 三结果与分析 (8) 3.1 (设计题的结果描述与分析)交通灯控制器 (8) 3.2 波形发生与计数器的实现 (8) 四总结与体会 (10) 参考文献(撰写格式如下) (10) 附录 (11)

一题目要求与方案论证 1.1(设计题题目)交通灯控制器 1.1.1题目要求 要求控制十字路口东西、南北向街道,当东西向绿灯亮6s,同时南北向红灯亮6s;接着东西向黄灯亮2s,南北向红灯继续亮2s;接着东西向红灯亮3s,南北向绿灯亮3s;接着东西向红灯亮1s,南北向黄灯亮1s。 主要芯片:同步计数器(74LS163)、红黄绿发光二极管,其他门电路、元件任选。 用已经掌握的multisim8的相关知识,在multisim8的运行环境下设计并仿真一个交通灯控制器的实验,要求实现的功 能如下: 1.1.2 方案论证 (主要描述设计的方案、原理,比如系统框图,各种芯片功能,介绍,整体电路的设计思想) (如需框图说明,则画出系统框图如图所示:) 系统流程图:

(芯片介绍,则如下:) 74LS163的外引线排列图和时序波形图 74LS163功能表

计数器选用集成电路74LS163进行设计较简便。74LS163是4位二进制同步计数器,它具有同步清零、同步置数的功能。74LS163的外引线排列图和时序波形图如图4所示,其功能表如表3所示。图中,是低电平有效的同步清零输入端,是低电平有效才同步并行置数控制端,CTp、CTT是计数控制端,CO是进位输出端,D0~D3是并行数据输入端,Q0~Q 3是数据输出端。由两片74LS163级联组成的定时器电路如图5所示。电路的工作原理请自行分析。 1.2(实训题题目)波形发生器与计数器 1.2.1题目要求 学习元器件参数的识别及使用注意事项,清点元件个数。 按所给电路图,利用所给元器件,在面包板上连接电路并用示波器测试,记录产生的波形频率范围等参数。 应用Multisim软件进行仿真实验,记录结果。 1.2.2方案论证 1、波形发生器电路如下图:

交通灯控制器的设计

EDA实验报告 一、课程设计题目及要求 题目: 十字路口交通灯 具体要求: 设计一个十字路口得交通灯控制器,能显示十字路口东西、南北两个方向红、黄、绿灯得指示状态。用两组红、黄、绿三种颜色得灯分别作为东西、南北两个方向红、黄、绿等。变化规律为:东西绿灯亮,南北红灯亮——东西黄灯亮,南北红灯亮——东西红灯亮,南北绿灯亮——东西红灯亮,南北黄灯亮——东西绿灯亮,南北红灯亮······,这样循环下去。南北方向每次通行时间为45秒,东西方向每次通行时间为45秒,要求两条交叉道路上得车辆交替运行,时间可设置修改。绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。并要求所有交通灯得状态变化在时钟脉冲上升沿处。 二、实验编程环境 QuartusII 8、0 三、课程设计得详细设计方案 (一)、总体设计方案得描述 1、1、根据交通灯系统设计要求,可以用一个有限状态机来实现这个交通灯控制器。首先根据功能要求,明确两组交通灯得状态,这两组交通灯总共共有四种状态,我们用ST0,ST1,ST2,ST3 来表示: St0表示东西路绿灯亮,南北路红灯亮; St1表示东西路黄灯亮,南北路红灯亮; St2表示东西路红灯亮,南北路绿灯亮; St3表示东西路红灯亮,南北路黄灯亮; 1、2、根据上述四种状态描述列出得状态转换表 1、3、根据状态转换表得到交通灯控制器得状态转移图如图所示。

交通灯控制器得状态转移图 (二)各个模块设计 2、1、控制器模块 控制器模块示意图 其中,clk 为时钟信号,时钟上升沿有效。hold 为紧急制动信号,低电平有效。ared,agreen,ayellow 分别表示东西方向得红灯,黄灯,绿灯显示信号,高电平有效。 bred,bgreen,byellow 分别表示南北方向得红灯,黄灯,绿灯显示信号,高电平有效。 用于控制红绿黄灯得亮暗情况。 2、2、45秒倒计时计数器模块 45秒倒计时计数器模块示意图 其中,CLK 为时钟信号,时钟上升沿有效。EN 为使能端,高电平有效。CR 为紧急制动信号低电平有效。QL{3、、0}就是计数低位。QH{3、、0}就是计数高位。 用于45秒得倒计时计数。 2、3、7位译码器模块 7位译码器模块示意图 其中dat{3、、0}为要译码得信号。a,b,c,d,e,f,g 为译码后得信号。 用于将45秒倒计时计数得信号译码成数码管可以识别得信号。 2、4、50MHZ 分频器模块 50MHZ 分频器模块示意图 其中clk 为50MHZ 时钟信号,时钟上升沿有效。输出clk_out 为1HZ 时钟信号,时钟上升CLK EN CR QL[3、、0] QH[3、、0] OC m45 inst2

基于51单片机控制交通灯的毕业设计

安徽工商职业学院ANHUI BUSINESS VOCATIONAL COLLEGE 毕业设计(论文) 基于单片机控制的交通灯毕业设计 系别:电子信息系 专业班级:10应用电子技术2班 学号: 103596 学生姓名:吴坤 指导老师:聂凯 二零一二年十月

基于单片机控制的交通灯毕业设计 摘要 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本设计主要分为五大模块输入:控制电路、时钟控制电路、片内外程序切换控制、显示电路。以MSC-51系列单片机IntelAT89C51为中心器件来设计交通灯控制器,实现了AT89C51芯片的P0口设置红灯、绿灯、黄灯燃亮时间的功能;为了系统稳定可靠采用了74LS14施密特触发器芯片的消抖电路,避免了系统因输入信号抖动产生误操作;显示时间直接通过AT89C51的P2口输出,由CD4511驱动LED数码管显示红灯燃亮时间。 关键字:AT89C51 LED显示交通灯

The Traffic Light Based On The Single-chip Control Abstract The intersections vehicle wears shuttle, pedestrian Xi Rang, garage driveway, person's sidewalk, orderly. So depend what to carry out this well arranged order? What to depend is a traffic sign light of automatic conductor system. The control method of the traffic sign light is a lot of. This design is mainly divided into five greatest molds a piece the electric circuit, clock of the importation control a control outside procedure inside the electric circuit, slice to cut over a control and shows electric circuit. Take single slice the machine IntelAT89 C51 of the serieses MSC-51s as a center spare part to design transportation light controller, carried out the AT89 C51's P's 0 people's constitution of the chips red, the function in bright time of green light, Huang2 Deng Ran2;For the sake of system stability the credibility adopted a 74 LS14 airtight trigger eliminate of machine chip to tremble electric circuit especially, avoided system because of importation the signal tremble movable property to living a mistake operation; The P 2 people who shows that time directly passes the AT89 C51 output, is driven LED figures a tube by the CD4511 to show red-light Ran bright time. Key word: The AT89 C51 LED show transportation light

基于Verilog HDL的交通灯控制器设计

目录 第一章设计原理 (1) 1.1设计要求 (1) 1.2设计思路和原理 (1) 1.3实现方法 (1) 第二章Verilog HDL程序设计 (2) 2.1整体设计 (2) 2.2 具体设计 (3) 第三章仿真与硬件调试 (7) 3.1 波形仿真 (7) 3.2 硬件调试 (9) 第四章设计总结 (10) 程序清单 (11) 参考资料 (15)

交通灯控制器设计 第一章 设计原理 1.1设计要求 设计一个交通控制器,用LED 显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数 主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s ,支干道每次放行25s 。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s 。能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LED 灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。能实现特殊状态的功能显示, 1.2设计思路和原理 本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35S 后,主干道和支干道上的黄灯都亮启,持续5S 后,主干道上红灯亮启,支干道上绿灯亮启持续25S ,之后主干道和支干道上的黄灯都亮启5s ,一个循环完成。循环往复的直行这个过程。其过程如下图所示: 0s 30s 25s 主干道方向 支干道方向 图1.交通灯点亮时间控制说明 1.3实现方法 本次采用文本编辑法,即利用Verilog HDL 语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。设计中用两组红黄绿LED 模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。

具有四种信号灯的交通灯控制器设计

目 录 1 引言 (1) 1.1设计背景 (1) 1.2VHDL简介 (1) 1.3Q UARTUSⅡ简介 (3) 2 交通信号灯控制器的设计 (3) 2.1设计目的 (3) 2.2系统计要求 (4) 2.3设计思路 (4) 2.4交通信号灯控制器系统工作流程 (5) 3 交通灯控制器的实现 (5) 3.1交通灯控制器的设计原型图 (5) 3.2系统各功能模块的实现 (6) 3.2.1 模块shuomaguan (6) 3.2.2 模块traffic (6) 3.3原理图 (7) 4 交通信号灯控制器系统仿真及分析 (7) 4.1SHUMAGUAN模块仿真波形图 (7) 4.2顶层实体的仿真波形 (8) 4.3TAFFIC模块的仿真波形图 (8) 4.4管脚锁定 (8) 5 完成调试后所显示结果的八种情况 (10) 6 结论 (13) 7 总结与体会 (13) 附录 (15) S HUMAGUAN的VHDL程序 (15) T RAFFIC的VHDL程序 (16) 参考文献 (21)

1 引言 1.1 设计背景 随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。因此,开发一套能够社会服务的交通灯控制器将是非常必要的,也是十分及时的。 1.2 VHDL简介 语言硬件描述已经有几十年的发展历史,并且在系统的仿真、验证和设计、综合等方面得到成功的应用。目前常用的硬件描述语言有VHDL、 Verilog HDL 、ABEL等。VHDL则起源于20世纪70年代末和80年代初,美国国防部提出的VHSIC 计划,目标是为下一代集成电路的生产、实践阶段性的工艺极限和完成10万门级以上的电路设计而建立一种新的描述方法。VHDL的英文全称为Very-High-Speed Integrated Circuit Hardware Description Language,是IEEE 标准化的硬件描述语言,并且已经成为系统描述的国际公认标准,得到众多EDA 公司的支持。自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。 VHDL具有很多的优点使它能够被大多数人认可,被广泛应用在逻辑电路的设计方面,并且成为了标准化的硬件描述语言,其优点如下:

相关主题
相关文档 最新文档