标题: LM041L显示不出来,求大神帮忙!! [打印本页]

作者: 01100110    时间: 2018-5-3 19:24
标题: LM041L显示不出来,求大神帮忙!!
本帖最后由 01100110 于 2018-5-3 19:26 编辑

代码:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit E=P2^0;
sbit RW=P2^1;
sbit RS=P2^2;

uchar tab1[]="www.51hei.com";
uchar tab2[]="LCD1602 test ok!";
void delay(uint del)
{
        uint i,j;
        for(i=0;i<del;i++)
        for(j=0;j<=168;j++);
}
void writecmd(uchar com)
{
        E=0;
        RS=0;
        RW=0;
        P0=com;
        delay(2);
        E=1;
        delay(2);
        E=0;
}
void writedata(uchar dat)
{
        E=0;
        RS=1;
        RW=0;
        P0=dat;
        delay(2);
        E=1;
        delay(2);
        E=0;
}
void init(void)
{
        writecmd(0x38);
        writecmd(0x0c);
        writecmd(0x06);
  writecmd(0x01);
}
void main(){
        uchar j;
        init();
        writecmd(0x80);
        for(j=0;j<13;j++)
        {
                writedata(tab1[j]);
                delay(2);
        }
        writecmd(0x80+0x40);
        for(j=0;j<16;j++)
        {
                writedata(tab2[j]);
                delay(2);
        }
        while(1);
}

KPF21]{RCY0C]ZWQGTPW5~Q.png (54.46 KB, 下载次数: 61)

KPF21]{RCY0C]ZWQGTPW5~Q.png

ES6U9R9~(D}LLQNPY6`HJIG.png (53.47 KB, 下载次数: 64)

ES6U9R9~(D}LLQNPY6`HJIG.png

作者: wulin    时间: 2018-5-4 08:55
程序没有问题,电路图错误。



作者: 01100110    时间: 2018-5-4 18:35
wulin 发表于 2018-5-4 08:55
程序没有问题,电路图错误。

谢谢 已经解决了
作者: hmhahaha    时间: 2021-4-24 12:51
兄弟LM04l显示三行数据可以吗,为啥我开头再定义一个数组显示数组越界?
作者: angmall    时间: 2021-4-24 13:57
hmhahaha 发表于 2021-4-24 12:51
兄弟LM04l显示三行数据可以吗,为啥我开头再定义一个数组显示数组越界?


我给你来个试试



  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. sbit E=P2^0;
  5. sbit RW=P2^1;
  6. sbit RS=P2^2;

  7. uchar code tab1[]="www.51hei.com";
  8. uchar code tab2[]="LCD1602 test ok!";
  9. uchar code tab3[]="Line number 3   ";
  10. uchar code tab4[]="Line number 4   ";

  11. void delay(uint del)
  12. {
  13.         uint i,j;
  14.         for(i=0;i<del;i++)
  15.             for(j=0;j<=168;j++);
  16. }
  17. void writecmd(uchar com)
  18. {
  19.         E=0;
  20.         RS=0;   //写入命令
  21.         RW=0;
  22.         P0=com;
  23.         delay(2);
  24.         E=1;
  25.         delay(2);
  26.         E=0;
  27. }
  28. void writedata(uchar dat)
  29. {
  30.         E=0;
  31.         RS=1;     //写入数据
  32.         RW=0;
  33.         P0=dat;
  34.         delay(2);
  35.         E=1;
  36.         delay(2);
  37.         E=0;
  38. }
  39. void init(void)
  40. {
  41.         writecmd(0x38);    //设置16*4显示,5*7点阵,8位数据接口
  42.         writecmd(0x0c);    //显示开,关光标
  43.         writecmd(0x06);    //移动光标
  44.         writecmd(0x01);    //清除LCD的显示内容
  45. }
  46. void main(){
  47.         uchar j;
  48.         init();
  49.         writecmd(0x80);
  50.         for(j=0;j<13;j++)
  51.         {
  52.                 writedata(tab1[j]);
  53.                 delay(2);
  54.         }
  55.         writecmd(0x80+0x40);
  56.         for(j=0;j<16;j++)
  57.         {
  58.                 writedata(tab2[j]);
  59.                 delay(2);
  60.         }
  61.         writecmd(0x90);
  62.         for(j=0;j<13;j++)
  63.         {
  64.                 writedata(tab3[j]);
  65.                 delay(2);
  66.         }
  67.         writecmd(0x90+0x40);
  68.         for(j=0;j<16;j++)
  69.         {
  70.                 writedata(tab4[j]);
  71.                 delay(2);
  72.         }
  73.         while(1);
  74. }

复制代码




作者: 袁泳华    时间: 2024-5-15 09:34
01100110 发表于 2018-5-4 18:35
谢谢 已经解决了

怎么解决的?
作者: 袁泳华    时间: 2024-5-15 10:42
01100110 发表于 2018-5-4 18:35
谢谢 已经解决了

请问怎么解决的?
作者: cy009    时间: 2024-5-15 16:14
袁泳华 发表于 2024-5-15 10:42
请问怎么解决的?

原工程P0口没有上拉电阻,低级错误。有人指出了,所以解决了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1