lcm045a的驱动程序,示波器观察有了波形显示,但是显示屏没反应,可能是什么原因?

2019-07-21 06:05发布

m/******************************************************
-¹¦ÄÜ£ºÓÒÑ­»·Î»ÒÆ
-²ÎÊý£ºdat:ÐèλÒƵÄÁ¿ n:λÒƵÄλÊý
-·µ»Ø£ºÎ»ÒƺóµÄÁ¿
ÕûÊýÑ­»·ÓÒÒÆ
******************************************************/
unsigned int iror(unsigned int dat,unsigned int n)
{
  unsigned int i;
  n%=16;
  if(n==0)
    {
    return dat;
    }
  for(i=1;i<=n;i++)
  {
  if(dat&0x0001)
    {
  dat>>=1;
  dat|=0x8000;
    }
  else
    {
  dat>>=1;
    }
  }
return dat;
}
/******************************************/

                        
                        
void lay(uchar m)
{  
     uchar x,y;
     for(x=m;x>0;x--)
        for(y=20;y>0;y--);
}
/******************************************************
-&sup1;&brvbar;&Auml;&Uuml;&pound;&ordm;&Oacute;&Ograve;&Ntilde;&shy;&raquo;·&Icirc;&raquo;&Ograve;&AElig;
-&sup2;&Icirc;&Ecirc;&yacute;&pound;&ordm;dat:&ETH;è&Icirc;&raquo;&Ograve;&AElig;&micro;&Auml;&Aacute;&iquest; n:&Icirc;&raquo;&Ograve;&AElig;&micro;&Auml;&Icirc;&raquo;&Ecirc;&yacute;
-·&micro;&raquo;&Oslash;&pound;&ordm;&Icirc;&raquo;&Ograve;&AElig;&ordm;ó&micro;&Auml;&Aacute;&iquest;
×&Ouml;·&ucirc;&Ntilde;&shy;&raquo;·&Oacute;&Ograve;&Ograve;&AElig;
******************************************************/
unsigned char cror(unsigned char dat,unsigned char n)
{
   unsigned char i;
   n%=8;
   if(n==0)
   {
   return dat;
   }
   for(i=1;i<=n;i++)
   {
      if(dat&0x01)
        {
        dat>>=1;
        dat|=0x80;
        }
       else
        {
         dat>>=1;
        }
        }
        return dat;

}


/**********LCM045&Ccedil;&yacute;&para;&macr;&sup2;&iquest;·&Ouml;*********************/
void wrt_com(uint z)     //&Ograve;&ordm;&frac34;§&ETH;&acute;&Atilde;ü&Aacute;&icirc;
{
    int i,t;
    CS_0;
   // lay(5);
          delay_ms(5);
    for(i=11;i>=0;i--)
    {
        WR_0;
        if(i==11)
            DA_1;
        else if(i==10||i==9)
            DA_0;
        else
        {
            t=iror(z,i);
           // DATA=1&t;
                   if((1&t)==1)
                   {
                   DA_1;
                   }
                   else
                   {
                   DA_0;
                   }
        }
        WR_1;
      //  lay(5);
                                delay_ms(5);
        if(i==-1)
            break;
    }
    CS_1;
    //lay(10);
                delay_ms(10);
}

void wrt_s(uchar a,uchar b,uchar c,uchar d)        //&Ograve;&ordm;&frac34;§&Aacute;&not;&ETH;&oslash;&ETH;&acute;&Ecirc;&yacute;&frac34;&Yacute;
{
    uchar q=0,m,num[4];
          int s=7,t,i;
    m=0;
    num[0]=display[a];
    num[1]=display;
    num[2]=display[c];
    num[3]=display[d];
    CS_0;
   // lay(1);
         delay_ms(1);
    for(i=9;i>=0;i--)
    {
        WR_0;
       // lay(1);
                          delay_ms(1);
        if(i==9)
            DA_1;
        else if(i>0&&i<9)
          {  t=cror(0x56,(i-1));
            // DATA=1&t;
                        if((1&t)==1)
                        {
                        DA_1;
                        }
                        else
                        {
                        DA_0;
                        }
          }
        if(i==0)
        {   m++;
            if(m>16&&m<21)
              {  DA_0;
                 i++;
              }
            else
              {
                 t=iror(num[q],s);
                // DATA=1&t;
                                if((1&t)==1)
                                {
                                DA_1;
                                }
                                else
                                {
                                DA_0;
                                }
                 s--;
                 if(s==-1&&q==3)
                 break;
                 i++;
                if(s==-1)
                  {
                    q++;
                    s=7;
                  }        
               }               
        }
       // lay(1);
                                delay_ms(1);
        WR_1;
        //lay(1);
                                delay_ms(1);
    }

    CS_1;
   // lay(1);
                delay_ms(1);
}

void wrt_data(uint z)                     //&Ograve;&ordm;&frac34;§&micro;&yen;&para;&Agrave;&ETH;&acute;&Ecirc;&yacute;&frac34;&Yacute;
{
    uint t;
          int i;
    CS_0;
   // lay(5);
        delay_ms(5);
    for(i=12;i>=0;i--)
    {
        WR_0;
        if(i==12)
            DA_1;
        else if(i==11)
            DA_0;
        else if(i==10)
            DA_1;
        else
        {
            t=iror(z,i);
           // DATA=1&t;
                   if((1&t)==1)
                   {
                   DA_1;
                   }
                   else
                   {
                   DA_0;
                   }
        }
        WR_1;
       // lay(5);
                                delay_ms(5);
        if(i==0)
            break;
    }
    CS_1;
   // lay(10);
                delay_ms(10);
}
void set_lcm045(void)           //&sup3;&otilde;&Ecirc;&frac14;&raquo;&macr;&pound;&raquo;
{
    uchar t,j=0;
    int i;        
    delay_ms(30);
    CS_1;
    WR_1;
    DA_1;
          wrt_com(0x29);
    wrt_com(0x18);
    wrt_com(0x01);   
    wrt_com(0x03);
//    wrt_com(0x852);
//    wrt_com(0x830);
//    wrt_com(0x802);
//    wrt_com(0x806);
    delay_ms(1);
   
    CS_0;
//          lay(1);
          delay_ms(1);
    for(i=9;i>=0;i--)
      {  
          WR_0;
//          lay(1);
                                delay_ms(1);
         if(i==9)
           DA_1;
         else if(i>0&&i<9)
           {  
                   t=cror(0x55,(i-1));
              //DATA=1&t;
                          if((1&t)==1)
                          {
                          DA_1;
                          }
                          else
                          {
                          DA_0;
                          }
           }
         else
           {  DA_0;i++;j++;
              if(j==45)
              break;
           }
//         lay(1);
                                         delay_ms(1);
                                         WR_1;
//                                         lay(1);
                                         delay_ms(1);
          }
        CS_1;
//                        lay(1);
                        delay_ms(1);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。