kele26 发表于 2013-3-28 11:23:42

问个12864液晶显示的问题。。

目前的问题是。 可以随意修改光标的位置并能在12864上显示。。但是对应希望显示的数据汉字字母都没有反应。。找不到问题所在。请高手帮忙看看。还有以前学过51.很多在51上面简单的问题用AVR做就老是解决不了。。都被打击的一点信心都没有了。。
#include<iom16v.h>
#include<macros.h>


unsigned char table[]={"caonimei!"};

#define lcd_12864_rs_set PORTB|=BIT(0)
#define lcd_12864_rs_clr PORTB&=~BIT(0)
#define lcd_12864_rs_out DDRB|=BIT(0)

#define lcd_12864_rw_set PORTB|=BIT(1)
#define lcd_12864_rw_clr PORTB&=~BIT(1)
#define lcd_12864_rw_out DDRB|=BIT(1)

#define lcd_12864_e_set PORTB|=BIT(2)
#define lcd_12864_e_clr PORTB&=~BIT(2)
#define lcd_12864_e_out DDRB|=BIT(2)

#define led_wela_clr PORTB&=~BIT(3)//数码管的锁存器
#define led_wela_out DDRB|=BIT(3)
#define lcd_wela_set PORTB|=BIT(4)液晶的锁存器
#define lcd_wela_out DDRB|=BIT(4)

void delay_nus(unsigned int z)
{
unsigned int x;
z=z*5/4;
for(x=0;x<z;x++);
}

void delay_nms(unsigned int z)
{
unsigned int x,y;
for(x=0;x<z;x++)
for(y=0;y<1141;y++);
}

void lcd_12864_command(unsigned char com)
{
lcd_12864_rw_clr;
lcd_12864_rs_clr;
delay_nus(50);
PORTD=com;
delay_nus(10);
lcd_12864_e_set;
delay_nus(10);
lcd_12864_e_clr;
delay_nus(50);
}

void lcd_12864_data(unsigned char dat)
{
lcd_12864_rw_clr;
lcd_12864_rs_set;
delay_nus(50);
PORTD=dat;
delay_nus(50);
lcd_12864_e_set;
delay_nus(50);
lcd_12864_e_clr;
delay_nus(50);
}

void lcd_12864_init()
{
lcd_12864_rw_out;
lcd_12864_rs_out;
lcd_12864_e_out;
lcd_wela_out;
led_wela_out;
led_wela_clr;
lcd_wela_set;
delay_nms(50);
lcd_12864_command(0x30);
lcd_12864_command(0x0f);
lcd_12864_command(0x06);
lcd_12864_command(0x01);
lcd_12864_command(0x02);
delay_nms(10);
}

void display()
{
unsigned char i;
lcd_12864_command(0x80);
lcd_12864_data(0xc0);
lcd_12864_data(0xee);
for(i=0;i<8;i++)
{
lcd_12864_data(table);
delay_nus(50);
}
}

void main()
{
DDRD=0xff;
PORTB=0x00;

lcd_12864_init();
display();
while(1);
}

god-father 发表于 2013-3-28 13:35:30

能够修改光标,说明你屏的读写时序及对比度没有问题。
先全部显黑,看看成不成功。

kele26 发表于 2013-3-28 18:44:39

god-father 发表于 2013-3-28 13:35 static/image/common/back.gif
能够修改光标,说明你屏的读写时序及对比度没有问题。
先全部显黑,看看成不成功。 ...

全部是啥意思啊?

kele26 发表于 2013-3-28 18:45:02

god-father 发表于 2013-3-28 13:35 static/image/common/back.gif
能够修改光标,说明你屏的读写时序及对比度没有问题。
先全部显黑,看看成不成功。 ...

全部显黑

mcu_lover 发表于 2013-3-28 18:46:18

没明白要表达的意思

god-father 发表于 2013-3-28 19:01:34

kele26 发表于 2013-3-28 18:45 static/image/common/back.gif
全部显黑

把屏幕上的黑点全部显示出来

kele26 发表于 2013-3-28 19:33:45

god-father 发表于 2013-3-28 19:01 static/image/common/back.gif
把屏幕上的黑点全部显示出来

。。我还不会打点呢。。

kele26 发表于 2013-3-28 19:35:06

mcu_lover 发表于 2013-3-28 18:46 static/image/common/back.gif
没明白要表达的意思

就是我的液晶能通过修改程序操作光标的位置,但是无论我怎么都不能显示一个字或者字母。。就是感觉像是写命令没问题写数据就不行

gracialee 发表于 2013-3-28 20:35:01

w 你应该把你的液晶显示效果发一张图上来的。

kele26 发表于 2013-3-28 21:12:58

gracialee 发表于 2013-3-28 20:35 static/image/common/back.gif
w 你应该把你的液晶显示效果发一张图上来的。

效果图。。

god-father 发表于 2013-3-28 21:46:19

kele26 发表于 2013-3-28 21:12 static/image/common/back.gif
效果图。。

论坛有程序,看一下别人的程序。
页: [1]
查看完整版本: 问个12864液晶显示的问题。。