您当前的位置:五五电子网电子知识单元电路时钟-定时电路一款基于LCD的数字时钟 正文
一款基于LCD的数字时钟

一款基于LCD的数字时钟

点击数:7903 次   录入时间:03-04 11:48:48   整理:http://www.55dianzi.com   时钟-定时电路

  本时钟显示部分采用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条引脚,引脚及其功能如下表所示。

管脚号 管脚名称 引脚功能 1 VSS 电源地 2 VDD 电源电压+5.0V 3 NC 悬空引脚 4 RS  H: DB7…DBO为数据;L:DB7…DBO为指令 5 R/W  H:读数据;L:写指令或数据 6 E 芯片使能信号,H有效 7…14 DB0…DB7 数据位0…7 15 PSB 通信模式选择引脚 16 NC 悬空引脚 17 RET 复位信号,低电平复位 18 NC 悬空引脚 19 EL+ 背光电源正极 20 EL- 背光电源负极

  (3)操作指令。
  
  通过指令可以控制OCM 12864在指定位置上显示数据或图像,指令如下表所示。

  整个电路主要由时钟电路和显示电路构成。下野图所示为PCF8563应用电路原理图。
  
  电解电容C12用于系统断电时为时钟芯片供电,保证时钟芯片正常计时。采用51单片机的普通I/O口(P1.4/P1.5,P1.5口为数据线,P1.4口为时钟线)模拟实现PCF8563的I2C总线时序。

PCF8563应用电路原理图

  说明电容C3的取值范围为lpF~20pF。
  
  本系统中,液晶模块采用串行连接方式与CPU通信,引脚PSB接地使其处于串行通信模式。其通信端口分别为SCLK(P1.2)、SID(Pl.l)、CS(Pl.0)。如下图所示,复位引脚/RST接高电平,处于无效状态;背光供电线BL+通过跳线连至电源正端,可根据环境控制背光亮灭。

 

 



www.55dianzi.com

  LCD电子时钟功能较为简单,主要是实时显示日期、时间。整个程序由时钟子程序、显示子程序及主程序构成。主程序通过时钟子程序读取PCF8563的时间,通过显示子程序在LCD上显示。各部分程序实现如下。
  
  1.PCF8563时钟子程序
  
  PCF8563采用了IIC通信协议,下面列出函数名称及其功能,如下表所示。

函数 功能 void I2C_Init() IIC总线初始化函数 void DD() 模拟IIC总线延时 void Start() 产生IIC总线的起始条件 void Stop() 产生IIC总线的停止条件 void WriteACK(int ack) 主机产生应答位(应答或非应答) bit WaitACK() 读取从机应答位(应答或非应答) unsigned char Readbyte() 从从机读取1字节的数据 void writebyte(int wdata) 向IIC总线写1字节的数据 void writEDAta() 主机通过IIC总线向从机发送多个字节的数据 uchar ReadData() 主机通过IIC总线从从机接收多个字节的数据

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

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



www.55dianzi.com

  2.OCM12864显示子程序
  
  显示子程序主要完成时间的显示。由于本设计中,采用了串行连接方式,因此数据发送程序遵循LCD的串行数据发送协议。

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

  子函数SPIWR根据LCD串行通信的协议,向LCD发送一组由具体意义的数据。在LCD串行通信时,一字节命令或数据的写入需要发送三字节数据,第一字节为同步字段,并表明操作类型是读还是写,后续数据是命令还是数值;第二字节取数据的高四位加上同步字段送出,第三字节是取数据的底四位加上同步字段送出。输入参数:ucharRW,ucharRS,ucharWdata。输出参数:无。具体代码如下:

  以下是运用SPIWR子函数完成写指令、写数据的子函数。

  子函数LCD_Displayp的功能是显示字符串并能自动换行。其输入参数:ucharCharLOCation,ucharconst*p。输出参数:无。具体函数代码如下:



www.55dianzi.com

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

[1] [2]  下一页


本文关键字:暂无联系方式时钟-定时电路单元电路 - 时钟-定时电路