APP下载

基于51单片机的液晶时钟设计

2017-05-04苏杰

价值工程 2017年12期
关键词:子程序按键时钟

苏杰

摘要:本设计是为中职学生在单片机课程学习中,加强理论知识的理解、提高动手操作能力、实现理论联系实际而开发的实习模块设计。本设计是利用最基本的51系列单片机为控制核心,以数字时钟DS1302为时钟芯片,以基础的字符型液晶LCD1602为终端显示,以最简单的洞洞板为载体,以面向客户的C语言程序为控制手段,来实现电子时钟的显示、调整和自动计时。

Abstract: This design is developed for strengthening the understanding of theoretical knowledge, improving the ability to practice and integrating theory with practice of the MCU learning of the secondary vocational school students. This design takes the most basic 51 series microcontroller as the control core, takes DS1302 of digital clock as the clock chip, takes the character LCD1602 as the terminal display, takes the most simple pegboard as the carrier and takes the customer oriented C language program as a means of control to achieve the display, adjustment and automatic timing of the electronic clock.

关键词:51单片机系统;洞洞板电路;C语言;电子时钟显示

Key words:51 SCM system;pegboard circuit;C program;electronic clock display

中圖分类号:TN141.9 文献标识码:A 文章编号:1006-4311(2017)12-0101-02

0 引言

近年来,单片机应用技术课程已经广泛进入到了我国中等职业教育的电气自动化、电工电子等相关专业的专业课程当中。但是由于这门课要求学生有较强的逻辑思维能力,以及课程本身设置了大量的、抽象的理论知识的学习,这就导致大多数中职院校在这门课的教学当中教学效果并不好。本设计就是为了让学生能在理论知识学习的同时,用动手操作完成实际的电路制作的方法,来加强学生对单片机系统的理解。为了增加学习的操作性和趣味性,本设计利用的元器件及辅助材料的成本非常低廉,不需要制作印制电路板;同时为了加强制作的可靠性,整个电路板的设计焊接时不需要跨接明线或杜邦线,所有元件管脚连接都是通过锡接过线来完成,制作完成后使用时间长、不易损坏。

1 系统设计方案

本文所设计的液晶时钟是由主控系统、按键控制、时钟模块和显示模块四个模块组成,如图1所示。

2 元件清单(表1)

3 硬件电路设计

系统电路原理图如图2所示。

3.1 主控系统

整个主控系统即为51单片机的最小应用系统,其中电源电路20脚接地、40脚接VCC;时钟电路18、19脚间外接12MHZ晶振;为了简化电路,复位电路9脚悬空,保留上电复位功能即可。STC89C52单片机采用双列直插式封装,焊接时须安装在40引脚IC座上。瓷片电容和晶振也均采用直插式的封装形式。安装过程中,晶振和电容应安装在单片机的芯片座内部。

3.2 按键控制

按键控制模块需要3个独立按键。

S1为功能键:系统开机显示时间后,第一次按下S1,系统走时停止,进入到调整状态,并且秒显示位置闪烁,系统进入秒调整状态,此时等待按下S2、S3键进行秒显示调整;在此按下S1,分实现位置闪烁,进行分调整状态;跟着依次是小时、星期、日、月、年的调整状态;当第八次按下S1时,系统退出调整状态,进入到走时状态。S1接单片机的P0.5口。

S2为调整加键:当系统进入到调整状态,按下S2键时,闪烁位置的数值就会加1,并且该修改数值会被记录到走时数值当中。S2接单片机的P0.2口。

S3为调整减键:当系统进入到调整状态,按下S3键时,闪烁位置的数值就会减1,并且该修改数值会被记录到走时数值当中。S3接单片机的P0.5口。因为STC89C52单片机P0口内部无上拉电路,所以S1、S2、S3按键均须接10KΩ上拉电阻,来提供足够的控制电流。

3.3 时钟模块

时钟模块采用DALLAS公司生产的DS1302时钟芯片。该时钟芯片价格便宜、功能齐全,可以提供年、月、日、星期、时、分、秒的计时功能;工作电压2.0~5.5V;安装备用电池的话,在关闭系统电源的情况下可以继续走时。我们依然是采用双列直插式的封装形式,并且焊接时配备8引脚IC座。备用电源我们采用1节3V的纽扣电池CR2025供电。其中1脚接系统电源VCC,8脚接备用电源正极,4脚接地;2、3脚间接32768HZ的晶振,作为时钟的走时晶振;5、6、7脚分别接单片机的P2.2、P2.1、P2.0的I/O口。

3.4 显示模块

显示模块采用性价比高的LCD1602字符型液晶,每行16个字符,分两行显示;上面一行显示年、月、日和星期,下面一行显示时、分、秒和简单的娱乐图形。由于LCD1602不能显示汉字,所以年、月、日、时、分、秒均采用数字显示方法;为了更贴近实际,本设计中星期的显示方法为英文缩写的字符显示,即 显示“Mon”、“Tue”、“Wed”、“Thu”、“Fri”、“Sat”、“Sun”。LCD1602液晶模块有16个引脚,其中1、2脚分别接系统电源GND和VCC;3脚接一个紧密电位器做显示对比度的调节;4、5、6脚为控制引脚,分别连接单片机的P1.2、P1.3、P1.4口;7~14脚为数据传输引脚,分别连接P3.7~P3.0口;15脚串接一个限流电阻后接VCC,16脚接GND,这两个引脚是LCD1602的背灯引脚。

这里有两个方面需要注意:一是液晶模块引脚上要焊接插针,电路板上要焊接插针座,液晶模块通过插针连接在洞洞板上,即实现了电气连接,又增加了元件的固定可靠性;二是为了不使用跨接明线,只使用锡接过线,在I/O口分配时7~14脚与P3口是逆序连接的。

4 软件设计

与硬件系统类似,软件系统主要包括:按键查询程序块、DS1302时钟芯片驱动程序块和LCD1602液晶显示程序块。整个程序都是基于C语言来编写完成的。程序流程图如图3。

4.1 液晶显示程序部分

本程序部分主要包括:1602写指令子程序、写数据子程序、时分秒显示子程序、年月日显示子程序、星期显示子程序。

在这部分程序里首先应该注意的是,因为我们在硬件系统中,将1602的8位数据引脚与单片机的P3进行逆序连接,所以在写指令和写数据子程序中应先将数据进行高地位对调变换再给P3口进行输出,变换公式如下:

date=(date<<4)|(date>>4);

date=((date<<2)&0×cc)|((date>>2)&0×33);

date=((date<<1)&0×aa)|((date>>1)&0×55);

其次要注意在星期显示子函数中,我们要对字符串进行处理,所以程序起始要加入程序语句#include,字符串处理头文件,在显示时要用到char* strcpy(char* des,const char* source)函数,来方便我们的程序变写。

最后要注意,在系统正常走时时,本设计使用定时器T0进行计时,每100ms读取一次DS1302时钟芯片的实时时间;每读取完实时时间单片机就会将读取的时间送给LCD1602进行显示。

4.2 时钟芯片驱动程序部分

DS1302时钟芯片作为一款串行通讯的时钟芯片,我们要控制它就必须以它的时序为基础先编写出写字节的子程序,然后编写出写数据和读数据的子程序。

4.3 按键处理程序部分

本设计按键部分采用的是独立式按键,按鍵的读取则是按照查询的方式来编写程序。在开机后,系统进入走时状态,此时只有S1功能键能够被查询到。当第一次按下S1键,系统进入调整状态,S2和S3按键才能被查询到,我们才能通过S2和S3键来改变各项的时间数值。

5 结论

本文介绍了一个应用51单片机控制的数字液晶时钟的制作方法。本设计实现了在LCD1602液晶上实时显示年、月、日、时、分、秒和星期;并且具备掉电保持功能;同时还可以通过按键对时间和日期进行调整。本设计的优点在于可操作性强,不需要制作专门的印制电路板;线路可靠,没有跨接明线;程序简单,利用模块化的C语言子程序即可编写。适合于广大电气自动化和电工电子专业的中职学生在教师的指导完成制作。

参考文献:

[1]张毅刚.新编MCS-51单片机应用设计[M].哈尔滨工业大学出版社,2003.

[2]匡忠辉.单片机原理及应用[M].机械工业出版社,2007.

[3]胡汉才.单片机原理及其接口技术[M].清华大学出版社,1996.

猜你喜欢

子程序按键时钟
别样的“时钟”
基于有限状态机的按键检测程序设计
古代的时钟
一种多方向导光按键结构设计
时钟会开“花”
子程序在数控车加工槽中的应用探索
按键的多种状态检测及消抖处理方法
简化编程与子程序嵌套的应用
解析某型号手机按键检测程序的缺陷