⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rt12864m.c

📁 液晶显示程序
💻 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 + -