📄 lcd12864.txt
字号:
//—————库函数声明,管脚定义————————
#include<reg51.h>
#include<string.h>
sbit RS=P2^0; //D/I寄存器选择端
sbit RW=P2^1; //RW 读写数据端
sbit EN=P2^2; //EN 使能端
sbit REST=P2^3; //复位端
sbit BF=P0^7;
//———————变量定义——————————
#define uchar unsigned char
#define uint unsigned int
#define dataport P0;
//——————函数定义————————————
void delay(uint);
void LCD12864_Busy(void);
void LCD12864_Init(void);
void LCD12864_Write_command(uchar);
void LCD12864_Write_data(uchar);
void LCD12864_Write_char(uchar);
void LCD12864_adress(uint ,uint);
void LCD12864_Write_str(uchar,uchar,uchar *);
void LCD12864_show_point(uint,uint);
//--------------地址代码---------------------
unsigned char code Tab[4][8]=
{
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, //第1行
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, //第2行
0x88,0x89,0x8a,0x8b,0x8c,0xbd,0x8e,0x8f, //第3行
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第4行
};
//=============================================
//函数名称:void delay
//输入参数:uint j
//输出参数:无
//功能说明:产生一定时间的延时 由参数j决定时间长短
//=============================================
void delay(uint j)
{
uint i;
for(i=0;i<j;i++);
}
//=============================================
//函数名称:void LCD12864_Busy
//输入参数:无
//输出参数:无
//功能说明:判断系统是否忙
//=============================================
void LCD12864_Busy(void)
{
RS=0;
RW=1;
EN=1;
while(!BF) break;
EN=0;
}
//=============================================
//函数名称:void LCD12864_Write_command
//输入参数:uchar com
//输出参数:无
//功能说明: 给液晶输入指令
//=============================================
void LCD12864_Write_command(uchar com)
{
LCD12864_Busy();
delay(40);
RS=0;
RW=0;
EN=0;
dataport=com;
EN=1;
_nop_();
EN=0;
}
//=============================================
//函数名称:void LCD12864_Write_data
//输入参数:uchar dat
//输出参数:无
//功能说明: 给液晶输入数据
//=============================================
void LCD12864_Write_data(uchar dat)
{
LCD12864_Busy();
delay(40);
EN=0;
RS=1;
RW=0;
dataport=dat;
EN=1;
_nop_();
EN=0;
}
//=============================================
//函数名称:void LCD12864_Init
//输入参数:无
//输出参数:无
//功能说明: 初始化液晶12864
//=============================================
void LCD12864_Init(void)
{
RS=0;
RW=0;
EN=0;
LCD12864_Write_command(0x30|0x20);
LCD12864_Write_command(0x0c|0x08|0x08); //总显示开 光标关 反白显示关
LCD12864_Write_command(0x03);
LCD12864_Write_command(0x80);
}
//=============================================
//函数名称:void LCD12864_Write_char
//输入参数:uchar data
//输出参数:无
//功能说明: 输入字符和数字
//=============================================
void LCD12864_Write_char(uchar dat)
{
if(dat>=0 && dat<=9)
dat|=0x30;
LCD12864_Write_data(dat);
}
//=============================================
//函数名称:void LCD12864_Write_str
//输入参数:uchar row, uchar line ,uchar *p
//输出参数:无
//功能说明: 输入一串中文字
//=============================================
void LCD12864_Write_str(uchar row, uchar line ,uchar *p)
{
uint i;
i=strlen(p);
i/=2;
while(i!=0)
{
LCD12864_Write_command(Tab[row][line]);
if(line>7)
{
line=0;
row++;
}
if(row>4) break;
LCD12864_Write_data(*p);
p++;
LCD12864_Write_data(*p);
p++;
i--;
line++;
}
}
//=============================================
//函数名称:void LCD12864_show_point
//输入参数:uchar x, ucahr y
//输出参数:无
//功能说明:在屏幕上画点
//=============================================
void LCD12864_show_point(uint x ,uint y) //x: 0--127 y:0--63
{
uchar row,line;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -