微机8086 8255 交通灯 课程设计.docx

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

微机8086 8255 交通灯 课程设计.docx

《微机8086 8255 交通灯 课程设计.docx》由会员分享,可在线阅读,更多相关《微机8086 8255 交通灯 课程设计.docx(24页珍藏版)》请在冰点文库上搜索。

微机8086 8255 交通灯 课程设计.docx

微机80868255交通灯课程设计

 

交通灯控制课程设计报告

 

课程名称:

微型计算机技术及应用

专业:

电气工程及其自动化

班级:

************

学号:

************

姓名:

************

指导教师:

************

日期:

2013-12-10

第一章设计内容的概述

一.设计任务内容

二.设计要求

第二章硬件的设计

一.设计过程简单分析

二.硬件系统工作原理

三.硬件原理

1.8086各个引脚的连接方法

2.时钟发生器8284芯片的说明

第三章程序设计

一.流程图

二.程序代码

三.硬件清单

四.芯片资料

1.8255介绍

2.8253介绍

3.8282介绍

4.3—8译码器74LS138介绍

第四章总结

第一章设计内容的概述

一.设计任务内容

用8255来控制LED灯,用8253来定时,达到交通控制的目的。

二.设计要求

一开始,(南北用1,3东西为2,4)四个路口都为红灯,然后南北变为绿灯通车东西变为红色,30秒之后后,黄灯变亮,黄灯闪烁5次之后南北变为红灯,东西变为绿灯通车,30秒之后后,黄灯变亮,黄灯闪烁5次之后南北变绿灯,东西变为红灯,重复上述过程。

 

第二章硬件的设计

一.设计过程简单分析

分析:

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

30秒延时及闪烁由8253控制,由闪烁的实现方法可由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口数据输入到8086,8086检测到高电平既完成30s定时。

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

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

二.硬件系统工作原理

工作原理说明:

此系统是通过并行接口芯片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既基本输入输出方式,红绿灯的转换由软件编程实现。

三.硬件原理

由于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。

1.8086各个引脚的连接方法

(1)

引脚:

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

=1,

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

)。

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

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

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

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

这里采用5MHz。

(3)

(+5V),GND(地):

CPU所需电源

=+5V。

GND为地线。

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

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

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

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

(5)RESET:

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

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

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

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

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

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

(6)MN/

(Minimun/MaximuN):

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

此时MN/

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

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

:

8位数据输入;

:

8位数据输出;STB:

选通信号;

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

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

由于只用

,所以用两片即可。

2.时钟发生器8284芯片的说明

(1)时钟信号发生器:

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

CLK:

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

(2)复位生成电路:

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

此时,

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

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

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

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

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

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

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

 

 

第三章程序设计

一.流程图

 

二.程序代码

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

三.硬件清单

1片8255,作为控制外设

1片8253,作为数据控制器

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

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

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

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

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

四.芯片资料

1.8255介绍

8255的内部结构

 

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口和控制寄存器),用二位地址编码即可实现选择。

参见下表。

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)数据输入操作

用于输入操作的联络信号有:

STB(StroBe)—选通脉冲,输入,低电平有效。

当外设送来STB信号时,输入数据装入8255A的锁存器。

IBF(InputBufferFull)—输入缓冲器满信号,输出,高电平有效。

IBF信号有效,表明数据已装入锁存器,因此它是一个状态信号。

INTR(INTerruptRequest)—中断请求信号,高电平有效,当IBF数据输入过程:

当外设准备好数据输入后,发出信号,输入的数据送入缓冲器。

然后IBF信号有效。

如使用查询方式,则IBF即作为状态信号供查询使用;如使用中断方式,当信号由低变高时,产生INTR信号,向单片微机发出中断。

单片微机在响应中断后执行中断服务程序时读入数据,并使INTR信号变低,同时也使IBF信号同时变低。

以通知外设准备下一次数据输入。

(3)数据输出操作

用于数据输出操作的联络信号有:

ACK(ACKnowledge)—外设响应信号输入,低电平有效。

当外设取走输出数据,并处理完毕后向单片微机发回的响应信号为高,信号由低变高(后沿)时,中断请求信号有效。

向单片微机发出中断请求。

OBF(OutputBufferFull)——输出缓冲器满信号,输出,低电平有效。

当单片微机把输出数据写入8255A锁存器后,该信号有效,并送去启动外设以接收数据。

INTR—中断请求信号,输出,高电平有效。

数据输出过程:

外设接收并处理完一组数据后,发回ACK信号。

该信号使OBF变高,表明输出缓冲器已空。

如使用查询方式,则OBF可作为状态信号供查询使用;如使用中断方式,则当ACK信号结束时,INTR有效,向单片微机发出中断请求。

在中断服务过程中,把下一个输出数据写入8255A的输出缓冲器。

写入后OBF有效,表明输出数据已到,并以此信号启动外设工作,取走并处理8255A中的输出数据。

表7–28255AC口联络信号定义

2.8253定时计数器

8253内部可分为6个模块,每个模块的功能如下:

1.数据总线缓冲器及数据总线D0~D7

2.读/写控制逻辑及控制引脚

CS*A1A0

I/O地址

读操作RD*

写操作WR*

000

001

010

011

40H

41H

42H

43H

读计数器0

读计数器1

读计数器2

无操作

写计数器0

写计数器1

写计数器2

写控制字

3.控制字寄存器

在初始化编程时,CPU写入方式控制字到控制字寄存器中,用以选择计数通道及其相应的工作方式。

8253的控制字:

8253的工作方式也是有控制字来决定,其控制字意义如下

4.计数通道0、计数通道1、计数通道2

3个计数通道内部结构完全相同。

每个计数通道都由一个16位计数初值寄存器、一个16位减法计数器和一个16位计数值锁存器组成

计数初值存于预置寄存器,在计数过程中,减法计数器的值不断递减,而预置寄存器中的预置不变。

输出锁存器用于写入锁存命令时,锁定当前计数值。

计数器的3个引脚说明:

(1)CLK时钟输入信号

在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1

(2)GATE门控输入信号

控制计数器工作,可分成电平控制和上升沿控制两种类型

(3)OUT计数器输出信号

当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号

8253有6种工作方式,由方式控制字确定

区分这6种工作方式的主要标志由3点:

一是输出波形不同;二是启动计数器的触发方式不同;三是计数过程中门控信号GATE对计数器操作的控制不同。

1..方式0--低电平输出(GATE信号上升沿继续计数)

2.方式1--低电平输出(GATE信号上升沿重新计数)

3.方式2--周期性脉冲输出

4.方式3--周期性方波输出

OUT输出低电平,装入计数值n后,OUT立即跳变为高电平。

如果当前GATE为高电平,则立即开始减“1”计数,OUT保持为高电平,若n为偶数,则当计数值减到n/2时,OUT跳变为低电平,一直保持到计数值为“0”,系统才重新置入计数值n,实现循环计数。

这时OUT端输出周期为n×CLK周期,占空比为1:

1的方波序列:

若n为奇数,则OUT端输出周期为n×CLK周期,占空比(n+1)/2:

(n-1)/2的近似方波序列。

5.方式4--单次负脉冲输出(软件触发)

6.方式5--单次负脉冲输出(硬件触发)

每种工作方式的设置过程类似:

⑴设定工作方式

⑵设定计数初值

〔⑶硬件启动〕

⑷计数初值进入减1计数器

⑸每输入一个时钟计数器减1的计数过程

⑹计数过程结束

3.8282

:

8位数据输入;

:

8位数据输出;STB:

选通信号;

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

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

由于只用

,所以用两片即可。

4.3—8译码器74LS138

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

第四章总结

在这多设计交通灯系统的过程中,我深深体会到了理论和实际的差距。

在做关于交通灯系统设计中我查阅很多这方面的资料,了解一些芯片的功能,比如说要了解8086芯片中各个引脚的功能,怎么样去使用8255这个可编程并行接口芯片,怎么样使用8253来定时及输出一定频率的脉冲,怎么样用8282这个地址锁存器来存储高位地址和低位地址以及交通有哪些规则.我在已有的理论基础上,明白了制作实物的一般过程。

整个设计过程,开始最大的问题是不知道从哪里下手,从哪里开始切入,后来通过查资料明白了这个问题。

再后来就是编程,尤其是芯片初始化,整了很多次,最后还是在同学的帮助下完成的。

其实,准确的说不是我一个人独自完成的,在许多地方,我的同学都提出了宝贵的意见,再次感谢他们。

 

 

.

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

当前位置:首页 > 初中教育 > 语文

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

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