📄 128-64.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 + -