资料介绍
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连接部分、与外设连接部分、控制部分。
- 8255A仿真实例
- 并行I/O 接口、8255A控制字与初始化编程、工作方式与时序
- 51单片机 LED点亮、闪烁以及流水灯实现
- STC单片机 闪烁灯,LED流水灯 程序讲解
- 基于51单片机的八位流水灯
- 单片机(AT89C51)按钮控制LED灯实现流水灯,闪烁流水灯
- 使用51单片机实现8255A芯片扩展8位LED动态显示的仿真文件免费下载 31次下载
- 使用扩展芯片实现端口扩展的实例资料合集免费下载
- 使用FPGA实现流水灯的详细资料说明 27次下载
- 使用51单片机利用循环指令实现流水灯的程序免费下载
- 可编程并行接口8255A接口技术的详细资料说明
- 流水灯设计与制作解析 39次下载
- CC2530的GPIO输出控制-Led闪烁、流水灯实验资料下载 5次下载
- LED灯闪烁仿真流水灯仿真 28次下载
- 8255A的开发利用 0次下载
- 如何利用SCR步进指令来实现流水灯循环点亮? 2123次阅读
- 利用51单片机流水灯和LCD1602实现表白功能 1469次阅读
- Verilog实现流水灯及与C语言的对比 962次阅读
- 计数器才是流水灯的核心 721次阅读
- 设计分享|74HC154译码器实现流水灯 1699次阅读
- 74LS138译码器实现流水灯的控制 6402次阅读
- 如何通过FPGA实现一个流水灯? 7975次阅读
- 基于8255A和8253芯片实现交通红绿灯模拟系统的应用方案 5079次阅读
- 基于CPLD芯片实现专用键盘芯片KB-CORE的功能设计方案 2299次阅读
- 实现51单片机流水灯的三种详细资料说明 6014次阅读
- 51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析 9.6w次阅读
- 8255端口地址如何确定_8255怎样计算端口地址 11.7w次阅读
- 8255a有哪几种工作方式?8251a的工作方式及工作原理 6.3w次阅读
- 8255A驱动程序 3192次阅读
- 如何更高效地实现51单片机流水灯? 9955次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 651单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 751单片机大棚环境控制器仿真程序
- 1.10 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多