📄 rt12864m.h
字号:
#include<reg52.h>
#include<string.h>
#define Lcd_Bus P0 //MCU P0<--信号-->LCM
sbit RS =P2^0; //并行的指令/数据选择信号;串行的片选信号
sbit RW =P2^1; //并行的读/写选择信号;串行的数据口
sbit E =P2^2; //并行的使能信号;串行同步时钟
unsigned char COUNT3,COUNT2,COUNT1,COUNT,LCD_X,LCD_Y,LCD_DATA1,LCD_DATA2,LCD_DATA,F3,R1,Flag;
//========================================================
void dis_1_line(unsigned char *disdata,unsigned char x1);
void WR_ZB(void) ;
//===============================================
unsigned char LCDData;
//延时子程序
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
//写指令代码
void WriteCommand(unsigned char Command)
{
unsigned char temp;
RS=0;
RW=1;
do{
Lcd_Bus=0xff;
E=1;
delay(20);
temp=Lcd_Bus;
E=0;
}while(temp&0x80);
RW=0;
Lcd_Bus=Command;
E=1;
E=0;
}
//写显示数据
void WriteData(unsigned char LCDdata)
{
unsigned char temp;
RS=0;
RW=1;
do{
Lcd_Bus=0xff;
E=1;
delay(20);
temp=Lcd_Bus;
E=0;}
while(temp&0x80);
RS=1;
RW=0;
Lcd_Bus=LCDdata;
E=1;
E=0;
}
//初始化程序
void LCDInit()
{
delay(20);
WriteCommand(0x30);//选择8bit数据流
delay(10);
WriteCommand(0x30);//开显示(无游标、不反白)
delay(5);
WriteCommand(0x0c); //清显示并设地址指针为00H
delay(10);
WriteCommand(0x01);//设定游标方向及显示移位
delay(10);
WriteCommand(0x06);
delay(10);
}
//显示字符串
void HZdisp(unsigned char code *s)
{
while(*s>0)
{
LCDData=*s;
WriteData(LCDData);
s++;
delay(50);
}
}
void dis_1_line(unsigned char *disdata1,unsigned char x1)
{
WriteCommand(0x06);
delay(5);
WriteCommand(x1);
HZdisp(disdata1);
}
//=================================================
void PHO_DISP(const unsigned char *s)
{
COUNT3=0X02;
LCD_X=0x80;
for (;COUNT3!=0;COUNT3--)
{
LCD_Y=0X80;
COUNT2=0X20; //32
for (;COUNT2!=0;COUNT2--)
{
COUNT1=0X10; //16
WriteCommand(0x36);
WriteCommand(LCD_Y);
WriteCommand(LCD_X);
WriteCommand(0x30);
for (;COUNT1!=0;COUNT1--)
{
WriteData(*s++);
}
LCD_Y+=1;
}
LCD_X=0X88;
}
WriteCommand(0x36);
WriteCommand(0x30);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -