📄 lcd1602_driver_12m.h
字号:
#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
/*LCD1602引脚 :
第1脚:VSS为地电源
第2脚:VDD接5V正电源
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生"鬼影",使用时可以通过一个10K的电位器调整对比度
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线
*/
sbit rs=P2^5;
sbit rw=P2^6;
sbit en=P2^7;
#define dat P0
void delay_1602(uint time)
{
while(--time!=0);
}
void write_1602_CMD(uchar temp)
{
dat=temp;
en=0;
rs=0;
rw=0;
_nop_();
en=1;
_nop_();
en=0;
delay_1602(200);
}
void write_1602_DDR(uchar temp)
{
dat=temp;
en=0;
rs=1;
rw=0;
_nop_();
en=1;
_nop_();
en=0;
delay_1602(200);
}
void lcd1602_init()
{
write_1602_CMD(0x01);
write_1602_CMD(0x38);
write_1602_CMD(0x0c);
write_1602_CMD(0x06);
write_1602_CMD(0x01);
}
void dis_one_char(uchar x,uchar y,uchar ascii)
{
uchar p;
p=64*x+y;
write_1602_CMD(0x80|p);
write_1602_DDR(ascii);
}
void dis_cls()
{
write_1602_CMD(0x01);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -