交通信号灯实时控制系统设计报告.docx
- 文档编号:29367751
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:13
- 大小:217.24KB
交通信号灯实时控制系统设计报告.docx
《交通信号灯实时控制系统设计报告.docx》由会员分享,可在线阅读,更多相关《交通信号灯实时控制系统设计报告.docx(13页珍藏版)》请在冰豆网上搜索。
交通信号灯实时控制系统设计报告
交通信号灯实时控制系统设计报告
组员:
李波李敏
一、实验目的
现代城市交通日益拥挤,为保证交通安全,防止交通堵塞,使城市井然有序,交通信号灯在城市交通管理中的作用越来越重要。
通过本实验:
⒈掌握交通信号灯实时控制系统的设计思想与实现方法。
⒉掌握定时/计时器和并行接口在实时控制系统中的应用。
⒊加深对定时/计时器和并行接口芯片的工作方式和编程方法的了解。
⒋加深对中断机理及应用方法的了解。
二、实验任务
设计制作一个交通信号灯实时控制系统。
要求:
⒈在一个十字路口的一条主干道和一条支干道上分别装一套红,黄,绿3种信号灯;用钮开关模拟十字路口的车辆检测传感器信号。
⒉在一般情况下,主干道上的绿灯常亮,而支干道上总是红灯。
⒊当检测到支干道上来车时(用按键开关模拟),主干道的绿灯转为黄,持续4秒后,又变成红灯,同时支干道由红灯变为绿灯。
⒋支干道绿灯亮后,或者检测到主干道上来了3辆车(用3个钮子开关模拟),或者虽未来3辆车,但绿灯已持续了25秒,则支干道立即变为黄灯,4秒后转为红灯,同时主干道由红灯变为绿灯。
三、实验设备器材
⒈80X86系列微机一台。
⒉微机硬件实验平台。
⒊定时/计时器和并行接口芯片。
⒋按键开关1个(单脉冲源),钮子开关(高低电平开关)3个及红,黄,绿发光二极管(即实验平台上的三色显示灯)。
四、实验原理
根据实验任务要求,在本实验系统中,微机需要检测4个开关送来的主,支干道车辆到达信号,并按一定的条件发出主,支干道6个信号灯的控制信号。
显然,用一片8255A足以满足上述要求。
对8255A各端口不妨作如下安排:
令端口A工作于方式0的无条件数据输出方式,用以控制交通灯的亮灭;端口B工作于方式1的输入方式,并设置为允许中断;将端口C的PC2接到中断请求线上,使得当支干道上有车来时,由中断请求线向CPU发出中断,CPU响应中断后发出控制信号来控制主,支干道交通灯变换状态。
端口C的高4位用作输入口,从PC7,PC6,PC5接入3个钮子开关,当钮子开关打到高电平时,表示主干道有车辆到来。
具体设置如下:
端口A的地址为:
250H
端口B的地址为:
251H
端口C的地址为:
252H
控制寄存器地址为;253H
有关定时/计时器的功能,可以采用8253计时/定时器结合中断服务程序计数的方法来实现。
可设想用8253来产生秒时钟信号,为此可以设置8253的定时器0工作方式3(方波方式),定时器1工作于方式2(分频方式),并将定时器0的输出端接到定时器1的时钟端。
这样,就可以做到让定时器0每隔10ms向定时器1发出一个计数脉冲,而当定时器1计满100个数时,向主机发出一次中断请求信号,于是就实现了每隔1s发出一次中断请求的功能。
然后在时钟中断服务程序中对秒信号作相应的计数。
(通道1接10KHZ的方波脉冲源)。
另外附加三色显示灯的变色原理:
从8255芯片的PA1,PA2,PA6,PA74个接口连出4根线接到三色显示灯的4个接口上,每两个控制一个灯。
其中控制信号由程序中通过表示高低电平来设置好,如:
红灯为1000绿灯0100黄灯1100
综上所述,本试验系统的硬件结构框架如下图所示:
8253通道0的端口地址为220H,通道1的为221H,控制寄存器的地址为223H。
实验的主程序和支干道来车中断服务程序流程图则如下图:
.modelsmall
.stack
.data
countdb0
runningdb'running',13,10,'$'
messagedb'inter',13,10,'$'
timedb'.','$'
.code
mainprocfar
start:
movax,@data
movds,ax
cli;中断标志置0IF<-0
movah,09
leadx,running
int21h
moval,0fh;0bH
movah,35h
int21h
pushes
pushbx
pushds
;设置两个中断向量
movax,seginterproc
movds,ax
movdx,offsetinterproc
moval,0fh
movah,25h
int21h
popds
popbx
popes
moval,0bh;0bH
movah,35h
int21h
pushes
pushbx
pushds
movax,segtimeproc
movds,ax
movdx,offsettimeproc
moval,0bh
movah,25h
int21h
popds
popbx
popes
;保存原8259屏蔽字
inal,21h
pushax
inal,0a1h
pushax
moval,071h
out21h,al
moval,0fdh
out0a1h,al
;初始化8253,设置两个计数器的工作方式
;定时器0工作方式3(方波方式)10ms
movdx,223h
moval,16h;控制字
outdx,al
movdx,210h
moval,64h
outdx,al
;定时器1工作方式2(分频方式)100个数
movdx,223h
moval,54h;控制字
outdx,al
movdx,221h
moval,00001010b
outdx,al
;初始化8255,设置各端口的工作模式
movdx,253h
moval,10001111b;控制字
outdx,al
;将8255的pc2置1,允许中断
movdx,253h
moval,00000101b
outdx,al
repeat:
;开中断,等待
sti
;从8255的A端口送出红绿灯信号
movdx,250h
moval,01000010b;主绿支红
outdx,al
movah,1;Ctrl+C
int16h
jzrepeat
cli
popax
out0a1h,al
popax
out21h,al
sti
;返回DOS
movax,4c00h
int21h
mainendp
interprocprocnear;中断处理程序
;保存现场
cli
pushds
pushax
pushcx
pushdx
movax,@data
movds,ax
movah,09
leadx,message
int21h
movdx,251h
inal,dx
;主干道有3辆车吗?
movdx,252h
inal,dx
andal,11100000b;7,6,5
cmpal,11100000b
jzgoend
;清除秒计算器
movcount,0
;送主干道黄灯,支干道红灯数据
movdx,250h
moval,11000010b;主黄支红
outdx,al
sti
;计数
libo:
cmpcount,4
jnzlibo
;秒计数器清零,送主干道红灯,支干道绿灯数据
movcount,0
movdx,250h
moval,10000001b;主红支绿
outdx,al
captain:
cmpcount,25
jzcipher
;主干道有3辆车吗?
movdx,252h
inal,dx
andal,11100000b;7,6,5
cmpal,11100000b
jnzcaptain
cipher:
;秒计数器清0,并送主干道红灯,支干道黄灯数据
movcount,0
movdx,250h
moval,10000011b;主红支黄
outdx,al
smartcat:
cmpcount,4
jnzsmartcat
goend:
moval,20h
out20h,al
out0a0h,al
;恢复现场
popdx
popcx
popax
popds
iret;退出中断
interprocendp
timeprocprocnear;时间中断
;保存现场
cli
pushds
pushax
pushcx
pushdx
movax,@data
movds,ax
inccount
movah,09
leadx,time
int21h
moval,20h
out20h,al
out0a0h,al
;恢复现场
popdx
popcx
popax
popds
sti
iret;退出中断
timeprocendp
endstart
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通 信号灯 实时 控制系统 设计 报告