📄 1602cheshi.c.txt
字号:
#include <reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table1[]="I LOVE MCU";
uchar code table2[]="QQ:81311812";
sbit lcd_RS=P2^0;
sbit lcd_RW=P2^1;
sbit lcd_E=P2^2;
uchar dat;
void wr_dir(uchar dir) ;
void wr_data(uchar dat);
uchar rd_dir() ;
uchar rd_data();
void delay_50us(uint t) //延时50us
{
uchar j;
for(;t>0;t--)
for(j=19;j>0;j--);
}
void init()
{
P0=0x00;
lcd_E=0;
lcd_RS=0;
lcd_RW=0;
//delay_50us(300); //15ms
//write_dir(0x38); //可以不要/不影响
//delay_50us(100); //
//write_dir(0x38);//
delay_50us(100); //时序很重要
wr_dir(0x38); //16*2显示,5*7点阵,8位数据
wr_dir(0x0f); // 设置显示和光标
wr_dir(0x06); //设置输入方式
wr_dir(0x01); //清屏
wr_dir(0x80); // 起始RAM的ADDRSS设置
}
void main()
{ uchar i;
init();
wr_dir(0x80+0x10);
for(i=0;i<10;i++)
{
wr_data(table1[i]);
delay_50us(1);
}
wr_dir(0x80+0x50);
for(i=0;i<11;i++)
{
wr_data(table2[i]);
delay_50us(1);
}
for(i=0;i<16;i++)
{
wr_dir(0x1c);
delay_50us(1);
}
while(1);
}
void wr_dir(uchar dir) //write diruction
{
lcd_RS=0;
lcd_RW=0;//让lcd工作在写指令/数据的状态
P0=dir;
delay_50us(10);
lcd_E=1;
delay_50us(10);
lcd_E=0;
}
void wr_data(uchar dat) //write data
{
lcd_RS=1;
lcd_RW=0; //让lcd工作在写指令/数据的状态
P0=dat;
delay_50us(10);
lcd_E=1;
delay_50us(10);
lcd_E=0;
}
uchar rd_dir() //READ diruction
{
lcd_RS=0;
lcd_RW=1;
delay_50us(10);
lcd_E=1;
delay_50us(10);
lcd_E=0;
return(P0);
}
uchar rd_data() //read data
{
lcd_RS=1;
lcd_RW=1;
delay_50us(10);
lcd_E=1;
delay_50us(10);
lcd_E=0;
return(P0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -