- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机LED显示器的数字钟设计
基于单片机LED显示器的数字钟设计
本设计基于8031单片机控制,采用LED显示器设计一数字钟的设计方案。该数字钟能稳定显示时分秒,同时实现时分秒的数值调整。本文详细讨论了具体硬件电路,相关原器件的选择以及软件实现过程。比较时钟调整的查询方式和中断方式,对数字钟的稳定性和计时的精确性作了相关的讨论。在实验室通过硬件电路和仿真器进行模拟实验,验证电路和程序的正确性。最后给出采用中断方式实现的数字钟的源程序。
1.引 言
在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径。
单片机以其体积小,使用灵活方便,成本低,易于产品化,抗干扰能力强,可在各种恶劣环境下工作等特点,广泛的应用于工业控制,智能仪表,家用电器,机器人,医疗仪器,军事装备等方面。为了加深对单片机应用的认识,巩固所学的单片机知识,本次科研训练特选题“基于单片机数码管显示的数字钟设计”,尝试基本电路设计和汇编语言编程以及锻炼实践动手能力。
数字钟的实现方法多种多样,简单的可以由一些集成电子电路实现,精确点的可以通过某些时钟芯片,如MSM5832,,
单片机8031与8255A的硬件连接如图3所示:
图3. 8031与8255A的连接电路
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写入数据或控制字。RESET是复位控制信号,高电平有效。该信号有效时,将8255A控制寄存器内容都清零,并使所有饿断口都置成输入方式。当引脚悬空时,芯片默认为高电平,所以,为了让8255A在电路中正常工作,将RESET接地,强制使复位控制位失效。
8255A驱动数码管的电路如图4所示:
图4. 8255A驱动数码管电路图
8255A的A口和B口都作为输出,根据CPU输出的BCD码得到A口相对应的段码,A口将段码通过一个同相驱动器(图中因未找到同相驱动器而用反相驱动器代替)给数码管的abcdefg,同时,由B口输出位选信号,因为本次设计中使用的数码管都是共阴极的,所以,当B口输出为高电平时,经过74LS00与非门后得到低电平,即选中数码管。数字钟显示中有八个这样的数码管,他们的数据端都是通过A口获得,其位选信号分别接B口的八个口线。这样,使PB0置1,则最高位选中,然后将B口数据循环左移,则可依次使各个数码管选中显示。
3.系统软件设计
3.1软件总体设计思想
主程序主要由定时模块,显示模块和调整模块组成。定时部分采用经典的定时器定时,结合相应的时钟软件实现计时功能。显示模块是实现数字钟的另一重要部分,其模块的独立程度直接影响到数字钟的可视化程度。调整模块采用中断方式,通过按键可以调整数字钟时分秒的数值。
3.2定时模块
程序中定时器,一直处于运行状态,也就是说定时器是理想运作的,其中断
程序每隔0.1秒执行一次,在理想状态下,定时器定时是没有系统误差的,但由于定时器中断溢出后,定时器从0开始计数,直到被重新置数,才开始正确定时,这样中断溢出到中断响应到定时器被重新置数,其间消耗的时间就造成了定时器定时的误差。如果在前述定时器不关的情况下,在中断程序的一开始就给定时器置数,此时误差最小,误差大约为:每0.1秒,误差7—12个机器周期。当然这是在定时器定时刚好为0.1秒时的情况,由以上分析,如果数字钟设计为查询的方式或是在中断的方式下将定时器中断设置为最高级,我们在定时值设置时,可以适当的扣除9个机器周期的时间值。但如果在中断的情况下,没有将定时器中断设置为最高级,那就要视中断程序的大小,在定时值设置时,扣除相应的时间值。
3.3显示模块
显示模块的独立性强,增强了数字钟的可视化程度。在此模块的设计中,设置专用显示数据缓冲区20H-27H与时分秒及其他数据缓冲区数据区别,在其中存放的是各个数码管要显示数字,而其他缓冲区存放的是时间数据。在显示时,首先分别将时分秒BCD码数据转化为各个数码管要显示的数字,分别存储于相应的专用显示区
文档评论(0)