微机交通灯课程设计报告.docx
- 文档编号:8994233
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:14
- 大小:99.19KB
微机交通灯课程设计报告.docx
《微机交通灯课程设计报告.docx》由会员分享,可在线阅读,更多相关《微机交通灯课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
微机交通灯课程设计报告
湖南科技大学潇湘学院
信息与电气工程系
《微机原理与接口技术》
课程设计报告
题目:
交通灯
专业:
湖南科大电子信息工程
班级:
姓名:
学号:
1 引言
在车辆日渐增多的今天,人们也越来越关注交通问题,而交通灯在安全行车过程中无疑起着十分重要的作用。
现在交通灯一般都设在十字路口,用红、绿、黄三种颜色的指示灯和一个倒计时的显示计时器来控制行车, 对一般情况下的安全行车、车辆分流发挥着作用, 但根据实际行车过程中出现的情况, 主要有如下几个缺点:
1、车道轮流放行时间相对固定, 不能根据实际情况中两个车道的车辆多少来设置改变通行时间;2、 没有考虑紧急车辆通过时, 两车道应采取的措施。
譬如, 有消防车通过执行紧急任务时, 两个车道的车都应停止, 让紧急车辆通过。
因此如何合理高效地利用交通灯指示交通情况,是一个亟需解决的问题。
交通灯是采用计算机通过编写汇编语言程序控制的。
红灯停,绿灯行的交通规则。
广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。
诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。
还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。
或者给红绿色盲声音警示的人性化设计。
现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。
当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。
要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。
因此,研究交通灯及扩大其应用,有着非常现实的意义》
2,8255A的工作原理
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---双向选通输入输出方式。
引脚信号
8255A的引脚如图7.5所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。
D7~D0(databus):
三态、双向数据线,与CPU数据总线连接,用来传送数据。
(chipselect):
片选信号线,低电平有效时,芯片被选中。
A1,A0(portaddress):
地址线,用来选择内部端口。
(read):
读出信号线,低电平有效时,允许数据读出。
(write):
写入信号线,低电平有效时,允许数据写入。
RESET(reset):
复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。
PA7~PA0(portA):
A口输入/输出信号线。
PB7~PB0(portB):
B口输入/输出信号线。
PC7~PC0(portC):
C口输入/输出信号线。
VCC:
+5V电源。
GND:
电源地线。
3.实验程序流程
初始化
设置8255各口为输出
清LED
四灯全红延时
南北绿灯,东西红灯,延时
绿灯闪三次
南北黄灯,延时
南北红灯,东西绿灯,延时
东西黄灯,延时
绿灯闪三次
4.电路原理图如下:
5.Pcb图:
6.程序代码:
;-----------数码管-----------------------
PA55EQU0200H;8255PA口地址
PC55EQU0202H;8255PC口地址
P55CTLEQU0203H;8255控制口地址
;-----------LED灯----------------------
PB55EQU201H
D1EQU10H
D2EQU50H
DATASEGMENT
PBDB?
DATAENDS
STACKSEGMENTSTACK
STADW50DUP(?
);加大点
TOPEQULENGTHSTA
STACKENDS
;-----------开始-----------------
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE
START:
PUSHCS
POPDS
MOVDX,P55CTL;设置8255口为输出口
MOVAL,80H;8255控制字
OUTDX,AL
;---------LED----------------------
MOVDX,204H
MOVAL,00H
OUTDX,AL;清LED
MOVDX,PB55;全红
MOVAL,0FH
OUTDX,AL
MOVBX,7fH
CALLDLY
;CALLBEGIN
;CALLWRITE2;调用数码管过程
BG:
MOVAL,96H;南北绿,东西红
OUTDX,AL
MOVBX,D2
;调用程序前可能要堆栈子程序中要用到原来程序的某寄存器,调用后要恢复
CALLDJS;计数
;JMPXH1
;MOVCX,03H
MOVDX,P55CTL;设置8255口为输出口
MOVAL,80H;8255控制字
OUTDX,AL
;---------LED----------------------
MOVDX,204H
MOVAL,00H
OUTDX,AL;清LED
MOVDX,PB55;全红
MOVCX,03H
JNZXH1
XH1:
MOVAL,9FH;绿灭
OUTDX,AL
MOVBX,D1
CALLDLY
MOVAL,96H;绿亮
OUTDX,AL
MOVBX,D1
CALLDLY
LOOPXH1
MOVAL,06H;南北黄
OUTDX,AL
MOVBX,D1
CALLDLY
MOVBX,D1
CALLDLY
MOVAL,69H;南北红,东西绿
OUTDX,AL
MOVBX,D2
CALLDJS
MOVDX,P55CTL;设置8255口为输出口
MOVAL,80H;8255控制字
OUTDX,AL
;---------LED----------------------
MOVDX,204H
MOVAL,00H
OUTDX,AL;清LED
MOVDX,PB55;全红
MOVCX,03
XH2:
MOVAL,6FH
OUTDX,AL
MOVBX,D1
CALLDLY
MOVAL,69H
OUTDX,AL
MOVBX,D1
CALLDLY
LOOPXH2
MOVAL,09H
OUTDX,AL
MOVBX,D1
CALLDLY
MOVBX,D1
CALLDLY
JMPBG
;倒计时-----------------------------------
DJSPROCNEAR
PUSHDX
PUSHCX
PUSHAX
PUSHBX
BEGIN:
MOVAL,0
MOVCH,0
WRITE2:
MOVAH,AL
LEABX,LED;LEA取偏移地址指令
XLAT;XLAT:
字节查表转换;把待查表格的一个字节内容送到AL累加器中;在执行该指令前,应将TABLE先送至BX寄存器
MOVCL,8H;分八位写一个LED
;-----------164驱动---------------------------------
WRITE1:
MOVDX,PA55
OUTDX,AL
PUSHAX
MOVDX,P55CTL;利用8255PC5口控制DCLK,使DCLK产生一低电平到高电平的跳变
MOVAL,0AH;PC5置“0”
OUTDX,AL
MOVAL,0BH;PC5置“1”
OUTDX,AL
POPAX
RCRAL,1
DECCL
CMPCL,0
JNZWRITE1
CALLDELAY
MOVAL,AH
INCAL
INCCH
CMPCH,0AH;循环10次
JBEWRITE2;调用数码管过程
POPDX
POPCX
POPBX
POPAX
RET
DJSENDP
;JMPBEGIN
;---------延时1S--------------------
DELAYPROCNEAR
PUSHCX
MOVBL,24
M2:
MOVCX,2810H
LOOP$
DECBL
JNZM2
POPCX
RET
DELAYENDP
;---------------------------------
DLYPROCNEAR;延时
PUSHCX
DDD:
MOVCX,0FFFH
CCC:
LOOPCCC
DECBX
CMPBX,0
JNEDDD
POPCX
RET
DLYENDP
;CODEENDS
;-----------数码管编码----------------------
LED:
DB09H,01H,1FH,41H,49H,99H,0DH,25H,9FH,03H
;9876543210
CODEENDS
;-------------------------------------------
ENDSTART
7.体会:
字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。
十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。
当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。
它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。
交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。
但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。
采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。
它不顾当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。
目前,有一种使用“模糊控制”技术控制交通灯的方法。
能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。
但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。
本次课程设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。
此次实习可以说是获益匪浅。
通过查阅了很多资料,了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:
仔细谨慎,精益求精。
在程序中添加了黄灯闪烁,更加醒目。
另外加入能够实现各路口绿灯显示时间不同,适应在主干道和支线路口中使用。
在系统加电调试中,针对一些问题,熟练掌握了根据原理分步测试,将错误之处缩小的最小范围内。
通过该课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,表面的。
通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。
而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性。
把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。
以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。
课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 交通灯 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)