微机原理与接口技术课程设计报告
交通灯控制系统
学院信息电子技术
专业电子信息工程
班级13级1班
学号131********
姓名**
指导教师***
信息电子技术学院
2015年6月20日
第1章绪论
1.1 课题的来源及研究目的和意义
1.1.1 课题的来源及研究目的
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在十九世纪就已经出现了。
早在1850年,城市十字路口不断增长的交通运输量就引发了人们对安全和拥堵的关注。1868年,英国工程师纳伊特在伦敦威斯特敏斯特街口安装了一台红绿两色的煤气照明灯,用来控制交叉路口马车的通行,拉开了城市交通控制的序幕。1914年,美国的克利夫兰、纽约和芝加哥出现了电力驱动交通信号灯,与现在意义上的信号灯已经相差无几。1926年英国人第一次安装和使用自动化的控制器来控制交通信号灯,这是城市交通自动控制的起点。
计算机技术的出现为交通控制技术的发展注入了新的活力,更是实现了以一个城市或者更大地域,而非简单的一个路口的交通总体控制系统。1952年,美国科罗拉多州丹佛市首次利用模拟计算机和交通检测器实现了对交通信号机网的配时方案自动选择式信号灯控制,而加拿大多伦多市于1964年完成了计算机控制信号灯的实用化,建立了一套由IBM650型计算机控制的交通信号协调控制系统,成为世界上第一个具有电子数字计算机城市交通控制系统的城市。这是道路交通控制技术发展的里程碑。
交通控制研究的发展,主要是为解决人类交通因车辆的增多而日益拥堵带来的问题,局限于道路建设的暂时不足和交通工具的快速增长,就要使更多的车辆安全高效的利用有限的道路资源,避免因无序和抢行等控制原因造成的不必要阻塞甚至瘫痪,另外,针对整个交通线路车辆的多少实时调整和转移多条线路的分流也十分必要。
1.1.2 课题的研究意义
随着汽车工业的发展,车辆数量不断增加,交通管制的工作量越来越大,利用计算机代替人进行高效交通管理是必然的发展趋势,而让计算机控制的交通灯拥有类似人类的感知智能,具有很强的现实意义,比如通过检测电路及数据采集模块让交通灯控制系统发挥类似交警的作用,使系统根据所“看到”交通情况自
适应改变管制策略,提高了交通管理的自动化水平,使得交通更高效、更顺畅。交通网络是城市的动脉,象征着一个城市的工业发展水平。交通关系着人们对于财产,安全和时间相关的利益,保证交通线路的畅通安全,才能保证出行舒畅,物流准时到位,甚至是生命通道的延伸。
1.2 国内外的研究现状
当前世界各国广泛使用的最具代表性却有实施的城市道路交通信号控制系统有英国的TRANSYT与SCOOTS交通控制系统和澳大利亚的SCATS系统。
信号机的发展历程中,自适应理论一直受到各研究机构的欢迎,比如上面所述的SCOOTS和SCATS系统。最近几年,国外仍偏向于引进自适应理论来对交通信号控制系统进行研制,特别是美国有十几个大学或研制机构正在研制自适应交通信号控制系统,具有代表性的有美国亚利桑那大学研制的RHODES。我国交通领域的发展起步较晚,基本是从新中国建国之后,随着各方面的条件的成熟以及社会发展的要求,才建立及健全交通控制系统的,主要引用国外的交通控制系统。各级交通管理部门通过技术引进和自主创新,在中国部分大中城市里,摒弃旧有的控制方式,一些先进的控制技术得到应用。虽然在整体规模和层次上与世界发达国家还有不少差距,但部分领域技术水平已处于世界先进位置。目前,我国交通控制系统己不单单是对交叉口信号灯进行控制,而是集交叉口信号的控制和干线控制以及现代城市高速公路交通控制于一体的混合型交通,实现区域信号控制和城市高速公路集成控制。
1.3 本课题的主要内容
按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。可利用8255、8253、8259等接口电路。
第2章 交通灯控制系统的总体设计
2.1 基本工作原理
设有一个十字路口,1、3为南,北方向, 2、4为东,西方向。 初始化之后, 1、3路口的绿灯亮, 2、4路口的红灯亮, 1、3路口方向通车。 延迟一段时间(30秒)后, 1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁。闪烁3次(延时3秒)后, 1、3路口的红灯亮, 同时2、4路口的绿灯亮, 2、4路口方向开始通车。 延迟一段时间(30秒)后, 2、4路口的绿灯熄灭,而黄灯开始闪烁。闪烁3次(延时3秒)后,再切换到1、3路口方向。 之后,重复上述过程。
2.2 硬件总体设计
2.2.1 硬件电路设计
各芯片主要管脚的功能如下: 8255:
PC0:和8253的OUT0端相与后得到黄灯信号,其中1表示亮,0表示暗 PC1:表示绿灯信号,其中1表示亮,0表示暗 PC2:表示红灯信号,其中1表示亮,0表示暗 PC3:和8253GATE1端相连,为时器1的门控型号 PC4: 和8253GATE2端相连,为时器2的门控型号
PA0~PA7,PB0~PB7:可接两个8段LED 显示器,用于显示当前等亮时间 8253
:
定时器0:输入信号设为10KHZ,工作在方式3,输出为1HZ方波,OUT0和PC0相与得到黄灯信号。
定时器1:输入信号为OUT0,工作站方式2,计数初值为30,实现延迟30S 后产生中断。控制字为:01010100
定时器2:输入信号为OUT0,工作站方式2,计数初值为3,实现延迟3S后产生中断。控制字为:10010100
8259:
采用边沿触发,没有级联,需要设ICW1,ICW2,ICW4,不用ICW3。
2.2.2 原理及连接图
2.3 软件总体设计
(1)系统流程图如下图所示:
注:黄灯闪烁由out0和pc1相与得到,定时器0工作在方式3,定时器1、2工作在方式2(2)中断服务流程图如下图:
定时中断服务子程序
2.4 调试过程
(1)根据硬件线路设计将硬件的线路连好。
(2)根据软件设计的程序流程图编好原程序。
(3)将程序在PC机上编译通过,并将PC机与硬件连好,进行连接和运行调试。
2.5 本章小结
经过分析、查阅相关资料大致明白设计要点,通过对课设的分析,整理一个大体的思路,了解交通灯控制系统的原理,电路图及各个芯片的功能,并加以说明,进行部分设计,并调试。
第3章交通灯控制系统的硬件设计
3.1硬件设计
介绍本系统所选用的各种芯片的引脚、功能、相应的命令字控制格式。
8255芯片引角图8259芯片引角图8253芯片引角图
(1)8255A的控制字:
8255A方式选择控制字
端口C按位置1/复0控制
(2)8259A 的操作命令字:
OCW1:
A0 D7 D6 D5 D4 D3 D2 D1 D0
注:M7-M0
分别
对应
IR7-IR0 OCW2:
A0 D7 D6 D5 D4 D3 D2 D1 D0
位
决定了OCW2中L2-L0位是否有效 当SL=1时,用来指定OCW2 SL=1为有效 SL=0,L2-L0无效 选定的操作作用于哪一级IR
(3)8253命令字的格式:
D7 D6 D5 D4 D3 D2 D1 D0
00 计数器0 00 计数器锁存读命令 000 方式0 D0=0 按二进制
01 计数器1 01 只读/写低字节 001 方式1 格式计数 10 计数器2 10 只读/写高字节 *10 方式2 D0=1 按BCD 码 11 非法 11 先读/写低字节 *11 方式3 格式计数 ,后读/写高字节 100方式4 101方式5
3.2 本章小结
了解各种芯片的引脚、功能、相应的命令字控制格式,并学会运用。
第4章交通灯控制系统的软件设计
4.1 源程序清单
4.2 程序运行结果
1.即东西方向的绿灯和南北方向的红灯同时点亮1分钟;
2.1分钟后,东西方向的黄灯闪烁5秒钟,。此时南北方向仍维持红灯点亮。3.东西方向的黄灯闪烁5秒钟后,转为东西方向的红灯和南北方向的绿灯同时点亮20秒钟;
4. 20秒钟后,转为南北方向的黄灯闪烁5秒钟,此时东西方向仍维持红灯点亮。5.南北方向的黄灯闪烁5秒钟后,东西方向的绿灯和南北方向的红灯同时点亮1分钟。如此循环重复。
6.由于数码显示模块没有完成,数码管没有倒计时显示。
4.3 本章小结
微机原理课程设计----交通灯的控制,是个与实际联系很紧密的课题,综合应用了微机学习的各方面知识,体现了汇编语言作为计算机领域的主要语言在解决实际问题方面表现出了优越之处,也使理论知识的学习得到了更深的理解和应用。这次的课程设计也是对自己微机汇编语言学习的补缺及提升。学习的目的在于应用,纵使专业理论知识学的再好,不能有效的用到实际问题中去,也就无法把知识转化成自己的东西。这也激励自己今后对微机知识的学习要有更高的要求。总之,这次的微机课程设计感觉收获还是比较多的,重要的是使自己学习的知识得到了应用,暴露的不知之处今后需要倍加注意。
参考文献
[1]《微机原理与接口技术》,洪永强,北京:科学出版社,2004
[2] 《微机原理与接口技术》,雷丽文、朱晓华、蔡征宇、缪均达,北京:电子
工业出版社,1997
[3] 《微型计算机系统原理及应用》,周明德,北京:清华大学出版社,1998
[4] 《微机原理与接口技术(第二版)》,倪继烈,刘新民主编,电子科技大学
出版社,2004
附录1 系统电路图
附录2 元器件清单
8255 8259 8253
电阻
数码管
二极管
LED显示器
附录3 程序清单
AD1_8253 EQU 00D0H
AD2_8253 EQU 00D1H
AD3_8253 EQU 00D2H
AD4_8253 EQU 00D3H
AD1_8255 EQU 00C0H
AD2_8255 EQU 00C2H
AD3_8255 EQU 00C4H
AD4_8255 EQU 00C6H
AD0_8259 EQU 00A0H
AD1_8259 EQU 00A1H
DATA SEGMENT
OLDOC1 DD ?
OLDOC2 DD ?
R_G DB 0H ;
下一次应该亮红灯,还是绿灯,0(绿),-1(红)。
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
MAIN:MOV AX,DATA
MOV DS,AX
;---------------------------------------------------------------------------;中断服务程序
;函数名:RED_GREEN
;功能:当红绿亮完后设置系统状态
RED_GREEN PROC FAR
PUSH AX
STI
MOV AL,[R_G]
NOT AL ;将R_G取反
MOV R_G,AL
MOV AL,00000010B ;PC1置0,即绿灯变暗
OUT AD4_8255,AL
MOV AL,00000100B ;PC2置0,即红灯变暗
OUT AD4_8255,AL
MOV AL,00000001B ;PC0置1,即黄灯变亮
OUT AD4_8255,AL
MOV AL,00000110B;PC3清0,GATE1低电平,计数器1暂停计数OUT AD4_8255,AL
MOV AL,00001001B ;PC4置1,GATE2高电平,计数器2开始计数CLI
POP AX
IRET RED_GREEN ENDP
;函数名:YELLOW
;功能:当黄灯亮完后设置系统状态
YELLOW PROC FAR
PUSH AX
STI
MOV AL,[R_G]
CMP AL,0H
JNE CHANGE_RED
MOV AL,00000011B;PC1置1,即绿灯亮
OUT AD4_8255,AL
JMP ENDCHANGE
CHANGE_RED: MOV AL,00000101B ;PC2设置1,即红灯亮
OUT AD4_8255,AL
ENDCHANGE: MOV AL,00000000B ;PC0清零,即黄灯暗
MOV AL,[R_G]
NOT AL ;将R_G取反
MOV R_G,AL
OUT AD4_8255,AL
MOV AL,00000111B ;
PC3置1,gate1高电平,计数器1开始计数
OUT AD4_8255,AL
MOV AL,00001000B ;
PC4置0,gate2低电平,计数器2暂停计数
CLI
POP AX
IRET
YELLOW ENDP
;---------------------------------------------------------------------------
;初始化8253
MOV AL,00010111B ;
(定时器0,方式3,BCD计数,初值10000)
OUT AD4_8253,AL
MOV AL,01010100B ;
(定时器1,工作方式2,2进制计数,初值30)
OUT AD4_8253,AL
MOV AL,10010100B ;
(定时器2,工作方式2,2进制计数,初值3)
MOV AL,00H ;
给定时器0付初值0,表示最大值10000
OUT AD1_8253,AL MOV AL,1EH ;
给定时器1付初值30
OUT AD2_8253,AL
MOV AL,03H ;
给定时器2付初值30
OUT AD3_8253,AL
;---------------------------------------------------------------------------
;初始化8255
MOV AL,10000000B ;8255各口都工作在方式0,都作为输出口OUT AD4_8255,AL
MOV AL,00000000B ;将PC0清零,即黄灯暗
OUT AD4_8255,AL
MOV AL,00000010B ;将PC1清零,即绿灯暗
OUT AD4_8255,AL
MOV AL,00000101B ;将PC2置1,即红灯亮
OUT AD4_8255,AL
MOV AL,00000111B ;将PC3置1,即定时器1开始计时
OUT AD4_8255,AL
MOV AL,00001000B ;将PC4清零0,即定时器2暂停计时OUT AD4_8255,AL
;---------------------------------------------------------------------------
;初始化8259
MOV AL,00010011B ;
边沿触发,要用ICW4,没有级联,不用ICW3
OUT AD0_8259,AL
JMP SHORT $+2 ;I/0端口延时
MOV AL,00001000B ;
ICW2,设置中断向量,起始中断向量为08H
out AD1_8259,AL ;
即IR6,IR7的中断类型号分别是0EH,0FH
MOV AL,00010001B ;
ICW4,特殊全嵌套,非缓冲方式,正常结束
;---------------------------------------------------------------------------;写入IR6中断处理程序——YELLOW
MOV AX,350EH
INT 21H
MOV WORD PTR OLDOC1,BX
MOV WORD PTR OLDOC1+2,ES
MOV AX,CODE
MOV DS,AX
MOV DX,OFFSET YELLOW
MOV AX,250EH INT 21H
;---------------------------------------------------------------------------;写入IR7中断处理程序——RED_GREEN
MOV AX,350FH
INT 21H
MOV WORD PTR OLDOC2,BX
MOV WORD PTR OLDOC2+2,ES
MOV AX,CODE
MOV DS,AX
MOV DX,OFFSET RED_GREEN MOV AX,250FH INT 21H ;---------------------------------------------------------------------------EXIT: MOV AH,4CH INT 21H
CODE ENDS
END MAIN