您的位置 首页 IOT

PC2004 LCM驱动

#includeat89x51.h>/***********************************************************文件名称:POWERTIP的PC200

#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;
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/274685.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部