城市交通灯控制系统设计微机原理课程设计毕业设计Word文件下载.docx
《城市交通灯控制系统设计微机原理课程设计毕业设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《城市交通灯控制系统设计微机原理课程设计毕业设计Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
通过硬件与软件的结合,用我们刚刚学过的汇编语言编写程序模拟分析了现代城市交通控制与管理问题的现状,结合交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的交通灯控制系统的硬件、软件电路设计方案。
该系统适用于单主干道的十字路口,。
现假定其主干道为东西方向,次干道为南北方向。
可随意进行更改双向的通行时间,该功能能实现加中断控制和手动控制的方式进行,红绿灯切换时有闪烁功能以警示车辆和行人将进行红绿灯切换。
当有交通堵塞或紧急状况时可进行中断手动控制,使交通安全与交通流畅度得以保证。
1.1交通的控制系统概述
十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。
十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。
当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。
一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
本次关于交通灯的课程设计在控制东西方向红灯—绿灯—黄灯和南北方向红灯—绿灯自动转换的情况下,利用控制中断芯片8255控制在交通灯的通行与禁止时间控制显示中,东西方向60秒,南北方向40秒,时间控制都是固定的。
交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。
但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受人为因素的影响。
采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。
它不顾当前道路上交通车辆的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。
目前,有一种使用“模糊控制”技术控制交通灯的方法。
能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。
但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。
1.2设计要求及其目的
(1)设计目的
本设计是《微型计算机原理与接口技术》课程综合训练,我们可以通过理论学习,资料查询,软、硬件设计,系统调试等环节,巩固和提高所学的知识和应用水平。
了解交通灯管理的基本原理,掌握8255A并行接口的工作方式0的使用和编程方法,PC机及配套的接口电路实验装置。
通过这个设计培养严谨的工作作风,务实的工作态度,为今后的学习和工作奠定了坚实的基础。
(2)设计要求
1.画出系统组成框图
2.交通灯采用红、黄、绿三色发光二极管构成交通灯亮灭规律:
四个方向红灯亮
(延时)南北方向绿灯亮40秒,东西方向红灯亮
南北方向绿灯灭,绿灯闪烁8次
东西方向绿灯亮60秒,南北方向红灯亮
(延时)东西方向绿灯灭,黄灯闪烁5次
重复
3.用LED数码显示器倒计时显示时间
4.绘制电路原理图
5.根据要求编程6.键盘
①复位兼启动开关
②南北方向时间设计
③东西方向时间设定
④时间增加
⑤时间减少
⑥时间设定确定
⑦状态切换(连续时间设置)
1.3设计思想
使用了8088微处理器、8255可编程并行接口实现了对南北、东西方向交通的分别计时、分别控制,设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。
城市十字交叉路口的红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时。
东西、南北两条干线,东西干线简称“A”,南北干线简称“B”,十字路口有两组交通灯,仅对车辆直行进行交通管理,用8255A设计电路,以模拟交通灯控制,遇有紧急情况解除后,恢复正常控制。
(1)令8255A的A口工作在方式0输出,按四个方向红灯亮
重复的要求编写顺序控制程序,若PAi输出高电平,则相应的LED亮。
(2)为了快捷地编写顺序控制程序,将交通灯可能发生的状态细分为7种状态,每一种状态的延时时间以及需要向A口写入的数据列表中。
编程时,在数据段设置数据表,依次写入7种状态下需向A口发送的数据。
程序依次取出一个数据送8255A的A口,点亮再依次取出一个延时时间,调用延时子程序以保证这一状态下LED的点亮时间。
A绿灯亮60秒A黄灯闪亮5次A红灯亮40秒A红灯亮
B红灯亮60秒B红灯亮B绿灯亮40秒B绿灯闪亮8次
模拟的交通灯管理规则
2.硬件电路元件介绍
2.1核心芯片8088/8086微型计算机
微型计算机主要由微处理器(CPU)、主存储器(MM)、外部设备及互联设备组成,总线(数据总线、地址总线、控制总线)在各部件之间提供通信。
其中,CPU是它的核心部分,主要由Intel8086微处理器组成;
主存储器用来保存程序和数据。
Intel8086/8088是Intel公司1977年推出的16位微处理器,按功能可分为两大部分:
执行部分EU(ExecutionUnit)和总线接口部分BIU(BusInterfaceUnit)。
执行部分EU负责指令的执行,并进行算术逻辑运算等。
EU从BIU中的指令队列中取得指令。
当指令要求将数据放在寄存器或输出到外部设备,或者要从寄存器或外部设备读取数据时,EU就向BIU发出请求,BIU根据EU发来的请求完成这些操作。
它包括一个算术逻辑单元(ALU)、一组通用寄存器和标志寄存器组成,它们均是16位的。
执行部件中含有8个16位的寄存器,这些寄存器属于CPU的专用寄存器,按其用途可将它们分成两组:
数据寄存器组和指示器变址寄存器组。
总线接口部件BIU包括一组段寄存器、一个指令指示器、指令队列(8086长6个字节,8088长4个字节)、地址产生器和总线控制器等。
BIU根据执行部件EU的请求,完成CPU与存储器或I/O设备之间的数据传送。
在EU执行指令的过程中,BIU根据需要从存储器中预先取一些指令,保存到指令队列中。
如果EU执行一条转移指令,使程序发生转移,那么存放在指令队列中的预先取得的指令就不再有用,BIU会根据EU的指示从新的地址重新开始取指令。
由于EU所提供的存储器地址是16位的,而8086访问1M(220)存储空间却需要20位地址,为了形成这20位地址,在BIU中设立了4个段寄存器(CS代码段,DS数据段,ES附加段,SS堆栈段)。
CPU在当前每一时刻可以直接访问4个存储段:
一个代码段、一个数据段、一个附加段、一个堆栈段,每个段最大可达64K字节。
2.2可编程并行接口8255
1、8255A的内部结构:
1)数据总线缓冲器:
这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。
输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。
2)三个端口A,B和C:
A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。
B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。
C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
3)A组和B组控制电路:
这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。
方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。
对C口按位复位命令字可对C口的每一位实现置位或复位。
A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。
4)读写控制逻辑:
用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。
2、8255A的工作方式:
方式0---基本输入输出方式;
方式1---选通输入输出方式;
方式2---双向选通输入输出方式。
3、引脚信号
8255A的引脚如图所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。
D7~D0:
三态、双向数据线,与CPU数据总线连接,用来传送数据。
CS:
片选信号线,低电平有效时,芯片被选中。
A1,A0(portaddress):
地址线,用来选择内部端口。
RD:
读出信号线,低电平有效时,允许数据读出。
WD:
写入信号线,低电平有效时,允许数据写入。
RESET:
复位信号线,高电平有效时,将所有内部寄存器清0。
PA7~PA0(portA):
A口输入/输出信号线。
PB7~PB0(portB):
B口输入/输出信号线。
PC7~PC0(portC):
C口输入/输出信号线。
VCC:
+5V电源。
GND:
电源地线。
8255的外部引线图
8255内部结构框图
3.硬件电路设计
3.1设计的总方案
用8255的A口的低六位控制东西、南北路口交通灯的状态;
灯的亮灭可直接由8086输出0,1控制。
计数器1的输出端OUT1接入8255芯片的PC0口,通过查询8255的C口的值,以完成计时功能。
8086通过读取8255C口的值,来决定对A口写入的数据。
因此每隔0.5秒8086变换灯的状态,持续8次即完成4秒的闪烁功能。
通过查询8255的C口PC0的状态改变,达到延时40秒的作用。
用键盘设计链路来实现复位等功能。
3.2LED显示电路设计
3.3发光二极管组成的灯控电路设计
3.4键盘电路设计
4.软件设计
用8255的A口低六位控制东西、南北路口交通灯的状态;
通过分析74LS138、8255各端口地址,设计合理的地址译码电路。
采用A端口控制,对南北、东西方向交通的分别计时、分别控制,城市十字交叉路口的红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用共阴极二极管,高三位表示南北方向,低三位表示东西方向,1表示灯亮,0表示灯灭。
4.1流程图
4.2程序清单
CODESEGMENT
ASSUMECS:
CODE;
伪指令,分配代码段
A8255EQU0202H;
选取8255的A端口地址
K8255EQU0203H;
选取8255的控制端口地址
START:
MOVAL,80H;
选择方式1,输出控制
MOVDX,K8255;
对8255芯片进行控制A端口
OUTDX,AL
MOVAL,C8255
分段注解:
对8255进行初始化。
LOOP1:
MOVAL,81H;
东西绿灯亮,南北红灯亮
OUTDX,AL
CALLLDELAY;
进入60s长延时
MOVCX,5;
设定东西黄灯闪烁5次
LOOP2:
MOVAL,41H;
东西黄灯亮,南北红灯亮
CALLSDELAY;
进入短延时
MOVAL,1H;
东西黄灯灭,南北红灯亮
LOOPLOOP2
东西方向绿灯亮60s,南北方向红灯亮60s,然后东西方向黄灯闪烁5次。
MOVAL,22H;
东西红灯亮,南北绿灯亮
CALLLDELAY1;
进入40s长延时
MOVCX,8;
设定南北绿灯闪烁8次
LOOP3:
东西红灯亮,南北绿灯闪烁
MOVAL,20H;
东西红灯灭,南北绿灯灭
LOOPLOOP3;
程序循环
JMPLOOP1
东西方向红灯亮40s,南北方向绿灯亮40s,然后南北方向绿灯闪烁8次,最后东西南北灯都灭,进入下一交通灯指挥循环。
LDELAYPROC;
60s长延时子程序
PUSHCX
MOVCX,180
DEL1:
CALLDELAY
LOOPDEL1
POPCX
RET
LEDLAYENDP
东西方向绿灯亮60,s南北方向红灯亮60s的长延时程序。
LDELAY1PROC;
40s长延时子程序
MOVCX,120
CALLSDELAY
南北方向绿灯亮40s,东西方向红灯亮40s的长延时程序。
LDELAYENDP;
短延时子程序
SDELAYPROC
MOV0BA69H
DEL2:
LOOPDEL2
SDELAYENDS
黄灯闪烁或者绿灯闪烁时的短延时程序。
CODEENDS
ENDSTART
5.课程设计心得体会
通过这次课程设计针对设计的内容和要求,我利用8255以及138译码器和驱动电路设计了交通灯数字控制系统。
通过利用汇编,编写了软件控制程序,同时查阅资料。
在这次课程设计的过程中,我无论是在关于X86系列的相关知识或在接口芯片的初始化及应用方面还是在利用所学到知识全面设计系统方面收获都很大。
为以后从事软件的设计开发打下了良好的基础树立独立从事研发的信心,同时也培养了我认真的做事态度。
通过设计交通灯数字控制系统将软硬充分相结合,学会了很多有用的知识锻炼了软硬相互协调的能力。
同时也增强了全面系统考虑问题的能力,以及硬件设计能力。
可以说这次课程设计很成功,在自己学习独立思考的情况下找到了分析问题解决问题的方法。
这对以后的学习和工作具有重要的指导意义!
虽然花了很长时间编写软件程序设计,但这一切还是理论上的。
希望学校能提供机会和条件,让我们能够去真正地将理论和实践相结合。
通过这次程序,感觉自己所掌握的知识是那么的有限,还有许多需要改进和不足的地方,同时也帮助了我怎样学好这门课程,增加了我对这门学科的兴趣。
通过这次实习报告的设计,使我更加清楚以后的发展及学习的方向。
最后感谢老师这个学期的指导和帮助!
6.参考文献
《微型计算机原理与接口技术》冯博琴吴宁主编清华大学出版社
《微机原理与应用》陈够喜邵坚婷主编人民邮电出版社
《微型计算机技术—实验与辅导》冯玉章主编清华大学出版社
《汇编语言程序设计》钱晓捷主编电子工业出版社
《微机原理与接口技术实验指导与习题集》周明德主编清华大学出版社