迅维网

查看: 1363|回复: 0
打印 上一主题 下一主题

基于MSP430G2553的MINI桌面时钟

[复制链接]
跳转到指定楼层
1#
发表于 2016-7-27 10:23:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东青岛 来自 山东青岛

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
    时钟与我们的工作和生活密切相关,每天早上醒来总想看一下时间,不想去拨弄已关机的手机,也懒得去买钟表了,,所以设计了一款MINI桌面时钟。
先上图:

                               
登录/注册后看高清大图



                               
登录/注册后看高清大图


这款时钟通过两个按键即可进行调时、开关显示操作,既然说是MINI时钟,它的个头并不大,电路板的长宽分别为3CM*3CM,在这么小的洞洞板上全部采用分立电子元器件,电路板背面的飞线肯定不少了,但是加了外壳后,还是挺好看的。低功耗又怎样解释呢?MCU采用了MSP430超低功耗的单片机,虽然用数码管显示,但是可以人为控制显示的开关,当关闭数码管显示时,可以降低功耗。那么它是怎样实现这些功能的呢?下面一一介绍:


硬件电路部分:
    如图1所示,在MCU选择上,笔者选择了20引脚的MSP430G2553,它是16位单片机,它有以下特点:低工作电压:1.8~3.6V、超低功耗:活动模式:280UA(1MHZ,2.2V);待机模式 :0.5UA;掉电模式 :(RAM数据保持)0.1UA。有5种节电模式;从待机到唤醒的响应时间不超过1us;10位A/D转换器;(带有内部参考源、采样保持,最大采样率200Ks/s);16位精简指令结构(RISC),6.25ns指令周期;带有3个捕获/比较器结构的16位定时器;串行通信可软件选择UART/SPI/I2C三种模式;可在线串行编程,不需要外部编程电压;FLASH存储器为16KB,RAM为512B。这些功能足够用来做这款MINI桌面时钟,笔者采用了真个P1口作为数码管的数据端口,P2.0-P2.3为数码管的选通断,P2.4和P2.5为按键输入端,XIN和XOUT接32.768KHZ的晶振,所以它的引脚全部用上了,这样避免了硬件资源浪费。


    显示部分选用了0.28英寸的共阳数带时钟码管,这样可以满足尺寸的要求,正好可以利用数码管上面的秒显显示时钟的活动状态。
    在时钟产生电路上面并没有采用DS1302,一是为了减小体积,而是因为采用在MCU外部加32.768KHZ晶振的方式足够满足时钟的需求,因为在MCU内部可以选择系统的主时钟为内部时钟源1MHZ,配置定时器的时钟源为外部晶振32.768KHZ,16位的定时器足够满足定时的精度要求。


    按键电路采用的是轻触按键开关,经上拉电阻接MCU,按键的输入信号是低电平,一般按键在按下和松开时会有抖动现象,可以采用两种方式消除按键抖动,一是采用程序延时,一是采用硬件RS触发器,后者增加了成本和体积,前者完全可以满足需求,所以笔者选择了软件消抖。


电路制作:
    首先准备一下的电子元器件:MSP430G2553一片;0.28英寸四段带时钟共阳数码管 * 1; 三极管9012 * 4;圆孔母座一排;轻触按键长、短键各一个;32.768KHZ的晶振一个;10uf电解电容一个;0.1uf独石电容一个;1/4W 1K电阻四个;1/4W 220欧姆电阻八个;1/4W 4.7K电阻三个。


                               
登录/注册后看高清大图


根据电路图焊接好电路。

                               
登录/注册后看高清大图



                               
登录/注册后看高清大图



                               
登录/注册后看高清大图

为了遮盖住背面的飞线,为了让MINI桌面时钟更加美观,也为了环保,所以笔者采用废弃的校园上网卡制作了外壳,也可以采用废弃的手机卡、银行卡等,采用热熔胶粘接。


最后选用了两节1.5V干电池作为MNNI时钟的电源。


程序设计:
说到了程序设计,主要分为了这几部分:
主函数是必须的,时钟配置函数需要把主时钟配置为DCOCLK 1MHZ,定时器时钟配置为ACLK时钟,使用外部32.768KHZ时钟源。端口初始化函数是将各个端口为输入或者输出,以及赋初值。
定时器配置函数配置定时器工作在连续计数模式,并打开全局中断,每20MS产生一次中断。
在定时器中断函数中,需要注意的是,让秒显每1S闪烁一次的方法是每500ms取反一次,在程序中,用dp取反并配合数码管数位分解和显示函数中的switch语句配合使秒显的闪烁实现。
按键检测函数用来检测按键是否被按下,配合其他函数中的程序,赋予按键不同的功能。数位分解和数码管显示函数,是将产生的时间信息和调整的时间信息实时显示到数码管上。
按键控制开关显示是在正常走时状态下检测到按键按下后,对一个全局变量进行取反,在主函数中判断这个变量的值而来控制数码管选通端的开启或关闭。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复