📄 lcm1602.c
字号:
#include <reg51.h>
//定义控制端口
sbit lcd_EN=P2^7;
sbit lcd_RW=P2^6;
sbit lcd_RS=P2^5;
//定义控制端口
//-------------------------------n毫秒延时程序 (12M晶震)-------------------------------
lcd_delay(unsigned char n)
{unsigned char i;
while(n--)
{for(i=0;i<240;i++);
}
}
//-------------------------------延时程序结束-------------------------------
//-------------------------------读忙信号----------------------------------
lcd_wait()
{int i;
for(i=0;i<200;i++);
}
//-------------------------------LCM空闲完成-------------------------------
//-------------------------------写指令 跟据手册 RS=L RW=L EN=H-------------------------------
lcd_write_command(unsigned char command,unsigned char lcd_busy)
{if(lcd_busy)
lcd_wait();
lcd_RS=0;
lcd_RW=0;
lcd_EN=1;
P0=command;
lcd_EN=0;
}
//-------------------------------写指令结束-------------------------------
//-------------------------------写数据初始化 跟据手册 RS=H RW=L EN=H-------------------------------
lcd_write_data(unsigned char char_data)
{lcd_wait(); //LCD是否空闲
lcd_RS=1;
lcd_RW=0;
lcd_EN=1;
P0=char_data;
lcd_EN=0;
}
//-------------------------------写数据完成---------------------------------
//-------------------------------显示一个字符-------------------------------
display_a_char(unsigned char position,unsigned char char_data)
{lcd_wait(); //等待LCD空闲
if(position>=16)
position+=0xb0; //第二行数据指针
else
position+=0x80; //第一行数据指针 (手册)
lcd_write_command(position,1); //将所要写字符的位置找到
lcd_write_data(char_data); //写字符
}
//----------------------------- 结束显示一个字符---------------------------
//------------------------显示连续字符串 lcd_cow代表行(0:代表第一行,1:代表第二行)-----------------
display_a_string(unsigned char lcd_row,unsigned char *str)
{lcd_wait();
lcd_row<<=4;
while(*str!='\0')
{display_a_char(lcd_row++,*(str++));
}
}
//-------------------------------结束连续字符串-------------------------------
//-------------------------------LCM1602液晶显示器初始化编程-------------------------------
lcd_init()
{lcd_delay(15);
lcd_write_command(0x38,0);
lcd_delay(5);
lcd_write_command(0x38,0);
lcd_delay(5);
lcd_write_command(0x38,0);
lcd_write_command(0x08,1);
lcd_write_command(0x01,1);
lcd_write_command(0x06,1);
lcd_write_command(0x0c,1);
}
//--------------------------LCM1602液晶显示器初始化编程结束--------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -