一、方案论证与比较
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) 电源模块:由于单片机及其处围的用电模块都用5V或12V直流电源,
而电网电压为220V交流电,因此需要设计电源。利用8W的变压器将220V的电网电压变压后加在桥式整流电路的两端进行全波整流。利用三端稳压电源分别产生12V和5V的电压。三端稳压电源选择
CW7812DS和CW7805DS。原因是它们有过压保护和过流保护而使其免受高压或大电流的袭击;而且与其他三端稳压电源相比,它们更具经济性的特点。
根据该电源所带的负载知流过该电源的电压不超过I=1A。因为变压器输出大约为Uo=12V,所以电阻RUo12。因为电网电压一般I为220V ,50Hz,所以全波整流后的电压周期大约为10毫秒。又因为时间常数RE210ms,所以取E21000f。
图2 数码管显示电路
图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的上拉
电阻接电源+ VCC,按键的另一端接地。当有键按下时,与该键相连的PB口的相应位变为低电平,单片机检测到该变化后即转到相应的键处理程序,同时在程序中点亮相应的发光二极管。
表1 PB、PC口与键和状态的对应关系 PB.0 PB.1 PB.2 PB.3 PB.4 PB.5 PB.6 功能 设置时设置闹小时 分钟 闹铃开 闹铃关 间 铃 PC.1 PC.2 PC.3 PC.4 PC.5 PC.6 PC.7 PB口 按键 PC口 状态
(7)
时钟 温度 电压 频率 AM/PM 闹铃响 铃不响 (8)
报警系统:将蜂鸣器一端接在单片机的P1.6口上,另一端接地。当需要报警时,在口上送上高电平即可;需要关报警时,则送低电平。
红外非接触止闹系统:红外线传输稳定、可靠,不容易受外界杂散信号的干扰,信号处理简单。为了简化系统电路,我们采用了遥控电视机中经常使用红外遥控系统。遥控器直接使用电视机的遥控器,不用改装。红外信号的接收,采用红外光电二极管与放大电路一体的红外接收器,该器件只有三只引脚,使用极其简单,电路如图8所示。用接收器输出的信号送到三极管N3的基极,N3的集电极、发射极并接在“闹铃关”两端。当接收器接收到信号并输出脉冲时,三极管N3导通,相当于“闹铃关”接通按下,单片机的相应引脚被置为低电平。单片机检测到该信号,执行相应的关闹铃程序。
图 8 红外遥控止闹电路
三、软件设计
1.主程序流程图
主程序流程图如图9所示。
2. 蜂鸣器闹铃中断服务子程序
蜂鸣器闹铃中断服务子程序流图如图10所示。当数字时钟处在闹铃开状态下到达所设置的闹铃时间时,进入该中断服务子程序。此中断服务子程序的作用是当系统处在闹铃状态下时,若闹铃关键按下或有遥控止闹,则关闭蜂鸣器;蜂鸣器在32.55s之后自动停止。
四、系统测试与分析
1.测试仪器 :
秒表 温度表 电压表 调压器 频率计
低频信号发生器
2.基本要求部分的测试与分析
(1)
按下“设置时间”键,观察到“钟表” 和“温度”的发光二极管同时点亮,此时可对时间进行设置。按下“小时”,“分钟”键,观察数码管的小时部分和分钟部分是否随相应按键的变化而变化。经测试该步可以很好的实现。调整时间完毕后,再按一下“设置时间”
开始 初始化 显示时间 读电压 Y 电压>240V? N Y 显示电压 开启报警系统 电压<200V? N 关闭报警系统 N 有键按下吗? Y 判断键值 功能 设 设 闹闹 置 置 铃铃 时闹开关 显间 钟 显显显处处 理 理 示示示示 时温频电 间 度 率 压 图9 主程序流图
进入中断子程序 保护现场 蜂鸣器响 MOV R1, #2
MOV R2,#0FFH
定时66.536毫秒
“闹铃关”键按下或有 遥控止闹 N N R2=R2-1=0? Y N R1=R1-1=0?
Y N 关闭蜂鸣器 恢复现场 返回
图10 蜂鸣器闹铃中断服务子程序
Y (2)
(3)
(4)
(5)
(6)
键,即可完成对时间的设置。
按下“设置闹铃”键,观察到“电压”、“频率”二极管同时点亮;按下“小时”、“分钟”键,观察数码管的小时部分和分钟部分是否随相应按键的变化而变化,经测试该部分可很好的实现。调整好后,再按一下“设置闹铃”键,则设置完毕。
利用秒表测量数字时钟变化1分钟时的时间间隔。由测试结果知,误差范围很小,其中包括人的反映误差。若除去人的反映误差,则由电路造成的误差可忽略不计。这其中主要的原因是设计中使用了12887专用时钟芯片。
设置好闹铃时间后,按下“闹铃开”键,在所设置的闹铃时刻观察蜂鸣器是否产生闹铃报警,并观察代表闹铃响与不响的发光二极管是否点亮。经测试该部分也能很好的完成。
在系统闹铃时按下“闹铃关”键,观察闹铃是否停止,并观察代表闹铃响与不响的发光二极管是否点亮。经测试该部分也能很好的完成。
当数字时钟的小时位大于12时,观察代表AM/PM的发光二极管是否点亮。经验证,当数字时钟的小时位大于12时,发光二极管点亮。
2. 发挥部分的测试与分析
在该部分中,利用“功能”键实现各个功能之间的切换。此时“闹铃
开”键作为各个功能的“确认”键。按下功能键,选择相应的功能,然后按
下确认键即执行相应的功能。再按一下“确认”键,即可回到时钟状态。 (1)键盘切换现场环境温度显示:按“功能”键选择“温度”,将温度传感器和温度计放入不同的测试环境中进行测试,结果如表2所示。
表2 与标准温度计测量值比较表 温度计示值(摄氏度) 0.0 25.2 49.9 70.1 100.0 数字钟输出(摄氏度) 000.0 025.3 050.0 070.3 100.0 由测试知,数字钟的输出与温度计值基本上相等,误差不大于0.5度。 (2)键盘切换电网频率、电压显示:利用调压器改变电网电压,调压器输出分别接数字时钟与电压表,将它们的电压值进行比较。如表3所示。利用低频信号发生器模拟电网频率的变化,并将其输出分别接频率计和数字时钟,将所得频率值进行比较,如表4所示。
表3 电压值 电压表 220 215 200 230 235 数字时钟 220.0 214.4 200.2 231.1 235.6 表4频率值 频率计 50 48 46 52 54 数字时钟 050.0 047.8 045.8 052.1 054.8 (3)欠压、过压报警:利用调压器改变电压值,观测出当电压大于240或小于200时数字时钟具有报警功能。
(4)利用遥控器,当闹铃响时,能对其实现遥控止闹的功能。
五、设计总结:
经过小组成员的一致努力,完成了本次课题的任务,达到了预期的的。设计制作了一个具有多种功能的数字时钟。
本设计很好的完成了基本功能部分、发挥部分的功能。 1.基本要求
(1)具有时间设置(小时和分钟)、闹钟时间设置、闹钟开、闹钟关功能。 (2)数字显示小时、分钟,有AM、PM指示器,闹钟就绪灯,蜂鸣器。 (3)220V供电。
2.发挥部分
(1)键盘切换现场环境温度显示。(0~60℃1℃) (2)键盘切换电网频率、电压显示。
(3)电压欠压、过压报警(~220V10%)功能。 (4)非接触止闹功能。
六、参考资料:
1.《微型计算机控制技术》 于海生编 清华大学出版社 1999.6 2.《MCS-51系列单片机原理及应用》 孙涵芳等编 北京航空航天大学出版社 1996.4 3.《综合电子设计与实践》 黄正谨等编 东南大学出版社 2002.3 4.《电子设计竞赛赛题解析》 黄正谨等编 东南大学出版社 2003.5
因篇幅问题不能全部显示,请点此查看更多更全内容