pic单片机两个IO口四线驱动LCD1602
TxLs164(0x23); //接口设置
do
{
Dat = 1; //使能下沿
Dat = 0;
DelayUs(50); //延时等待
}
while (--i);
TxLs164(0x22); //四线模式
Dat = 1; //使能下沿
Dat = 0;
DelayUs(50); //延时等待
WriteData(0x28, 0); //接口设置
WriteData(0x0c, 0); //显示打开
WriteData(0x01, 0); //显示清屏
WriteData(0x06, 0); //光标右移
}
//*******************************************************************
//函数名称:ShiftChar(*buff);
//输入参数:缓冲区首址, 0 = 左移 1 = 右移
//输出参数:无
//功能描述:移动字符
//建造日期:2008.12.08
//*******************************************************************
void ShiftChar(unsigned char *buff, unsigned char rl)
{
unsigned char temp, i;
if (rl & 0x01) //字符右移
{
temp = buff[15]; //取尾字符
for (i = 15; i > 0; i--)
{
buff[i] = buff[i - 1]; //数据右移
}
buff[0] = temp; //首尾交换
}
else //字符左移
{
temp = buff[0]; //取首字符
for (i = 0; i < 15; i++)
{
buff[i] = buff[i + 1]; //数据左移
}
buff[15] = temp; //字符交换
}
}
//*******************************************************************
//函数名称:main();
//输入参数:无
//输出参数:无
//功能描述:主要程序
//建造日期:2008.12.08
//*******************************************************************
void main(void)
{
unsigned char i, rl;
PortInit(); //脚位设置
ConInit(); //配置设置
LcdInit(); //液晶设置
DelayMs(50); //短暂延时
AddrSite(0, 0); //坐标设置
PrintChar(TopChar); //发送字符
i = 0; //移动记数
rl = 0; //左右移动
while (1)
{
if (i++ > 200) //移动记数
{
i = 0; //记数清零
rl ^= 0x01; //移动取反
}
DelayMs(250); //延时显示
ShiftChar(BotChar, rl); //移动字符
AddrSite(0, 1); //坐标设置
PrintChar(BotChar); //发送字符
}
}
源代码下载:http://www.51hei.com/f/1602ym.rar
仿真文件下载:http://www.51hei.com/f/1602fz.rar
pic单片机四线驱动LCD160 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)