《串行LCM12864驱动程序收藏》由会员分享,可在线阅读,更多相关《串行LCM12864驱动程序收藏(3页珍藏版)》请在金锄头文库上搜索。
1、串行LCM12864驱动程序收藏/头文件#include #include /引脚定义sbit SID = P21; /数据sbit SCLK = P22; /时钟/函数声明void lcm_w_word(unsigned char *str) ; /写字符 例:lcm_w_word(您好!);void lcm_w_test(bit start, unsigned char ddata); /(0,指令) (1,数据)void lcm_w_byte(unsigned char bbyte); /写一个字节给lcmvoid delaynms(unsigned int di); /延时void l
2、cm_init(void); /lcm初始化void lcm_clr(void); /清屏/初始化LCMvoid lcm_init(void) delaynms(10); /启动等待,等LCM讲入工作状态 lcm_w_test(0,0x30); /8 位介面,基本指令集 lcm_w_test(0,0x0c); /显示打开,光标关,反白关 lcm_w_test(0,0x01); /清屏,将DDRAM的地址计数器归零 /写指令或数据 (0,指令) (1,数据)void lcm_w_test(bit start, unsigned char ddata) unsigned char start_da
3、ta,Hdata,Ldata; if(start=0) start_data=0xf8; /0:写指令 else start_data=0xfa; /1:写数据 Hdata=ddata&0xf0; /取高四位 Ldata=(ddata4)&0xf0; /取低四位 lcm_w_byte(start_data); /发送起始信号 delaynms(1); /延时是必须的 lcm_w_byte(Hdata); /发送高四位 delaynms(1); /延时是必须的 lcm_w_byte(Ldata); /发送低四位 delaynms(1); /延时是必须的/发送一个字节(底层函数)void lcm_
4、w_byte(unsigned char bbyte) unsigned char i; for(i=0;i8;i+) SID=bbyte&0x80; /取出最高位 SCLK=1; SCLK=0; bbyte=1; /左移 /延时(LCM占用)void delaynms(unsigned int di) unsigned int da,db; for(da=0;dadi;da+); for(db=0;db10;db+); /清屏函数void lcm_clr(void) lcm_w_test(0,0x01);/向LCM发送一个字符串,长度64字符之内。/应用:lcm_w_word(您好!);void lcm_w_word(unsigned char *str) while(*str != 0) lcm_w_test(1,*str); *str+; *str = 0;