交通信号灯地控制.docx

上传人:b****5 文档编号:14621527 上传时间:2023-06-25 格式:DOCX 页数:21 大小:211.50KB
下载 相关 举报
交通信号灯地控制.docx_第1页
第1页 / 共21页
交通信号灯地控制.docx_第2页
第2页 / 共21页
交通信号灯地控制.docx_第3页
第3页 / 共21页
交通信号灯地控制.docx_第4页
第4页 / 共21页
交通信号灯地控制.docx_第5页
第5页 / 共21页
交通信号灯地控制.docx_第6页
第6页 / 共21页
交通信号灯地控制.docx_第7页
第7页 / 共21页
交通信号灯地控制.docx_第8页
第8页 / 共21页
交通信号灯地控制.docx_第9页
第9页 / 共21页
交通信号灯地控制.docx_第10页
第10页 / 共21页
交通信号灯地控制.docx_第11页
第11页 / 共21页
交通信号灯地控制.docx_第12页
第12页 / 共21页
交通信号灯地控制.docx_第13页
第13页 / 共21页
交通信号灯地控制.docx_第14页
第14页 / 共21页
交通信号灯地控制.docx_第15页
第15页 / 共21页
交通信号灯地控制.docx_第16页
第16页 / 共21页
交通信号灯地控制.docx_第17页
第17页 / 共21页
交通信号灯地控制.docx_第18页
第18页 / 共21页
交通信号灯地控制.docx_第19页
第19页 / 共21页
交通信号灯地控制.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

交通信号灯地控制.docx

《交通信号灯地控制.docx》由会员分享,可在线阅读,更多相关《交通信号灯地控制.docx(21页珍藏版)》请在冰点文库上搜索。

交通信号灯地控制.docx

交通信号灯地控制

微机原理课程设计交通信号灯的控制

一.设计任务及要求:

交通信号灯的控制:

1.通过8255A并口来控制LED发光二极管的亮灭。

2.A口控制红灯,B口控制黄灯,C口控制绿灯。

3.输出为0则亮,输出为1则灭。

4.用8253定时来控制变换时间。

要求:

设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。

之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。

延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。

闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。

延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。

闪烁5次后,再切换到1、3路口方向。

之后,重复上述过程。

二.小组成员:

三.设计方案:

分析题意,红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8088输出0,1控制。

30秒延时及闪烁由8253控制,由此得出一种可行的设计方案:

设8253各口地址分别为:

设8253基地址即通道0地址为04A0H;通道1为04A2H;通道2为04A4H;命令控制口为04A6H。

黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波,8255控制或门打开的时间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。

由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方式,理论设计输出周期为0.01s的方波。

1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1

s,因此通道0的计数初值为10000=2710H。

由此方波分别作为clock1和clock2的输入时钟脉冲,所以通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8088,8088检测到高电平既完成30s定时。

通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8088共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态反馈到8055的端口PB7和PC7,同样输入到8088,8088通过两次检测端口状态可知黄灯的状态变化,计9次状态变化可完成5次闪烁。

三个通道的门控信号都未用,均接+5V即可。

四.系统原理

工作原理说明:

此方案是通过并行接口芯片8255A和8088计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。

如硬件连接图(附录一)所示,红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。

8088工作在最小模式,低八位端口AD0~~AD7接到8255和8253的D0~~D7,AD8~~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。

8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8088的AD18,8088通过检测此端口是否有高电平来判断是否30S定时到。

OUT2产生1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。

8255三个口全部工作在方式0既基本输入输出方式,红绿灯的转换由软件编程实现。

硬件原理说明:

由于8255A与8088CPU是以低八位数据线相连接的,所以应该是8255A的、线分别与8088CPU的、线相连,而将8088的线作为选通信号。

如果是按8255A内部地址来看,则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),命令控制口地址为(CS+003H),其中,CS为8255片选信号的首地址;若是按8088CPU地址来看,则8255A的地址是PA口地址即(CS+000H),PB口地址为(CS+002H),PC口地址为(CS+004H),命令控制口地址为(CS+006H)。

当CS=0288H,则PA口地址为0288H,PB口地址为028AH,PC口地址为028CH,命令控制口地址为028EH。

1.先说明一下8255A的工作方式和设置:

图18255芯片引脚图

图28255结构框图

8255A是一个40引脚的双列直插式集成电路芯片

按功能可把8255A分为三个逻辑电路部分,即:

口电路、总线接口电路和控制逻辑电路。

(1)口电路

8255A共有三个8位口,其中A口和B口是单纯的数据口,供数据I/O使用。

而C口则既可以作数据口,又可以作控制口使用,用于实现A口和B口的控制功能。

数据传送中A口所需的控制信号由C口高位部分(PC7~PC4)提供,因此把A口和C口高位部分合在一起称之为A组;同样理由把B口和C口低位部分(PC3~PC0)合在一起称之为B组。

(2)总线接口电路

总线接口电路用于实现8255A和单片微机的信号连接。

其中包括:

(a)数据总线缓冲器

数据总线缓冲器为8位双向三态缓冲器,可直接和80C51的数据线相连,与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。

(b)读/写控制逻辑

与读写有关的控制信号有

CS—片选信号(低电平有效)

RD—读信号(低电平有效)

WR—写信号(低电平有效)

A0、A1—端口选择信号。

8255A共有四个可寻址的端口(即A口、B口、C口和控制寄存器),用二位地址编码即可实现选择,参见表1。

表18255可寻址端口对应操作

RESET—复位信号(高电平有效)。

复位之后,控制寄存器清除,各端口被置为输入方式。

读写控制逻辑用于实现8255A的硬件管理:

芯片的选择,口的寻址以及规定各端口和单片微机之间的数据传送方向。

(c)控制逻辑电路

控制逻辑电路包括A组控制和B组控制,合在一起构成8位控制寄存器。

8255A工作方式及数据I/O操作

(1)8255A的工作方式

8255A共有三种工作方式,即方式0、方式1、方式2.

(a)方式0基本输入/输出方式

方式0下,可供使用的是两个8位口(A口和B口)及两个4位口(C口高4位部分和低4位部分)。

四个口可以是输入和输出的任何组合。

方式0适用于无条件数据传送,也可以把C口的某一位作为状态位,实现查询方式的数据传送。

(b)方式1选通输入/输出方式

A口和B口分别用于数据的输入/输出。

而C口则作为数据传送的联络信号。

具体定义见表7–2。

可见A口和B口的联络信号都是三个,如果A或B只有一个口按方式1使用,则剩下的另外13位口线仍然可按方式0使用。

如果两个口都按方式1使用,则还剩下2位口线,这两位口线仍然可以进行位状态的输入输出。

方式1适用于查询或中断方式的数据输入/输出。

(c)方式2双向数据传送方式

只有A口才能选择这种工作方式,这时A口既能输入数据又能输出数据。

在这种方式下需使用C口的五位线作控制线,信号定义如表7–2所示。

方式2适用于查询或中断方式的双向数据传送。

如果把A口置于方式2下,则B口只能工作于方式0.

2.下面,分析8088各个引脚的连接方法:

(1)

引脚:

通常用此引线产生片选信号,当为

=1,

=0编码时,在数据总线低8位和偶地址之间进行字节传送(

)。

(2)CLK(Clock)时钟信号(输入):

CLK为CPU和总线控制器提供基本的定时脉冲。

时钟周期是非对称的,当它为有效高电平的时间和时钟周期的比为33%时,提供最佳的内部定时。

由8284时钟发生器产生,8088CPU使用的时钟频率,因芯片型号不同,时钟频率不同。

这里采用5MHz。

(3)

(+5V),GND(地):

CPU所需电源

=+5V。

GND为地线。

(4)QS0ALE(AddressLatchEnable)地址锁存允许信号,输出高电平有效,作地址锁存器8282/8283的片选信号,在

地址周期状态,ALE有效,表示AB、DB上传送的是地址信息,将它锁存。

这是由于AB、DB分时复用所需要的,ALE信号线不能悬空。

如图所示,加入2片地址锁存器8282。

(5)RESET:

复位信号,输入,高电平有效。

8088接到复位信号后,停止现行操作,并初始化段寄存器DS,SS,ES,标志寄存器PSW,指令指针IP和指令队列,而使CS=FFFFH。

RESET信号至少保持四个周期以上的高电平,当它变为低电平时(一个下降沿),CPU执行重启过程,8088将从地址FFF0H开始执行指令。

通常FFFF0H单元开始的几个单元中存放一条JMP指令,将入口转到引导和装配程序中,从而实现对系统的初始化,引导监控程序或操作系统程序。

由于出现突然断电或其它情况时,8088可能正在执行交通灯程序,现有的地址丢失,应按下RESET键重新开始。

另外,应将8255A与8088的RESET线相连,保持同步。

(6)MN/

(Minimun/Maximun):

最小、最大工作模式选择信号,输入。

此时MN/

接+5V,构成单处理器系统,系统控制信号由CPU提供。

3.接下来,对8282芯片作一下说明:

图38282芯片引脚图

:

8位数据输入;

:

8位数据输出;STB:

选通信号;

输出允许信号,在不带DMA控制器的8088单处理器系统中,它接地。

其实,这就是8个D触发器。

由于只用

,所以用两片即可。

4.最后,对时钟发生器8284芯片按两部分进行说明:

图48284芯片引脚及电路连线

(1)时钟信号发生器:

=0时,时钟信号输入由X1、X2端接上晶体,由晶体振荡器产生时钟信号;

CLK:

3分频OSC后的时钟,输出频率4.77MHz,占空比为1/3,大约满足8088CPU的输入频率5MHz、占空比33%的要求。

(2)复位生成电路:

输入的信号来触发内部同步触发器,由此产生信号RESET,送到CPU的RESET端,复位信号由CLK的下降沿同步。

此时,

端接“电源好“信号,使系统上电后自动复位。

此为最小模式系统,除了8088CPU,I/O接口芯片8255A,定时计数芯片8353外,其它配置如下:

1片8284A,作为时钟发生器;

2片8282,作为地址锁存器;

2片74LS138,作为地址选通译码器;

1个二输入或非门;1个4输入或非门;1个二输入与非门;4个或门

12个发光二极管;12个限流电阻;1个复位信号开关。

五.硬件原理及电路图

见附录一

 

6.软件设计

1.系统工作流程图

初始化8255,8253

红灯全亮

绿灯黄灯全灭

1,3绿灯亮

2,4红灯亮

等待8253延时30sN

时间是否到?

Y

1,3绿灯灭

2,4红灯不变

1,3黄灯闪烁

等待黄灯闪烁5次?

N

Y

1,3红灯亮

2,4绿灯亮

8253延时30s

2,4绿灯灭

黄灯闪烁5次

图5系统工作流程图

2.流程图说明:

设计中输出使用了8255并行接口直接对各个路口共六个交通灯进行控制。

由于灯光控制只需要开、关两个状态,因此可以用8255的输出端口的输出来控制,即最多只需要六个端口,所以可以采用8位端口,又因为灯光控制不需要联络信号,所以按照方式0输出即可。

采用端口A,按以下方式连接:

南北向:

红灯接PA4,黄灯接PA5,绿灯接PA6;

东西向:

红灯接PA0,黄灯接PA1,绿灯接PA2;

6个交通灯可能的状态如表2所示:

表2控制信号对应各街口交通灯状态表

状态

PA7

PA6

PA5

PA4

PA3

PA2

PA1

PA0

PA

状态说明

0

0

0

0

1

0

0

0

1

11H

全部红灯

1

0

0

0

1

0

1

0

0

14H

南北红,东西绿

2

0

0

0

1

0

0

1

0

12H

南北红,东西黄

3

0

0

0

1

0

0

0

0

10H

南北红,东西关

4

0

1

0

0

0

0

0

1

41H

南北绿,东西红

5

0

0

1

0

0

0

0

1

21H

南北黄,东西红

6

0

0

0

0

0

0

0

1

01H

南北关,东西红

从状态1到状态6依次循环变换,又状态2和3,状态5和6之间各循环5次。

其中状态1和状态4持续30秒,其他状态持续0.5秒。

按照上面的流程,依次把相应的控制码输出到端口A,6个交通灯就能够按照要求实现交通管理。

以上状态保持时间通过8253得到,使用8253的定时器0,让其工作在方式3,从CLK端口输入1KHZ的频率,写入计数值500,则可以得到2HZ的输出频率,再通过调用程序来对得到的脉冲数进行计数,并以此来判断各个状态的时间,类似表2,可以将计数个数预先写入存储器中:

 

表3各街口交通灯状态说明

状态

状态保持时间/s

累计计数次数

状态说明

0

全部红灯

1

30

3CH

南北红,东西绿

2

0.5

3DH、3FH、41H、43H、45H

南北红,东西黄

3

0.5

3EH、40H、42H、44H、46H

南北红,东西关

4

30

82H

南北绿,东西红

5

0.5

83H、85H、87H、89H、8BH

南北黄,东西红

6

0.5

84H、86H、88H、8AH、8CH

南北关,东西红

在每个循环结束后,将计数单元清零,同时开始下一次循环。

七.工作总结

总结:

微机原理与接口技术这门课程在学习的时候总是感觉枯燥无味,直到现在要做课程设计才发现这门课程的实用性很强,由于以前学习的知识不够扎实,所以还是在边做边翻书,四个人忙的一团糟,但还是在老师和同学的帮助下顺利的做完了。

直到做完了才记住如8088的引脚定义,8255的结构功能等等,这样一来也更加深了我们对书本上的知识的理解,也是对校训致知于行的亲身实践体验。

设计中的一些不足

(1)本电路没有设置显示倒计时的七段LED数码管,如果应用到街道上,不利于司机、行人把握

(2)在上机调试中发现,由于此软件延时的时间均为估算时间,不是特别准确,对于交通要求特别高的地方不宜采用。

如果是放到一个大的交通灯系统中,会影响到各个交通灯的运行时间.

 

附录一:

图6系统硬件连接图

 

附录二:

主要源程序

SSTACKSEGMENTSTACK

DW64DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAL,80H;送控制字

MOVDX,0646H;送控制字寄存器地址放DX寄存器

OUTDX,AL;把控制字放入控制字寄存器

MOVAL,00FH;A口的内容送入AL,让所有的红灯全亮。

MOVDX,0640H;A口地址送入DX寄存器

OUTDX,AL;送入A口地址,红灯全亮

CALLDELAY1;延迟2秒

REYT:

MOVAL,0C3H;将A口的内容送入AL,东西街亮绿灯,南北街红灯亮

MOVDX,0640H;A口地址送入DX寄存器

OUTDX,AL;东西街亮绿灯,南北街亮红灯。

CALLDELAY2延迟10秒

MOVAL,003H;将A口的内容送入AL,东西街绿灯灭,南北街红灯亮

OUTDX,AL;东西街绿灯灭,南北街红灯亮

MOVCX,5;循环5次数;控制东西路黄灯闪

EWYT:

CALLDELAY3;调用延时程序

MOVAL,00CH;A口的内容送入AL控制黄灯亮

MOVDX,0642H;A口地址送入DX

OUTDX,AL;东西黄灯亮

CALLDELAY3;延迟1秒

MOVAL,00H;A口的内容送入AL控制黄灯灭

MOVDX,0642H;A口的地址送入DX

OUTDX,AL;东西黄灯灭

LOOPEWYT;循环EWYT

MOVAL,3CH;东西红灯亮,南北绿灯亮

MOVDX,0640H;A口的地址送入DX

OUTDX,AL;东西红灯亮

CALLDELAY2;调用延时程序

MOVAL,00CH;将A口的内容送入AL,东西街绿灯亮,南北街红灯灭

OUTDX,AL;东西街绿灯亮,南北街红灯灭

MOVCX,5;循环5次;控制南北街黄灯闪

SNYT:

CALLDELAY3;调用延时程序

MOVAL,003H;B口内容送入AL,南北黄灯亮

MOVDX,0642H;B口的地址送入DX

OUTDX,AL;南北黄灯亮

CALLDELAY3;调用延时程序

MOVAL,00H;B口的内容送入AL,控制南北街的黄灯灭

MOVDX,0642H;B口的地址送入DX

OUTDX,AL;南北黄灯灭

LOOPSNYT;循环SNYT

JMPREYT

延时程序:

DELAY1:

PUSHCX

MOVBX,10

AA0:

MOVCX,0F000H

AA1:

PUSHAX

POPAX

LOOPAA1

DECBX

CMPBX,0

JNEAA0

POPCX

RET

DELAY2:

PUSHCX

MOVBX,10

AA4:

MOVCX,0FFFFH

AA2:

PUSHAX

POPAX

LOOPAA2

DECBX

CMPBX,0

JNEAA4

POPCX

RET

DELAY3:

PUSHCX

MOVBX,10

AA5:

MOVCX,0F000H

AA3:

PUSHAX

POPAX

LOOPAA3

DECBX

CMPBX,0

JNEAA5

POPCX

RET

CODEENDS

ENDSTART

 

附录三:

参考文献资料

1.陈够喜,邵坚婷,张军编.微机原理应用实验教程.人民邮电出版社.2006

2.冯博琴,吴宁主编.微型计算机原理与接口技术.第二版.清华大学出版社.2011

3.沈美明主编.IBMPC机汇编语言程序设计.清华大学出版社.2010

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2