微机原理课程设计基于8086彩灯控制器的设计.docx
《微机原理课程设计基于8086彩灯控制器的设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计基于8086彩灯控制器的设计.docx(21页珍藏版)》请在冰豆网上搜索。
![微机原理课程设计基于8086彩灯控制器的设计.docx](https://file1.bdocx.com/fileroot1/2022-11/20/ff0fe2e6-8de1-4dfc-8b0c-12097612dde8/ff0fe2e6-8de1-4dfc-8b0c-12097612dde81.gif)
微机原理课程设计基于8086彩灯控制器的设计
微机原理与接口技术课程设计报告
题目基于8086彩灯控制器的设计
系 别物理电气信息学院
专 业电气工程与自动化
姓 名
一、课设目的及功能实现
课设目的:
(1)巩固和加深微机原理所学知识;
(2)学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;
(3)通过在对循环彩灯效果的设计和制作,深入了解与掌握利用可编8255A进行开关量控制的原理与方法。
所实现的功能:
我们以8255交通灯的一种显示效果为例,介绍彩灯控制器显示的基本原理。
设有一排8个水平排列的彩灯,某种显示方式为从左到右0.5秒点亮。
其控制过程如下:
若以“0”代表彩灯点亮,以“1”代表彩灯熄灭,则开始时刻,L1黄灯亮1.5秒后,红灯L2,L3,L4,L5间隔0.5秒依次亮,然后绿灯L6.L7.L8间隔0.5秒依次亮;循环7次。
控制器将一帧8个数据送至8个彩灯的控制端,其中,最左边的一段彩灯对应的控制数据为“0”,其余的数据均为1,即11111110.当8个数据送完以后,控制器停止送数,保留这种状态(定时)1.5秒,此时黄灯被点亮,其余彩灯熄灭。
随后,控制器又在极短的时间内将数据111111101送至彩灯的控制端,并定时0.5秒,这段时间,第一个红灯被点亮。
由于送数据的过程很快,我们观测到的效果是第一个红灯被点亮0.5秒后,第2个红灯接着被点亮,即每隔0.5秒显示一帧图样。
如此下去,最后控制器将数据01111111送至8个彩灯的控制端,则L8绿灯被点亮。
依次循环7次。
二、系统框图
彩灯控制器系统框图如下所示:
图1系统框图
三、设计原理
在这次课程设计中主要用到了8255A可编程并行接口芯片可用程序来设置芯片的工作方式,通用性强,使用灵活,可为多种不同的CPU与外设之间提供并行输入/输出的通道。
A8255工作原理及内部结构
1、8255A内部结构
8255A的内部结构如图2所示,它由4部分组成:
(1)数据总线缓冲器
它是一个双向三态8位缓冲器,用作与系统总线连接是的缓冲部件.CPU与8255A之间所有的数据的发送与接收以及CPU向8255A发送的控制信息和8255A向CPU回送的状态信息都是通过它传送的
(2)三个8位端口PA、PB、PC
端口A(PA口):
有一个8位数据输入锁存器和一个8位数据输入锁存/缓冲器;
端口B(PB口):
有一个8位数据输入缓冲器和一个8位数据输入/输出,锁存/缓冲存储器器;
端口C(PC口):
有一个8位数据输入缓冲存储器器和一个8位数据输出锁存/缓冲器。
通常PA口与PB口用作输入/输出的数据端口,PC口用作控制和状态信息端口。
PC口可以分为两个四位的端口,每个端口包含一个四位锁存器,可分别同PA口和PB口配合使用,用作控制信号(输出)或作为状态信号(输入)。
(3)A组和B组控制电路
A组:
PA口和PC口的高四位(PC7~PC4);
B组:
PB口和PC口的低四位(PC3~PC0)。
这两组控制电路一方面接收CPU发来的控制字并决定8255A的工作方式;另一方面接收来自读写控制逻辑电路的读写命令,完成接口的读写操作。
(4)读/写控制逻辑
用来管理数据信息。
控制字和状态字的传送,它接收来自CPU的地址总线的A1,A0和控制总线的信号RD.WR.RESET等,并向8255A的A,B两组发送命令.由它控制把CPU发出的控制命令字或输出的数据送到相应的端口,或把外设的状态信息或输入的数据从相应的端口送到CPU.
2、8255A引脚功能
8255A芯片除电源和地引脚以外,其他引脚可分为两组,引脚如图3所示:
(1)8255A与外设连接引脚
8255A芯片与外设连接的有24条双向、三态数据引脚,分成三组,分别对应于A,B,C三个数据端口:
PA7-PA0,PB7-PB0,PC7-PC0.
(2)8255A与CPU连接引脚
D7——与CPU侧连接的八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器选择输入信号;
PA7~PA0——A口外设双向数据线;
PB7~PB0——B口外设双向数据线;
PC7~PC0——C口外设双向数据线;
RESET——复位输入信号
/CS
/RD
/WR
A1A0
执行的操作
0
0
1
00
读端口A
0
0
1
01
读端口B
0
0
1
10
读端口C
0
0
1
11
非法状态
0
1
0
00
写端口A
0
1
0
01
写端口B
0
1
0
10
写端口C
0
1
0
11
写控制字端口
1
未选通
B8255A的工作方式控制字
8255A有两个控制字:
方式选择控制字和端口C置位/复位控制字。
这两个控制字公用一个地址,即控制端口地址,用控制字的D7位来区分这两个控制字,D7=1为方式选择控制字;D7=0为端口置位/复位控制字。
1、方式选择控制字
如图4所示:
2、端口C置位/复位控制字
端口C置位/复位控制字的格式如下图所示:
D3-D1三位的编码与端口C的某一位相对应,D0决定置位或复位操作,最高位为0是端口C置位或复位控制字标志。
如图5所示
0
D3
D2
D1
D0
D3
D2
D1
位选择
0
0
0
PC0
0
0
1
PC1
0
1
0
PC2
0
1
1
PC3
1
0
0
PC4
1
0
1
PC5
1
1
0
PC6
1
1
1
PC7
图58255A端口C置
3、8255A的工作方式
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源引脚图供电,能在以下三种工作方式下工作:
方式0—基本输入/输出方式
方式0下,每一个端口都作为基本输入或输出口,端口C的高4位和低4位以及端口A、端口B都可独立的设置为输入口或输出口。
4个端口的输入或输出可有16种组合。
8255A工作于方式0时,CPU可采用无条件读写方式与8255A交换数据,也可采用查询方式与8255A交换数据。
采用查询方式时,可利用端口C作为与外设的联络信号。
方式1—选通输入/输出方式:
适用于查询和中断方式。
方式2—双向选通输入/输出方式:
方式2为双向传输方式,8255A的方式2可使8255A与外设进行双向通信,既能发送数据,又能接受数据,可采用查询方式和中断方式进行传输。
C8086的引脚信号
如图6所示:
8086具有两种不同工作方式,即最小模式和最大模式。
若把MN/
引脚连至电源+5V,则为最小模式。
若把它接地,则处在最大模式。
1、与工作模式无关的引脚功能
(1)AD15-AD0(双向,三态)
低16位地址或数据的复用引脚线,采用分时的多路转换方法来实现对地址线和数据线的复用。
在总线周期的T1状态,这些引线表示为低16位地址线,在总线周期的T2,T3,TW状态,这些引线用作数据总线。
可见对复用信号是用时间来加以划分的,它要求在T1状态先出现低16位的地址时,用地址锁存器加以锁存,这样在随后的T状态,即使这些线用作数据线,而低16位地址线的地址状态却被记录保存下来,并达到地址总线上。
在DMA方式下,这些引线被浮空,置为高阻状态。
(2)A19/S6-A16/S3
为地址或状态复用引脚线,在总线周期的T1状态,这些引线表示为最高4位地址线,在总线周期的其他T状态时,这些引线用作提供状态信息。
同样需要地址锁存器对T1状态出现的最高4位地址加以锁存。
状态信息S6总是为低电平。
S5反映当前允许中断标志的状态。
S4与S3一起指示当前哪一个段寄存器被使用。
其规定如下表所示:
表2S4、S3代码组合
S4
S3
当前正在使用的段寄存器名
0
0
ES
0
1
SS
1
0
CS或未用
1
1
DS
(3)/BEH/S7,(输出,三态)在T1周期时,它作为CPU访问存储器高位库德允许信号,低电平有效。
它与AD0结合在一起,决定访问存储器高位库和低位库。
在其他T状态时,作为一条状态信号线。
(4)/RD(输出,三态)
读信号,当其有效时,表示正在对存储器或I/O接口进行读操作,若IO//M为低电平,表示读取存储器的数据,若IO//M为高电平,表示读取I/O端口的数据。
DMA方式时,此线被浮置为高阻。
(5)READY(输入)
为准备就绪信号,是由选中的存储器或I/O端口送来的响应信号,当有效电平为高电平时,表示被访问的存储器或I/O端口已准备就绪,可完成一次数据传送。
CPU在读操作总线周期的T3状态开始处,采样READY信号,若发现为低电平,则在T1状态结束后,插入等待状态TW,然后在TW开始处,继续采样READY信号,直至变为有效(高电平),才进入T4状态,完成数据传送,以结束总线周期。
(6)/TEST(输入)
为检测信号,低电平有效。
本信号由等待指令WAIT来检查,/TEST信号和WAIT指令配合使用。
当CPU执行WAIT指令时,CPU处于等待状态,并且每隔5个T对该信号进行一次测试,一旦检测到/TEST号为低电平,则结束等待状态,继续执行WAIT指令下面的指令。
WAIT指令是使CPU与外部硬件同步的,/TEST相当与外部硬件的同步信号。
(7)INTR(输入)
可屏蔽中断请求信号,高电平有效。
CPU在执行每条指令的最后一个T状态时,去采样INTR信号,若发现为有效,而中断允许标志IF又为1时,则CUP在结束当前指令周期后响应中断请求,转去执行中断处理程序。
(8)NMI(输入)
非屏蔽中断请求信号,为一个边缘触发信号,不能由软件加以屏蔽。
只要在NMI线上,出现由低到高的变化信号,则CPU就会在结束当前指令后,转去执行非屏蔽中断处理程序。
(9)RESET(输入)
复位信号,高电平有效。
复位时该信号要求维持高电平,至少四个时钟周期,若是初次加电,则高电平信号至少要保持50微秒。
复位信号的到来将立即结束CPU的当前操作,内部寄存器恢复到初始状态。
当RESET信号从高电平回到低电平时,即复位后进入重新启动时,便执行从内存FFFF0H处开始的指令,通常在FFFF0H存放一条无条件转移指令,转移到系统程序的实际入口处。
这样只要系统被复位启动,就自动进入系统程序。
(10)CLK(输入)
时钟信号,它为CPU和总线控制电路提供基准时钟。
(11)电源和地
VCC为电源引线,单一的+5V电源。
引脚1和2时为两条GND线,要求均要接地。
(12)MN//MX(输入)
为最小/最大模式信号。
它决定8086的工作模式。
将此引线接电源+5V则8086工作于最小模式;若此引线接地则8086工作在最大模式。
2、最小模式下的引脚功能
把MN//MX引脚连至电源,8086处于最小模式,此时引脚24-31的功能含义如下:
(1)/INTA(输出):
CPU向外输出的中断响应信号。
(2)ALE(输出):
地址锁存允许信号,高电平有效,将地址信息锁存到地址锁存器中。
(3)/DEN(输出三态):
数据允许信号。
(4)DT//R(输出三态):
数据发送/接收控制信号。
(5)/M/L(输出三态):
访问存储器或I/O端口的控制信号。
(6)/W