8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface),它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。通过对它进行编程,芯片可工作于不同的工作方式。此次课程设计的目的就是利用端口和8255协同工作来实现LED显示功能,对8255A芯片进行编程使流水灯左移或右移,通过延时程序使流水灯进行顺序点亮。通过这次课程设计掌握8255A的功能特点、工作原理以及显示器接口的基本原理与方法技术。
第1章 利用8255A芯片实现流水灯闪烁设计的概述
流水灯在日常的生活中有着广泛的应用,例如,许多楼面上的彩灯广告就是应用了流水灯设计。此次的课程设计的题目是利用了端口和8255A协同工作来实现LED显示功能,编写程序,使用8255的A口和B口均为输出,接8个或16个发光二极管,实现流水灯的显示效果。在实验中8255A的A和B两个端口不能同时赋值,从而我们可以用通用寄存器BX对所需要赋值的数据进行存储,因为BX可以分从高8位寄存器BH和低8位寄存器BL两部分进行独立的操作,我们用寄存器BH对A口进行赋值,用寄存器BL对B口进行赋值,通过延时一段时间再对BH和BL进行移位和输出,实现了流水灯的效果。
第2章 三种方案的论述与最终方案的确定
2.1 第一种方案的论述
第一种方案,我们使用了8086CPU芯片与8255A芯片一起实现了流水灯闪烁的设计,同时还使用了地址锁存器74LS373芯片。74ls373是常用的地址锁存器芯片,它是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片。在方案一中,当8086CPU的引脚ALE(地址锁存允许信号,输出,高电平有效,用作地址锁存器74LS373的锁存控制信号)处于下降沿时将8086CPU输出的地址信息进行锁存,以定义8255A的工作方式。下面先对74LS373芯片进行简介:
1.地址锁存器74LS373的内部电路与工作原理

74373 三态缓冲输出的8D锁存器(3S,锁存允许输入有回环特性),其输出端 Q0~Q7 可直接与总线相连,74LS373的LE端直接与8086CPU的ALE信号连接。
1脚是三态允许控制端(OE),是低电平有效。当1脚是高电平时,不管输入3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)如何,也不管11脚(LE 锁存允许端)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态)。当1脚是低电平时,只要11脚(LE 锁存允许端)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)的状态。
11脚是锁存允许端(LE),当LE由高变低时,输出端8 位信息被锁存,直到LE 端再次有效。 当三态允许控制端OE为低电平时,三态门导通,允许Q0~Q7输出,OE为高电平时,输出悬空。当74LS373用作地址锁存器时,应使OE为低电平,此时锁存使能端C为高电平时,输出Q0~Q7 状态与输入端D1~D7状态相同;当LE发生负的跳变时,输入端D0~D7 数据锁入Q0~Q7。
2.方案一的工作流程简述
电路图硬件连接:

硬件连线图
注:8086CPU芯片与74LS373芯片在方案一中视为PC总线接口模块
① 8255A的引脚WR(写选通信号)、RD(读选通信号)分别连到PC总线接口模块的WR端口、RD端口。
② 8255A的数据端(AD0~AD7)、地址线(A0~A1)分别连到PC总线接口模块的数据线(D0~D7)、地址线(A1~A2)。
③ 8255模块选通线CS连到PC总线接口模块的IOY1(CS 片选信号,低电平有效,由地址总线经I/O端口译码电路产生)。
④ 8255的PA0~PA7连到发光二极管的L1~L8;8255的PB0~PB7连到发光二极管的L9~L16。
程序流程简述:
8255A的片选信号CS与地相连,处于低电平有效状态,8086CPU与8255A之间始终保持通信,8086CPU对8255A进行读/写等操作。当8086CPU的地址锁存信号ALE处于高电平有效时,在T1状态,8086CPU通过地址/数据总线上传送地址信息,在ALE的下降沿将地址信息锁存到地址锁存器74LS373中,定义了8255A的工作方式,使其A口和B口为输出口,定义了8255A各端口地址。8086CPU先后写A、B口的起始数据,并调用延时子程序点亮A口灯、B口灯。然后分别调用左移、右移指令将A口起始数据左移再写入A口、B口起始数据右移再写入B口,点亮下一站盏灯,以此循环实现流水灯效果。

程序框图
结论:第一种方案虽然实现了流水灯闪烁效果,但由于8086CPU芯片所需的程序无法通过KC51实现编程,不能达到本次课程设计的培训目的,即对单片机的程序编程进行训练掌握,要求较高,方案实现的难度较大,所以我们没有把方案一作为最终方案。
2.2 第二种方案的论述
第二种方案,我们使用了AT89C51单片机实现了流水灯闪烁设计。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,方案二中设计的流水灯实际上是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。下面先对AT89C51单片机进行简介:
1. AT89C51单片机的简介
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4K bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS—51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可以提供许多高性价比的应用场合,可灵活应用于各种控制领域。

AT89C51提供标准功能有:4K字节Falsh闪存存储器,128字节内部RAM,32个I/O口线,两个16位定时、计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
2.方案二的工作流程简述
单片机的应用系统由硬件和软件组成,当我们完成了上述硬件原理图搭建之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,也是我们这次课程设计学习的重点和难点。
从电路原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
在电路原理图中,我们还应注意的便是和AT89C51单片机接在一起的晶振电路,在电路图中为AT89C51单片机提供了频率参考作用。晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络。AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。

硬件原理图
结论:第二种方案也实现了流水灯闪烁效果,相对于第一种方案而言,更简单些,这也正是单片机能广泛应用于各种电路的原因。但由于该方案中,没有应用到8255A芯片实现接口扩展,而我们这次的课程设计中一个主要设计目的与要求便是:通过利用端口和8255协同工作来实现LED显示功能,对8255A芯片进行编程使流水灯左移或右移,实现流水灯闪烁效果。以此来掌握8255A的功能特点、工作原理以及显示器接口的基本原理与方法技术。所以我们没有把方案二作为最终方案。
2.3 第三种方案(最终方案)的论证
第三种方案,我们使用了AT89C51单片机与8255A芯片一起实现了流水灯闪烁的设计。从前两种方案中,我们分别熟悉与掌握了地址锁存器74LS373芯片和AT89C51单片机。我们了解到74ls373是常用的地址锁存器芯片,它是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片。而AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。在第三个方案中,我们将详细地介绍8255A的内部电路、功能特点、工作原理以及在电路中的功能扩展与应用,这也是我们这次课程设计中一个需要重点掌握的芯片。
1.可编程外围接口芯片8255A的简介
8255A是Intel公司生产的一种通用的可编程并行I/O接口芯片,它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。通过对它进行编程,芯片可工作于不同的工作方式。8255A有3个8位并行I/O口,具有3个通道3种工作方式,其各口功能可由软件选择,使用灵活,通用性强。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口;同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部1条评论
快来发表一下你的评论吧 !