前一段时间开始带学生进行毕业设计,学生想做一个电子钟,问我怎么做,我告诉他得有一点专业性,否则不能称其为毕业设计。经过1个月的反复酝酿,我们确定了如下方案和**终目标:
下面对整个电子钟的设计和制作过程做一个图示说明,希望对想做这方面毕业设计的学生朋友有所帮助。
主要元器件选用
就用AT89S51吧,太方便了,只要在侧面留有ISP插针接口,外接编程器就可以方便地在线改写调试程序了。ISP编程插针设置如图1所示。
图1 AT89S51侧面ISP插针设置图
2.实时时钟芯片
图2 DS1302和DS12C887
3.PS/2接口
图3 PS/2接口 图4 PS/2插孔功能分布
4.MAX7219
图5 MAX7219
5.温度传感器
图6 DS18B20实物
原理图设计
设计原理图如图7所示。
图7 单片机电子钟原理总图(此图为工程图,为与印制电路板一致,元器件代号未做标准化处理)
PCB设计
这里PCB设计没有按照传统的设计顺序,即由原理图到网络表再到PCB,主要是因为有的元件没有现成的封装,相比之下对于这个不太复杂的电路,手工布线更为灵活。经过半个多月的纯手工设计,**终的PCB图如图8所示。
图8 单片机电子钟PCB图
焊接制作及编程调试
图9 单片机电子钟空PCB板照片 购齐所有元器件,焊接好电路板,**终焊接完成的电子钟实物如图10所示。
1.PS/2键盘通信
PS/2接口6只引脚中4只引脚是有效的,两只用于供电,只有2只引脚可以用来传输数据。PS/2通信协议是一种双向同步串行通信协议。通信的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。任何一方如果想抑制另外一方通信时,只需要把Clock(时钟脚)拉到低电平。每一数据帧包含11~12个位,具体含义如表1所列。更多的PS/2说明可以参考网上的应用介绍。
表1 PS/2数据帧格式说明
1个起始位 总是逻辑0
表2 DS12C887时钟控制寄存器功能说明
地址 功能说明
7F0CH 该寄存器只读,低4位无用,高4位由高到低分别是中断请求标志位、周期中断标志、闹钟中断标志、更新结束中断标志。
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就相当于是单片机的一个外部并行扩展RAM,数据读写采用MOVX指令直接一次性读出或写入,很是方便。在程序初始根据要求对相关功能寄存器进行设定,然后在每次循环当中读出当前各时间寄存器的数据,经单片机处理后分别送到两片MAX7219的**位置显示即可,具体可参考源程序。
3.MAX7219的初始化和数据写入
表3 MAX7219寄存器功能说明
编号 功能说明 D 显示器检测控制寄存器,为1所接数码管的各段全部点亮,用于检测是否有损坏,再送入0,恢复正常显示内容
MAX7219的初始化就是对后5个寄存器进行设置,由于检测只需在电路板焊接好进行一次就可以,所以程序初始主要是写入译码方式、显示亮度、扫描位数、显示开关4个控制寄存器相应数值。到这里就可以发现通过PS/2键盘设定数码管显示亮度,就是识别按键后对MAX7219的亮度控制寄存器重新写入新数值。 MAX7219每个寄存器的写入分两步,第一步先写入寄存器地址;第二步再写入寄存器数据,具体的写入语句见源程序。这里简要介绍一下MAX7219级联状态下数据写入思路,这个电路板上用到两片MAX7219(U5、U6),由原理图7可见U6的输入端(DIN)接到U5的输出端(DOUT),这样就称U6为后级,U5为前级,写入子程序段执行一次就把地址和数据先送到后级的U6,再执行一次才送到U5,以此类推,如果3片MAX7219级联,写入子程序就要执行三次才能分别将数据送到相应的MAX7219。
4.DS18B20数据读取和处理
编好的程序写入单片机,一个原汁原味的单片机电子钟就制作好了,夜间的运行效果如图12所示。
图12 单片机电子钟夜间运行效果
制作调试问题汇总
待改进之处
程序或硬件电路,读者可结合自己的想法,做出更加合理的改动。**说明:原理图、PCB图、源程序和流程图都可以本站下载,下载链接:单片机电子钟程序。 |
|