/***********************************************************
文件名称: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
break;
}
}
上一篇:AT89C4051+TLC7225I 三相交流信号源
下一篇:AT89C2051+AD7545正弦信号发生器
推荐阅读最新更新时间:2024-03-16 15:04
设计资源 培训 开发板 精华推荐
- 有奖直播|使用 ModusToolbox® 构建系统,灵活应对物联网设计挑战
- 英飞凌&英恒|如何选择一颗合适的车用MOSFET
- 直播已结束【ADI 低噪声 Buck 稳压器如何减小电源噪声】
- 有奖征集:推荐你用过或了解的好用的电源芯片
- 推荐有礼,分享有你!DSP学习季开学了,推荐你最喜欢的TI DSP资料!
- TI携您共创未来乘驾新体验——深入学习: 点评明星产品,为它打榜
- Mentor线上研讨会丨FPGA仿真验证平台ModelSim应用进阶
- 激情六月!手把手教你用WEBENCH
- 有奖报名 | 安富利邀您云逛展2023中国国际工业博览会
- Littelfuse第3期:新型SSA系列双端超低分流电阻器