标题:
请问为什么我的这个关于 LCD1602的程序 不能显示呀
[打印本页]
作者:
ataime
时间:
2014-10-29 23:32
标题:
请问为什么我的这个关于 LCD1602的程序 不能显示呀
请问为什么我的这个关于 LCD1602的程序 不能显示呀
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define GPIO_LCD P0
sbit LCDE=P2^7;
sbit RW=P2^5;
sbit RS=P2^6;
unsigned char Puzh[]=" pechin science";
void lcdwritecom(unsigned char);
void lcdwritedata(unsigned char);
void lcdinit();
void delay1ms(uint);
void lcdwritdata(uchar dat)
{
RS=1;
RW=0;
GPIO_LCD=dat;
delay1ms(10);
LCDE=1;
delay1ms(10);
LCDE=0;
}
void lcdwritecom(uchar com)
{
RS=0;
RW=0;
GPIO_LCD=com;
delay1ms(10);
LCDE=1;
delay1ms(10);
LCDE=0;
}
void lcdinit()
{
lcdwritecom(0x38);
lcdwritecom(0x0c);
lcdwritecom(0x06);
lcdwritecom(0x01);
lcdwritecom(0x80);
}
void delay1ms(uint c)
{
int a,b;
for (; c>0; c--)
{
for (b=2;b>0;b--)
{
for(a=10;a>0;a--)
{
};
};
};
}
void main(void)
{
unsigned char i;
lcdinit();
for(i=0;i<16;i++)
{
lcdwritedata('A');
}
while(1);
}
作者:
liaolinhui
时间:
2014-10-30 00:43
写命令和写数据前先让LCDE=0
作者:
小玲子zhl
时间:
2014-10-30 12:43
你这个程序是不是还少了些东西,读lcd忙状态,写地址,你也没写啊
作者:
gaozhaohong
时间:
2014-10-30 16:32
除了缺少一些必要的程序代码外,RS和RW只间必须加延时。否则有时就真不显示。
作者:
skyhanfeng
时间:
2014-10-30 22:53
还差取数据,和取数据命令函数。
作者:
dgahz
时间:
2014-10-31 11:24
void lcdwritedata(unsigned char); //你的函数声明
void lcdwritdata(uchar dat) //你的函数体
lcdwritedata('A'); //你的函数调用
这是我复制你的,你仔细看看问题在哪,不用我说了吧!这样编译无错误,下载就是没显示,骗倒一大片高人啊!
作者:
dgahz
时间:
2014-10-31 11:26
多一个e少一个e的问题,就这么简单。
作者:
dgahz
时间:
2014-10-31 11:36
尽量做到0错误0警告。
作者:
wind02072107
时间:
2015-1-25 22:19
主要是没有写入CGRAM的地址吧!
作者:
woaiwm
时间:
2015-1-30 14:23
大神,我也遇到了像你这样的问题,请问你现在解决了这个问题吗?我都快被这1602弄疯了!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1