⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.c

📁 凌阳驱动485接收程序与send0配对
💻 C
字号:
#include "SPCE061V004.H"
#define uint  unsigned int
#define uchar unsigned char
#define x1    0x80
#define x2    0x88
#define y     0x80
#define comm  0
#define dat   1

#define  cslcd_H      *P_IOA_Data=*P_IOA_Buffer|0x0004;       //cs=1,A2口
#define  sclk_L       *P_IOA_Data=*P_IOA_Buffer&0xfff7;       //sclk=0,A3口
#define  std_H       *P_IOA_Data=*P_IOA_Buffer|0x0002;        //std=1,A1口
#define  std_L       *P_IOA_Data=*P_IOA_Buffer&0xfffd;        //std=0 
#define  sclk_H    *P_IOA_Data=*P_IOA_Buffer|0x0008;           //sclk=1

void wr_lcd (uchar rw,uchar rs,uchar content);
void delay2 (uint us);
uchar tab1[]={"请输入密码:    " };
            
void wr_lcd (uchar rw,uchar rs,uchar content)                    //写入命令字函数
{
   uchar a,i,j,b;	
   delay2 (10);
   a=content;
   cslcd_H;      //cs=1,A2口
   sclk_L;       //sclk=0,A0口
   std_H;       //std=1,A1口
  for(i=0;i<5;i++)
  {
    sclk_H ;     //sclk=1,a0口
    sclk_L ;     //sclk=0;
  }
  if(rw)
   {
   std_H;       // std=1;   //data
   }  
  else
   {
   std_L;       // std=0;   //command
   }    
   sclk_H;        //sclk=1
   sclk_L;       // sclk=0;
  if(rs)
   {
   std_H;       // std=1;   //data
   }  
  else
   {
   std_L;       // std=0;   //command
   }
  sclk_H;     //sclk=1;
  sclk_L;     // sclk=0;
  std_L;     //std=0;
  sclk_H;     //sclk=1;
  sclk_L;      //sclk=0;
  for(j=0;j<2;j++)
  {
    for(i=0;i<4;i++)
    {
      a=a<<1;
      b=(a&0x0100);
      if(b==0)
      {
       std_L;     //std=0;
      }
      else
      {
       std_H;     // std=1; 
      }                   
      sclk_H;       //sclk=1;
      sclk_L;       // sclk=0;
    }                      
     std_L;         //std=0; 
    for(i=0;i<4;i++)
    {
     sclk_H;  //sclk=1;
      sclk_L;  // sclk=0;
    }
  }
}


void delay2 (uint us)   //delay time
{
  while(us--);
 *P_Watchdog_Clear=1;
}
void init_lcd (void)
{
  *P_IOA_Dir    = 0x00ff;         //设置A口低8位为同向低输出
  *P_IOA_Attrib = 0x00ff;
  cslcd_H;
  clrram ();  
  wr_lcd (0,0,0x30);  /*30---基本指令动作*/
  wr_lcd (0,0,0x01);  /*清屏,地址指针指向00H*/
  delay2 (100);
  wr_lcd (0,0,0x06);  /*光标的移动方向*/
  wr_lcd (0,0,0x0c);  /*开显示,关游标*/
}
void chn_disp (uchar  *chn,uint addr,uint n) //显示汉字
{
  uchar i,a,b,c,d;
 //clrram ();
  wr_lcd (0,0,0x30);
 /* switch(addr)
 {
     case 0x80:a=0x90,b=0x88,c=0x98;break;
     case 0x90:a=0x88,b=0x98,c=0x80;break;
     case 0x88:a=0x98,b=0x80,c=0x90;break;
     case 0x98:a=0x80,b=0x90,c=0x88;break;
     default:break;
  }*/
  wr_lcd (0,0,addr);
  for (i=0;i<16&&i<n;i++)
  wr_lcd (0,1,chn[i]);
 
 /* wr_lcd (0,0,a);
  for(i=16;i<32&&i<n;i++)
  wr_lcd (0,1,chn[i]);
  wr_lcd (0,0,b);
  for(i=32;i<48&&i<n;i++)
  wr_lcd (0,1,chn[i]);
  wr_lcd (0,0,c);
  for(i=48;i<n;i++)	
  wr_lcd (0,1,chn[i]);*/
  }

void clrram (void)             //清屏
{
  wr_lcd (0,0,0x30);
  wr_lcd (0,0,0x01);
  delay2 (180);
}
void img_disp (uchar  *img)//显示图形
{
  uchar i,j;
   for(j=0;j<32;j++)
  {
    for(i=0;i<8;i++)
    {
      wr_lcd (0,0,0x36);
      wr_lcd (0,0,y+j);
      wr_lcd (0,0,x1+i);
      wr_lcd (0,0,0x30);
      wr_lcd (0,1,img[j*16+i*2]);
      wr_lcd (0,1,img[j*16+i*2+1]);
    }
  }
  for(j=32;j<64;j++)
  {
    for(i=0;i<8;i++)
    {
      wr_lcd (0,0,0x36);
      wr_lcd (0,0,y+j-32);
      wr_lcd (0,0,x2+i);
      wr_lcd (0,0,0x30);
      wr_lcd (0,1,img[j*16+i*2]);
      wr_lcd (0,1,img[j*16+i*2+1]);
    }
  }
  wr_lcd (0,0,0x36);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -