12864图形显示函数要点Word文件下载.docx
- 文档编号:16038414
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:32
- 大小:25.37KB
12864图形显示函数要点Word文件下载.docx
《12864图形显示函数要点Word文件下载.docx》由会员分享,可在线阅读,更多相关《12864图形显示函数要点Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
//*************端口定义
sbitLCD_RS=P0^0;
sbitLCD_RW=P0^1;
sbitLCD_EN=P0^2;
//************变量定义
//uchardis1[10];
//读出缓存
unsignedchartu[];
//****************短延时
voiddelay(uintk)
{
uinti;
ucharj;
for(i=0;
i<
k;
i++)
for(j=0;
j<
10;
j++);
}
//***********ms级延时函数
/*voiddelay_1ms(uintx)
uinti,j;
for(j=0;
j<
x;
j++)
for(i=0;
i<
110;
i++);
}*/
//***********12864写指令函数
voidwrite_com(ucharcmd)
LCD_RS=0;
LCD_RW=0;
delay(5);
LCD_EN=1;
P2=cmd;
LCD_EN=0;
//********12864写数据函数
voidwrite_dat(uchardat)
LCD_RS=1;
P2=dat;
//****************从LCD中读数据
ucharread_dat(void)
uchartemp;
P2=0XFF;
//释放数据线
//数据
LCD_RW=1;
//读模式
//E为高电平进行读数据或指令
delay
(1);
temp=P2;
returntemp;
}
//********************************************************
//设置光标(地址)函数
//参数说明:
x---为行号,y为列号
voidset_cursor(unsignedcharx,unsignedchary)
unsignedchari;
switch(x)//确定行号
{
case0x00:
i=0x80;
break;
//第一行
case0x01:
i=0x90;
//第二行
case0x02:
i=0x88;
//第三行
case0x03:
i=0x98;
//第四行
default:
}
i=y+i;
//确定列号
write_com(i);
//显示字符函数
/*voiddisplay_char(unsignedcharAlphabet)
write_dat(Alphabet);
//写入需要显示字符的显示码
//指定位置显示字符串函数
x为行号,y为列号
/*voiddisplay_string(unsignedcharx,unsignedchary,unsignedchar*Alphabet)
unsignedchari=0;
set_cursor(x,y);
//设置显示的起始地址
while(Alphabet[i]!
='
\0'
)
write_dat(Alphabet[i]);
i++;
//***************************************************************************以下为GDRAM绘图部分************************************************************************//
//*********************绘图显示的清屏函数(因清屏指令在画图时不能用)------------------------------------------------------------------------------注意!
!
voidgui_clear()
uchari,j,k;
write_com(EXTEND_SET);
//扩展指令集,8位数据传输
write_com(DRAW_OFF);
//绘图显示关闭
2;
i++)//分上下两屏写
32;
j++)
{
write_com(0x80+j);
//写y坐标
delay
(1);
if(i==0)//写x坐标
{
write_com(0x80);
delay
(1);
}
else//写下半屏
write_com(0x88);
for(k=0;
k<
16;
k++)//写一整行数据
//write_dat(0x00);
//写高字节
//写低字节
delay(10);
}
write_com(DRAW_ON);
//打开绘图显示
write_com(BASIC_SET);
//打开基本指令集
//************************************************************************//
//*********************清内部RAM************************//
voidclrgdram()
unsignedcharx,y;
for(y=0;
y<
64;
y++)
for(x=0;
x<
16;
x++)
write_com(0x34);
write_com(y+0x80);
//行地址
write_com(x+0x80);
//列地址
write_com(0x30);
write_dat(0x00);
//*************************************************************************************************
//***************有反白显示功能的打点函数**********************************************************
//参数:
color=1,该点填充1;
color=0,该点填充白色0;
voidGUI_Point(unsignedcharx,unsignedchary,unsignedcharcolor)
{
unsignedcharx_Dyte,x_byte;
//定义列地址的字节位,及在字节中的哪1位
unsignedchary_Dyte,y_byte;
//定义为上下两个屏(取值为0,1),行地址(取值为0~31)
unsignedcharGDRAM_hbit,GDRAM_lbit;
write_com(0x36);
//扩展指令命令
//***X,Y坐标互换,即普通的X,Y坐标**
x_Dyte=x/16;
//计算在16个字节中的哪一个
x_byte=x&
0x0f;
//计算在该字节中的哪一位
y_Dyte=y/32;
//0为上半屏,1为下半屏
y_byte=y&
0x1f;
//计算在0~31当中的哪一行
write_com(0x80+y_byte);
//设定行地址(y坐标),即是垂直地址
write_com(0x80+x_Dyte+8*y_Dyte);
//设定列地址(x坐标),并通过8*y_Dyte选定上下屏,即是水平地址
read_dat();
//预读取数据
GDRAM_hbit=read_dat();
//读取当前显示高8位数据
GDRAM_lbit=read_dat();
//读取当前显示低8位数据
delay(1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12864 图形 显示 函数 要点