?? lcd12864-12.c
字號:
#include "lcd12864-12.h"
//說明:清屏指令的執行時間為1.6ms,其余指令的執行時間為72us;
void LcdDelay(unsigned int num)
{
while(num--);
}
void LcdInit(void)
{
LcdWriteCmd(0x30); //0x30--基本指令操作
LcdWriteCmd(0x0c); //開顯示,關光標,不閃爍。
LcdClear(); //清除顯示
LcdWriteCmd(0x06); //指定在資料寫入或讀取時,光標的移動方向,DDRAM的地址計數器(AC)加1。
// LcdDrawClear(); //清空繪圖RAM
}
void LcdClear(void)
{
// LcdCheckBusy();
LCD_RS=0;
LCD_RW=0;
LCD_DATA=0x01;
LCD_E=1;
LcdDelay(80);
LCD_E=0;
LcdDelay(2500);//大于1.6ms
}
void LcdWriteCmd(unsigned char dictate)
{
// LcdCheckBusy();
LCD_RS=0;
LCD_RW=0;
LCD_DATA=dictate;
LcdDelay(96);
LCD_E=1;
LcdDelay(80);
LCD_E=0;
LcdDelay(140);
}
//向lcd控制芯片發送數據
void LcdWriteData(unsigned char datas)
{
// LcdCheckBusy();
LCD_RS=1;
LCD_RW=0;
LCD_DATA=datas;
LCD_E=1;
LcdDelay(80);
LCD_E=0;
LcdDelay(140);
}
//顯示字符
void LcdShow(unsigned char x,unsigned char y,unsigned char *ASC_GB)
{
// LcdCheckBusy();
LcdSetCursor(x,y);
while(*ASC_GB)
{
LcdWriteData(*ASC_GB);
ASC_GB++;
}
}
void LcdSetCursor(unsigned char x,unsigned char y)
{
unsigned char xdata cursorPos[4][8]={{0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87},
{0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97},
{0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F},
{0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F}};
// LcdCheckBusy();
LcdWriteCmd(cursorPos[x][y]);
}
/*
void LcdSetState(bit bShowCursor,bit bReserverAndFlash)
{
unsigned char bdata cmd=0x0c;
if(bShowCursor)
cmd+=0x02;
if(bReserverAndFlash)
cmd+=0x01;
LcdWriteCmd(cmd);
}
void LcdSetCmdGather(bit isExtern)
{
unsigned char bdata cmd=0x32;
if(isExtern)
cmd+=0x04;
LcdWriteCmd(cmd);
}
void LcdCheckBusy()
{
LcdDelay(200);return;
unsigned char b;
P7=0xff;
LCD_RS=0;
LCD_RW=1;
while(1)
{
delay(100);
LCD_E=1;
delay(100);
b=P7&0x80;
if(b==0x00)
{
LCD_E=0;
break;
}
}
}*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -