您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 利用8255A芯片实现流水灯闪烁设计
利用8255A芯片实现流水灯闪烁设计-1-目录摘要······················································2第1章利用8255A芯片实现流水灯闪烁设计的概述···········2第2章三种方案的论述与最终方案的确定····················22.1第一种方案的论述··································22.2第二种方案的论述··································52.3第三种方案(最终方案)的论证·······················10第3章测试结果及体会心得·······························13第4章致谢·············································14第5章参考文献·········································14附录1方案一Proteus仿真电路效果图·····················15附录2方案一源程序代码································16附录3方案二Proteus仿真电路效果图·····················18附录4方案二源程序代码································19附录5方案三(最终方案)Proteus仿真电路效果图·········20附录6方案三(最终方案)源程序代码····················21利用8255A芯片实现流水灯闪烁设计-2-摘要: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的内部电路与工作原理利用8255A芯片实现流水灯闪烁设计-3-引脚功能图注:管脚引出端功能符号: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为高电平时,利用8255A芯片实现流水灯闪烁设计-4-输出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芯片实现流水灯闪烁设计-5-8255A各端口地址。8086CPU先后写A、B口的起始数据,并调用延时子程序点亮A口灯、B口灯。然后分别调用左移、右移指令将A口起始数据左移再写入A口、B口起始数据右移再写入B口,点亮下一站盏灯,以此循环实现流水灯效果。程序框图结论:第一种方案虽然实现了流水灯闪烁效果,但由于8086CPU芯片所需的程序无法通过KC51实现编程,不能达到本次课程设计的培训目的,即对单片机的程序编程进行训练掌握,要求较高,方案实现的难度较大,所以我们没有把方案一作为最终方案。2.2第二种方案的论述第二种方案,我们使用了AT89C51单片机实现了流水灯闪烁设计。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外利用8255A芯片实现流水灯闪烁设计-6-扩存储器。因此,方案二中设计的流水灯实际上是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。下面先对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外部必须被拉高。利用8255A芯片实现流水灯闪烁设计-7-◆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(串行输出口)·P3.2/INT0(外部中断0)·P3.3/INT1(外部中断1)·P3.4T0(记时器0外部输入)·P3.5T1(记时器1外部输入)·P3.6/WR(外部数据存储器写选通)·P3.7/RD(外部数据存储器读选通)◆RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。◆ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端利用8255A芯片实现流水灯闪烁设计-8-以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。◆PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。◆EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H—FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。◆XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。◆XTAL2:来自反向振
本文标题:利用8255A芯片实现流水灯闪烁设计
链接地址:https://www.777doc.com/doc-4308708 .html