赞
踩
随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。
在大、中城市,十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞。
二、系统总体分析
系统使用8086及数码管、LED灯,实现红绿灯转换倒计时以及红路灯转换。
使用8086、8255、8253、数码管、交通灯构成电路。由于8086数据I/O口与地址I/O口分时复用,故使用地址锁存器,根据ALE信号先将地址锁存,然后输出实际有效数据信号。
8255有三个端口PA、PB、PC口,其中PC口又可以分为高四位与低四位分别进行操作。在本系统中,PA口与PB口、PC口低四位输出信号,PC口高四位输入信号。在系统设计初始时,我设计了两个时钟信号来源,分别是直接使用1HZ脉冲信号计时和使用1MHZ CLOCK的8253芯片计时。经过反复思考与实验,最终发现脉冲信号与8086速度无法匹配,故舍去。
三、系统硬件设计
3.1 硬件设计说明
8086分为两种工作模式:最大模式与最小模式。8086处理器的最小工作模式在系统中只有一个微处理器,所有的总线控制信号都由此处理器产生。而最大工作模式在系统中包含两个或多个处理器,一个主处理器为8086,其他为协处理器。
根据系统的规模,选用8086最小工作模式,即8086第33号引脚MN/MX引脚接正电极。ready连接正极。
为平衡外设与CPU速率不匹配,使用8255芯片。
由于8086数据总线与地址总线复用,所以AD应与地址锁存器相连接,ALE作为锁存信号。同事AD应该与8255、8253连接。
3.2 分模块设计与主要器件描述
74273锁存器:以ALE为锁存讯号,为上升沿触发,D0~D7端口为输入端,与8086 AD端口相连。Q0~Q7为分离出来的地址信号。
M/IO表示目前CPU对内存操作还是IO端口操作,所以此处作为译码芯片74154的一个片选信号。A、B、C、D为译码输入, IO0~IO15为译码输出。
8253 CS—片选信号,由CPU输入,低电平有效,通常由端口地址的高位地址译码形成。
RD、WR——读/写控制命令,由CPU输入, 低电平有效。RD有效时,CPU读取由A1A0所选定的通道内计数器的内容。WR有效时,CPU将计数值写入各个通道的计数器中, 或者是将方式控制字写入控制字寄存器中。CPU对8253的读/写操作。
由于本系统选用软件触发,所以GATE上拉。为匹配速率,使用高频率的时钟信号,此处选择1MHZ。
8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:
A口:编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
B口:编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
C口:编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
RD:读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
图7 电路图(1)
图8 电路图(2)
四、系统软件设计
4.1 软件设计说明
(简单说明控制软件的设计思路和控制流程)
4.2 程序流程图
4.3 程序清单
;8255 A_PORT EQU 200H B_PORT EQU 202H C_PORT EQU 204H CRTL_PORT EQU 206H ;8253 PORT_0 EQU 400H PORT_1 EQU 402H PORT_2 EQU 404H PORT_CRTL EQU 406H STACK SEGMENT STACK DB 256 DUP(?) STACK ENDS EDATA SEGMENT DB 10 DUP(?) EDATA ENDS DATA SEGMENT OUTBUFF DB 20 DUP(00H) LEDTAB DB 03fh,006h,05bh,04fh,066h,06dh,07dh,007h,07fh,06fh,077h,07ch,039h,05eh,079h,071h DATA ENDS CODE SEGMENT PUBLIC 'CODE' ASSUME CS:CODE,DS:DATA,SS:STACK,ES:EDATA START: MOV AX, DATA MOV DS, AX MOV AX, EDATA MOV ES, AX MOV AX, STACK MOV SS, AX MOV AL, 088H MOV DX, CRTL_PORT OUT DX, AL ;8253 MOV AL, 34H MOV DX, PORT_CRTL OUT DX, AL MOV AL, 1EH MOV DX, PORT_0 OUT DX, AL MOV AL, 03H OUT DX, AL MOV AX, 15 LEA DI, OUTBUFF O4: CMP BYTE PTR[DI + 10], 00H JNZ O1 INC BYTE PTR [DI + 10] MOV DX, B_PORT MOV AL, 0100B OUT DX, AL MOV AX, 5 JMP LOP1 O1: CMP BYTE PTR [DI + 10], 01H JNZ O2 INC BYTE PTR [DI + 10] MOV DX, B_PORT MOV AL, 0010B OUT DX, AL MOV AX, 2 JMP LOP1 O2: CMP BYTE PTR [DI + 10], 02H JNZ O3 INC BYTE PTR [DI + 10] MOV DX, B_PORT MOV AL, 0001B OUT DX, AL MOV AX, 5 JMP LOP1 O3: CMP BYTE PTR [DI + 10], 03H JNZ O0 INC BYTE PTR [DI + 10] MOV DX, B_PORT MOV AL, 0010B OUT DX, AL MOV AX, 2 JMP LOP1 O0: CMP BYTE PTR [DI + 10], 04H MOV AX, 00H MOV [DI + 10], AX JMP O4 LOP1: PUSH AX CALL DISP MOV DX, C_PORT IN AL, DX TEST AL, 10H JNZ nz POP AX DEC AX JNZ LOP1 JMP O4 nz: POP AX JMP LOP1 ;;显示 DISP PROC NEAR AGAIN: PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH BP MOV CL, 0FEH LEA SI, OUTBUFF CALL D10 MOV [SI], AX LEDDISP: MOV AL, CL MOV DX, C_PORT OUT DX, AL LEA BX, LEDTAB MOV AL, [SI] XLAT MOV DX, A_PORT OUT DX, AL CALL DELAY_1S MOV AL, 0H MOV DX, A_PORT OUT DX, AL CMP CL, 0FDH JZ NEXT INC SI ROL CL, 1 JMP LEDDISP NEXT: POP BP POP DI POP SI POP DX POP CX POP BX POP AX RET DISP ENDP ;;延时 DELAY_1S PROC PUSH CX PUSH BX MOV BX, 01H D1:MOV CX, 06FH D2:LOOP D2 DEC BX JNZ D1 POP BX POP CX RET DELAY_1S ENDP ;;进制转换 D10 PROC NEAR PUSH BX MOV BL, 10 DIV BL POP BX RET D10 ENDP CODE ENDS END START
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。