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

📄 display.c

📁 KC51平台下的12232点陈液晶LCD驱动代码。
💻 C
字号:

#include "Display.h"

#ifdef BUILD_USE_UI


#define DSP_DATA	P0

sbit DSP_RS = P2^5;
sbit DSP_RW = P2^6;
sbit DSP_En = P2^7;

BYTE _Display_Status = 0x00;

void Disp_WriteCommand(register BYTE Command){
	DSP_RS = 0;
	DSP_RW = 0;
	DSP_En = 1;
	DSP_DATA = Command;
	DSP_En = 0;
	LongDealy(3);
}

void Disp_WriteData(register BYTE Data){
	DSP_RS = 1;
	DSP_RW = 0;
	DSP_En = 1;
	DSP_DATA = Data;
	DSP_En = 0;
	LongDealy(3);
}

void Disp_Init(){
	_Display_Status = 0x00;
	Disp_WriteCommand(0x30);
	Disp_WriteCommand(0x38);
	Disp_Clear(0,0,0);
	Disp_SetCursor(1,1);
	Disp_SetInMode(0x02);
	Disp_OpenScreen(TRUE);
	Disp_OpenCursor(FALSE);
	Disp_OpenFlicker(FALSE);
}
/*
// 写数据到屏幕(X,Y座标起点为(1,1))
void Disp_WriteBuff(BUFF Datas, BYTE Len, BYTE X, BYTE Y){
	BYTE i;
	Disp_SetCursor(X,Y);
	if(Datas)
		for(i=0; i<Len; i++) Disp_WriteData(Datas[i]);
}
*/
// 写字符串到屏幕(X,Y座标起点为(1,1))
BYTE Disp_WriteStr(char *Str, BYTE MaxLen, BYTE X, BYTE Y){
	BOOL WSLen = FALSE;
	BYTE i = 0;
	Disp_SetCursor(X,Y);
	if(MaxLen==0) WSLen = TRUE;		// 确定是否按字符串长度输出
	if(Str)
		while(Str[i]!='\0'){
			Disp_WriteData(Str[i++]);
			if((!WSLen)&&((--MaxLen)==0)) break;
		}
	// 长度不足补空格(清理行尾)
	while((!WSLen)&&(MaxLen--)){
		Disp_WriteData(' ');
		i++;
	}
	return(i);						// 返回实际写出长度
}

// 清屏/行(当Y=0时清全屏)
void Disp_Clear(BYTE Y, BYTE Left, BYTE Len){
	if(Y==0){
		Disp_WriteCommand(0x01);
		Disp_WriteCommand(0x02);
	}
	else if(Left<SCREEN_WIDTH){
		if(Len==0) Len = SCREEN_WIDTH - Left + 1;
		Disp_SetCursor(Left,Y);
		do{ Disp_WriteData(' '); }while(--Len);
	}
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -