📄 lm16032ddriver.c
字号:
*/
#include "lm16032ddriver.h"
//--------------------------------------
//延时子函数
//--------------------------------------
void LcdDelay(uint delx)
{
uint i=0;
while(i<delx)
{
i++;
}
}
//--------------------------------------
//写命令函数
//--------------------------------------
void LcdCommand(uchar Com)
{
RS=0;
RW=0;
LcdDataPort=Com;
_nop_();_nop_();_nop_(); //E先1后0实现下降沿
E=1;
_nop_();_nop_();_nop_();
E=0;
LcdDelay();
}
//--------------------------------------//
//写数据函数
//--------------------------------------
void LcdDataWrite(uchar Data)
{
RS=1;
RW=0;
LcdDataPort=Data;
_nop_();_nop_();_nop_(); //E先1后0实现下降沿
E=1;
_nop_();_nop_();_nop_();
E=0;
}
//--------------------------------------//
//初始化函数
//--------------------------------------
void LcdInitialize(void)
{
LcdDelay(1000);
LcdCommand(0x30); //功能设定
LcdDelay(1000);
LcdCommand(0x30);
LcdCommand(0x0e); //显示画面设置
LcdCommand(0x01); //清屏指令
LcdDelay(1000);
LcdCommand(0x06); //ENTRY MODE
}
//--------------------------------------//
//设定字符显示位置函数
//--------------------------------------
void SetCharCursor(uchar CharX,uchar CharY)
{
uchar CharSite;
CharX=CharX & 0x0f; //取低四位
CharY=CharY & 0x0f;
CharY=CharY<<4; //低四位变为高四位,低四位清零
CharY=CharY & 0x10; //只取第五位,因为该显示屏只能显示两行文字 当多于两行时无显示,因而为保证显示屏始终有显示~
CharY=CharY | 0x80; //最高位置1
CharSite=CharY | CharX;
LcdCommand(CharSite);
}
//--------------------------------------//
//显示字符子函数
//--------------------------------------//
void DisplayChar(uchar CharX,uchar CharY,uchar *ASC_GB)
{
SetCharCursor(CharX,CharY);
while(*ASC_GB>0) //按顺序一个一个字符的写
{LcdDataWrite(*ASC_GB);ASC_GB++;
/*if(ASC_GB>0x09)
{CharX=0;
SetCharCursor(0,CharY++);
LcdDataWrite(*(ASC_GB+9));
ASC_GB++;
} */
}
}
unsigned char LcdReadAC()
{
unsigned char ACNum;
RS=0;
RW=1;
_nop_();_nop_();_nop_(); //E先1后0实现下降沿
E=1;
_nop_();_nop_();_nop_();
ACNum = LcdDataPort;
_nop_();_nop_();_nop_();
E=0;
return ACNum;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -