欢迎来到天天文库
浏览记录
ID:11337914
大小:146.00 KB
页数:24页
时间:2018-07-11
《12864图形显示函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/**********************************************************************************************************************************************************************///程序说明:本程序为12864(st7920)驱动程序,只实现了最简单的显示功能//端口设置:RS、RW、EN分别为P0口的0、1、2,数据口为P2口//用取模软件取的图形或汉字必须是逐行取的,因为本函
2、数是在液晶上逐行打点的/*********************************************************************************************************************************************************************/#include#include//内含-NOP-函数#include//内含rand()函数#defineucharuns
3、ignedchar#defineuintunsignedint//**********宏定义所需指令#defineBASIC_SET0x30#defineEXTEND_SET0x34#defineDRAW_ON0x36#defineDRAW_OFF0x34//*************端口定义sbitLCD_RS=P0^0;sbitLCD_RW=P0^1;sbitLCD_EN=P0^2;//************变量定义//uchardis1[10];//读出缓存unsignedchartu[];//****************
4、短延时voiddelay(uintk){uinti;ucharj;for(i=0;i5、******12864写数据函数voidwrite_dat(uchardat){LCD_RS=1;LCD_RW=0;delay(5);LCD_EN=1;P2=dat;delay(5);LCD_EN=0;}//****************从LCD中读数据ucharread_dat(void){uchartemp;P2=0XFF;//释放数据线LCD_RS=1;//数据LCD_RW=1;//读模式LCD_EN=1;//E为高电平进行读数据或指令delay(1);temp=P2;LCD_EN=0;returntemp;}//******6、**************************************************//设置光标(地址)函数//参数说明:x---为行号,y为列号//********************************************************voidset_cursor(unsignedcharx,unsignedchary){unsignedchari;switch(x)//确定行号{case0x00:i=0x80;break;//第一行case0x01:i=0x90;break;//第二行cas7、e0x02:i=0x88;break;//第三行case0x03:i=0x98;break;//第四行default:break;}i=y+i;//确定列号write_com(i);}//********************************************************//显示字符函数//********************************************************/*voiddisplay_char(unsignedcharAlphabet){write_dat(Alp8、habet);//写入需要显示字符的显示码}*///********************************************************//指定位置显示字符串函数//参数说明:x为行号,y为列
5、******12864写数据函数voidwrite_dat(uchardat){LCD_RS=1;LCD_RW=0;delay(5);LCD_EN=1;P2=dat;delay(5);LCD_EN=0;}//****************从LCD中读数据ucharread_dat(void){uchartemp;P2=0XFF;//释放数据线LCD_RS=1;//数据LCD_RW=1;//读模式LCD_EN=1;//E为高电平进行读数据或指令delay(1);temp=P2;LCD_EN=0;returntemp;}//******
6、**************************************************//设置光标(地址)函数//参数说明:x---为行号,y为列号//********************************************************voidset_cursor(unsignedcharx,unsignedchary){unsignedchari;switch(x)//确定行号{case0x00:i=0x80;break;//第一行case0x01:i=0x90;break;//第二行cas
7、e0x02:i=0x88;break;//第三行case0x03:i=0x98;break;//第四行default:break;}i=y+i;//确定列号write_com(i);}//********************************************************//显示字符函数//********************************************************/*voiddisplay_char(unsignedcharAlphabet){write_dat(Alp
8、habet);//写入需要显示字符的显示码}*///********************************************************//指定位置显示字符串函数//参数说明:x为行号,y为列
此文档下载收益归作者所有