基于单片机LED显示器的数字钟设计_第1页
基于单片机LED显示器的数字钟设计_第2页
基于单片机LED显示器的数字钟设计_第3页
基于单片机LED显示器的数字钟设计_第4页
基于单片机LED显示器的数字钟设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机LED 显示器的数字钟设计本设计基于8031单片机控制,采用LED显示器设计一数字钟的设计方案。该数字钟能稳定显示时分秒, 同时实现时分秒的数值调整。 本文详细讨论了具体硬件电路, 相关原器件的选择以及软件实现过程。 比较时钟调整的查询方式和中断方式, 对数字钟的稳定性和计时的精确性作了相关的讨论。 在实验室通过硬件电路和仿真器进行模拟实验, 验证电路和程序的正确性。 最后给出采用中断方式实 现的数字钟的源程序。1 .引 言在单片机技术日趋成熟的今天, 其灵活的硬件电路的设计和软件的设计, 让单片机得到了广泛的应用, 几乎是从小的电子产品, 到大的工业控制, 单片机都起到了举足轻重的

2、作用。 单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全” ,单片机的学习和研究是对微机系统学习和研究的简捷途径。单片机以其体积小,使用灵活方便,成本低,易于产品化,抗干扰能力强,可在各种恶劣环境下工作等特点, 广泛的应用于工业控制, 智能仪表, 家用电器,机器人,医疗仪器,军事装备等方面。为了加深对单片机应用的认识,巩固所学的单片机知识,本次科研训练特选题“基于单片机数码管显示的数字钟设计”,尝试基本电路设计和汇编语言编程以及锻炼实践动手能力。数字钟的实现方法多种多样,简单的可以由一些集成电子电路实现,精确点的可以通过某些时钟芯片,如 MSM5832, DS1

3、216,以及MC146818,结合相应的硬件电路和软件实现。 本次科研训练本着锻炼为主的原则, 不采用任何现成的时钟芯片, 通过简单的硬件电路, 通过编写相应程序进行计时与时间调整。 本文采用 8031 单片机,以 8255A 作其扩展, LED 显示器采用共阴极的七段数码管,驱动器采用 74LS07 芯片,以及普通的按键作为基本元器件。2 .数字钟硬件电路设计数字钟的整体框图如图 1 所示图1整体框图按键与8031的连接如图2所示。VCCR122k2U6K1K2K3K4R132k2R142k2cR15t-I2k21INT2/P1.0P0.0/AD0INT3/P1.1P0.1/AD1INI4/

4、P1.2P0.2/AD239T338 . 45INI5/P1.3P0.3/AD3INT6/P1.4P0.4/AD4INT7/P1.5P0.5/AD5rNT8/P1.6P0.6/AD6INT9/P1.7P0.7/AD7363563478333210TARXD/DATA/P3.0ALETXD/CLOCK/P3.1PSEN31 TT29129INT0/P3.2RST13INT1/P3.3T0/P3.4P2.0/A8T1/P3.5P2.1/A9WR/P3.6P2.2/A10RD/P3.7P2.3/A11P2.4/A12P2.5/A13XTAL1P2.6/A14XTAL2P2.7/A1514211522

5、1617_23242526192718_2880CL31单片机8031与8255A的硬件连接如图3所示:AoP1 2 3 4 5 6 7 AAAAAAA PPPPPPP9 01234567 u DDDDDDDD344321U75RDPB01836wrA0PB19PB28A1PB32135RESETPB46CSPB5PB62425PB714PC0FPC1PC216PC3PC4PC511PC6PC7D0Q0D1Q1D2Q2D3Q3D4Q4D5Q5D6Q6D7Q7OELE11174LS3738kwr一NT2/P1.0P0.0/AD0NT3/P1.1P0.1/AD1INT4/P1 2P0.2/AD2I

6、NT5/P1.3P0.3/AD3INT6/P1.4P0.4/AD4(NT7/P1.5P0.5/AD5INT8/P1.6FNT9/P1.7P0.6/AD6P0.7/AD7EARXD/DATA/P3.0TXD/CLOCK/P3.1ALEPSENNT0/P3.2RSTINTT/P3.3T0/P3.4P2.0/A8T1/P3.5P2.1/A9WR/P3.6P2.2/A10RD/P3.7P2.3/A11P2.4/A12P2.5/A13XTAL1P2.6/A14XTAL2P2.7/A1580CL3139/k635K 重3221123242532741-5-8 ; k-8255A图3. 8031与8255A

7、的连接电路8255A是一种通用的可编程并行I/O接口芯片,在微型计算机系统中,可 不需要附加外部逻辑电路就可直接为 CPU与外设之间提供数据通道。在单片机8031与8255芯片连接中应接一个 74LS373译码器,8255A作为 8031的数据扩展口,输出所显示的段码及位选信号。8255A的片选信号与8031的P2.7相连,所以P2.7作为8255A的片选信号, 所以8255A的控制口地址为:EFFFH,相应的,A 口的地址为:EFFCH, B 口 的地址为:EFFDH。8255A的读写信号分别与8031的读写信号相连,使其有效时CPU从8255A 读取数据或状态信息,或向8255A写入数据或

8、控制字。RESET是复位控制信号, 高电平有效。该信号有效时,将 8255A控制寄存器内容都清零,并使所有饿断 口都置成输入方式。当引脚悬空时,芯片默认为高电平,所以,为了让 8255A 在电路中正常工作,将 RESET接地,强制使复位控制位失效。8255A驱动数码管的电路如图4所示:U13431-30-2928-7D0D1D2D3D4D5D6D7RDWRA0A1 RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC78255AVCCU2:C574LS04U2:D13U2:E9U2:F 74

9、LS04-R1470RR2470RR3470RR4470RR5470RR6470RR7470RU3:AA74LS04U4:A74LS00I3图4. 8255A驱动数码管电路图8255A的A 口和B 口都作为输出,根据 CPU输出的BCD码得到A 口相对 应的段码,A 口将段码通过一个同相驱动器(图中因未找到同相驱动器而用反相 驱动器代替)给数码管的abcdefg同时,由B 口输出位选信号,因为本次设计中 使用的数码管都是共阴极的,所以,当 B 口输出为高电平时,经过74LS00与非 门后得到低电平,即选中数码管。数字钟显示中有八个这样的数码管,他们的数 据端都是通过A 口获得,其位选信号分别接

10、 B 口的八个口线。这样,使PB0置 1,则最高位选中,然后将B 口数据循环左移,则可依次使各个数码管选中显示。3 .系统软件设计3.1 软件总体设计思想主程序主要由定时模块,显示模块和调整模块组成。定时部分采用经典的定 时器定时,结合相应的时钟软件实现计时功能。显示模块是实现数字钟的另一重 要部分,其模块的独立程度直接影响到数字钟的可视化程度。 调整模块采用中断 方式,通过按键可以调整数字钟时分秒的数值。3.2 定时模块程序中定时器,一直处于运行状态,也就是说定时器是理想运作的,其中断程序每隔 0.1 秒执行一次,在理想状态下,定时器定时是没有系统误差的,但由于定时器中断溢出后, 定时器从

11、0 开始计数, 直到被重新置数, 才开始正确定时, 这样中断溢出到中断响应到定时器被重新置数, 其间消耗的时间就造成了定时器定时的误差。 如果在前述定时器不关的情况下, 在中断程序的一开始就给定时器置数,此时误差最小,误差大约为:每0.1 秒,误差712 个机器周期。当然这是在定时器定时刚好为 0.1 秒时的情况,由以上分析,如果数字钟设计为查询的方式或是在中断的方式下将定时器中断设置为最高级, 我们在定时值设置时, 可以适当的扣除9 个机器周期的时间值。 但如果在中断的情况下, 没有将定时器中断设置为最高级, 那就要视中断程序的大小, 在定时值设置时, 扣除相应的时间值。3.3显示模块显示模

12、块的独立性强,增强了数字钟的可视化程度。在此模块的设计中,设置专 用显示数据缓冲区20H-27H与时分秒及其他数据缓冲区数据区别,在其中存放 的是各个数码管要显示数字,而其他缓冲区存放的是时间数据。在显示时,首先 分别将时分秒BCD码数据转化为各个数码管要显示的数字,分别存储于相应的 专用显示区,然后通过8255A的A 口输出段码至数码管,B 口输出位选信号, 接着A 口输出下一个段码,B 口输出下一个位选信号,依此循环则可实现八位数码管的静态输出。但由于人眼视觉分辨率远远低于数码管循环点亮的速度,所以人们看到的数字钟还是相对稳定的图6.显示模块流程图3.4调整模块数据调整有多种方式:可以直接

13、进入相关状态进行有关操作;可将调整分 两步,先进入状态,然后执行操作,分别由两个键控制。前者比较直接,设计思 想也比较简单,但是,这种方式存在操作时间和控制键数目的矛盾。 如果用比较 少的键,那么可能会在进入状态后处于数据调整等待状态,这样会影响到显示的扫描速度。当然在这种方式下,还可以使用多个状态键,每个状态键,完成一个 对应数据的调整。后者则不同,因为状态的调整,与状态的操作可以分别由两个 键控制,其状态的调整数可以多达 256个(理论上),操作的完成是这样的,一键控制状态的调整, 一键控制数据的调整。 以上两种方式的实现都可以采用查询和中断的方式,且两者进行相关操作的过程不能太长否则会影

14、响显示的扫描。本文中采用的方法是前者, 通过四个按键, 进行简单的时分秒的调整。 当按键 K4 按下时启动外中断,然后通过按键 K1 , K2 , K3 即可调整时分秒的数值。另外,采用中断的方式,最好将定时器中断的优先级设置为最高级。中断入口图7.调整模块流程图3.5软件消抖消抖可以采用硬件(施密特触发器)的方式,也可以采用软件的方式。在此只讨 论软件方式。软件消抖有定时器定时,和利用延时子程序两种方式。一,定时器 定时消抖可以不影响显示模块扫描速度, 其实现方法是:设置标志位,在定时器 中断中将其置位,然后在程序中查询。将其中断优先级设置为低于时钟定时中断, 那么它就可以完全不影响时钟定时

15、。 二,在采用延时子程序时,如果显示模块的 扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的 扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,延时子 程序的延时时间应该小于20毫秒,如果采用定时器定时的方式,延时时间不影 响时钟。如果,设计时采用的是中断的方式来完成有关操作,同样可以采用软件的方 式来消抖,其处理思想是:中断不能连续执行,两次之间有一定的时间问隔。a.子程序延时b.定时器延时图8.查询方式消抖流程图中断方式消抖流程图图9.3.6主程序流程图图10.主程序流程图4.实验在实验中利用伟福仿真器及其仿真软件,按照前述的硬件电路图连接电路,按照上述

16、各步的软件流程图编写汇编语言程序, 将软硬件相连运行程序对软硬件进行调试。观察各位数码管的显示状态,并与理论值进行比较分析。实验过程中, 显示模块能很好的实现, 无论是在单步跟踪还是全速执行的时候, LED 显示器都能将要显示的数值准确且稳定的显示出来。虽然在硬件电路中增加了驱动电路,但是一个8255A芯片驱动8个LED显示器效果仍然不是很好,特别是在全速执行时, LED 的亮度及稳定性仍有待改进。计时模块的实验过程不是很理想。 实验中分别利用一个定时器T0 进行定时,定时 4000 微秒,一个计数器T1 进行计数,计数250 次。当 T0 定时一次后 T1计数一次,这样T1 计数溢出时即可计

17、满1 秒,然后对当前时间秒值进行加 1 处理,以及相应的分值时值处理。在程序运行中,可能由于程序编写得具体细节,定时器中断返回无法实现,从而导致全速执行后 LED 显示器一直保持初始值不 变。数字钟正常显示时,按K4 键,启动外部中断子程序,按K1 键 K2 键 K3 键调整时间值,记录调整后的时间值,与希望得到的时间值进行比较。调整模块在实验中得到较好的实现,调整相应按键后, LED 显示器的显示数值也随之出现了相对应的调整。综上所述, 本次科研训练的实验还是有所收获, 虽然没能将一个完整的数字钟做出来,但也基本实现了数字钟个部分的主要功SETB TR1ACALL DISPTIM0:CLR

18、P3.3MOV TH0,#0F0HMOV TL0,#74HCALL DISPJNB TF1,$CLR TF1SETB TR1MOV A,2CHADD A,#1DA AMOV 2CH,ACALL DISPCJNE A,#60H,X4MOV 2CH,#00HCALL DISPMOV A,2BHADD A,#1DA AMOV 2BH,ACALL DISPCJNE A,#60H,X4MOV 2BH,#00HCALL DISP附录本文对应的汇编语言程序如下:ORG 0000HLJMP MAINORG 0003HLJMP INT0ORG 000BHLJMP TIM0ORG 0100HMAIN:MOV SP

19、,#70HMOV 2AH,#12HMOV 2BH,#34HMOV 2CH,#56HMOV DPTR,#7FFFHMOV A,#80HMOVX DPTR,AMOV TMOD,#51HMOV TH1,#0FFHMOV TL1,#06HMOV TH0,#0F0HMOV TL0,#74HMOV IP,#02HMOV IE,#13HMOV IP,#02HSETB TR0MOV A,2AHADD A,#1DA AMOV 2AH,ACALL DISPCJNE A,#24H,X4MOV 2AH,#00HCALL DISPX4: RETIDISP: MOV R1,#20HMOV R0,#2CHMOV R6,#03HDIS0:MOV A,R0MOV B,#10HDIV ABMOV R1,BINC R1MOV R1,AINC R1DEC R0DJNZ R6,DIS0MOV A,#0AHMOV R1,AINC R1MOV

温馨提示

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

评论

0/150

提交评论