精简制作32×16点阵时钟

2016-07-01 09:59作者杨记华浙江师范大学工学院职业技术教育学院
电子制作 2016年9期
关键词:蜂鸣器原理图按键

作者 / 杨记华,浙江师范大学工学院、职业技术教育学院



精简制作32×16点阵时钟

作者 / 杨记华,浙江师范大学工学院、职业技术教育学院

本系统以增强型51单片机STC12C5A60S2为控制核心,选用美国达拉斯公司生产的DS1302实时时钟芯片和DS18B20数字温度传感器制作了一个32×16点阵时钟。该点阵时钟通过较少的元器件实现了时间、温度、年、月、日、星期和重要节日轮流滚动显示功能,此外,用户还可以通过背面的三个触摸按键实现调时,同时系统还通过光敏电阻实现了感光功能。该系统制作完成后通过实物测试,获得了良好的效果。

STC12C5A60S2; 32×16点阵;触摸按键;光敏电阻

1. 系统概述

本系统选用了封装为LQFP-48的增强型51单片机STC12C5A60S2,利用其自身的相关功能简化了传统的硬件电路设计,图1为该点阵时钟的系统框图。在该制作中,通过军工铜脚排母连接PCB与LED点阵屏,方便用户取下点阵屏进行修理,所有的元件都隐藏在PCB与LED点阵屏之间,外形美观。制作中还增加了感光模块,通过光敏电阻感知周围环境的亮度,白天高亮正常显示,夜间降低LED亮度,微亮显示。

图1 32×16点阵时钟系统框图

2. 系统硬件设计与制作

■2.1 系统硬件设计

(1)单片机最小应用系统的构建

由于STC12C5A60S2单片机内部集成了MAX810专用复位电路,所以硬件设计时省去了复位电路模块,简化了电路。为了提高单片机反应速度和点阵屏亮度,使在高亮度的时候不产生闪烁感,制作中选用了24MHz的晶振。图2为单片机最小应用系统。

(2)32×16点阵显示屏模块

32×16表示32列16行LED,由8块MT15088BK 8×8红色共阳点阵组成32×16点阵显示屏,本点阵屏由单片机STC12C5A60S2直接驱动,省去了额外的驱动芯片,简化了电路,直接驱动时,为了使LED亮度更高,需要把该单片机相应的I/O口设置为强推挽输出模式。要直接驱动32×16点阵显示屏,至少需要48个I/O口,本系统巧妙设置STC12C5A60S2单片机I/O口的四种输出模式,仅用32个I/O口就实现了驱动32×16点阵显示屏,简化了电路,点阵屏电路连接如图3所示。

图2 单片机最小应用系统

(3)DS1302模块

图4为DS1302时钟电路原理图,该电路省去了SCLK(串行时钟),I/O(数据线),RST(复位)三个引脚处的上拉电阻,把与单片机连接的三个I/O口设置为强推挽输出模式,也能正确读出DS1302内的相关数据,简化了电路,若在读取DS1302的相关数据时采用单片机的准双向口输出模式,将引起DS1302的输出不稳定,我的实验现象是:正确的数据和乱码交替显示。在选择晶振两端的电容时,我也下了一番功夫,从不接电容(断开)到6pF、22pF、27pF,最后发现在27pF时时间误差最小,我的实验结果为每24小时慢4秒,在程序中补偿了每天慢的4秒,提高了时钟的精度。选用了CR1220纽扣电池作为备用电源,体积小,制作时把两引脚折弯后表贴在PCB上,易于隐藏在PCB与点阵屏之间。

图3 点阵显示屏连接图

图4 DS1302时钟电路原理图

(4)DS18B20模块

图5为DS18B20温度传感器电路原理图,制作中省去了DQ引脚处的上拉电阻,由于DS18B20没有贴片元件,制作时需要把DS18B20横着焊接在PCB与点阵屏之间,巧妙的把直插元件也隐藏了。

(5)感光模块

图6为感光模块电路原理图,G1为光敏电阻,由于STC12C5A60S2单片机有8路10位A/D转换,所以只要光敏电阻的一端接在单片机的A/D转换接口上,同时,将与单片机连接的I/O口设置为高阻输出模式,单片机就可以通过A/D转换器感知外界光线的变化引起的电平变化,从而控制LED的亮暗。

图5 DS18B20温度传感器电路原理图

(6)按键模块

图7为按键模块原理图,本系统的按键部分不再使用传统的微动按键,而采用新型的触摸按键,触摸按键的实现原理较简单,和感光模块类似,主要是通过单片机的A/ D转换器不断读取按键上电平的变化,从而判断出有无感应物,但要注意与单片机连接的I/O口必须设置为高阻输出模式,否则将无法判断出有无感应物。三个触摸按键的实质就是三个焊盘,只是这三个焊盘的形状和普通焊盘不一样,需要在设计PCB的时候,根据自己需要绘制出不同外形的焊盘,我在绘制这三个异形焊盘时,参考了百度上《AltiumDesigner中创建异形焊盘方法》一篇教程,最终完成了设计。

图6 感光模块电路原理图

(7)蜂鸣器模块

本制作中选用了KLJ-9032 无源贴片蜂鸣器,体积小,声音大,声音频率可控,但和有源蜂鸣器不同,有源蜂鸣器只要有电压就响,无源蜂鸣器则须用一定频率的方波才能驱动。图8为蜂鸣器模块原理图。

(8)电源模块

该系统采用Micro-USB接口供电,可以和手机共用5V充电器,而不需额外单独制作系统的电源,简化了硬件电路设计。制作中选用了4脚插板式Micro-USB母座,插板式具有比贴片式坚固、耐用的优点。图9为Micro-USB接口原理图。

■2.2 制作

绘制原理图和PCB时使用的软件为Altium Design-er10.0,通过这次实践,我对Altium Designer软件的操作更加熟练了,特别是在绘制PCB时,我第一次尝试了手动布线,当然也结合了系统自带的自动布线功能,以前总觉得手动布线是一件很麻烦的事情,当最后完工,看着自己的劳动成果时,感觉很有成就感。在绘制PCB时,我设计了两次才成功,第一次在做USB电源接口时,把电源的正极和负极设计反了,这样做的后果是:实物上电后,单片机迅速发烫,若不及时拔掉电源线,就会烧坏单片机。

图7 按键模块原理图

图8 蜂鸣器模块电路原理图

图9 Micro-USB接口原理图

由于制作中选用的基本都是贴片元件,更重要的是选用了LQFP-48封装的单片机,引脚间距特别小,需要具有一定的焊接能力。在焊接过程中,主要使用到的工具有电烙铁、焊锡丝、松香、镊子、吸锡带、放大镜。

设计时,在PCB上预留了一个下载程序用的接口,由于该系统省去了USB转TTL模块,所以在下载程序前还需要购买一条STC单片机专用下载线。

3. 系统软件设计

该系统的硬件电路已经很简化了,比传统的点阵时钟电路少了驱动芯片,I/O口扩展芯片,上拉电阻等。硬件电路简单了,要实现相同的功能,就意味着编写的程序更复杂了,为了使点阵屏的每个LED亮度均匀,采用了逐点扫描的方式。

图10为AD触摸按键检测程序,三个触摸按键通过程序实现了三级菜单触摸设置,第一级菜单完成了调时功能,包括调整年、月、日、星期、时、分和秒;第二级菜单完成了调整亮度功能,实现了六级亮度可调,实现原理比较简单,由每个LED点亮的时间决定;第三级菜单完成了显示模式功能,包括白天和夜间两种模式,白天模式由时间、温度、年月日和星期轮流滚动显示,在时间和温度轮流显示时,加入了左移和右移动画,使得不会产生“突然出来”的感觉,在滚动过程中,还增加了重要节日显示功能,夜间模式只有时间的静止显示,且显示亮度比白天较低,同时省去了温度显示和年月日滚动显示功能,处于夜间模式时,只需按下S2键或S3键即可快速进入白天显示模式。当用户完成某项设置时,会有“完成”字样在LED屏上滚动显示,随后进入时间显示的主界面,另外,同时按下S2键和S3键可以初始化ds1302,省去了每次都要下载程序才能初始化的麻烦。

4. 总结

在制作过程中,虽处处碰壁,感觉到处都是问题,但我没放弃,“它山之石可以攻玉”,我带着这些问题通过查阅相关书籍和利用网络查漏补缺,功夫不负有心人,最后完成了制作,并实现了相关功能。

图10 AD触摸按键检测程序

* [1]王渊峰.Altium Designer 10电路设计标准教程 [M].科学出版社,2012.

* [1]郭天祥.新概念51单片机C语言教程设计入门提高开发拓展全攻略[M].电子工业出版社,2009.

* [1]杜洋.爱上单片机[M]:第3版.人民邮电出版社,2014.

* [1]谭浩强.C语言程序设计[M]:第4版.清华大学出版社,2010.

* [1]柴田望洋.明解C语言[M].人民邮电出版社,2013.

* [1]BradleyL.Jones peter Aitken.21天学通C语言[M].人民邮电出版社,2012.

猜你喜欢
蜂鸣器原理图按键
电动自行车产品车速提示音检测现状和整改技术研究(2)
基于有限状态机的按键检测程序设计
掌控板制作简易钢琴
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
单片机驱动蜂鸣器的程序设计
按键消抖在单片机和FPGA实验教学中的应用
一种多方向导光按键结构设计
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响