[国产单片机] 请教高手LCD程序

[复制链接]
3584|8
 楼主| xufuneng 发表于 2010-5-23 22:31 | 显示全部楼层 |阅读模式
#include<reg51.h>
#define uchar unsigned char
sbit RS=P2^5;
sbit RW=P2^6;
sbit EN=P2^7;
void delay(uchar); //延时子程序
void init();
void wc51r(uchar j);
void wc51ddr(uchar j);
uchar code table[]="hoole";
uchar code table1[]="my name is lifei"; //显示编码
uchar q;
void main()
{
init();
wc51r(0x80); //输入相应地址
for(q=0;q<10;q++) //输入table[]
{
wc51ddr(table[q]);
}
wc51r(0xc4); //输入相应地址
for(q=0;q<12;q++) //输入table1[]
{
wc51ddr(table1[q]);
}
while(1);
}
void init() //液晶的初始化子程序,输入液
{ //晶的控制字,液晶不同控制字
wc51r(0x01); //有所不同。
wc51r(0x38);
wc51r(0x0f);
wc51r(0x06);
}

void wc51r(uchar i) //地址输入子程序,每
{ //个EN下降沿输入一次
EN=0;RS=0;RW=0;
EN=1;
P1=i;
EN=0;
delay(300);
}
void wc51ddr(uchar i) //数据输入子程序
{
EN=0;RS=1;RW=0;
EN=1;
P1=i;
EN=0;
delay(300);
}
void delay(uchar p)
{ uchar y=0;
for(;p>0;p--)
{ for(y=0;y<125;y++)
{;}
}
}



wc51r(0x80); //输入相应地址            为什么是0X80?其表示什么?而wc51ddr(table[q]); 是表示显示输入值吗?
McuPlayer 发表于 2010-5-25 00:30 | 显示全部楼层
很少有人对别人的源码感兴趣
谈的元 发表于 2010-5-26 20:56 | 显示全部楼层
这个与LCD有关啊,你LCD没型号,无法解释
dragon20100708 发表于 2010-6-25 09:31 | 显示全部楼层
此程序中的wc51r(0x80); //输入相应地址爲12864LCD的第一行地址.
peigang 发表于 2010-6-28 16:00 | 显示全部楼层
这个就是液晶的一个命令
lastnight1034 发表于 2010-7-2 08:41 | 显示全部楼层
我只用过1602字符液晶,第一行首地址是0x80,第二行首地址是0x80+0x40.
不同液晶地址不一定一样,看下Datasheet就知道了
960344337 发表于 2010-8-14 13:12 | 显示全部楼层
对啊,就是第一个地址啊
zhanghaikuan 发表于 2010-8-21 16:15 | 显示全部楼层
你看一下芯片介绍。0x80是首行地址,你可以是这在程序中把0X80改成0X81,两次对比更好理解
流水一溪 发表于 2010-8-27 10:22 | 显示全部楼层
我也经常看源码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:有付出就有收获,努力定有回报!实践才能检验真理的存在!

22

主题

40

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部