购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

程序设计

LCD时钟的功能较简单,主要为实时显示日期、时间。整个程序由时钟子程序、显示子程序及主程序构成。主程序通过时钟子程序读取PCF8563的时间,通过显示子程序在LCD上显示。

1.时钟子程序

PCF8563采用了I 2 C总线协议,该协议的相关函数在前文中已介绍过,此处只列出函数名称及其功能,如表5-3所示。

表5-3 I 2 C总线函数名称及其功能

函数P8563_Read()从PCF8563中读取时间,并将其存储到g8563_Store[]缓冲区中,代码如下。

函数P8563_settime()用于设置PCF8563的日期、时间,代码如下。

2.显示子程序

显示子程序主要完成时间的显示。由于本实例中的LCD与CPU采用了三线串行方式,因此数据发送程序遵循LCD的串行数据发送协议。

函数LCD_SendByte()的功能是向LCD串行发送8位数据,该函数是LCD操作的底层程序。输入参数:Data;输出参数:无。具体代码如下。

函数SPIWR()根据LCD的串行数据发送协议,向LCD发送一组有具体意义的数据。在L C D串行通信时,1字节指令或数值的写入需要发送3字节数据:第1个字节为同步字段,表明操作类型是读还是写,后续数据是指令还是数值;第2个字节取数据的高四位加上同步字段送出:第3个字节取数据的低四位加上同步字段送出。输入参数:RW、RS、Wdata;输出参数:无。具体代码如下。

以下是运用SPIWR()完成写指令、写数据的子程序。

函数LCD_Displayp()的功能是显示字符串并自动换行。输入参数:CharLocation、p[];输出参数:无。具体代码如下。

3.主程序及其他相关子程序

主程序首先调用相关子程序完成LCD、PCF8563等芯片的初始化;然后不断调用P8563_gettime()读取时间、日期,调用LCD_Displayp()加以显示。主程序代码如下。

说明

定义上述字符串时,应将空格考虑在内,每行显示信息最多为16个字符或8个汉字。

子程序transform()用于数据换算处理,将从PCF8563中读取的时间、日期转换成LCD显示值,并存储在数组r1[]、r2[]、r3[]中,代码如下。 t8JROS6h/U0+fgwUO32aUt9KUpmi+c9sYrsuamPHjtXJloUYRVK26JE5zHmPcp8v

点击中间区域
呼出菜单
上一章
目录
下一章
×