本时钟显示部分采用OCM12864液晶模块。OCM4×8C液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置国标GB2312码简体中文字库(16×16点阵)、128个字符(8×16点阵)及64×256点阵显示RAM(GDRAM)。该LCD模块可与CPU直接接口,并提供两种方式来连接CPU:8位并行总线方式和SPI串行总线方式。该显示模块具有多种功能:光标显示、茴面移位、睡眠模式等。
(1)OCM12864的特点。
·电源:+2.7V~+5V。模块内自带-10V电源,用于LCD的驱动电压。
·显示内容:128(列)×64(行)点。
·与CPU接口采用并行口方式,有8位数据线和8条控制线。
·占空比1/64。
·工作温度:-10℃~+60℃,储存温度:-20℃~+70℃。
该模块的典型供电电压值为5V,工作电流的为7mA,自带LCD驱动负电源输出。其可显示范围为128×64点阵,分为左右两个半屏,每个半屏分为8页,每页有64列,每列有8个显示点。每一列的8个点对应着显示区RAM中的一个字节内容,且每列最下面一位为MSB,最上面一位为LSB,即该RAM单元字节数据由低位到高位的各个数据位对应于显示屏上某一列的由高到低的8个点。若要显示某点,只要将该点对应的映射字节的相应位置置“1”即可。
(2)OCM12864引脚及功能。
OCM12864共有20条引脚,引脚及其功能如下表所示。
(3)操作指令。
通过指令可以控制OCM 12864在指定位置上显示数据或图像,指令如下表所示。
整个电路主要由时钟电路和显示电路构成。下野图所示为PCF8563应用电路原理图。
电解电容C12用于系统断电时为时钟芯片供电,保证时钟芯片正常计时。采用51单片机的普通I/O口(P1.4/P1.5,P1.5口为数据线,P1.4口为时钟线)模拟实现PCF8563的I2C总线时序。
说明电容C3的取值范围为lpF~20pF。
本系统中,液晶模块采用串行连接方式与CPU通信,引脚PSB接地使其处于串行通信模式。其通信端口分别为SCLK(P1.2)、SID(Pl.l)、CS(Pl.0)。如下图所示,复位引脚/RST接高电平,处于无效状态;背光供电线BL+通过跳线连至电源正端,可根据环境控制背光亮灭。
LCD电子时钟功能较为简单,主要是实时显示日期、时间。整个程序由时钟子程序、显示子程序及主程序构成。主程序通过时钟子程序读取PCF8563的时间,通过显示子程序在LCD上显示。各部分程序实现如下。
1.PCF8563时钟子程序
PCF8563采用了IIC通信协议,下面列出函数名称及其功能,如下表所示。
P8563_Read()函数从PCF8563中读取时间,并存储到g8563_Store口缓冲区中。函数代码如下:
P8563 settime()用于设置PCF8563的日期、时间,函数代码如下:
2.OCM12864显示子程序
显示子程序主要完成时间的显示。由于本设计中,采用了串行连接方式,因此数据发送程序遵循LCD的串行数据发送协议。
子函数LCD_SendByte的功能是向LCD串行发送8位数据,该函数是LCD操作的最底层函数。输入参数:ucharData;输出参数:无。具体函数代码如下。
子函数SPIWR根据LCD串行通信的协议,向LCD发送一组由具体意义的数据。在LCD串行通信时,一字节命令或数据的写入需要发送三字节数据,第一字节为同步字段,并表明操作类型是读还是写,后续数据是命令还是数值;第二字节取数据的高四位加上同步字段送出,第三字节是取数据的底四位加上同步字段送出。输入参数:ucharRW,ucharRS,ucharWdata。输出参数:无。具体代码如下:
以下是运用SPIWR子函数完成写指令、写数据的子函数。
子函数LCD_Displayp的功能是显示字符串并能自动换行。其输入参数:ucharCharLOCation,ucharconst*p。输出参数:无。具体函数代码如下:
3.主程序及其他相关子程序
主程序调用相关子程序完成LCD显示器、PCF8563等芯片的初始化;然后不断调用P8563_gettime()读取时间、日期,调用LCD_Displayp()子程序加以显示。函数代码如下:
本文关键字:暂无联系方式时钟-定时电路,单元电路 - 时钟-定时电路