文档库 最新最全的文档下载
当前位置:文档库 › 51单片机 1602液晶显示基本c语言程序

51单片机 1602液晶显示基本c语言程序

/*************************************************///【1602】
sbit LCD1602_RS=P2^6;
sbit LCD1602_RW=P2^5;
sbit LCD1602_E=P2^7;

void LcdWriteCom(uchar com); //写入命令
void LcdWriteData(uchar dat); //写入数据
void LcdInit(); //LCD初始化子程序


/**************************************************/
void delay1ms(uint c) //误差 0us
{
uchar a,b;
for (; c>0; c--)
{
for (b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
}

}





/**************************************************************/
/******************【1602液晶】********************************/
/**************************************************************/

* 函 数 名 : LcdWriteCom
* 函数功能 : 向LCD写入一个字节的命令
* 输 入 : com
* 输 出 : 无
*******************************************************************************/
void LcdWriteCom(uchar com) //写入命令
{
LCD1602_E = 0; //使能清零
LCD1602_RS = 0; //选择写入命令
LCD1602_RW = 0; //选择写入

P0 = com; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
delay1ms(1);

LCD1602_E = 1; //写入时序
delay1ms(5);
LCD1602_E = 0;

// Lcd1602_Delay1ms(1);
P0 = com << 4; //发送低四位
delay1ms(1);

LCD1602_E = 1; //写入时序
delay1ms(5);
LCD1602_E = 0;
}
/*******************************************************************************
* 函 数 名 : LcdWriteData
* 函数功能 : 向LCD写入一个字节的数据
* 输 入 : dat
* 输 出 : 无
*******************************************************************************/

void LcdWriteData(uchar dat) //写入数据
{
LCD1602_E = 0; //使能清零
LCD1602_RS = 1; //选择写入数据
LCD1602_RW = 0; //选择写入

P0 = dat; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
delay1ms(1);

LCD1602_E = 1; //写入时序
delay1ms(5);
LCD1602_E = 0;

P0 = dat << 4; //写入低四位
delay1ms(1);

LCD1602_E = 1; //写入时序
delay1ms(5);
LCD1602_E = 0;
}
/*******************************************************************************
* 函 数 名 : LcdInit()
* 函数功能 : 初始化LCD屏
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/

void LcdInit() //LCD初始化子程序
{
LcdWriteCom(0x32); //将8位总线转为4位总线
LcdWriteCom(0x28); //在四位线下的初始化
LcdWriteCom(0x0c); //开显示不显示光标
LcdWriteCom(0x06); //写一个指针加1
LcdWriteCom(0x01); //清屏
LcdWriteCom(0x80); //设置数据指针起点
}













相关文档