LCD1602、12864的模式设置,和详细的程序介绍

2024-12-16 15:09:03
推荐回答(1个)
回答1:

1602,要做好延时,
#include
#define uchar unsigned char
#define uint unsigned int
sbit rs=P2^0;//输入寄存器驱动电源(=1:数据;=0:指令)
sbit rw=P2^1;//输入读写操作(=1:读=0:写)
sbit e=P2^2;//使能
//延时
void delay(uint m)
{
uchar n;
for(;m>0;m--)
for(n=10;n>0;n--);
}
//写命令
void wr_com(uint dat)
{
P0=dat;
rs=0;
rw=0;
e=1;
e=0;
}
//写数据
void wr_data(uint dat)
{
P0=dat;
rs=1;
rw=0;
e=1;
e=0;
}
//初使化
void init()
{
wr_com(0x01);//清屏
delay(100);
wr_com(0x08);//关画面
delay(100);
wr_com(0x0c);//画面显示
delay(100);
wr_com(0x38);//工作档核方式
delay(100);
wr_com(0x06);//画面不动光标右移
delay(100);
wr_com(0x0f);//画面、光标、闪烁显示
delay(100);
}
//地址
void addr(uchar ass)
{
addr(ass|0x80);
}
void main()
{
init();
while(1)
{
wr_com(0x80);//写第一行第一位地址
delay(10000);
wr_data('D');//在第一位写一个字母槐裂
delay(10000);
wr_com(0xc5);//写第二行明掘行第一位地?
delay(1000);
wr_data('C');//在第一位写一个字母
delay(10000);
}
}