- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
交通信号灯实时操纵system的设计汇报
交通信号灯实时控制系统设计报告
组员:李波 李敏
一、实验目的
现代城市交通日益拥挤,为保证交通安全,防止交通堵塞,使城市井然有序,交通信号灯在城市交通管理中的作用越来越重要。通过本实验:
⒈掌握交通信号灯实时控制系统的设计思想与实现方法。
⒉掌握定时/计时器和并行接口在实时控制系统中的应用。
⒊加深对定时/计时器和并行接口芯片的工作方式和编程方法的了解。
⒋加深对中断机理及应用方法的了解。
二、实验任务
设计制作一个交通信号灯实时控制系统。要求:
⒈在一个十字路口的一条主干道和一条支干道上分别装一套红,黄,绿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,PA7 4个接口连出4根线接到三色显示灯的4个接口上,每两个控制一个灯。其中控制信号由程序中通过表示高低电平来设置好,如:
红灯为1000 绿灯0100 黄灯1100
综上所述,本试验系统的硬件结构框架如下图所示:
8253 通道0的端口地址为220H,通道1的为221H,控制寄存器的地址为223H。
实验的主程序和支干道来车中断服务程序流程图则如下图:
.model small
.stack
.data
count db 0
running db running,13,10,$
message db inter,13,10,$
time db .,$
.code
main proc far
start:
mov ax,@data
mov ds,ax
cli ;中断标志置0 IF-0
mov ah,09
lea dx,running
int 21h
mov al,0fh ;0bH
mov ah,35h
int 21h
push es
push bx
push ds
;设置两个中断向量
mov ax,seg interproc
mov ds,ax
mov dx,offset interproc
mov al,0fh
mov ah,25h
文档评论(0)