当前位置:首页 > 单片机 > 单片机
[导读]方案和最终目标: 1.整体功能达到市售电子日历效果,显示内容包括年、月、日、星期、时、分、秒、室温。 2.实时时钟芯片有两种:DS12C887、DS1302。学习和使用过程中可进行选择。 3.数码管控制采用MAX7

方案和最终目标:

    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个时钟控制寄存器中的前10个用于存储时钟参数,后4个用于控制DS12C887的各功能组件工作状态。在DS12C887的第13脚片选端(CS)与P2.7相连接情况下,14个时钟控制寄存器地址及具体功能说明如表2所示。

在本文所示电路连接情况下,DS12C887就相当于是单片机的一个外部并行扩展RAM,数据读写采用MOVX指令直接一次性读出或写入,很是方便。在程序初始根据要求对相关功能寄存器进行设定,然后在每次循环当中读出当前各时间寄存器的数据,经单片机处理后分别送到两片MAX7219的指定位置显示即可,具体可参考源程序。

3.MAX7219的初始化和数据写入

MAX7219是一款专用数码管驱动芯片,内部设有动态扫描电路,它以串行通信方式接收到单片机的显示数据后,对指定位置的数码管显示内容进行更新,为单片机节省了宝贵的软、硬件资源。MAX7219的一个显著特点是可以通过设定亮度控制寄存器的数值来控制所接数码管的显示亮度。MAX7219内部有14个寄存器,用于控制数码管显示的内容和状态,各寄存器功能列表如表3所示。

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数据读取和处理

DS18B20内部结构和工作原理就不介绍了。单片机对读取到的温度数据进行适当处理,就是将读出的二进制数据转换成BCD码,再将转换到的BCD码高低位分离,送到MAX7219的相应位置显示即可。

编好的程序写入单片机,一个原汁原味的单片机电子钟就制作好了,夜间的运行效果如图12所示。

 

制作调试问题汇总

    1.试验板搭接是必须的,否则无法确定原理线路正确性。
    2.DS12C887有一个上电稳定时间,在程序初始进行几十毫秒的延时即可,否则会读出不正确的数据,因为这个问题编程时多花了2天时间。PS/2键盘设定好亮度后,将亮度参数保存到DS12C887的7F0EH单元,重新上电后应能读出上次设定的亮度参数,但每次读出的均为0,百思不解,上网搜索也无结果,反复试验思考,终于发现DS12C887的用户RAM区上电需要一个稳定时间,否则读出的数据始终是0。
    3.MAX7219对供电电压稳定性要求较高,大小两个滤波电容要紧靠芯片布置,参数设置要恰当。在试验板搭接阶段经常发现MAX7219显示会错乱,查找各类网页资料,就是要设置滤波电容,但试验板上没有紧靠芯片设置,而且采用的是飞线,一直到制成PCB后这个问题才得到解决。
    4.MAX7219的质量问题。网购是现在电子元件获取的主要途径,但发现特便宜的MAX7219质量无法保证,所以大家网购电子元件时,要注意这个问题。
    5.网上的参考资料要多对比,才能确定其正确性。

待改进之处
 
    1.可在板上合适的位置增加几个独立按键,日常使用调节更方便些;
    2.显示内容可增加农历和湿度;
    3.可以用光敏电阻配合串行A/D转换芯片(如TLC549)实现显示亮度的自动调节,以适应环境光线的变化,这样子就更加具有专业性了。

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭