LCD1602程序代码和显示流程图
LCD1602程序代码和显示流程图
lcd1602上显示程序代码
前几天拿到最小系统主板后,我想学习1602个显示程序,但是很遗憾,坛子里和网上都没有简单的1602个显示程序。 在没有棺材的情况下在网上重复修改测试,最终下载了以下代码。
--------------------- -
//- -初始化接口
# define LCD _ db P0//-- P0=db0至db7
sbit LCD_RS=P2; //- - p2.0=RS
sbit LCD_RW=P2; //- - p2.1=RW
sbit LCD_E=P2; //- - p2.2=E
--------------------- -
//- -定义函数
# define uchar unsigned char
#定义uint unsigned int
--------------------- -
//- -定义子程序函数
voidLCD_init(void; //- -初始化LCD 1602函数
void LCD _ write _ command (uchar command; //- -在LCD 1602上写入命令函数
voidLCD_write_data(uchardat; //- -在LCD 1602上写数据函数
voidLCD_set_xy(ucharx,uchar y ); //- -设定LCD 1602的显示位置x(0-16 ),y (1-2)
voidLCD_disp_char(ucharx,uchar y,uchar dat ); //- -在LCD 1602上显示字符
voidLCD_disp_string(ucharx、uchar Y、uchar *s ); //- -在LCD 1602上显示字符串
//voidLCD_check_busy(void ); //检查繁忙函数。 我没有使用这个函数。 因为通过率极低。
voidLCD_Delay_10us(uintn ); //- - 10微秒的延迟子程序
voidLCD_Delay_50us(uintn ); //- - 50微秒的延迟子程序
--------------------- -
//- -初始化LCD 1602
voidLCD_init(void ) )。
{
LCD_Delay_10us(20;
LCD_write_command(0x38; //- -设置位格式、两行和5x7
LCD_Delay_10us(5;
LCD_write_command(0x0c; //- -显示整体,熄灭光标,不闪烁
LCD_Delay_10us(5;
LCD_write_command(0x06 ); //- -设置输入法,增量不移位
LCD_Delay_10us(5;
LCD_write_command(0x01 ); //- -关闭画面显示
LCD_Delay_50us(40;
}
//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
//- -在LCD 1602上写入命令
void LCD_write_command(uchar dat )
{
LCD_Delay_10us(5;
LCD_RS=0; //- -命令
LCD_RW=0; //- -写入
LCD_DB=dat;
LCD_Delay_10us(5;
LCD_E=1; //- -允许
LCD_Delay_10us(5;
LCD_E=0;
}
//- -在LCD 1602上写入数据
void LCD_write_data(uchar dat )
{
LCD_Delay_10us(5;
LCD_RS=1; //-