📄 lcd1602字符显示.c
字号:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
void delay(uint timer);
void init(void);
void wc51r(uchar j);
void wc51ddr(uchar j);
void fbusy(void);
void main()
{
SP=0x50;
init();
wc51r(0x80); //第0行 第0列
wc51ddr(0x49); //字符 I
wc51r(0x82); //第0行 第2列
wc51ddr(0x4c); //字符 L
wc51ddr(0x4f); //字符 O
wc51ddr(0x56); //字符 V //这里可以看出 地址值(没有设定时)是按列自动加1
wc51ddr(0x45); //字符 E //当有设置值时 从设置值出开始 显示 数据
wc51r(0xC0); //第1行 第0列
wc51ddr(0x4d); //字符 M
wc51ddr(0x43); //字符 C
wc51ddr(0x55); //字符 U
wc51ddr(0x21); //字符 !
while(1);
}
void init()
{
wc51r(0x01); //清屏幕
wc51r(0x38); //显示方式16*2 字符5*7
wc51r(0x0c); //显示开 光标闪烁
wc51r(0x06); //字符不动 光标自动右移一格
}
void fbusy()
{
E=0; //这里 加上 E=0 液晶才能正常显示
RS=0;
RW=1;
E=1;
while(P1&0x80);
E=0;
delay(10);
}
void wc51r(uchar j) //写指令
{
fbusy();
E=0;
RS=0;
RW=0;
E=1;
P1=j;
E=0;
delay(10);
}
void wc51ddr(uchar j) //写数据
{
fbusy();
E=0;
RS=1;
RW=0;
E=1;
P1=j;
E=0;
delay(1000);
}
void delay(uint timer)
{
uchar y;
for(;timer>0;timer--)
for(y=0;y<120;y++)
{;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -