LCD1602显示不出想要的结果.....

yellowbo   2010-2-10 23:50 楼主
//第一行 显示‘a’ 第二行显示“welcome”
#include
void initial_lcd(void);           //初始化
void write_code(unsigned char m);   //写代码
void write_char(unsigned char m);        //写字节
void write_string(unsigned char m,unsigned char *p);   //写字符串
void busy_lcd(void);         //判忙
void lcd_location(unsigned char m);         //光标定位
sbit rs=P2^4;
sbit rw=P2^5;
sbit e=P2^6;
void main(void)
{
        initial_lcd();
        lcd_location(0);
        write_char('a');
        lcd_location(0x40);
        write_string(7,"welcome");
        while(1);
}
void initial_lcd(void)
{
        write_code(0x38);
        write_code(0x38);
        write_code(0x38);
        write_code(0x06);
        write_code(0x08);
        write_code(0x01);
}
void write_code(unsigned char m)
{
        busy_lcd();
        rs=0;
        rw=0;
        e=1;
       
        P0=m;
        e=0;
}
void write_char(unsigned char m)
{
        busy_lcd();
        rs=1;
        rw=0;
        e=1;
       
        P0=m;
        e=0;
}
void write_string(unsigned char count,unsigned char *p)
{
        while(count--)
        {
                busy_lcd();
                write_char(*p);
                p++;
        }
}
void busy_lcd(void)
{
        rw=1;
        rs=0;
        e=0;
        P0=0xff;
        e=1;
        while(P0_7==1);
        e=0;
}
void lcd_location(unsigned char m)
{
        write_code(0x80+m);
}

回复评论 (10)

现在是什么样的现象!?
点赞  2010-2-11 07:48
上面什么多没有显示  只是亮的
点赞  2010-2-11 10:02
P0口 接数据位   三个控制位  分别接P2^4 P2^5 P2^6请大家帮帮忙
点赞  2010-2-11 10:03
1,注意调节对比度
2,注意忙命令
点赞  2010-2-11 14:53
还没有人能解答的??上面的程序不难的.....请高手指点一二  感激不尽
点赞  2010-2-11 20:21
液晶很多时候的问题都是时序上的

另外是IO连接上的

看着代码很像厂家提供的,在没有绝对的把握的情况下,别首先怀疑厂家的代码

虽然,这个行当在咱国内做得不太好。但是,基本的功能还是可以实现的
点赞  2010-2-12 15:19
厂家提供的代码和 自己做的板兼容不好,呵呵!楼主慢慢调试,看着难,其实是很简单的,对于LCD显示,玩单片机的都自己有一套显示程序,要改的话就等于全改,其实总的流程都一样,个人喜欢而已!
点赞  2010-2-12 15:59
指令执行的延时是有要求的……至少我做的时候都是指令加延时的。还有不知道你在偏压新号的那个口上有没有加个电位器,调节电位器可以控制偏压信号,也能调节显示
点赞  2010-2-12 20:27
这个程序  写了好几次了  每次都显示不出数字  硬件实现不了 用软件仿真也不好使  
肯定还是细节的地方写的有问题  请大家再帮忙看看一二  
点赞  2010-2-13 17:08
建议首先看一下硬件连接有没有出错,然后再看程序。小弟当年做毕设时候,也是这个问题。不小心把电源线和地线接反了,1602发热啊。后来改正之后,再查程序(自己写的),改了一周才弄好。呵呵,最好总算是能过关了。
点赞  2010-2-15 10:42
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复