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

LCD求助

时间:10-02 整理:3721RD 点击:
#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显示不出来啊!

KEIL编译通过,也能下载到板子去,LCD就是没反应

背光显示部分有木有加个电位器啊

1 先用电压表检测下 LCD 电压管脚是否正常。
2 再看自己程序中液晶的初始化 是否按照正常的时序进行的,主要是对得上单片机指令周期。
3 LCD是否是损坏了?貌似1602是比较容易烧坏的。

程序写错了
“for(num=0;num>11;num++)”
改成"for(num=0;num<11;num++)"

楼上改动的程序才写错了

我觉得还是你的板子有文题  按照楼上的介意检查检查你自己的板子吧

先要保证硬件没问题

貌似有两个问题 一个就是
“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;
}

解决问题的步骤:
1 检查硬件,确保硬件没有问题。
2 如果觉得硬件没有问题,那么下载原厂的程序,如果能运行,至少说明硬件没事或者损坏不严重。
3 测试自己的程序。如果不能运行,则检查之。首先检查初始化部分,一句一句地查。
如果没有原厂程序,好吧,自己对照说明书慢慢的来。如果连说明书都没有,那……

我靠  你的延时函数会不会写啊   全是小于零 这个错完了   应该是都是大于零  你的循环都错了  自己好好补补基础吧!

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

网站地图

Top