#include"1602.h"
#include"delay.h"
/**********************************************
函数名: write_dat( uchar dat , uchar order )
函数参数: uchar dat ,uchar order
函数功能: 写数据( 1 ) 、 指令( 0 )
**********************************************/
void write_dat( uchar dat , uchar order )
{
lcd1602_rs = order;
lcd1602_rw = 0;
lcd1602_en = 0;
P0 = dat; //D0到D7端口数据输入P0口
delay(5);
lcd1602_en = 1;
delay(5);
lcd1602_en = 0;
}
/**********************************************
函数名:lcd_init()
函数参数: 无
函数功能: 对1602进行初始化
**********************************************/
void lcd1602_init()
{
write_dat( 0x38 , 0); // 功能设置
delay(5);
write_dat( 0x0f , 0); // 显示开关控制
delay(5);
write_dat( 0x01 , 0); // 清屏
}
/**********************************************
函数名:write_char( uchar x,uchar y,uchar CH )
函数参数: uchar x ,uchar y , uchar CH
函数功能: 在指定的位置显示指定的数据
X( 行位 ) 、 Y( 列位 ) , CH ( 数据 )
**********************************************/
void write_char( uchar x,uchar y,uchar CH )
{
switch( y )
{
case 1: write_dat( 0x80 | 0x00| x , 0 );break;
case 2: write_dat( 0x80 | 0x40| x , 0 );break;
}
write_dat( CH , 1 );
}
/**********************************************
函数名:write_charstr( uchar x,uchar y,uchar *str )
函数参数: uchar x ,uchar y , uchar *str
函数功能: 在指定的位置显示指定的字符串
X( 行位 ) 、 Y( 列位 ) , *str ( 字符串 )
**********************************************/
void write_charstr( uchar x,uchar y,uchar *str )
{
switch( y )
{
case 1: write_dat( 0x80| 0x00| x , 0 );break;
case 2: write_dat( 0x80| 0x40| x , 0 );break;
}
while( *str != 0x00 )
{
write_dat( *str , 1 );
str++;
}
}
|