当前位置:首页 > 电源 > 数字电源
[导读] 前一段时间开始带学生进行毕业设计,学生想做一个电子钟,问我怎么做,我告诉他得有一点专业性,否则不能称其为毕业设计。经过1个月的反复酝酿,我们确定了如下方案和最终目标:  1.整体功能达到市售电子日历效果

 前一段时间开始带学生进行毕业设计,学生想做一个电子钟,问我怎么做,我告诉他得有一点专业性,否则不能称其为毕业设计。经过1个月的反复酝酿,我们确定了如下方案和最终目标:

  1.整体功能达到市售电子日历效果,显示内容包括年、月、日、星期、时、分、秒、室温。

  2.实时时钟芯片有两种:DS12C887、DS1302。学习和使用过程中可进行选择。

  3.数码管控制采用MAX7219专用扫描驱动芯片。

  4.电路板上留有PS/2键盘接口,用于调节当前时间、数码管显示亮度、闹铃时间。这一点和普通电子日历有明显区别,毕竟我们做的是一个有点专业要求的电子钟。

  5.电路板上安装有继电器,可作为简单的时间控制或温度控制装置。

  6.设计出原理图和PCB图,找厂家制出PCB,编程实现预期效果。

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

  主要元器件选用

  1.单片机

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

  

                                                                                   图1  AT89S51侧面ISP插针设置图
2.实时时钟芯片

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

  

  图2  DS1302和DS12C887

  3.PS/2接口

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

  

  图3  PS/2接口 图4  PS/2插孔功能分布

  4.MAX7219

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

  

  图5  MAX7219
 

  5.温度传感器

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

  

  图6  DS18B20实物

 


 原理图设计

  经过试验板搭接和综合考虑,各器件与单片机各引脚的连接关系如下:

  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所示。

  

图7 单片机电子钟原理总图(此图为工程图,为与印制电路板一致,元器件代号未做标准化处理)
 

PCB设计

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

  

  图8  单片机电子钟PCB图

  焊接制作及编程调试

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

  

  图9  单片机电子钟空PCB板照片[!--empirenews.page--]

  购齐所有元器件,焊接好电路板,最终焊接完成的电子钟实物如图10所示。

  

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

  1.PS/2键盘通信

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

  表1 PS/2数据帧格式说明

  1个起始位 总是逻辑0

  8个数据位 低位在前

  1个奇偶校验位 奇校验

  1个停止位 总是逻辑1

  1个应答位 仅用在主机对设备的通信中

  表2 DS12C887时钟控制寄存器功能说明

  地址 功能说明

  7F00H 秒存储单元

  7F01H 秒闹钟存储单元

  7F02H 分存储单元

  7F03H 分闹钟存储单元

  7F04H 时存储单元

  7F05H 时闹钟存储单元

  7F06H 星期存储单元

  7F07H 日期存储单元

  7F08H 月份存储单元

  7F09H 年份存储单元

  7F0AH 控制芯片是否立即进行更新、晶振是否起振、可编程方波参数设置

  7F0BH 各个位用于控制芯片更新是否禁止、周期/闹钟/更新结束3种中断允许设置、可编 程方波输出、数据存取格式(二进制/BCD)、时制设置、夏令时允许标志。

  7F0CH 该寄存器只读,低4位无用,高4位由高到低分别是中断请求标志位、周期中断标志、闹钟中断标志、更新结束中断标志。

  7F0DH 该寄存器只读,低7位无用,最高位VRT如为0表示内置电池能量耗尽

  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所示。

  表3 MAX7219寄存器功能说明

  编号 功能说明

  0 空操作地址

  1?8 第1?8个数码管显示地址

  9 译码方式控制寄存器,为0FFH表示使用内部BCD译码器,为00H表示不使用

  A 亮度调节控制寄存器,分16级,参数范围:00H—0FH

  B 扫描位数控制寄存器,根据所接数码管数量确定,参数范围:00H—07H (1只—8只)

  C 显示开关控制寄存器,为1所有数码正常显示,为0关闭所有数码管

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

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

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

  

  图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)实现显示亮度的自动调节,以适应环境光线的变化,这样子就更加具有专业性了。

  程序或硬件电路,读者可结合自己的想法,做出更加合理的改动。

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

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

在当前的科技浪潮中,单片机作为嵌入式系统的重要组成部分,正以其强大的功能和广泛的应用领域受到越来越多行业的青睐。在众多单片机中,W79E2051以其卓越的性能和稳定的工作特性,成为市场上的明星产品。本文将深入探讨W79E...

关键字: 单片机 w79e2051单片机

单片机,又称为微控制器或微处理器,是现代电子设备中的核心部件之一。它集成了中央处理器、存储器、输入输出接口等电路,通过外部信号引脚与外部设备进行通信,实现对设备的控制和管理。本文将详细介绍单片机的外部信号引脚名称及其功能...

关键字: 单片机 微控制器 中央处理器

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备
关闭
关闭