📄 lcm12864.c
字号:
#include "LCM12864.h"
unsigned char BUSY,hang,lie;
/*********************************************延时**************************************/
void Delayus(unsigned long t)
{
int i,j;
for (i=0;i<t;i++)
for (j=0;j<t;j++);
}
//*********************判忙函数************************//
void BUSYLOOP()
{
P1=0x0ff;
RS=0;
RW=1;
do
{
E=1;
BUSY=P1;
E=0;
}
while(BUSY>0x7F);
}
//*********************写控制字函数****************************//
void Write_command(unsigned char CMD,unsigned char bb)
{
if(bb) BUSYLOOP();
RS=0;
RW=0;
E=1;
P1=CMD;
Delayus(1);
E=0;
}
//*********************写数据函数****************************//
void Write_data(unsigned char CMD)
{
BUSYLOOP();
RS=1;
RW=0;
E=1;
P1=CMD;
Delayus(1);
E=0;
}
//*************************液晶初始化********************************//
void Init_LCM()
{
Delayus(38);
Write_command(0x30,0);
Delayus(1);
Write_command(0x30,0);
Delayus(1);
Write_command(0x0c,1);
Delayus(1);
Write_command(0x01,1);
Delayus(20);
Write_command(0x06,1);
}
//***************************清屏*************************************//
void CLEAR()
{
RS=0;
RW=0;
E=1;
P1=0x01;
Delayus(1);
E=0;
}
//**********************显示字符串************************************//
void Display(unsigned char *ptr,unsigned char ddram)
{
unsigned char l,i1,x;
l=0;
if(ddram<0x88) hang=0; //定位行地址:第一行
else if(ddram<0x90) hang=2; //定位行地址:第三行
else if(ddram<0x98) hang=1; //定位行地址:第二行
else hang=3; //定位行地址:第四行
lie=0x0f&ddram; //定位列地址
if(lie>0x07)
{
lie=lie-0x08;
}
x=lie*2;
Write_command(ddram,0); // 定位显示起始地址
while ((ptr[l])!='\0') l++;
for (i1=0;i1<l;i1++)
{
Write_data(ptr[i1]); //输出单个字符
x++;
if (x ==0x10)
{
x=0;
hang++;
switch (hang)
{
case 0:Write_command(0x80,0);
break;
case 1:Write_command(0x90,0);
break;
case 2:Write_command(0x88,0);
break;
case 3:Write_command(0x98,0);
}
if (hang>3)
{
Write_command(0x80,0);
hang=0;
}
}
}
}
/*************************读取按键值**********************************/
bit ZLG7290_ReadReg(unsigned char RegAddr, char *dat)
{
bit b;
b = I2C_Gets(0x38,RegAddr,1,dat,1);
return b;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -