單片機(jī)C語言實(shí)例-210-12864中文顯示測試
#include <REG51.H>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
//延時(shí)子程序模塊
//**********************************************
void mdelay(uint delay)
{ uint i;
for(;delay>0;delay--)
{for(i=0;i<80;i++) //1ms延時(shí).
{;}
}
}
//************************************************
void show(); //液晶顯示程序
//****************************************
//12864液晶顯示部分子程序模塊
//****************************************
sbit rs = P3^0;
sbit rw = P3^1;
sbit e = P3^2;
#define lcddata P0
sbit busy=P0^7; //lcd busy bit
void wr_d_lcd(uchar content);
void wr_i_lcd(uchar content);
void clrram_lcd (void);
void init_lcd(void);
void busy_lcd(void);
void rev_row_lcd(uchar row);
void rev_co_lcd(uchar row,uchar col,uchar mode);
void clr_lcd(void);
void wr_co_lcd(uchar row,uchar col,uchar lcddata1,uchar lcddtta2);
void wr_row_lcd(uchar row,char *p);
//**********************************
//液晶初始化
//**********************************
void init_lcd(void)
{
wr_i_lcd(0x06); /*光標(biāo)的移動(dòng)方向*/
wr_i_lcd(0x0c); /*開顯示,關(guān)游標(biāo)*/
}
//***********************************
//填充液晶DDRAM全為空格
//**********************************
void clrram_lcd (void)
{
wr_i_lcd(0x30);
wr_i_lcd(0x01);
}
//***********************************
//對(duì)液晶寫數(shù)據(jù)
//content為要寫入的數(shù)據(jù)
//***********************************
void wr_d_lcd(uchar content)
{
busy_lcd();
rs=1;
rw=0;
lcddata=content;
e=1;
;
e=0;
}
//********************************
//對(duì)液晶寫指令
//content為要寫入的指令代碼
//*****************************
void wr_i_lcd(uchar content)
{
busy_lcd();
rs=0;
rw=0;
lcddata=content;
e=1;
;
e=0;
}
//********************************
//液晶檢測忙狀態(tài)
//在寫入之前必須執(zhí)行
//********************************
void busy_lcd(void)
{
lcddata=0xff;
rs=0;
rw=1;
e =1;
while(busy==1);
e =0;
}
//********************************
//指定要顯示字符的坐標(biāo)
//*******************************
void gotoxy(unsigned char y, unsigned char x)
{
if(y==1)
wr_i_lcd(0x80|x);
if(y==2)
wr_i_lcd(0x90|x);
if(y==3)
wr_i_lcd((0x80|x)+8);
if(y==4)
wr_i_lcd((0x90|x)+8);
}
//**********************************
//液晶顯示字符串程序
//**********************************
void print(uchar *str)
{
while(*str!='\0')
{
wr_d_lcd(*str);
str++;
}
}
更多詳情參考附件文檔
+08:00C169聯(lián)盟網(wǎng)9921.png (25.02 KB, 下載次數(shù): 5)
下載附件
保存到相冊(cè)
2022-2-24 11:04 上傳
游客,如果您要查看本帖隱藏內(nèi)容請(qǐng) 回復(fù)
|