基于8255扩展的多模式跑马灯设计.doc
《基于8255扩展的多模式跑马灯设计.doc》由会员分享,可在线阅读,更多相关《基于8255扩展的多模式跑马灯设计.doc(18页珍藏版)》请在三一办公上搜索。
1、-基于8255扩展的多模式跑马灯设计一、设计目的为了进一步稳固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开场为期两周的课程设计。通过设计使学生在稳固所学知识的根底之上具有初步的单片机系统设计与应用能力。1、通过本设计,使学生综合运用单片机技术原理与应用、DSP原理与应用C语言程序设计以及数字电路、模拟电路等课程的容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的根底。2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。3、了解单片机接口应用开发的全过程:分析需求、设计原理
2、图、选用元器件、布线、编程、调试、撰写报告等。二、设计容与要求容:用8155或8255扩展IO实现16个LED的跑马灯,提供多种跑马灯运行模式。要求:1、掌握原理图画法,在PROTEUS平台上用单片机完成所选题目的原理图设计。2、在KEIL C平台上使用C语言编程实现编程,并调试通过。3、在PROTEUS平台上利用设计好的原理图和调试好的程序完成整个仿真。4、按设计报告要求完成课程设计报告。三、系统总体设计3.1、问题分析本次课程设计的题目是单片机课程设计,根据我们所学的单片机知识和本次课设的容要求,我们知道虽然在80C52系列单片机中,有四个8位I/O端口,但真正能够提供应用户使用的只有P1
3、口,因为P0口和P2口通常需要用来传送外部存储器的地址和数据,P3口也需要使用它的第二功能。因此,单片机提供应用户的I/O接口线并不多,对于复杂的一些的应用系统都应该进展I/O口的扩展。而本次课设又要求跑马灯有多种运行模式,而这些操作模式可以完全由8255的控制存放器的控制字决定。利用8255的控制字模式来定义8255输出口的个数,驱动所需的LED灯的个数,从而实现课设的目的。3.2、方案提出本次课程设计的容是用8155或8255扩展I/O实现16个LED的跑马灯,并且要提供多种跑马灯运行模式。基于这一设计容和上面的问题分析,我提出利用AT89C52驱动扩展8255数据输出口来实现16个LED
4、跑马灯的显示,并且利用AT89C52的外围按键电路设置三个按按键,其中一个按键用于控制16只LED灯模式的输出,另两个用于控制16只LED灯速度的输出。实现16个LED的不同运行模式。3.3、设计思路根据以上方案,AT89C52的P2.5-P2.7三个接口接按键电路,不管加速、减速还是运行模式都是由单片机部的程序控制;P0口接7段共阳数码管,用来显示跑马灯的9种不同运行模式;P0口接8255的输入口D0-D7;8255的PA、PB口外接16个LED,通过程序控制这两个端口的电平上下,将16个LED的正极接+5V电源,负极接PA和PB口,即PA和PB口的相应端口为高电平时,LED的两端都为高电平
5、,所以LED不亮,当LED的相应端口为低电平时就能被点亮。再通过程序循环让各个LED以不同的方式被点亮来到达跑马的效果,并且其中要有一定的延时,延时时间要大于人眼视觉暂留时间,否那么人眼看上去每个灯都是亮的也就没有跑马效果。3.4、系统总体框图8255AT89C5216个LED显示阵列复位电路7段共阳数码管键盘左边六局部电路均需+5V电压,在此没画电源局部图1 系统总体框图四、系统硬件设计4.1、整体电路设计4.1.1、电路设计及功能本设计采用AT89C52驱动可编程接口芯片8255的扩展来实现LED的多种显示模式。让AT89C52芯片的P0口与8255芯片的三态双向数据总线D0-D7连接,实
6、现数据传送。当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255的地址选择线A1、A0分别与AT89C52的P2.1和P2.0连接,通过定义不同的地址来选择8255芯片的PA口或PB口工作。读写命令线分别与单片机的读写命令线相连,片选线和复位线直接接地。同时16个LED灯的左侧8个从左到右依次与PA7-PA0口相连,右侧8个从左到右也依次与PB7-PB0口相连,通过K1按键可以选择不同的运行模式,通过K2、K3按键可以选择不同的速度,本次设计实现了9种跑马灯的运行模式。4.1.2、硬件原理框图 RSTAT89C52 P2口P1口 PA口 8
7、255 PB口RESETCSP0P7D0D7复位电路按键电路7段共阳数码管.LED地图2硬件原理框图4.1.3、电路原理图图3 电路原理图4.2、单元电路设计4.2.1、单片机最小系统1、方案设计与论证单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路、电源电路。本设计没有用到晶振电路。无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。2、复位电路设计无论是在单片机刚开场接上电源时,还是运行过程中发生故障时都需要复位。复位
8、电路用于将单片机部各状态恢复到一个确定的初始值,并从这个状态开场工作。单片机的复位条件:必须使其RST引脚上持续出现两个或以上机器周期的高电平。单片机的复位形式:上电复位、按键复位。上电复位电路中,利用电容充电来实现复位。在电源接通瞬间,RST引脚上的电位是高电平,电源接通后对电容进展快速充电,随着充电的进展,RST引脚上的电位也会逐渐下降为低电平。只要保证RST引脚上高电平出现的时间大于两个机器周期,便可以实现正常复位。按键复位电路中,当按键没有按下时,电路同上电复位电路。如在单片机运行过程中,按下复位键K4,已经充好电的电容会快速通过200电阻的回路放电,从而使得RST引脚上的电位快速变为
9、高电平,此高电平会维持到按键释放,从而满足单片机复位的条件实现按键复位。本设计采用按键复位。图4 复位电路图3、芯片简介AT89C52是一个低电压,高性能CMOS 8位单片机,片含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器RAM,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出I/O端口,同时含2个外中断口,3个16位可编程定时计数器,2个全双工
10、串行通信口,2个读写口线,AT89C52可以按照常规方法进展编程,但不可以在线编程(S系列的才支持在线编程)。图5 AT89C52引脚排列图4.2.2、按键电路设计1、方案设计与论证按键电路主要向AT89C52单片机发送动作信息来控制整个系统。K1是选择模式键,K2可以对跑马灯的速度进展加速,K3可以对跑马灯的速度进展减速。整个系统可以实现对跑马灯模式的多层控制,可以进展加减速。模式、加速、减速分别接P2.5、P2.6、P2.7口,再通过按键接地。当按键按下时向单片机发送低电平信号,当单片机采集到低电平信号时,启动中断进而转向处理相应的中断处理程序,实现预期的功能。基于本设计要求选择的按键是不
11、带锁存的,向单片机发开关信号,即低电平信号。图6 按键电路图4.2.3、显示电路设计1、LED显示局部显示局部用16个发光二极管分别接在PA和PB口,通过程序控制PA和PB的16个端口按照一定的方式依次为低电平以点亮相应端口的LED。图7 LED显示电路图2、数码管显示局部选取共阳极数码管,它有7段每段都有一个引脚,通过单片机的I/O口向其写低电平并用电阻限流就可以点亮相应的段,通过0-9十进制编出相应的数码显示数字编码。本设计数码管显示的模式共9种,相应模式由数码管显示出来,每当模式按钮按下时,相应的模式加一 ,数码管显示相应模式。共阳数码管简介:图8 数码管引脚图表1 常用字符的八段显示码
12、图9 数码显示电路图4.2.4、I/O扩展本设计采用8255进展I/O口扩展。8255的地址选择线A1、A0分别与AT89C52的P2.1和P2.0连接,当A1A0=00时,选择PA口工作,当A1A0=01时,选择PB口工作。读写命令线分别与单片机的读写命令线相连,片选线和复位线直接接地。8255芯片简介如下:8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片40引脚。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。8255引脚功
13、能:RESET:复位输入线,当该输入端处于高电平时,所有部存放器包括控制存放器均被去除,所有I/O口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进展通讯;/CS=1时,8255无法与CPU做数据传输。RD:读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。D0D7:三态双向数据总线,8255与
14、CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作:方式0根本输入输出方式;方式1选通输入/出方式;方式2双向选通输入/输出方式。PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。工作于三种方式中的任何一种。PB0PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。 不能工作于方式二。PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器
15、。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。不能工作于方式一或二。A1、A0:地址选择线,用来选择8255的PA口、PB口、PC口和控制存放器。当A1=0、A0=0时,PA口被选择;当A1=0、A0=1时,PB口被选择;当A1=1、A0=0时,PC口被选择;当A1=1、A0=1时,控制存放器被选择。五、系统软件设计5.1、程序流程图程序设计思路:主程序中默认执行0模式跑马灯。在中断效劳程序中,首先读取按键状态,然后延时10ms,再次读取按键状态。把两次获得的按键状态比拟,如果不同,就表
16、示是抖动,退出中断;否那么,就去判断是哪个按键按下。如果是K1,就执行下一个跑马模式;如果是K2,就执行跑马加速;如果是K3,就执行跑马减速。图10 主程序流程图图11 中断子程序流程图5.2、算法1、程序的开场,先包含相应函数的头文件名,再定义8255控制字、PA口、PB口以及各个参数和及各个位等。2、编译三个函数,分别是void Delay()函数、void Led_Display()函数和void KeyProcess()函数,它们依次是延时函数、LED显示函数和按键处理函数。3、主函数中,开中断,启动定时器,设置8255的PA、PB口为输出口,并且用while(1)函数进展按键的判断和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 8255 扩展 模式 跑马 设计
链接地址:https://www.31ppt.com/p-1124024.html