单片机课程设计-8只数码管滚动显示单个数字.doc_第1页
单片机课程设计-8只数码管滚动显示单个数字.doc_第2页
单片机课程设计-8只数码管滚动显示单个数字.doc_第3页
单片机课程设计-8只数码管滚动显示单个数字.doc_第4页
单片机课程设计-8只数码管滚动显示单个数字.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8只数码管滚动显示单个数字目录前言- 1 -第一章 设计的目的和要求- 2 -1.1 设计的目的- 2 -1.2 设计的基本要求- 2 -1.2.1 电路设计要求- 2 -1.2.2 程序设计要求- 2 -第二章 设计方案- 3 -2.1 设计任务分析及方案设计- 3 -2.2 硬件总体设计- 4 -2.1.1 系统的组成方案- 4 -2.1.2 按键、LED显示功能- 4 -2.3 软件总体设计- 5 -2.3.1 软件设计思路- 5 -2.3.2 程序流程图- 5 -2.3.3 存储单元的分配- 5 -第三章 硬件设计- 6 -3.1 主要元器件介绍- 6 -3.1.1 AT89C51单片机简介- 6 -3.1.2 NPN型三极管简介- 8 -3.1.3 排阻简介- 8 -3.2 模块电路分析- 8 -3.2.1 晶振电路模块- 8 -3.2.2 按键复位电路模块- 9 -3.2.3 NPN驱动控制电路模块- 9 -3.2.4 数码管显示电路模块- 9 -3.3 硬件电路的仿真- 10 -3.3.1 Proteus仿真平台简介- 10 -3.3.2 系统仿真电路的实现- 10 -第四章 软件设计- 12 -4.1 Keil编译软件简介- 12 -4.2 软件程序设计分析- 12 -4.2.1 数码管位显示控制程序- 12 -4.2.2数码管段显示控制程序- 12 -4.2.3延时控制程序- 12 -4.2.4 软件总体程序- 13 -第五章 系统操作说明- 14 -结束语- 15 -参考文献- 16 -附录- 17 -附录1 系统仿真原理图- 17 -附录2 系统PCB板图- 18 -附录3 元件清单- 19 -附录4 总体汇编程序- 20 -全套设计加扣3012250582 前言单片机自20世纪70年代诞生以来,经历了40年的发展,具有高集成度,体积小,高可靠性;控制功能强;低电压,低功耗,便于生产便携式产品;易扩展;优异的性能价格比等特点。现已广泛应用于工业控制、数据采集、智能仪表、机电一体化、家用电器等多个领域。与此同时,在工业控制、仪器仪表、图形显示和邮电及其他行业的窗口广告显示系统中, 都需要有一种LED显示驱动电路。其实 L E D对我们来说并不陌生,这种显示器我们也能经常看到,如大街上的电子广告牌、体育馆里的电子比分显示牌、仪器仪表中的数字显示屏等等。正是如此,设计一个简单高效可行的LED显示驱动电路及其程序,将会有很广泛的用途,促使51系列单片机在很多产品中得到有效应用。在具体的工程实践中,单片机应用技术所涉及的实践环节较多,硬件投入较大,如果因为控制方案有误而进行相应的开发设计,会浪费较多的时间和经费。Proteus仿真软件可以很好地解决这些问题,首先通过绘制硬件原理图,再通过Keil编程软件对硬件图中单片机进行编程控制,最后实现对控制方案的验证。这样既减少了损失,又为初学者提供了方便。 数码管在生活中应用较多,常用在低端的家用电器中,用来做人机界面。数码管有两种显示控制方法:动态显示和静态显示。下面就介绍一种简单的8位一体LED数码管动态显示的设计过程。第1章 设计的目的和要求1.1 设计的目的通过本次课程设计进一步掌握51系列单片机的基本硬件结构及工作原理,同时运用Proteus仿真软件和Keil编程软件将理论付诸实践,掌握51系列单片机的汇编语言及基本程序设计方法,学习并掌握使用51系列单片机开发控制系统的基本步骤及方法。加强知识的学习,锻炼实践操作能力。结合本次“8位一体数码管动态显示”的设计,了解7段数码管动态扫描原理,掌握动态数码管显示方法,学会LED数码显示程序设计。1.2 设计的基本要求1.2.1 电路设计要求以AT89C51单片机为核心,以及利用NPN型三极管的开关特性控制8位数码管动态轮流滚动显示07这8个数字,另外采用一个复位按键控制电路进行复位控制。利用Proteus仿真软件进行仿真,检测电路的正确性和合理性,并且做出PCB板图。1.2.2 程序设计要求利用汇编语言编写程序,控制单片机AT89C51,进而使8位一体数码管(共阳极)上依次显示“01234567”。利用Keil编程软件编写程序,并且调试修改。通过和Proteus硬件仿真电路中单片机的配合,实现数码管的动态显示。第2章 设计方案2.1 设计任务分析及方案设计常用的LED显示器有LED状态显示器、LED七段数码管和LED十六段显示器。发光二极管有两种显示状态;数码管用于显示数字。LED七段数码管有静态显示和动态显示两种方式。静态驱动也称直流驱动,是指每个数码管的每一个段码都由一个单片机I/O端口进行驱动,使用如 BCD码210进制译码器译码进行驱动。数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止,这种显示方式下,各数码管相互独立,公共端恒定接地(共阴极)或接电源(共阳极)。静态驱动的优点是编程简单、显示亮度高,缺点是占用I/O端口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。数码管动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。动态驱动是将所有数码管的8个显示笔划“ a , b, c , d , e , f , g, d p ” 的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输 出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形取决于单片机对位选通COM端电路的控制。因此,我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会。通过分时轮流控制各个数码管的COM端就使各个数码管轮流受控显示,这就是动态驱动。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的影响就是一组稳定的显示数据,不会有闪烁感。这种驱动方式能够节省大量的I/O端口、功耗更低。并且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。本系统是基于单片机的 LED拉幕式动态显示设计,系统以单片机为核心,通过译码电路控制数码管的动态显示。由单片机最小系统电路、NPN驱动电路、数码管显示电路等组成。系统总体方案设计如图2-1所示。单片机驱动控制控制按键数码管图2-1 系统总体方案本系统以单片机为控制核心,采用 LED动态显示方式,用单片机P2口来控制 LED数码管的位控线而用P0来控制其段控线。动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码 管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉,动态显示的效果和静态显示是一样的,能够节省大量的 I/O端口,而且功耗更低。译码驱动电路将计数器输出的BCD码转换为数码管需的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。控制按键通过单片机控制数码管的复位。2.2 硬件总体设计本系统要完成的是以单片机为核心的 LED拉幕式动态显示设计,在8位数码管上从左向右循环显示“01234567”,能够比较平滑地看到拉幕的效果。系统硬件电路仿真图如图2-2所示。图2-2 系统硬件电路仿真图2.1.1 系统的组成方案本系统以单片机为核心,通过NPN组合电路控制数码管的动态显示。由单片机、NPN驱动电路、数码管显示电路,按键控制电路等组成。单片机的P2口经过NPN组合电路来控制 LED数码管的位控线而用P0口经过排阻来控制其段控线。复位按键电路与单片机的复位端相连,晶振时钟电路接单片机的XTAL1和XTAL2。2.1.2 按键、LED显示功能 复位按键按下后LED数码管会从动态显示复位。将所有LED数码管的8个显示笔划“ a , b, c , d , e , f , g, d p ” 的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形取决于单片机对位选通COM端电路的控制。因此,我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会。通过分时轮流控制各个数码管的COM端就使各个数码管轮流受控显示。单片机的P2口经过NPN组合电路来控制 LED数码管的位控线而用P0口经过排阻来控制其段控线,LED数码管上动态地依次显示“01234567”。2.3 软件总体设计2.3.1 软件设计思路 利用汇编语言编写程序分别对单片机的P2口和P0口进行控制。控制P2口并经过NPN组合电路来控制 LED数码管的位控线,控制P0口经过排阻来控制其段控线。2.3.2 程序流程图软件程序流程图如图23所示。开始系统初始化确定R1的值关数码管延时R1的内容送A查表取值送AA送P0开数码管R1+1图2-3 程序流程图2.3.3 存储单元的分配数码管的位显控制程序中的指令用到单片机的程序存储区,其他指令都用片外数据存储区。第3章 硬件设计3.1 主要元器件介绍3.1.1 AT89C51单片机简介AT89C51是一种带4K字节的FLASH存储器的低电压、高性能COMS 8位单片机,其可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51按功能分为CPU、4K字节的FLASH闪速存储器、128字节内部RAM、32 个I/O口线、两个16位定时/计数器、一个5向量两级中断结构、一个全双工串行通信口和片内振荡器及时钟电路。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式:空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作;掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。AT89C51中的位处理器是一个完整的1位微计算机,这个1位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破。因此,它的硬件结构具有功能部件种类全,功能强等特点,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。其外形及引脚排列如图3-1所示。图3-1 AT89C51引脚图18脚:为P1口,P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。9脚:RST端,复位输入,当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。1017脚:P3口,P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,其功能为:P3.0 RXD(串行输入口)、P3.1 TXD(串行输出口)、P3.2 /INT0(外部中断0)、P3.3 /INT1(外部中断1)、P3.4 T0(计时器0外部输入、P3.5 T1(计时器1外部输入)、P3.6 /WR(外部数据存储器写选通)、P3.7 /RD(外部数据存储器读选通)、P3口同时为闪烁编程和编程校验接收一些控制信号。18脚:XTAL2,来自反向振荡器的输出。19脚:XTAL1,反向振荡放大器的输入及内部时钟工作电路的输入。20脚(隐藏):GND,接地。2128脚:P2口,P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。29脚:/PSEN,外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。30脚:ALE/PROG,当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。31脚:/EA/VPP,当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。3239脚:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。3.1.2 NPN型三极管简介NPN型三极管,由三块半导体构成,其中两块N型和一块P型半导体组成,P型半导体在中间,两块N型半导体在两侧。其元件图如图3-2所示。半导体三极管也称为晶体三极管,它最主要的功能是电流放大和开关作用。它具有三个电极:基极、集电极和发射极。图3-2 NPN型三极管三极管最基本的作用是放大作用,它可以把微弱的电信号变成一定强度的信号,其中一个重要参数就是电流放大系数。当三极管的基极上加一个微小的电流时,在集电极上可以得到一个是注入电流倍的电流,即集电极电流。集电极电流随基极电流的变化而变化,并且基极电流很小的变化可以引起集电极电流很大的变化,这就是三极管的放大作用。当基极电流为0时,三极管集电极电流为0,三极管截止,相当于开关断开;当基极电流很大,以至于三极管饱和时,相当于开关闭合。如果三极管主要工作在截止和饱和状态,那么这样的三极管我们一般把它叫做开关管。3.1.3 排阻简介排阻RN,就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出。所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。我们知道,内存在处理、传输数据时会产生大小不一的工作电流。而在内存颗粒走线的必经之处安装一排电阻,则能够帮助内存起到稳压作用,让内存工作更稳定。从而提升内存的稳定性,增强内存使用寿命。和普通电阻一样,相比而言简化了PCB的设计、安装,减小空间,保证焊接质量。排阻具有方向性,与色环电阻相比具有整齐、少占空间的优点。3.2 模块电路分析3.2.1 晶振电路模块晶振电路:单片机XTAL1和XTAL2分别接30pF的电容,中间再并一个12MHZ的晶振,形成单片机的晶振电路。如图3-3所示。图3-3 晶振电路3.2.2 按键复位电路模块按键复位电路:单片机的复位端RST与按键复位电路相连,其作用是给单片机复位端提供一个高电平控制LED数码管复位操作。如图3-4所示。图3-4 按键复位电路3.2.3 NPN驱动控制电路模块NPN驱动控制电路:此处的NPN型三级管起开关作用。8个三极管集电极接高电平为共阳极接法。每个三极管的基极接单片机的P2口,发射极接LED数码管的位控制端。通过对单片机AT89C51的编程控制可以控制三极管的通断,从而控制8位LED数码管位的显示。如图3-5所示。图3-5 NPN驱动控制电路3.2.4 数码管显示电路模块数码管显示电路:7SEG-MPX8-CC-BLUE是8位八段共阴数码管,显示为蓝色。单片机的P0口经排阻稳压后接其段选线,P2口经NPN驱动控制电路接其位选线。如图3-6所示。图3-6 数码管显示电路3.3 硬件电路的仿真3.3.1 Proteus仿真平台简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。Proteus是世界上著名的EDA工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。在编译方面,它也支持IAR、Keil和MATLAB等多种编译.在Proteus绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在Proteus的原理图中看到模拟的实物运行状态和过程。Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。课程设计、毕业设计是学生走向就业的重要实践环节。由于Proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。3.3.2 系统仿真电路的实现首先,根据设计要求和需要找全电路元器件,根据设计思路将各个元件正确连接。元件清单见附录3。本系统的硬件仿真原理图如图2-2所示。然后给单片机AT89C51添加汇编程序,其窗口如图3-7所示。最后进行电路仿真,查看是否能完成设计要求。系统硬件仿真图如图3-8所示。图3-7 单片机程序添加窗口图3-8 系统硬件仿真图第4章 软件设计4.1 Keil编译软件简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。最新的Keil uVision4 IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。uVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。uVision4在Vision3 IDE的基础上,增加了更多大众化的功能:多显示器和灵活的窗口管理系统;系统浏览器窗口的显示设备外设寄存器信息;调试还原视图创建并保存多个调试窗口布局;多项目工作区简化与众多的项目。本次设计采用汇编语言编程,生成.hex文件以供装载到Proteus中的单片机进行仿真。4.2 软件程序设计分析4.2.1 数码管位显示控制程序汇编语言程序如下:LCALL XIANSHISETB P2.XLCALL DELAYCLR P2.X本段程序直接控制AT89C51的P2口的通断。实际上,本系统中P2口一直处于高电平,是通过延时程序和NPN型三极管的开关特性来控制8位一体数码管的位显。4.2.2数码管段显示控制程序汇编语言程序如下:START:MOV DPTR,#TAB MOV R1,#0XIANSHI:MOV A,R1 MOVC A,A+DPTR MOV P0,A INC R1 RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H查表将数码管数字字形代码(共阳极)依次送入AT89C51的P0口,控制数码管显示数字07。4.2.3延时控制程序DELAY:MOV R5,#0FFHD1:MOV R6,#0FFHD2:DJNZ R6,D2 DJNZ R5,D1 RET利用跳转指令对数码管的显示进行控制,其延时时间可根据显示效果调节。4.2.4 软件总体程序见附录4。第5章 系统操作说明点击运行后8位一体数码管(共阳极)上依次显示“01234567”,复位按键按下后LED数码管会从动态显示复位。结束语本次课程设计是利用单片机对8位一体数码管动态显示的设计与仿真。虽然这个课程设计相对简单易懂,易于掌握,但是整个设计过程还是面面俱到的。从学习用Proteus做仿真,用Keil软件编写程序,到确定课题开始着手设计,再到后来成功完成设计要求。整个过程中碰到的很多让我头痛的问题,比如,由于软件操作不熟悉,找不到相关元器件,不知道如何对元器件进行封装;总线连接不正确;程序不能实现设计要求等等。但是通过查阅资料,温习了课堂上所学过的知识以及和同学们分析讨论成功地解决实际问题。撰写设计报告也是很锻炼人的,这个过程让我对产品设计报告书的总体结构有了大致的了解,同时规范排版时也学到了Word的相关操作。通过本次课程设计巩固、加深和扩展了有关单片机设计方面的知识,尤其重要的是让我学会做事前先得有整体的思路,然后再分层展开工作会事半功倍。课程设计这一教学环节突破了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论