微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 实战单片机电子钟制作

实战单片机电子钟制作

时间:12-27 来源:互联网 点击:

方案和最终目标:

1.整体功能达到市售电子日历效果,显示内容包括年、月、日、星期、时、分、秒、室温。
2.实时时钟芯片有两种:DS12C887、DS1302。学习和使用过程中可进行选择。
3.数码管控制采用MAX7219专用扫描驱动芯片。
4.电路板上留有PS/2键盘接口,用于调节当前时间、数码管显示亮度、闹铃时间。这一点和普通电子日历有明显区别,毕竟我们做的是一个有点专业要求的电子钟。
5.电路板上安装有继电器,可作为简单的时间控制或温度控制装置。
6.设计出原理图和PCB图,找厂家制出PCB,编程实现预期效果。

下面对整个电子钟的设计和制作过程做一个图示说明,希望对想做这方面毕业设计的学生朋友有所帮助。

主要元器件选用

1.单片机

就用AT89S51吧,太方便了,只要在侧面留有ISP插针接口,外接编程器就可以方便地在线改写调试程序了。ISP编程插针设置如图1所示。

2.实时时钟芯片

有DS12C887、DS1302两种。前者内部自带锂电池,后者要外接后备电池,二者的实物对比如图2所示。DS12C887的最大特点是有15种频率可编程方波输出功能,在某些情况下可作为简易的方波发生器,电路板上也设有输出拉环和插针,便于不同场合的连接需求,如图1中的标示。

3.PS/2接口

PS/2接口就是电脑主机后面的键盘或鼠标接口,实物如图3所示,共有6个引脚,实际只用4个,分别是电源正、电源负、数据脚、时钟脚,各插孔功能标识见图4。

4.MAX7219

很方便的一款专用数码管驱动芯片,与单片机之间采用三线连接,串行传送数据,就是对电源要求高一些,在紧靠它的地方加上两个电容就能使其稳定工作,实物见图5。

5.温度传感器

DS18B20是最佳选择,体积小巧,与单片机连接简单,数据处理方便,实物如图6所示。

原理图设计

经过试验板搭接和综合考虑,各器件与单片机各引脚的连接关系如下:
1.AT89S51的P1.5、P1.6、P1.7用于ISP编程,不作他用。
2.DS1302的第7脚(SCLK)、第6脚(I/O)、第5脚(RST)分别接AT89S51的P1.0、P1.1、P1.2。
3.MAX7219的第1脚(DIN)、第12脚(CS)、第13脚(SCL)分别接AT89S51的P2.0、P2.1、P2.2。
4.DS12C887的第4脚(AD0)—第11脚(AD7)接AT89S51的P0.0~P0.7、第13脚(/CS)接P2.7、第14脚(AS)接ALE、第15脚(R/W)接P3.6、第17脚(DS)接P3.7、第19脚(IRQ)接P3.3。
5.LED、继电器、DS18B20分别占用P3.0、P1.4、P1.3。

设计原理图如图7所示。

PCB设计

这里PCB设计没有按照传统的设计顺序,即由原理图到网络表再到PCB,主要是因为有的元件没有现成的封装,相比之下对于这个不太复杂的电路,手工布线更为灵活。经过半个多月的纯手工设计,最终的PCB图如图8所示。

焊接制作及编程调试

将PCB图发给电路板厂家,经过半个月的等待,终于等到了成品电路板,黑色的阻焊层与白色的字符层,更显得对比分明,尤其是对着电路板长时间进行目测检查,没有视觉疲劳感,之前的绿色电路板观察时间长了会感觉眼花。空PCB如图9所示。作者在电路板上作了很多引脚功能和连接标注,对编程调试很有帮助。

到这里就可以进入编程调试阶段了,这个时钟程序的编写主要包括以下4个主要部分:

1.PS/2键盘通信

PS/2接口6只引脚中4只引脚是有效的,两只用于供电,只有2只引脚可以用来传输数据。PS/2通信协议是一种双向同步串行通信协议。通信的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。任何一方如果想抑制另外一方通信时,只需要把Clock(时钟脚)拉到低电平。每一数据帧包含11~12个位,具体含义如表1所列。更多的PS/2说明可以参考网上的应用介绍。

PS/2接口与单片机的连接如原理图7所示,由于PS/2键盘要向单片机发送数据时,总是先将第5脚时钟线拉低,这样就可以将PS/2接口的第5脚与单片机的外中断输入引脚相连,一旦PS/2要向单片机发送数据,单片机就可以以外中断的方式优先响应PS/2键盘的输入请求,开始接收数据,接收完毕后,PS/2键盘将时钟线恢复为高电平。

由表1可知,单片机以外中断方式接收PS/2键盘数据时,每接收一帧数据就要中断11次,接收完成后,只要对其中8位有效数据进行比较或查表,就可以知道哪个按键被按下。例如把小键盘区的数字键通码进行排序制表,根据查表的次数就可知道是哪个数字按键被按下。这就是PS/2键盘编程的思路。单片机成功接收了PS/2键盘数据确定是哪个按键后,就可转到相应的程序段执行指定的功能,如设定时间,设定亮度、设定闹铃等。

2.DS12C887的设置和读写

DS12C887内部共有128个寄存器,前14个为时钟控制寄存器,剩下114个供编程者自由使用。14个时钟控制寄

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top