交通灯的设计.docx

上传人:b****6 文档编号:6170819 上传时间:2023-01-04 格式:DOCX 页数:16 大小:196.39KB
下载 相关 举报
交通灯的设计.docx_第1页
第1页 / 共16页
交通灯的设计.docx_第2页
第2页 / 共16页
交通灯的设计.docx_第3页
第3页 / 共16页
交通灯的设计.docx_第4页
第4页 / 共16页
交通灯的设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

交通灯的设计.docx

《交通灯的设计.docx》由会员分享,可在线阅读,更多相关《交通灯的设计.docx(16页珍藏版)》请在冰豆网上搜索。

交通灯的设计.docx

交通灯的设计

电气工程学院

微型计算机原理及接口技术课程设计报告书

 

姓名:

班级:

学号:

指导教师:

完成日期:

2011年12月12日

 

第1节交通灯的设计要求1

1.1分析设计要求1

1.2方案比较及评估论证1

1.3系统原理2

第2节各个器件的组成框图3

2.18255的组成框图3

2.28253的引脚图及功能4

2.374LS138译码器的引脚及功能5

第3节组成部分介绍6

3.1电路设计7

3.1流程图8

3.2程序代码9

第4节总电路图及原理14

第5节调试记录及结果分析15

第6节总结15

第7节参考文献16

第一节交通灯的设计要求

一.设计任务及要求:

                          

交通信号灯的控制:

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口上,灯的亮灭可直接由8086输出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=1s,因此通道0的计数初值为10000=2710H。

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

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

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

方案二:

   考虑到题目要求黄灯闪烁的频率为1HZ,既每秒1次,那么前0.5秒黄灯亮,后0.5秒黄灯灭,所以最小的定时单位为0.5秒,频率为2HZ,30秒即为60个0.5秒。

显然如方案一一样一个计数器无法完成,所以采用两个计数器级联的方式,将计数器0的输出OUT0接到计数器1的输入端CLK1,CLK0=1MHZ,计数值为50000=C350H,OUT0=20HZ,CLK1=20HZ,记数值=10,OUT1=2HZ。

并且计数器0工作于方式3用于产生方波信号,计数器1工作方式2,产生负脉冲信号,计数器1的输出端OUT1接入8255芯片的PC5口,用于读取负脉冲个数,以完成计时功能。

 8086及8255设置同方案一,8086则每隔0.5秒变换一次黄灯的状态,持续五次,完成闪烁的功能。

经比较,方案二8086在黄灯闪烁时需频繁发送数据到8255,加重了系统的负担,因此我决定采用方案一。

三.系统原理

工作原理说明:

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

红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。

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

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

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

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

 

第二节各个器件的组成框图

一.8255的引脚功能

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,及可以同时传递8位、16位、32位等。

用+5V单电源供电,能在以下三种方式下工作:

方式0——基本输入/输出方式、方式1——选通输入/输出方式、方式2——双向选通工作方式。

8255的内部结构及引脚如图1所示:

 

 

8255工作方式控制字和C口按位置位/按位复位控制字格式如下图2所示:

二.8253的引脚及其功能

8253由以下几个部分组成:

(1)数据总线缓冲器(8位、三态、双向);

(2)读/写控制逻辑;

CS:

片选信号,低电平有效;RD:

读信号,低电平有效;WR:

写信号,低电平有效A1A0:

端口选择信号

(3)三个通道(0~2);

(4)一个控制寄存器;

当A1A0分别为00011011时分别选中三个通道和控制字寄存器在8088系统中,8088的A1A0分别与8253的A1A0相连在8086系统中,通常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253的A1A0相连Intel8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。

每个通道包括:

8位控制字寄存器、16位计数初值寄存器、减一计数器和输出锁存器。

作定时器用:

其CLK端上的输入脉冲应是标准的、精确的;作计数器用:

对其CLK端上的脉冲计数,脉冲宽度可以不等。

采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间=时钟脉冲周期X预置的计数初值每个通道:

CLK计数脉冲或标准脉冲输入端 OUT计数值为0时输出一个脉冲 GATE允许端,当GATE=1时允许计数。

三.74LS138译码器的引脚及功能

74LS138译码器引脚图,逻辑图及功能表如下:

73LS138真值表如下:

 由真值表知,当S1=0或

时,译码器处于禁止状态,输出

全为1;当

0时,译码器被选通,处于工作状态,译码器输出与输入之间的逻辑关系为

   

 

第三节组成部分介绍

一.电路设计

1、计时功能实现逻辑:

通过8253计数器0和计数器1级联实现准确定时;用8255的A口低六位控制东西、南北路口交通灯的状态;灯的亮灭可直接由8086输出0,1控制。

用8259A管理可屏蔽中断即开机初始化。

采用两个计数器级联的方式,并且计数器0工作于方式3用于产生方波信号,计数器1工作方式0,计数到时高电平信号。

计数器1的输出端OUT1接入8255芯片的PC0口,通过查询8255的C口的值,以完成计时功能。

将计数器0的输出OUT0接到计数器1的输入端CLK1,而CLK0的输入采用1.19MHZ的时钟频率,计数器0计数初值为59499=0E86BH,则OUT0=20HZ,即计数器1的时钟频率为20HZ。

当计数器1的记数初值为9时,0.5S后OUT1输出一高电平。

8086通过读取8255C口的值,来决定对A口写入的数据。

因此每隔0.5秒8086变换灯的状态,持续6次即完成3秒的闪烁功能。

当计数器1的记数初值为899时,45S后OUT1输出一高电平。

通过查询8255的C口PC0的状态改变,达到延时45秒的作用。

同理计数器1的计数初值分别为59、799时,分别为3、40秒的延时。

2、译码电路设计

通过分析8259、8253、8255各端口地址,设计合理的地址译码电路。

8259的地址为20H、21H,8253的地址为40H、41H、42H、43H,8255的端口地址为0F0H、0F1H、0F2H、0F3H。

故芯片的地址只与8086的地址的低8位有联系,不妨设高十二为全为1将它们相与后作为38译码器的始能信号E3。

再分析发现8259、8253、8255各端口地址的低八位其中D2、D3均为0,将8086的地址总线的D2、D3作为38译码器的始能信号E1、E2。

将8086的地址总线的D0、D1分别与8253和8255的A0、A1连接,利用D4、D5、D6、D7构成译码电路。

将8086的地址总线的D0与8259的A0连接,利用D2、D4、D5、D6、D7通过38译码器构成译码电路。

具体见下图所示:

 

 

二.流程图

三.程序代码

DATASEGMENT;设置数据段,以及端口地址分配

PORTAEQU218H

PORTBEQU219H

PORTCEQU21AH

PTCON8255EQU21BH

PORT0EQU238H

PORT1EQU239H

PORT2EQU240H

PTCON8253EQU241H

DATAENDS

CODESEGMENT

ASSUMEDS:

DATA,CS:

CODE

INIT:

MOVAX,DATA

MOVDS,AX

MOVDX,PTCON8253

MOVAL,36H

OUTDX,AL

MOVDX,PORT0

MOVAX,2710H

OUTDX,AL

MOVAL,AH

OUTDX,AL;通道0工作方式3周期0.01s

MOVDX,PTCON8253

MOVAL,71H

OUTDX,AL;通道1工作方式1

MOVDX,PTCON8253

MOVAL,96H

OUTDX,AL

MOVDX,PORT2

MOVAL,64H

OUTDX,AL;通道2工作方式3周期1s8253初始化完成

MOVDX,PTCON8255

MOVAL,80H

OUTDX,AL;8255初始化A,B,C口均工作在方式0

MOVDX,PORTA

MOVAL,0

OUTDX,AL

MOVDX,PORTB

MOVAL,0FH

OUTDX,AL

MOVDX,PORTC

MOVAL,0FH

OUTDX,AL;灯初始化完成

STA:

MOVDX,PORTA

MOVAL,0A0H

OUTDX,AL

MOVDX,PORTB

MOVAL,0F0H

OUTDX,AL

MOVDX,PORTC

MOVAL,50H

OUTDX,AL;1,3绿灯亮,2,4红灯亮

MOVDX,PORT1

MOVAX,0BB8H

OUTDX,AL

MOVAL,AH

OUTDX,AL;8253通道1赋值开始计时

SCAN1:

MOVAL,0

MOVDX,PTCON8255

MOVAL,90H

OUTDX,AL

MOVDX,PORTA

INAL,DX

ANDAL,0FH

CMPAL,1

JNZSCAN1;扫描PA7口

FLA1:

MOVDX,PTCON8255

MOVAL,80H

OUTDX,AL

MOVDX,PORTC

MOVAL,0F0H

OUTDX,AL

MOVDX,PORTB

MOVAL,50H

OUTDX,AL

MOVCX,0

TEST1:

MOVDX,PTCON8255;检测PB7

MOVAL,82H

OUTDX,AL

 

MOVDX,PORTB

INAL,DX

ANDAL,0FH

MOVAH,AL

MOVDX,PTCON8255

MOVAL,82H

OUTDX,AL

MOVDX,PORTB

INAL,DX

ANDAL,0FH

XORAL,AH

ADDCL,AL

CMPCL,9

JNZTEST1;闪烁5次

MOVDX,PTCON8255

MOVAL,80H

OUTDX,AL

MOVDX,PORTA

MOVAL,50H

OUTDX,AL

MOVDX,PORTB

MOVAL,0F0H

OUTDX,AL

MOVDX,PORTC

MOVAL,0A0H;1,3红灯亮,2,4绿灯亮

MOVDX,PORT1

MOVAX,0BB8H

OUTDX,AL

MOVAL,AH

OUTDX,AL;8253通道1赋值开始计时

SCAN2:

MOVAL,0

MOVDX,PTCON8255

MOVAL,90H

OUTDX,AL

MOVDX,PORTA

INAL,DX

ANDAL,0FH

CMPAL,1

JNZSCAN2

FLA2:

MOVDX,PTCON8255

MOVAL,80H

OUTDX,AL

MOVDX,PORTC

MOVAL,0F0H

OUTDX,AL

MOVDX,PORTB

MOVAL,0A0H

OUTDX,AL

TEST2:

MOVDX,PTCON8255

MOVAL,88H

OUTDX,AL

MOVDX,PORTC

INAL,DX

ANDAL,0FH

MOVAH,AL

MOVDX,PTCON8255

MOVAL,88H

OUTDX,AL

MOVDX,PORTC

INAL,DX

ANDAL,0FH

XORAL,AH

ADDCL,AL

CMPCL,9

JNZTEST2;闪烁5次

CODEENDS

ENDSTA

 

第四节总电路图及原理

由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的

线分别与8086CPU的

线相连,而将8086的

线作为选通信号。

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

的首地址;若是按8086CPU地址来看,则8255A的地址是PA口地址即(CS+000H),PB口地址为(CS+002H),PC口地址为(CS+004H),命令控制口地址为(CS+006H)。

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

第五节调试记录及结果分析

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

如果是放到一个大的交通灯系统中,会影响到各个交通灯的运行时间,可能整个系统对交通的指挥调度会大大偏离理论计算,不能有效地防止和消除交通堵塞现象。

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

当出现紧急情况,在特种车(如消防车、救护车)正要通过时,这种编程方式就不能完成;

 

第六节总结

经过这次课程设计,对微机原理有了更深入的了解,首先在做关于交通灯系统设计时,我认真查阅资料,学习关于这方面的知识,比如说要了解8086芯片中各个引脚的功能,怎么样去使用8255这个可编程并行接口芯片,怎么样使用8253来定时及输出一定频率的脉冲,怎么样用8282这个地址锁存器来存储高位地址和低位地址以及交通有哪些规则.可以说在理论学习的基础上,又下了一次苦工夫,算是明白了设计一个系统的过程;也让我体会到要想成功地设计某个东西,光学好专业知识是不够的,必须要系统的知识,无论在哪方面都要有个明白的概念。

 

这学期在学习微机原理大都都半知半解的,通过对8086,8255以及8253的运用,对于接口技术的应用知识不仅仅停在表面的理论认识,更多的是有了动手操作的能力。

只有这样才不至于在设计过程中摸不着头脑,知道去哪些是需要查的资料,还有一点,我觉得我在芯片编程方面,特别是在初始化方面是我最大的困难,或许是我的汇编语言学得不够好,我只能借助参考资料,查每一条指令的作用与功能,这样一来又巩固了我的对汇编语言的了解.使得自己在对8255的初始化以及控制字的初始化的应用程序编写都有了很大的进步。

 

第七节参考文献

《微型计算机原理及接口技术》裘雪红西安电子科技大学出版社

《微型计算机原理及运用》谭浩强清华大学出版社

《汇编语言程序设计》

《汇编语言程序设计实验指导》梁启先清华大学出版社

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1