新闻  |   论坛  |   博客  |   在线研讨会
多功能数字时钟
tvb2058 | 2007-09-14 11:22:19    阅读:47543   发布文章

 

 

 

 

 

 

 

 

辅导教师:秦文华  赵建平

作者:邢庆翠  王式龙  张乾

完成时间:2004913

电子设计参赛队:B0816   

 

 

 

 

曲阜师范大学

2004年9月13日

 


 

 

 

一.  方案论证与比较

二.  系统设计

三.  软件设计

四.  系统测试与分析

五.  设计总结

六.  参考资料

 

               

 

摘要

本设计由单片机89C51DS12887A时钟芯片、DAC0809模数转换芯片为核心,辅以必要的电路,构成了一个具有多功能的数字时钟 。它由220V50Hz交流电源供电,能够准确的显示时间、调整时间、闹钟定时,并能够对时钟所在的环境温度、工作时的电网电压、电网频率进行显示,还具有电压欠压、过压报警以及非接触止闹功能。


一、方案论证与比较 1.数字时钟

数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。

方案一:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。

该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。

方案二:本方案采用Dallas公司的专用时钟芯片DS12887A。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。

基于时钟芯片的上述优点,本设计采用方案二完成数字时钟的功能。

2.数码管显示

方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。

方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的   每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O口,降低了能耗。

本设计从节省I/O口和降低能耗出发,采用方案二。

二、系统设计 1.总体设计

1)系统框图

系统框图如图1所示。

 

 

数码管显示模块       

温度转换模块

频率采集模块

时钟芯片

报警系统

键盘 状态显示

电源

电压转换模块

文本框: 单 片 机 

 

 

 

 

 

 

 

 

 


                              1 系统框图

 

2)模块说明

a.       数码管显示模块:用数码管显示时间、环境温度、电网频率及电压温度转换模块:测量环境温度,并经过模数转换后送单片机。

b.      时钟芯片:用DS12887A时钟芯片向单片机提供时间与闹铃信息。

c.       报警系统:用蜂鸣器。当闹铃开且所设置的闹铃时刻到时,蜂鸣器报警,当电网电压欠压或过压时,蜂鸣器也报警。当“闹铃关”键按下或有遥控器止闹时,停止报警。

d.      键盘和状态显示模块:用可编程并行I/O芯片8255接状态显示所用的发光二极管及选择各功能的键盘。

e.       单片机控制模块:用89C51实现。是系统的主控制器,控制其它模块协调工作。

f.        电源模块:向各用电系统提供电源。

g.       电压转换模块:测量电网电压,并经过模数转换后送单片机。

 

2.模块设计与参数计算

(1)    码管显示:本设计采用串行输出显示,利用一片8位移位寄存器74LS164给所有数码管提供显示信号,且利用动态显示,节约了单片机I/O口,降低了能耗。数码管采用LG5643FH。电路如图2所示。

(2)    电源模块:由于单片机及其处围的用电模块都用5V12V直流电源,而电网电压为220V交流电,因此需要设计电源。利用8W的变压器将220V的电网电压变压后加在桥式整流电路的两端进行全波整流。利用三端稳压电源分别产生12V5V的电压。三端稳压电源选择CW7812DSCW7805DS。原因是它们有过压保护和过流保护而使其免受高压或大电流的袭击;而且与其他三端稳压电源相比,它们更具经济性的特点。

根据该电源所带的负载知流过该电源的电压不超过I=1A。因为变压器输出大约为Uo=12V,所以电阻 。因为电网电压一般为220V 50Hz,所以全波整流后的电压周期大约为10毫秒。又因为时间常数 ms,所以取

数码管显示电路

 

                         3 电源电路

0.1pf的小电容用于滤掉电路路频率较高的部分,使电压输出更加平稳。

3)频率采集模块:如图4所示,对电源电路中全波整流后的信号进行判断:若电压大于+5V,则二极管正极电压被嵌位于为5.7V,若小于5V,则为原值不变。因此形成向下的尖脉冲,经施密特触发器CD4093变为正脉冲。如图5所示。施密特触发器的输出接单片机的P1.5口。在单片机内部数1S内脉冲的个数,除以2后即为电网电压的频率。

 

                              图4 频率采集电路

 

 

 

 

 

 

 

 

 

 

 

 

 


图5 频率采集电路的波形变换

 

(4)                温度转换模块:用温度传感器采集环境温度将其转化成模拟量,并将该模拟量送入DAC0809的输入端进行模数转换。最后将转换后的数字量送入单片机89C51进行处理。电路图如图6所示。

                         图6 测温电路

(5)                电压转换模块:因为电网电压也是模拟量,要想利用单片机对其进行处理仍需将模拟量进行模数转换。转换电路如图7所示。它仍利用电源电路中全波整流后的信号作为输入。因为频率采集电路也以全波整流后的信号作为输入,为了防止电压转换电路的RC回路产生的稳态电压影响频率采集电路的工作,应在电压转换模块的输入端接入二极管。

 

           图7 电压转换电路

(6)                键盘、状态显示模块:为了使软件编程简单,本设计利用可编程I/O芯片8255。接法如表1所示。PB口接按键,PC口则用于控制状态显示所用的发光二极管。每个按键都通过一个10K的上拉电阻接电源+   ,按键的另一端接地。当有键按下时,与该键相连的PB口的相应位变为低电平,单片机检测到该变化后即转到相应的键处理程序,同时在程序中点亮相应的发光二极管。

 

1   PBPC口与键和状态的对应关系

PB

PB.0

PB.1

PB.2

PB.3

PB.4

PB.5

PB.6

按键

功能

设置时间

设置闹铃

小时

分钟

闹铃开

闹铃关

PC

PC.1

PC.2

PC.3

PC.4

PC.5

PC.6

PC.7

状态

时钟

温度

电压

频率

AM/PM

闹铃响

铃不响

 

(7)                报警系统:将蜂鸣器一端接在单片机的P1.6口上,另一端接地。当需要报警时,在口上送上高电平即可;需要关报警时,则送低电平。

(8)                红外非接触止闹系统:红外线传输稳定、可靠,不容易受外界杂散信号的干扰,信号处理简单。为了简化系统电路,我们采用了遥控电视机中经常使用红外遥控系统。遥控器直接使用电视机的遥控器,不用改装。红外信号的接收,采用红外光电二极管与放大电路一体的红外接收器,该器件只有三只引脚,使用极其简单,电路如图8所示。用接收器输出的信号送到三极管N3的基极,N3的集电极、发射极并接在“闹铃关”两端。当接收器接收到信号并输出脉冲时,三极管N3导通,相当于“闹铃关”接通按下,单片机的相应引脚被置为低电平。单片机检测到该信号,执行相应的关闹铃程序。

 

 

                   

        8    红外遥控止闹电路

三、软件设计 1.主程序流程图

主程序流程图如图9所示。

2.  蜂鸣器闹铃中断服务子程序

蜂鸣器闹铃中断服务子程序流图如图10所示。当数字时钟处在闹铃开状态下到达所设置的闹铃时间时,进入该中断服务子程序。此中断服务子程序的作用是当系统处在闹铃状态下时,若闹铃关键按下或有遥控止闹,则关闭蜂鸣器;蜂鸣器在32.55s之后自动停止。

四、系统测试与分析 1.测试仪器 :

秒表

温度表

电压表

调压器

频率计

低频信号发生器

2.基本要求部分的测试与分析

(1)            按下“设置时间”键,观察到“钟表” 和“温度”的发光二极管同时点亮,此时可对时间进行设置。按下“小时”,“分钟”键,观察数码管的小时部分和分钟部分是否随相应按键的变化而变化。经测试该步可以很好的实现。调整时间完毕后,再按一下“设置时间”

开启报警系统

开始

初始化

显示时间

读电压

电压>240V?

电压<200V?

有键按下吗?

        判断键值

功能

显示时间

显示温度

显示频率

显示电压

设置时间

设置闹钟

闹铃关处理

闹铃开处理

关闭报警系统

显示电压

 


                                          

 

 

              

                                            

 

 

 

 

                                        Y                                                         

 

                                                                          

N

                                        Y

 

                                            N

 

 

 

                                                                       N

 

 

Y

 

 

                                                         

                                                            

                                          

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
qq710390891  2012-05-03 13:17:51 

设计得很好,就是有些电路图显示不出来或不完整。不知道作者能不能上传完整的电路图

客卿 [ 匿名]  2008-11-16 11:02:22 

有没有更详细点的 麻烦啦

[ 匿名]  2008-10-19 13:57:49 

推荐文章
最近访客