1. 设计思路21.1电源模块31.2显示模块31.3花样灯模块32单片机花样灯与数码显示系统总体设计错误!未定义书签。
2.1三个模块的阐述2.2单片机花样灯与数码显示控制系统的通行方案设计错误!未定义书签。
2.3单片机花样灯与数码显示控制系统的功能要求错误!未定义书签。
2.4单片机花样灯与数码显示控制系统的基本构成及原理错误!未定义书签。
3花样灯与数码显示系统的硬件设计73.1AT89C51单片机简介73.1.1 AT89C51单片机的主要特性83.1.2 主要引脚功能93.2系统硬件总电路构成及原理103.2.1系统硬件电路构成113.2.2系统工作原理114系统软件程序的设计114.1程序主体设计流程114.2理论基础知识124.2.1数组及while、switch等语句错误!未定义书签。
4.2.2软件延时原理错误!未定义书签。
4.3程序模块设计错误!未定义书签。
4.3.1花样灯的设计错误!未定义书签。
4.3.2 LED数码管显示错误!未定义书签。
4.4系统软件调试164.4.1 proteus仿真164.4.2keil仿真17参考文献 (17)设计心得体会 (18)附录 (19)基于单片机的花样流水灯及其数码显示技术摘要:自计算机问世以来,单片机技术在社会各领域中得到了广泛的应用。
在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式市发展速度,成为日后此系统中的核心部分。
由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。
本文主要讲的是单片机,课题名称为多按键花样流水灯,它使我们学会了如何使用单片机控制我们日常生活中的多设备设施的应用。
通过本课题的设计以后,使我了解到了单片机的许多方面的应用。
关键词:花样灯单片机数码管1. 设计思路(1)为了使设计具有更强的针对性和实用性,使用单片机设计的控制方案,基于AT89C51的单片机设计方案。
(2)确定系统控制的总体设计,包括流水灯变化方案设计以及系统应拥有的各项功能,在这里,本设计除了有流水灯状态控制能实现基本的变化功能,还增加了数码管显示提示。
(3)设计分为3个模块,分别为电源模块,数码显示模块,花样灯模块,并对3个模块进行充分的校正和完善。
(4)进行软件系统的设计,对于本系统,本组采用单片机C语言编写,对单片机内部结构和工作情况做了充足的研究,了解延时原理,总体上完成了软件的编写。
2 花样流水灯与数码显示系统总体设计2.1三个模块的阐述2.1.1电源模块电源提供的方案为使模块稳定工作,须有可靠电源。
因此考虑了两种电源方案:方案一:采用独立的稳压电源。
此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。
方案二:采用单片机控制模块提供电源。
改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。
综上所述,我选择第二种方案。
电源模块仿真效果图1-12.1.2显示模块数码管显示方案该系统要求完成计数功能。
基于上述原因,我考虑了二种方案:方案一:采用数码管显示。
这种方案只显示有限的符号和数码字符,简单,方便。
方案二:采用点阵式LED 显示。
这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,且须完成大量的软件工作。
综上所述,我选择第一种方案。
数码管显示模块仿真图1-2:2.1.3花样灯模块:本方案采用3种变化形式,且3种方式依次按顺序变化,采用8个LED灯作为一个系统。
花样灯仿真效果图1-3:图1-1图1-2 图1-32.2单片机花样流水灯与数码显示系统的通行方案设计1)系统采用8个LED灯,一个数码显示器,及电源。
2)流水灯有3种变化方式。
第一种:LED灯由L1---L8逐个变亮;第二种;L1,L8亮,接着L2,L7亮,再接下来L3,L6亮,然后L4,L5亮,再这样反循环一次。
第三种;L1,L3,L5,L7,L2,L4,L6,L8依次亮。
且三种方式按顺序执行,成花样流水灯状。
3)方式1.2数码显示管是用来记录亮灯的个数,方式3是用来记录哪一个灯亮。
4)具体的数据及其显示如表2-1所示。
2.3 单片机花样灯与数码显示系统的功能要求系统要满足稳定,准确,快速的三个基本要求。
1)稳定:就是基本上实现了方案设计思路上的变化样式,并且不会出现错误和紊乱。
2)准确; 即系统的偏差接近可允许范围之内,方可认为准确。
3)快速:顾名思义,就是系统的运行速度可以调整,并且不会影响到系统的其他性能指标即可。
2.4单片机花样灯与数码显示系统的基本构成及原理单片机设计流水灯控制系统,可用单片机直接控制流水灯的状态变化,不同的程序控制不同的变化状态,本次仅仅分为3种形式变化,当然还可以有更多的变化。
据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,流水灯模块,数码管显示模块接受输出。
系统的总体框图如上1-4所示。
图1-4系统的总体框图设计3.1 AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
3.1.1 AT89C51单片机的主要特性与MCS-51 兼容,4K字节可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:10年,全静态工作:0Hz-24Hz,三级程序存储器锁定,128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源(两个外部中断源和3个内部中断源),可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。
定时器原理定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH和TL中的。
它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC 可得到如下计算通式:TC=M-C式中,M为计数器模值。
计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=T/T0。
计算通式变为:T=(M-TC)T0模值和计数器工作方式有关。
在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。
就此可以算出各种方式的最大延时。
如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式0最大延时只有8.129毫秒,采用方式1最大延时也只有65.536毫秒。
这就是为什么扫描周期为50ms的原因,若使用软件则会耽搁程序流程,显然不可行。
相反,时间计时方面却不可能只用计数器,因为显然1秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。
图3 AT89C51系列单片机的内部结构示意图3.1.2 主要引脚功能图4 AT89C51引脚图·VCC:电源电压·GND:接地·P0口:P0口是一组8位双向I/0口。
P0口即可作地址/数据总线使用,又可以作为通用的I/O口使用。
当CPU访问片外存储器时,P0口分时先作低8位地址总线,后作双向数据总线,此时,P0口就不能再作I/O口使用了。
在访问期间激活要使用上拉电阻。
·P1口:Pl 是一个带内部上拉电阻的8准位双向I/O口,P1作为通用的I/O口使用。
·P2 口:P2 是一个带有内部上拉电阻的8 位准双向I/O 口,P2即可作为通用的I/O口使用,也可以作为片外存储器的高8位地址总线,与P0口配合,组成16位片外存储器单元地址。
·P3 口:P3 口是一组带有内部上拉电阻的8 位准双向I/0 口。
P3 口除了作为通用的I/O 口使用之外,每个引脚还具有第二功能,具体分配如表2表2·RST:复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT 溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0 位(地址8EH)可打开或关闭该功能。
DISRT0位缺省为RESET输出高电平打开状态。
·ALE/:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE 仍以时钟振荡频率的1/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。
该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
·程序储存允许()输出是外部程序存储器的读选通信号,当AT89S51 由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。
当访问外部数据存储器,没有两次有效的信号。
·/VPP:外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA 端必须保持低电平(接地)。
需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
F1ash存储器编程时,该引脚加上+12V的编程电压Vcc。
·XTAL1:振荡器反相放大器及内部时钟发生器的输入端。
3.2 系统硬件总电路构成及原理实现本设计要求的具体功能,可以选用AT89C51单片机及外围器件构成最小控制系统,8个发光二极管分成3种变化方式,数码显示管进行计数。
3.2..1系统硬件电路构成本系统以单片机为核心,系统硬件电路由状态灯,数码管显示,按键,组成。