📄 rt12864m.c
字号:
#include "STC89C51RC.H"
#include "RT12864M.H"
#include "SPI.H"
void Wait1ms()
{
unsigned char delay = 80;
unsigned char cnt = 0;
while(cnt < delay) cnt++;
}
void WaitNms(int n)
{
unsigned char i;
for(i=0;i<n;i++)
{
Wait1ms();
}
}
void LCDInit()
{
RST = 0; //复位
WaitNms(10);
RST = 1;
WRCommand(0x30); //基本指令集,8位并行
WaitNms(10); //等待时间>37us
WRCommand(0x06); //起始点设定:光标右移
WaitNms(10); //等待时间>100us
WRCommand(0x01); //清除显示DDRAM
WaitNms(20); //等待时间>10ms
WRCommand(0x0E); //显示状态开关:整体显示开,光标显示关,光标显示反白关
WaitNms(10); //等待时间>100us
WRCommand(0x02); //地址归零
}
void RDBF()
{
unsigned char temp;
EN = 0;
RW = 1;
RS = 0;
while(1)
{
EN = 1;
temp = DATA;
EN = 0;
if((temp & 0x80) == 0) break;
}
}
void WRCommand(unsigned char comm)
{
RDBF();
EN = 0;
RW = 0;
RS = 0;
EN = 1;
DATA = comm;
EN = 0;
}
void WRData(unsigned char dat)
{
RDBF();
EN = 0;
RW = 0;
RS = 1;
EN = 1;
DATA = dat;
EN = 0;
}
void ShowChinese(unsigned char addr,unsigned char chinese[],unsigned char count)
{
unsigned char i;
WRCommand(addr); //设定DDRAM地址
for(i=0;i<count;i++)
{
WRData(chinese[2*i]);
WRData(chinese[2*i+1]);
}
}
void ShowintChinese(unsigned char addr,unsigned int chinese[],unsigned char count)
{
unsigned char i;
WRCommand(addr); //设定DDRAM地址
for(i=0;i<count;i++)
{
WRData(chinese[i]);
WRData(chinese[i]>>8);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -