LCD1602显示 VVcat
#include <reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit RS = P3^5;
sbit RW = P3^6;
sbit EN = P3^4;
//判断液晶忙,如果忙则等待
void Read_Busy(){
uchar busy;
P0 = 0xff;
RS = 0;
RW = 1;
do{
EN = 1;
busy = P0;
EN = 0;
}while(busy & 0x80);
}
//写LCD1602命令一个字节
void Write_Cmd(uchar cmd){
Read_Busy();//判断忙
RS = 0;
RW = 0;
P0 = cmd;
EN = 1;
EN = 0;
}
//写一个字节数据
void Write_Dat(uchar dat){
Read_Busy();
RS = 1;
RW = 0;
P0 = dat;
EN = 1;
EN = 0;
}
void main(){
Write_Cmd(0x38);//设置16*2显示
Write_Cmd(0x0c);//设置为0x0c为开显示 设置为0x0e为显示光标,设置为0x0f光标闪烁
Write_Cmd(0x01);//清屏
Write_Cmd(0x06);//地址指针移位命令
Write_Cmd(0x80);//显示地址
// 调动显示函数(每个方格只能显示一位)
Write_Dat(0x56); // 0x56转换为十进制 86 在ASCII码表中对应的字母为 V
Write_Dat(0x56); // 0x56转换为十进制 86 在ASCII码表中对应的字母为 V
Write_Dat(0x43); // 0x43转换为十进制 67 在ASCII码表中对应的字母为 C
Write_Dat(0x61); // 0x61转换为十进制 97 在ASCII码表中对应的字母为 a
Write_Dat(0x74); // 0x74转换为十进制 116 在ASCII码表中对应的字母为 t
while(1);
}
通过以下方式也可以在LCD1602液晶显示屏中显示数值
Write_Dat(0 + '0');
Write_Dat(1 + '0');
Write_Dat(2 + '0');
Write_Dat(3 + '0');
Write_Dat(4 + '0');
Write_Dat(5 + '0');
Write_Dat(6 + '0');
Write_Dat(7 + '0');
Write_Dat(8 + '0');
Write_Dat(9 + '0');
注:0 要用单引号’ '括起来而不是双引号括起来" "否则显示屏不能正常显示数值。