1602显示

2019-03-24 19:37发布

1602在main函数最后加while(1); lcd上就不显示了,去掉就显示,但是显示内容是闪的。本来想加个while不闪的 ,现在不显示了,怎么回事呢? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
skyman_liu
2019-03-25 07:16
#include<reg52.h>
          #include<intrins.h>
          char code table[]={"hello"} ;
          sbit RS=P2^5;
          sbit RW=P2^6;
          sbit  E=P2^7;
          #define DP P0
          #define BF 0x80
          void checkby();
          void writecmd(char cmd,char b);
          void writedata(char *a);
          void lcdreset();
          void delay();
          void main()
          {
               char *ap        ;
                   ap=table;
               lcdreset();
                   delay();
                   writecmd(0x84,0);
                   while(*ap!='')
                   {
                        writedata(ap);
                                ap++;
                                delay();
                   }
           
                    while(1);
          }       
          
          void lcdreset()
          {
                writecmd(0x01,1);
                        writecmd(0x0c,1);
                        writecmd(0x06,1);
                        writecmd(0x38,1);
          }       
          
      void writecmd(char cmd,char b)
          {
               if(b==1)checkby();
                   RS=0;
                   RW=0;
                   _nop_();
                   DP=cmd;
                    _nop_();
                        E=1;
                         _nop_();
                         E=0;
          }

          void checkby()
          {
               DP=0xff;
               RS=0;
                   RW=1;
                   E=1;
                   _nop_();
                   if(DP&BF)delay();
                   E=0;
          }       
          
          
          void delay()
          {
               char i,j;
                   i=100;
                   for(;i>0;i--)
                   for(;j<100;j++);
          }  

          void writedata(char *a)
          {
                 RS=1;
                     RW=0;
                         _nop_();
                         DP=*a;
                         _nop_();
                         E=1;
                         _nop_();
                         _nop_();
                         E=0;
          }

一周热门 更多>