📄 5 1602lcd.c
字号:
//8位液晶显示器1602显示数组//
#include <reg51.h>
#define uchar unsigned char
#define Data_Bus P2
sbit RS=P0^5;
sbit RW=P0^6;
sbit E=P0^7;
sbit busy=Data_Bus^7;
void delay(void);
void init(void);
void wc51r(uchar i);
void wc51ddr(uchar i);
void chk_busy(void);
void init() //初始化函数
{
wc51r(0x01); //清屏
wc51r(0x38); //使用8位数据显示2行,5*7字符
wc51r(0x0f); //显示器开,光标开,字符不闪烁
wc51r(0x06); //字符不动,光标自动右移一格
}
void chk_busy(void)
{
while(1)
{
Data_Bus=0xff;
RS=0;
RW=1;
E=1;
if(!busy)
break;
E=0;
}
}
void wc51r(uchar j) //写地址
{
chk_busy();
E=0;
RS=0;
RW=0;
E=1;
Data_Bus=j;
E=0;
delay();
}
void wc51ddr(uchar j) //写数据
{
chk_busy();
E=0;
RS=1; //选择数据寄存器
RW=0;
E=1;
Data_Bus=j;
E=0;
delay();
}
void delay()
{
uchar y;
for(y=0;y<0xff;y++);
}
void main()
{
unsigned char code tab1[]={'2','0','0','7',' ','0','7',' ','1','8', };
unsigned char count,*p;
init();
p=tab1;
wc51r(0x80); //从第2行第6个位置开始写
for(count=0;count<4;count++)
wc51ddr(*p++);
wc51r(0xc0); //从第2行第6个位置开始写
for(count=0;count<6;count++)
wc51ddr(*p++);
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -