课程设计(论文)-利用8255A芯片实现流水灯闪烁设计Word格式文档下载.docx
《课程设计(论文)-利用8255A芯片实现流水灯闪烁设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《课程设计(论文)-利用8255A芯片实现流水灯闪烁设计Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
证 10
第3章 测试结果及体会心
得·
13
第4章 致
谢·
-24-
14
第5章 参考文
献·
附录1方案一Proteus仿真电路效果图 15
附录2 方案一 源程序代码·
16
附录3方案二Proteus仿真电路效果图 18
附录4 方案二 源程序代码·
19
附录5方案三(最终方案) Proteus仿真电路效果图 20
附录6方案三(最终方案) 源程序代码 21
摘要:
8255A是一种通用的可编程并行I/O接口芯片(ProgrammablePeripherialInterface),它是为
Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。
通过对它进行编程,芯片可工作于不同的工作方式。
此次课程设计的目的就是利用端口和8255协同工作来实现LED显示功能,对8255A芯片进行编程使流水灯左移或右移,通过延时程序使流水灯进行顺序点亮。
通过这次课程设计掌握8255A的功能特点、工作原理以及显示器接口的基本原理与方法技术。
关键词:
8086芯片 AT89C51单片机 8255A芯片 LED流水灯
第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的内部电路与工作原理
引脚功能图
注:
管脚引出端功能符号:
D0~D7数据输入端 OE三态允许控制端(低电平有效)
Q0~Q7输出端 LE锁存允许端
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位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS—51指令系统,片内置通用
8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可以提供许多高性价比的应用场合,可灵活应用于各种控制领域。
AT89C51管脚分布
◆VCC:
供电电压。
◆GND:
接地。
◆P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当
P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口
作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
◆P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,
P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在
FLASH编程和校验时,P1口作为第八位地址接收。
◆P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
◆P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口。
P3口同时为闪烁编程和编程校验接收一些控制信号。
◆P3口管脚备选功能:
P3.0RXD(串行输入口) ·
P3.1TXD