微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于LCD12864问题

关于LCD12864问题

时间:10-02 整理:3721RD 点击:
各位单片机大大,我在做lcd实验的时候,硬件都链接好了,背光也亮了,但是就是不知道为什么不显示任何东西,求指导!程序放在下面:
#include<reg51.h>
#include<intrins.h>
#include<stdlib.h>
#define uchar unsigned char
#define uint unsigned int
uchar i;
uchar code dis[]={"我爱单片机"};
sbit rs=P3^5;
sbit rw=P3^6;
sbit e=P3^4;
sbit psb=P3^7;
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x++)
                for(y=110;y>0;y++);
}
void write_com(uchar com)
{
        rs=0;
        rw=0;
        e=0;
        P0=com;
        delay(5);
        e=1;
        delay(5);
        e=0;
}
void write_dat(uchar dat)
{
        rs=1;
        rw=0;
        e=0;
        P0=dat;
        delay(5);
        e=1;
        delay(5);
        e=0;
}
void init()
{
        psb=1;
        write_com(0x30);
        delay(5);
        write_com(0x0f);
        delay(5);
        write_com(0x01);
        delay(5);
}
void main()
{
        init();
        write_com(0x80);
        for(i=0;i<7;i++)
        {
                write_dat(dis[i]);
                delay(10);
        }
        while(1);       
}

还是请路过的人虚心的看看!希望能指导指导!

不知道,这是你上网查资料自己写的还是?

问题已经解决了,都是自己粗心大意出了点小问题:现在总结下,其实就是延时函数出问题了。
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x++)        \\这里写错了,应该是for(x=z;x>0;x--)
                for(y=110;y>0;y++);\\这里写错了,应该是for(y=110;y>0;y--);
}

很感谢,问题已经解决了,程序是参照别人的写的,只不过是自己粗心,把延时函数写错了,导致程序无限延时下去了!

谢谢分享!

客气了,共同学习!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top