打印
[国产单片机]

请教高手LCD程序

[复制链接]
2923|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的第一行地址.

使用特权

评论回复
5
peigang| | 2010-6-28 16:00 | 只看该作者
这个就是液晶的一个命令

使用特权

评论回复
6
lastnight1034| | 2010-7-2 08:41 | 只看该作者
我只用过1602字符液晶,第一行首地址是0x80,第二行首地址是0x80+0x40.
不同液晶地址不一定一样,看下Datasheet就知道了

使用特权

评论回复
7
960344337| | 2010-8-14 13:12 | 只看该作者
对啊,就是第一个地址啊

使用特权

评论回复
8
zhanghaikuan| | 2010-8-21 16:15 | 只看该作者
你看一下芯片介绍。0x80是首行地址,你可以是这在程序中把0X80改成0X81,两次对比更好理解

使用特权

评论回复
9
流水一溪| | 2010-8-27 10:22 | 只看该作者
我也经常看源码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

22

主题

40

帖子

0

粉丝