欢迎来到天天文库
浏览记录
ID:37846925
大小:33.50 KB
页数:3页
时间:2019-06-01
《LCD1602显示程序模块》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/*****************************************************************************************该文件用于演示C文件模块化编程风格 **KeilC51REV9.03****REV4.14****器件:STC89C52RC单片机**创建人:梁秋勇**文件名:LCD_Driver.c**日期:2011-8-1**描述:单片机程序设计的一个粗略模板,基于模块化设计**----------------------------------------------
2、----------------------------------------**修改人:**日期:**描述: **--------------------------------------------------------------------------------------***************************************************************************************/#include#include#
3、include"Main.H"uchardataLCD_DATA_Buff[2][16]={"nowtimeis8-02","time:20:15:00"};sbitLCD_RS=P2^0;sbitLCD_RW=P2^1;sbitLCD_EN=P2^2;voidDelay_1ms(unsignedintT){unsignedintj;for(;T>0;T--)for(j=0;j<10;j++);}staticvoidLCD_Writer_COM(ucharCOM){DataPort=COM;LCD_RS=0;LCD_RW=0;LCD_
4、EN=0;Delay_1ms(2);_nop_();LCD_EN=1;_nop_();LCD_EN=0;}staticvoidLCD_Writer_DATA(ucharDATA){DataPort=DATA;LCD_RS=1;LCD_RW=0;LCD_EN=0;Delay_1ms(2);_nop_();LCD_EN=1;_nop_();LCD_EN=0;}voidLCD_Data_Update(void){staticcharAddress=-1;//下面的指令有Character自增1,于是初始化为-1staticucharLine
5、=0;ucharReady_Data;if(++Address==16)//该指令执行完后Character为0,下一个5ms后进来Character为1,以此类推{Address=0;if(++Line==2)//该指令执行完后Line为1,开始刷新第二行{Line=0;}}if(Line==0){LCD_Writer_COM(Address+0X80);//定位在第一行}else{LCD_Writer_COM(0x40+0X80+Address);//定位在第二行}Ready_Data=LCD_DATA_Buff[Line][Ad
6、dress];LCD_Writer_DATA(Ready_Data);}voidLCD_Init(void){LCD_EN=0;LCD_Writer_COM(0X38);//设置16*2显示,5*7点阵,8位数据口LCD_Writer_COM(0X0C);//设置开显示,不显光标LCD_Writer_COM(0X06);//写一个数据后地址指针加1LCD_Writer_COM(0X01);//显示清0,数据指针清0}
此文档下载收益归作者所有