LCD求助

2019-07-16 03:53发布

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LOVE YOU!";
sbit RS_lcd1602=P2^6;
sbit E_lcd1602=P2^7;
sbit WR_lcd1602=P2^5;
void init();
void delay(uchar msx);
void write_1602com(uchar com);
void write_1602dat(uchar dat);
uchar num;
void delay(uchar msx)
{
   uchar j,i;
   for(j=msx;j<0;j--)
           for(i=110;i<0;i--);
}

void write_1602com(uchar com)
{
    RS_lcd1602=0;
        WR_lcd1602=0;
        P0=com;
        delay(1);
        E_lcd1602=1;
        delay(1);
        E_lcd1602=0;
}

void write_1602dat(uchar dat)
{
    RS_lcd1602=1;
        WR_lcd1602=0;
        P0=dat;
        delay(1);
        E_lcd1602=1;
        delay(1);
        E_lcd1602=0;
}

void init()
{
   write_1602com(0x38);
   delay(1);
   write_1602com(0x0c);
   delay(1);
   write_1602com(0x06);
   delay(1);
   write_1602com(0x01);
   delay(1);
   
}

void main()

{
    init();
        write_1602com(0x80);
        for(num=0;num>11;num++)
        {
        write_1602dat(table[num]);
        delay(10);
        }
        while(1);
}
  



程序如上。。。用的是普中科技HC6800的板子,LCD显示不出来啊!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
kkksu
1楼-- · 2019-07-17 02:08
 精彩回答 2  元偷偷看……
使得此啊
2楼-- · 2019-07-17 04:45
貌似有两个问题 一个就是
“for(num=0;num>11;num++)”
改成"for(num=0;num<11;num++)"
还有一个就是写指令 写数据是的时序有一点点问题,都要加上void write_1602com(uchar com)
{
    RS_lcd1602=0;
        WR_lcd1602=0;
        P0=com;
        delay(1);
        E_lcd1602=1;
        delay(1);
        E_lcd1602=0;
}
void write_1602com(uchar com)
{
    RS_lcd1602=0;
        WR_lcd1602=0;
       E—lcd1602=0;        P0=com;
        delay(1);
        E_lcd1602=1;
        delay(1);
        E_lcd1602=0;
}
3htech
3楼-- · 2019-07-17 05:28
解决问题的步骤:
1 检查硬件,确保硬件没有问题。
2 如果觉得硬件没有问题,那么下载原厂的程序,如果能运行,至少说明硬件没事或者损坏不严重。
3 测试自己的程序。如果不能运行,则检查之。首先检查初始化部分,一句一句地查。

如果没有原厂程序,好吧,自己对照说明书慢慢的来。如果连说明书都没有,那……
使得此啊
4楼-- · 2019-07-17 09:43
我靠  你的延时函数会不会写啊   全是小于零 这个错完了   应该是都是大于零  你的循环都错了  自己好好补补基础吧!

一周热门 更多>