×
嵌入式 > 嵌入式开发 > 详情

PC2004 LCM驱动

发布时间:2020-08-11 发布时间:
|
#include

/***********************************************************
文件名称:POWERTIP的PC2004系列字符型LCM模块的驱动程序
作 者: Free
版 本: v01
说 明: 地址0x80~0xa7,0xc0~0xe7;
第一行:0x80~0x96;第二行:0xc0~0xd6;
第三行:0x97~0xa7;第四行:0xd7~0xe7;
修改记录:无
***********************************************************/
typedef unsigned char Uchar;
typedef unsigned int Uint;

#define LCDCmdPort P0
#define LCDDataPort P0
sbit LCD_RS = P2^7;
sbit LCD_E = P2^6;

/* LCD忙检测函数 */
void LCDBusy(void)
{
Uchar i;
for(i=0;i<80;i++)
{}
}
/* LCD控制命令函数 */
void LCDCmd(char c)
{
LCDBusy();
LCDCmdPort=c;
LCD_RS=0;
LCD_E=1;
LCD_E=0;
}
/* LCD数据输入函数 */
void LCDData(char d)
{
LCDBusy();
LCDDataPort=d;
LCD_RS=1;
LCD_E=1;
LCD_E=0;
}
/* LCD初始化函数 */
void LCDInit(void)
{
LCD_E=1;
LCD_RS=1;
LCDCmd(0x38); //function set
LCDCmd(0x0c); //display on/off
LCDCmd(0x06); //set entry mode
LCDCmd(0x02); //return home
LCDCmd(0x01); //clear display
}
/* 显示字符串函数,addr显示字符串起始地址 */
void LCDStr(Uchar addr,Uchar *s)
{
idata int d=0;
LCDCmd(addr); //显示地址//
while (s[d]!=0x00)
LCDData(s[d++]); // char of LCM //
}
/*p为字符串或数组首地址,len为字符串个数,该数组应是≤4*20的二维数组或≤80的一维数组*/
void LCDSz(Uchar *p,Uchar len)
{
Uchar i;
LCDCmd(0x80); //显示地址//
while(*p!=0x00)
{for(i=0;i {LCDData(*p++);}
break;
}
}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32 TIMx 配置