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

液晶显示不全,求助

时间:10-02 整理:3721RD 点击:
#include <reg51.h>
#include <intrins.h>
sbit RS = P2^6;            
sbit RW = P2^5;
sbit E = P2^7;
sbit BF=P0^7;
char tab[]={"zhong hong rui"};
char tab1[]={"ni qu si ab"};
void delay(int xms)
{
  int i,j;
  for(i=xms;i>0;i--)
   for(j=110;j>0;j--);
}
void check_BF()
{
  E=0;
  do
  {
    BF=0;
        RS=0;
        RW=1;
        E=1;
  }
  while(BF==1);
}
void xie_zhiling(char zhiling)
{
  check_BF();
  RS=0;
  RW=0;
  E=0;
  _nop_();
  _nop_();
  P0=zhiling;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  E=1;
  _nop_();
  _nop_();
  E=0;

}
void write(char shuju )
{
    check_BF();
  RS=1;
  RW=0;
  E=0;
  _nop_();
  _nop_();
  P0=shuju;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  E=1;
  _nop_();
  _nop_();
  _nop_();
  E=0;
  

}
void lcdchushihua()
{
   
    xie_zhiling(0x38);                       
        delay(5);
        xie_zhiling(0x38);
        delay(5);
        xie_zhiling(0x38);
        delay(5);
        xie_zhiling(0x0c);                       
        delay(5);
        xie_zhiling(0x06);                       
        delay(5);
        xie_zhiling(0x01);                       
        delay(5);
}
main()
{
  char i;
  lcdchushihua();
     xie_zhiling(0x80);
         while(tab[i]!='\0')
          {
            write(tab[i]);
                i++;
                delay(500);
          }
          i=0;
         xie_zhiling(0x40+0x80);
         while(tab1[i]!='\0')
          {
            write(tab1[i]);
                i++;
                delay(500);
          }
          i=0;
      
  
}
为什么我的程序第二行显示不出来?还有第一行最后一个字母“i”没有显示出来,请教啊!

第一行最后一个字母没有显示  是因为  一行一共只显示16字符 包括空格

显示第二行之前加个延时看看

我找到原因了,谢谢

谢谢,我找到原因了

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

网站地图

Top