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

📄 128-64.c

📁 LCD显示流行的有字符,图形和带字库的图形三种,编程各不一样,此为带字库的编程示例,有详细的说明
💻 C
字号:
#include"address.h"
/*
//128*64LCD
//左右屏
#define		LCDIICOM		XBYTE[0xFBFC]//写命令
#define 	LCDIIACOM		XBYTE[0xFBFE]//读命令
#define 	LCDIIDATA		XBYTE[0xFBFD]//写数据
//左屏
#define		LCDIILCOM		XBYTE[0xFBF4]//写命令
#define 	LCDIILACOM		XBYTE[0xFBF6]//读命令
#define 	LCDIILDATA		XBYTE[0xFB05]//写数据
//右屏
#define		LCDIIRCOM		XBYTE[0xFBF6]//写命令
#define 	LCDIIRACOM		XBYTE[0xFBF8]//读命令
#define 	LCDIIRDATA		XBYTE[0xFB07]//写数据
*/
#define uchar 	unsigned char 
#define uint	unsigned int

#define		On		0x01
#define 	Off		0x00
#define 	L		0x01   //左屏幕
#define 	R		0x02   //右屏幕
#define 	LR		0X03   //左右屏幕

void delay1()
{
 uint i;
 uchar j;
 for(i=500;i!=0;i--)for(j=200;j!=0;j--);
}

void init()
{
LCDIICOM=0X34;
delay1();
LCDIICOM=0X30;
delay1();
LCDIICOM=0X01;
delay1();
LCDIICOM=0X06;
delay1();
LCDIICOM=0X0C;
delay1();
}




void delay()
{
 while(LCDIIACOM&0x80);	   //判断LCD是否忙
}
//开关LCD显示

//设置第一行
void SetStar(uchar Line)
{
 Line=Line%64;
 LCDIICOM=192+Line;
 delay();
}
//设置X
void SetX(uchar x,uchar y,uchar LoR)
{
LCDIICOM=0X34;
delay();
 //x=x%8;

 switch(LoR)
 {
  case L:	 //左
		LCDIILCOM=128+y;
		break;
  case R:	 //右
  		LCDIIRCOM=128+y;
		break;
  case LR:	 //左右
  		LCDIICOM=128+y;
		break;
  default:
  break;
 }
 delay();
 
 switch(LoR)
 {
  case L:	 //左
		LCDIILCOM=128+x;
		break;
  case R:	 //右
  		LCDIIRCOM=128+x;
		break;
  case LR:	 //左右
  		LCDIICOM=128+x;
		break;
  default:
  break;
 }
 delay();


}
//设置Y
void SetY(uchar y,uchar LoR)
{
 y=y%64;
 switch(LoR)
 {
  case L:	 //左
		LCDIILCOM=64+y;
		break;
  case R:	 //右
  		LCDIIRCOM=64+y;
		break;
  case LR:	 //左右
  		LCDIICOM=64+y;
		break;
  default:
  break;
 }
 delay();
}
//向LCD写数据
void WriteData(uchar lcddata,LoR)
{
 switch(LoR)
 {
  case L:	   //向左屏写数据
		LCDIILDATA=lcddata;
		break;
  case R:	   //向右屏写数据
  		LCDIIRDATA=lcddata;
		break;
  case LR:	   //向左右屏写数据
		LCDIIDATA=lcddata;
		delay();
		break;
  default:
  break;
 }
}
//清屏
void Clr()
{
 uchar i,j;
 for(i=0;i!=8;i++)
 {
  SetX(i,0,LR);
  SetY(0,LR);
  for(j=0;j!=64;j++)WriteData(0,LR); //向左右屏写0
 }
}

⌨️ 快捷键说明

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