登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
单片机应用于方案
›
用DS12887制作无电源仍可走时的时钟
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版
用DS12887制作无电源仍可走时的时钟
[复制链接]
1989
0
ad***
管理员
发表在
电源技术
2014-4-4 14:01:20
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
乍一看题目读者可能会纳闷,这是什么奇怪的东西,不用
电源
还可以工作?其实笔者只是在这里卖了个关子,说的是不用外加电源也可以正常走时,并不是说整个电路工作时不需要供电。也就是说不使用时这个时钟不需要供电,在你加上电源之后就可以显示时间,并且仍然是正确的。就好像有些
手机
关闭之后又取下电板,等你下次开机的时候它又能显示正确的时间。其实这些手机里面都是有后备
电池
的,就是做时钟那一小块电路有后备电池供着电的。要是后备电池没有了电,取下电板后问题就来了,这也是为什么有些用久了的手机取下电板再装上,时间就不对了的缘故。但是本文说的这个时钟不需要外加后备电池,那它是怎么做到这一点的呢?请听我慢慢道来。
先了解一下"主角"的基本特性吧。
DS1
2887是Dallas半导体公司推出的实时时钟芯片,在芯片内部集成了石英
晶体
、
锂电池
和其他支持电路,在没有外部供电的情况下,可以正确走时10年;可以计数时分秒、年月日和星期等信息,而且润年补偿到
2100
年有效;内部的闹钟寄存器用来保存闹钟时间,当实时时间等于闹钟时间时,在DS
12
887的IRQ(----)引脚输出低电平,微控制器可以利用此信号作为闹钟信号来处理。笔者用万用板焊接了电路,实物图见如图1。下面将介绍如何使用
DS12887
制作这个时钟。
芯片引脚
了解了"主角"的基本特性,再来看看它的引脚。一个芯片的引脚可以看作是跟外界"交流"的通道,了解了引脚的用法就可以知道如何跟
单片机
相连。芯片引脚如图2所示,其中部分引脚命名与官方的数据手册有所不同,原数据手册上使用的是
Mot
orala总线时序的命名方式,这里为了方便理解,采用Intel总线时序的命名方式,因为文章所使用的
51
单片机即为Intel时序。这两种总线时序最初分别是用在Motorala和Intel两家公司生产的芯片中,有兴趣的朋友可以在DS12887的数据手册上找到更详细的信息。引脚MOT为总线方式选择,DS12887可以有两种时序:当MOT接
VCC
时选择Motorala总线时序;当MOT接地或悬空时选择Intel总线时序。本文用
AT89S52
作为控制器,AT89S52作为一种典型的51单片机,理所当然使用的是Intel总线时序。
AD
0~
AD7
是地址、数据复用线,跟标准的51单片机的P0口类似,在一个读写周期里的前后两个时间段分别是作为地址线或数据线。可以直接连接到AT89S52的P0口。
ALE为地址锁存信号,因为DS12887数据地址线采用分时复用的形式,所以需要ALE作地址锁存信号。在一个读写周期里AD0~AD7引脚上首先出现的信号表示地址,通过ALE的下降沿将该信号锁存到DS12887的地址寄存器,稍后AD0~AD7引脚上出现的信号则表示写入或读出DS12887的数据。ALE可以直接连接至AT89S52的ALE引脚。
RD(---)、WR(---)是读写控制信号引脚,分别连接AT89S52的RD(---)(P3.7)、WR(---)(P3.6)引脚。CS(--)为片选信号,为低电平时选中芯片,可以跟AT89S52的P2.7脚相连,这样就可以形成DS12887的读写基地址:0x0000。
IRQ(----)引脚为中断输出信号,当DS12887产生中断时,在IRQ(----)引脚输出有效低电平,该引脚为漏极开路输出,在外部需要加上拉
电阻
。复位功能在本设计中不使用,RST(----)可以直接接高电平。
片内资源
看完了外面,进到里面看看。DS12887内部有10字节的时钟(时、分、秒)、闹钟(时、分、秒)和日历(年、月、日、星期)寄存器和4个控制寄存器以及114字节的通用RAM。地址分配如附表所示。在本文的设计中只使用了前面14字节的时钟、闹钟、日历和控制寄存器,其余的114字节的RAM并未使用。采用了图3所示的电路图后,片内的14字节的地址分配就是从0x0000~0x000D,在程序中可以像访问外部RAM一样方便地读取和写入数据至这些地址。0x0000~0x0009是时钟、闹钟和日历寄存器,保留了时间信息等相关内容,单片机可以通过读取这些内容将时间信息显示出来。寄存器A的BIT6~BIT5控制DS12887内部
晶体振荡器
的关断。寄存器B控制各种中断的使能,在本文中需要将闹钟使能位(BIT5)打开,BIT2决定输出的时钟数据是十六进制或是BCD码,BIT1决定时间采用的格式:
24
小时或12小时制。寄存器C保存了中断标志位,若在使用
多种
中断的情况下,微控制器可以通过读取该寄存器辨别是产生了何种中断,从而进入相应的处理程序。而在本设计中,只使用了闹钟中断,当在/IRQ引脚输出低电平时,就可以判断产生了闹钟时间到的中断。但是仍需要通过读取该寄存器以清楚中断标志,以免程序重复处理。寄存器D是与器件是否有效相关的寄存器,本电路无需处理该寄存器。
硬件电路
电路使用4位一体共阴极
数码管
显示时钟、闹钟和日历信息,数码管采用
CD4511
作硬件译码,74
LS06
作动态选择和驱动电路。电路图如图3所示。CD4511是一种用于数码管显示的译码芯片,在芯片输入引脚(D~A)输入4位二进制数值,在输出端(a~g)则译码输出共阴极数码管所需要显示的数值,例如在CD4511的D~A这4个引脚输入"
0101
"(十进制的"5",D为最高有效位数据),则在输出端的a~g输出"1011011"。而且CD4511有个很有用的"消隐"功能,即当输入端D~A的值大于9时,输出端a~g呈现高阻态,从而在数码管表现为7段灯都会灭掉。
74LS06包含6个非门电路,本文只需要其中4路即可。在输入端置"1",对应的输出端则为"0",则选中其中一个数码管。比如在AT89S52的P1.4输入"1",则74LS06的4A引脚为"1",在其对应的输出脚4Y输出就为"0",从而选中与s1相连的DS1数码管。在焊接电路板时,可以将CD4511和74LS06这两个芯片放在数码管下方,这样整个电路板就会小巧一些。因为数码管只有4位,而且必须用其中的两位显示一项时间信息,所以每次只可以显示两项时间信息,例如DS1、
DS2
分别显示月份的十位、个位,
DS3
、
DS4
分别显示日期的十位、个位。但要显示的时间信息要多得多,所以采用"分时复用"的方法轮流显示时和分、月和日、年和星期,在时间分配上笔者使用了下述方案:在每一分钟中,0~9s、20~39s、50~59s的时间里显示时钟的时和分,在10~19s内显示月和日,在
40
~49s内显示年和星期,而时钟的秒数则不作显示处理。因为星期的最大数值为7(表示星期天),可以只在个位显示,星期分配的十位可以作"消隐"处理。设定的闹钟信息不是需要经常查看的,所以不做上述的分时显示,而是通过按下
KEY
4键查看。电路图中的4个按键功能分配如下,KEY1:数值加1键;KEY2:数值减1键;KEY3:调节项目选择,当该键按下可以选择不同的调节项目,依次为时钟的时、时钟的分、月份、日期、年、星期、闹钟的时和闹钟的分。KEY4:选择显示时间(包括时、分、月、日、年和星期)或闹钟。红色的
LED
闪亮表示数码管当前显示的是闹钟的时和分,绿色的LED闪亮表示当前显示的是时钟的时和分;而红色的LED闪亮和
蜂鸣器
发出声音,则表示闹钟所定格的时间到来,发出警报提醒;当两个LED都不闪亮时表示显示的为日历信息,即月、日、年和星期,可以通过DS3是否显示数据区分出显示的是月、日还是年、星期。
软件设计
笔者使用的编译环境为
Kei
l编译软件,采用
C51
编程语言。整个程序由几个
模块
构成,文件
mmi
.c中包括一些人机交互处理的函数,比如读取按键、在数码管上显示时间信息、LED和蜂鸣器的发声处理等;文件ds12887.c中包括读写和初始化DS12887的函数;文件my52.c中包含延时函数;在文件main.c中则调用这些模块中的函数进行综合处理,主函数的程序流程图如图4所示。各个
xxx
.h文件中则是相应的xxx.c文件中的函数声明、全局变量声明等
电源
,
读者
相关帖子
便携式B超电源的设计
单相逆变器多环反馈控制策略分析
有关热插拔电源的各种问题
几种实用的直流开关电源保护电路
中国电源管理芯片市场现状与趋势
电化学整流电源电联接方案的优化设计
隧道解决方案
FANUC0i系统的原理框图和维修方法
单电源低功耗运算放大器,电压比较器和基准电压源CN951
音频滤波
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
VK1S38A SSOP24点阵数显LED驱动芯片/数码管
VK1S38A是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3
点阵LED数显屏驱动芯片/数码屏显示IC-VK162
VK1628是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3线
数显屏驱动原厂-VK1668 SOP24抗干扰数显LED
产品品牌:永嘉微电/VINKA 产品型号:VK1668 封装形式:SOP24 概述 VK166
抗干扰LED数码管显示屏驱动芯片/3线串行接
VK1Q68D是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片。内部集成有3线
抗干扰能力强/点阵数显LED屏驱动/数码管驱
VK1S68C是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3 线串
更多
精华推荐
VK1S38A SSOP24点阵数显LED驱动芯片/数码管
点阵LED数显屏驱动芯片/数码屏显示IC-VK162
数显屏驱动原厂-VK1668 SOP24抗干扰数显LED
抗干扰LED数码管显示屏驱动芯片/3线串行接
抗干扰能力强/点阵数显LED屏驱动/数码管驱
可支持14×4的点阵LED显示面板数码管LED驱
数显驱动器原厂-数显LED显示驱动芯片VK1620
抗干扰数显驱动数码管LED驱动芯片VK1618 SO
更多
社区学堂
VK1S38A SSOP24点阵数显LED驱动芯片/数
点阵LED数显屏驱动芯片/数码屏显示IC-V
VK1S38A SSOP24点阵数显LED驱动芯片/数码管
VK1S38A是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3
点阵LED数显屏驱动芯片/数码屏显示IC-VK162
VK1628是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3线
数显屏驱动原厂-VK1668 SOP24抗干扰数显LED
产品品牌:永嘉微电/VINKA 产品型号:VK1668 封装形式:SOP24 概述 VK166
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表