《12864ZB带中文字库的液晶C程序,12864lcd.docx》由会员分享,可在线阅读,更多相关《12864ZB带中文字库的液晶C程序,12864lcd.docx(4页珍藏版)》请在第一文库网上搜索。
1、带中文字库的液晶12864的C程序(C12864ZB-1)带中文字库的液晶12864的C程序(C12864ZB-1)!并口连接液晶!ftinc1ude#inc1udevoid1cd_init(void);voidc1r1cd(void);voidsendcom(unsignedcharcmd);voidsenddata(unsignedchardat);voidchekbusy(void);voidsetxy(unsignedcharxpos,unsignedcharypos);voidprint(unsignedcharx,unsignedchary,char*str);voidprints
2、tr(unsignedcharxpos,unsignedcharypos,unsignedcharstr,unsignedcha:unsignedcharcodebuf4=0xbb,0xb6,0xd3,0xad;欢迎/*测忙碌*/测忙碌子程序/RS=O,RW=I,E=H,DO-D7二状态字voidchekbusy(void)unsignedchartempi;状态信息(判断是否忙)C1RB(CONTRO1,RS);RS=0;SETB(CONTRO1,RW);/RW=1;SETB(CONTRO1,E);/E=1;dotempi=DATA;DATA=OxFF;whi1e(temp1&0x80);/
3、?SETB(CONTRO1,E);/E=1;DATA=OxFF;)口写命令子程序/voidsend_com(unsignedcharCmd)/*写命令*/chek_busyO;C1Rb7cONTRO1,RS);/RS=0;C1RB(CONTRO1,RW);/RW=0;DATA=cmd;SETB(CONTRO1,E);/E=1;C1RB(CONTRO1,E);/E=0;写数据子程序/voidsend_data(unsignedchardat)chek_busyO;SETBteONTRO1,RS);/RS=1;C1RB(CONTRO1,RW);/RW=0;DATA=dat;SETB(CONTRO1
4、,E);/E=1;C1RB(CONTRO1,E);/E=0;复位、通讯方式选择void1cd_init(void)SETB(CONTRO1,RST);复位RST=I?SETB(CONTRO1,PSB);通讯方式为并口PSB=1/send_com(0x34);/34H一扩充指令操作send_com(0x30);功能设置,send_com(OxOC);/0000,1100send_com(0x01);/0000,0001send_com(0x02);/0000,0010send_com(0x80);/1000,0000一次送8位数据,基本指令集整体显示,游标。ff,游标位置。ff清DDRAMDDR
5、AM地址归位设定DDRAM7位地址Oo0,OOOO到地址计数器AC/设置显示位置xpos(P16),ypos(14)voidset_xy(unsignedcharxpos,unsignedcharypos)switch(ypos)send_com(0X80xpos);break;send_com(0X90xpos);break;send_com(0X881xpos);break;send_com(0X98;xpos);break;defau1t:break;voidprint(unsignedcharx,unsignedchary,char*str)unsignedchar1cd_temp;s
6、et_xy(x,y);1cd_temp=*str;whi1e(1cd_temp!=0x00)send_data(1cd_temp);1cd-temp=*(+str);1 ji,;写字符串子程序/xpos1取07共八列,ypos1取03共四行。voidprintstr(unsignedcharxpos,unsignedcharypos,unsignedcharstr,unsigunsignedcharn;switch(ypos)/?下面有错,应0-3?case1:xpos=0x80;break;第一行case 2: xpos=0x90;break;第二行case 3: xpos=0x88;bre
7、ak;第三行case 4: xpos=0x98;break;第四行defau1t:break;send_com(xpos);的Xpos已转换为1CM的显示寄存器实际地址???for(n=O;nk;n+)send.data(strn);显示汉字时注意码值,连续两个码表示一个汉字)1清屏清屏/voidc1r_1cd(void)(send_com(OxO1);/send_com(0x34);/send_com(0x30);)voidmain()(1cd_init();设定液晶工作方式printstr(1,1,buf,4);/xpos应为偶数print(5,1,光临);/xpos应为偶数print(0,3,SEEGU百度空间);XPOS应为偶数whi1e(1)QQ:1040911818TE1:13510654866