欢迎来到天天文库
浏览记录
ID:47612439
大小:55.50 KB
页数:13页
时间:2019-10-07
《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、r(i=0;i<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<84、;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;case1:{uchari;uchari_data;i_data=0xfa;//CS=1;SCLK=0;for(i=0;i<8;i++){SID=(bit)(i_dat5、a&0x80);SCLK=0;SCLK=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;6、}//CS=0;}break;}}/***********************************************************************//*图形显示清屏*//*************************************************************************/voidclear_lcd(){for(k=0;k<2;k++){for(i=0;i<32;i++)//{write_lcd((0x80+i),0);//SET垂7、直地址VERTICALADD高度if(!k)write_lcd(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、r(i=0;i<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
4、;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;case1:{uchari;uchari_data;i_data=0xfa;//CS=1;SCLK=0;for(i=0;i<8;i++){SID=(bit)(i_dat
5、a&0x80);SCLK=0;SCLK=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;
6、}//CS=0;}break;}}/***********************************************************************//*图形显示清屏*//*************************************************************************/voidclear_lcd(){for(k=0;k<2;k++){for(i=0;i<32;i++)//{write_lcd((0x80+i),0);//SET垂
7、直地址VERTICALADD高度if(!k)write_lcd(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);//清屏}/********************
此文档下载收益归作者所有