欢迎来到天天文库
浏览记录
ID:43300788
大小:69.50 KB
页数:11页
时间:2019-09-30
《12864串行程序例程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、此文档,是本人根据12864资料编写而成,在51单片机上面调试通过成功,,由于51的内存有限,后续两幅图占用内存太大,所以注释。#include#defineucharunsignedchar#defineuintunsignedintsbitSID=P1^1;//RWsbitSCLK=P1^0;//Einti,j,k,len;unsignedcharcodepic[];unsignedcharcodepic1[];unsignedcharcodeIDAT[]={"陕西理工电子科技""单片机小
2、液晶系列""中文字库测试程序""恭喜发财工作顺利"};voidDisPhoto(unsignedcharcode*adder);voidlcd_chine(unsignedcharcode*adder1);voidDraw_Point(intx,inty,intz,inttype);//画点坐标点,修正位,及是否为画点,还是消除voidDraw_Line(intx,inty,intlen,inttyp);voiddelay_ms(uintx){uinti,j;for(j=0;j3、110;i++);}voidwrite_lcd(uchardate,uinttype)//type0为命令,1为数据{switch(type){case0:{uchari;uchari_data;i_data=0xf8;//CS=1;SCLK=0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data<<=1;}i_data=date;i_data&=0xf0;//先传送高四位,屏弊低四位for(i=0;i<8;i++){SID=(bit)(i_4、data&0x80);SCLK=0;SCLK=1;i_data<<=1;}i_data=date;i_data<<=4;//将低四位移向高四位并传送for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data<<=1;}//CS=0;}break;case1:{uchari;uchari_data;i_data=0xfa;//CS=1;SCLK=0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=5、1;i_data<<=1;}i_data=date;i_data&=0xf0;//先传送高四位,屏弊低四位for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;//给一个脉冲SCLK=1;i_data<<=1;}i_data=date;i_data<<=4;//将低四位移向高四位并传送for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data<<=1;}//CS=0;}break;}}/************6、***********************************************************//*图形显示清屏*//*************************************************************************/voidclear_lcd(){for(k=0;k<2;k++){for(i=0;i<32;i++)//{write_lcd((0x80+i),0);//SET垂直地址VERTICALADD高度if(!k)write_lcd(7、0x80,0);elsewrite_lcd(0x88,0);//SET水平地址HORIZONTALADD宽首地址for(j=0;j<16;j++)//共左向右共十条竖线write_lcd(0x00,1);//线宽四位二进制表示}}}/******************************************************************//*液晶初始化-字库*//*************************************************************8、*****/voidlcd_init1(){write_lcd(0x30,0);write_lcd(0x30,0);//基本指令集write_lcd(0x06,0);//显示右移一位write_lcd(0x0c,0);//显示开,游标关,反白关write_lcd(0x01,0);//清屏}/************************************************
3、110;i++);}voidwrite_lcd(uchardate,uinttype)//type0为命令,1为数据{switch(type){case0:{uchari;uchari_data;i_data=0xf8;//CS=1;SCLK=0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data<<=1;}i_data=date;i_data&=0xf0;//先传送高四位,屏弊低四位for(i=0;i<8;i++){SID=(bit)(i_
4、data&0x80);SCLK=0;SCLK=1;i_data<<=1;}i_data=date;i_data<<=4;//将低四位移向高四位并传送for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data<<=1;}//CS=0;}break;case1:{uchari;uchari_data;i_data=0xfa;//CS=1;SCLK=0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=
5、1;i_data<<=1;}i_data=date;i_data&=0xf0;//先传送高四位,屏弊低四位for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;//给一个脉冲SCLK=1;i_data<<=1;}i_data=date;i_data<<=4;//将低四位移向高四位并传送for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data<<=1;}//CS=0;}break;}}/************
6、***********************************************************//*图形显示清屏*//*************************************************************************/voidclear_lcd(){for(k=0;k<2;k++){for(i=0;i<32;i++)//{write_lcd((0x80+i),0);//SET垂直地址VERTICALADD高度if(!k)write_lcd(
7、0x80,0);elsewrite_lcd(0x88,0);//SET水平地址HORIZONTALADD宽首地址for(j=0;j<16;j++)//共左向右共十条竖线write_lcd(0x00,1);//线宽四位二进制表示}}}/******************************************************************//*液晶初始化-字库*//*************************************************************
8、*****/voidlcd_init1(){write_lcd(0x30,0);write_lcd(0x30,0);//基本指令集write_lcd(0x06,0);//显示右移一位write_lcd(0x0c,0);//显示开,游标关,反白关write_lcd(0x01,0);//清屏}/************************************************
此文档下载收益归作者所有