📄 参考程序.txt
字号:
lcdPosX = 0x88 ;
}
lcd_wri(0x36) ;
lcd_wri(0x30) ;
}
//===============================================
void showPhoto (unsigned char cx,cy,high,width ,unsigned char *bmp)//指定位置显示小图
{
lcd_wri(0x34) ;
lcdPosX = cx ;//(0x80--------0x8F)
if (cy==0)
{
lcdPosY=0x80 ;
}
else if(cy==1)
{
lcdPosY=0x90 ;
}
else if(cy==2)
{
lcdPosY=0x80 ;
}
else if(cy==3)
{
lcdPosY=0x90 ;
}
//lcdPosY = cy ;//(lcdposx+(0-----32)
width= 16*width/8 ;
halfLineCnt =high*16 ;
for ( ;halfLineCnt != 0 ; halfLineCnt--)
{
basicBlock =width ;//指的是块(块是8点),2*8=16点
wrPosition () ;//指定坐标
for ( ; basicBlock != 0 ; basicBlock--)
{
lcd_wrd (*bmp++) ;//读入一个字符数据
}
lcdPosY++ ;
}
lcd_wri(0x36) ;//打开绘图模式
lcd_wri(0x30) ;//写入基本指令
}
//===============================================
void convertChar (unsigned char CX, CY, width)
{
//displayPhoto(0,1) ;
lcdPosY = 0x80 ;
if (CX == 0)
{
CX = 0x80 ;
halfLineCnt = 16 ;
}
else if (CX == 1)
{
CX = 0x80 ;
halfLineCnt = 32 ;
}
else if (CX == 2)
{
CX = 0x88 ;
halfLineCnt = 16 ;
}
else if (CX == 3)
{
CX = 0x88 ;
halfLineCnt = 32 ;
}
lcdPosX = CX + CY ;
for ( ; halfLineCnt != 0 ; halfLineCnt--)
{
basicBlock = width ;
wrPosition() ;
for ( ;basicBlock != 0 ; basicBlock--)
{
if (halfLineCnt > 16)
{
lcd_wrd(0x00) ;
}
else
{
lcd_wrd (0xff) ;
}
}
lcdPosY++ ;
}
lcd_wri(0x36) ;
// lcd_wri(0x30) ;
}
//===============================================
void wrPosition (void)
{
lcd_wri(0x34) ;
lcd_wri(lcdPosY) ;
lcd_wri(lcdPosX) ;
lcd_wri(0x30) ;
}
//===============================================
void dispString (unsigned char X, Y, speed, unsigned char *msg)
{
if (X == 0)
{
X = 0x80 ;
}
else if (X == 1)
{
X = 0x90 ;
}
else if (X == 2)
{
X = 0x88 ;
}
else if (X == 3)
{
X = 0x98 ;
}
Y = X + Y ;
lcd_wri(Y) ;
while (*msg)
{
lcd_wrd(*msg++) ;
delayMs(speed) ;
}
}
//===============================================
//===============================================
void delayMs (unsigned char ms)
{
unsigned char i ;
while (--ms)
{
for (i = 0 ; i < 125 ; i++) ;
}
}
//===============================================
void delaySec (unsigned char sec)
{
unsigned char i ;
while (--sec)
{
for (i = 0 ; i < 200 ; i++)
{
delayMs (6) ;
}
}
}
//===============================================
void lcd_nop(void)
{
_nop_() ;
_nop_() ;
_nop_() ;
_nop_() ;
_nop_() ;
_nop_() ;
_nop_() ;
_nop_() ;
_nop_() ;
_nop_() ;
_nop_() ;
}
void lcd_wri(unsigned char indata)
{
bitLCDcs = 0 ;
lcd_nop() ;
bitLCDcs = 1 ;
lcd_nop() ;
lcd_wbyte(0xf8) ;
lcd_wbyte(indata & 0xf0) ;
lcd_wbyte((indata << 4) & 0xf0) ;
}
void lcd_wrd(unsigned char indata)
{
bitLCDcs = 0 ;
lcd_nop() ;
bitLCDcs = 1 ;
lcd_nop() ;
lcd_wbyte(0xfa) ;
lcd_wbyte(indata & 0xf0) ;
lcd_wbyte((indata << 4) & 0xf0) ;
}
void lcd_wbyte(unsigned char sendbyte)
{
unsigned char data j=8 ;
for( ;j>0 ;j--)
{
lcd_nop() ;
sendbyte<<=1 ; //无论C51怎样实现这个操作,始终会使CY=sendbyte^7 ;
bitLCDsid=CY ;
lcd_nop() ;
bitLCDsclk=0 ;
lcd_nop() ;
bitLCDsclk=1 ;
lcd_nop() ;
bitLCDsclk=0 ;
lcd_nop() ;
}
}
void lcd_delay(void)
{
delay_ms(1) ;
}
void delay_ms(unsigned char k)
{
unsigned char i ;
unsigned char j ;
for ( ; k>0 ; k--)
{
for (i=0x0c ; i>0 ; i--)
{
for (j=0xe5 ; j>0 ; j--)
{
}
}
}
}
void alldisplayPhoto (unsigned char *bmp, unsigned char bmpCls)
{
lcdPosX = 0x80 ;
halfScr = 2 ;
for ( ;halfScr != 0 ; halfScr--)
{
lcdClear () ;
lcdPosY = 0x80 ;
halfLineCnt = 32 ;
for ( ;halfLineCnt != 0 ; halfLineCnt--)
{
basicBlock = 16 ;
wrPosition () ;
for ( ; basicBlock != 0 ; basicBlock--)
{
if (bmpCls == 0)
{
lcd_wrd (*bmp++) ;
}
else if (bmpCls == 1)
{
lcd_wrd (0x00) ;
}
}
lcdPosY++ ;
}
lcdPosX = 0x88 ;
}
lcd_wri(0x36) ;
lcd_wri(0x30) ;
}
void clearChar (unsigned char CX, CY, width)
{
lcd_wri(0x36) ;
lcdPosY = 0x80 ;
if (CX == 0)
{
CX = 0x80 ;
halfLineCnt = 16 ;
}
else if (CX == 1)
{
CX = 0x80 ;
halfLineCnt = 32 ;
}
else if (CX == 2)
{
CX = 0x88 ;
halfLineCnt = 16 ;
}
else if (CX == 3)
{
CX = 0x88 ;
halfLineCnt = 32 ;
}
lcdPosX = CX + CY ;
for ( ; halfLineCnt != 0 ; halfLineCnt--)
{
basicBlock = width ;
wrPosition() ;
for ( ;basicBlock != 0 ; basicBlock--)
{
if (halfLineCnt > 16)
{
lcd_wrd(0x00) ;
}
else
{
lcd_wrd (0x00) ;
}
}
lcdPosY++ ;
}
lcd_wri(0x36) ;
//lcd_wri(0x30) ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -