📄 lcd.c
字号:
#include <reg51.h>
#include <intrins.h>
//#include <absacc.h>
//#include <stdio.h>
#define data_IO P0
sbit RS=P1^0; //指令和数据寄存器
sbit RW=P1^1; //读写控制
sbit E=P1^2; //片选
sbit FLAG=P0^7;
void delay(unsigned long N)
{
unsigned long j;
for(j=0;j<N;j++);
}
void busy()
{
while(1)
{
data_IO=0xff;
RS=0;
RW=1;
E=1;
if(!FLAG)break;
E=0;
}
}
void w_com(unsigned char com) //写指令
{
busy();
data_IO=com;
RS=0;
RW=0;
E=1;
E=0;
}
void w_dat(unsigned char dat) //写数据
{
busy();
data_IO=dat;
RS=1;
RW=0;
E=1;
E=0;
return;
}
//函数申明
void busy(void); //判忙
void w_dat(unsigned char); //写显示数据子程序
void w_com(unsigned char); //写指令代码子程序
//void initialization(void); //初始化子程序
void delay(unsigned long); //延时
main()
{
while(1)
{
unsigned char i;
RS=0;
RW=0;
E=0;
for(i=0;i<2;i++)
{
w_com(0x30);
delay(100);
}
w_com(0x38); //显示为八位两行字符
delay(100);
w_com(0x0c); //开显示
delay(100);
//w_com(0x1c);
w_com(0x06);
// w_com(0x06); //显示光标
delay(100);
w_com(0x01);
delay(100);
w_com(0x80); //显示数据存储器首地址
delay(100);
w_dat(0x57); //显示字母w
//delay(10000);
w_dat(0x45); //显示字母e
//delay(10000);
w_dat(0x4c);
//delay(10000);
w_dat(0x43);
//delay(10000);
w_dat(0x4f);
//delay(10000);
w_dat(0x4d);
//delay(10000);
w_dat(0x45);
w_dat(0x10);
w_dat(0x55);
w_dat(0x53);
w_dat(0x45);
w_dat(0x10);
w_dat(0x4e);
w_dat(0x44);
w_dat(0x2d);
w_com(0xc0); //数据在第二行显示
delay(100);
w_dat(0x38);
w_dat(0x39);
w_dat(0x53);
w_dat(0x10);
w_dat(0x21); //显示符号!
// w_com(0x0c);
delay(100000);
for(i=0;i<20;i++)
{
w_com(0x18); //显示左移
delay(5000);
}
w_com(0x02);
delay(1000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -