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

📄 11111111111.c

📁 液晶MGLS2401128TA的控制程序
💻 C
字号:
#include  <reg51.h>
#include  <stdio.h>
#include  <math.h>
#include  <absacc.h>
#define  LCMDW  XBYTE[0xf3ff]   /*定义数据口*/
#define  LCMCW  XBYTE[0xfbff]    
#define uint  unsigned   int
#define uchar  unsigned  char
sbit LED=P3^4;
uchar code  hzcode[8][16]={0x00,0x40,0x37,0x10,0x83,0x60,0x2F,0x08,  

0x13,0x22,0xE3,0x22,0x23,0x22,0x22,0x22,
0x40,0x48,0xFC,0x40,0xF8,0x40,0xFE,0x08,
0xFC,0x08,0xF8,0x08,0xF8,0x08,0x28,0x10,
0x04,0x04,0x08,0x08,0x18,0x29,0x4A,0x08,    /* 华       代码为01*/
0x09,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,
0x40,0x48,0x58,0x60,0xC0,0x40,0x44,0x44,
0x3C,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
0x01,0x01,0x01,0x01,0x01,0xFF,0x01,0x02,    /* 大            代码为02*/
0x02,0x02,0x04,0x04,0x08,0x10,0x60,0x00,
0x00,0x00,0x00,0x00,0x04,0xFE,0x00,0x80,
0x80,0x40,0x40,0x20,0x10,0x0E,0x04,0x00,
0x22,0x11,0x11,0x00,0x7F,0x40,0x80,0x1F,    /* 学                 代码为03*/
0x00,0x01,0xFF,0x01,0x01,0x01,0x05,0x02,
0x08,0x08,0x10,0x20,0xFE,0x02,0x04,0xE0,
0x40,0x84,0xFE,0x00,0x00,0x00,0x00,0x00};
void  fnChkST01(void)          
{
uchar i;
for(i=16;i>0;i--)
  {
   if((LCMCW & 0x03)==0x03)
       break;
  }
}

void  fnChkST3(void)            
{
uchar i;
for(i=16;i>0;i--)
  {
   if((LCMCW & 0x08)==0x08)
       break;
  }
}

void fnCmd0(uchar uCmd)      
{
  fnChkST01();
  LCMCW=uCmd;
}
void  fnCmd1(uchar uCmd, uchar uPar1) 
{
  fnChkST01();
  LCMDW=uPar1;
  fnCmd0(uCmd);
}

void  fnCmd2(uchar uCmd, uchar uPar1,uchar uPar2)  
{
  fnChkST01();
  LCMDW=uPar1;
  fnCmd1(uCmd,uPar2);
}
void cls_graph(void)   
{
  uchar i,j;
  fnCmd2(0x24,0x00,0x20);   
  fnCmd0(0xB0);               
  for(i=0;i<128;i++)
   {
     for(j=0;j<30;j++)
     {fnChkST3();
      LCMDW=0x00;
     }
   }
  fnCmd0(0xB2);               
}

void cls_text(void)     
{
  uchar i,j;
  fnCmd2(0x24,0x00,0x20);   /*set address  pointer*/
  fnCmd0(0xB0);               /*data auto write */
  for(i=0;i<16;i++)
   {
     for(j=0;j<30;j++)
     {
      fnChkST3();
      LCMDW=0x0F;
     }
   }
  fnCmd0(0xB2);                /* end data auto write */
}

void fnLCMInit(void)
{
  fnCmd2(0x40,0x00,0x00);
  fnCmd2(0x41,20,0x00);
  fnCmd2(0x42,0x00,0x20);
  fnCmd2(0x43,30,0x00);
  fnCmd0(0xA0|0x01);
  fnCmd0(0x80);
  fnCmd0(0x90|0x0F);
}

void fnsetpos(uchar line,uchar lie)       

{ uint ipos;
  ipos=line*20+lie;
  fnCmd2(0x24,ipos & 0xFF,ipos/256);
}

void fnshowHZ(uchar line,uchar lie ,uchar hzdaima)   


  {
    uchar i;
    uint   startaddr;
    startaddr=line*0x20+lie;
    for(i=0;i<16;i++)
    {
      fnCmd2(0x24,startaddr & 0xff,startaddr/256);   
      fnCmd1(0xc0,hzcode[hzdaima*2][i]);                       
      fnCmd1(0xc4,hzcode[hzdaima*2+1][i]);                    
      startaddr=startaddr+0x20;                              
    }
  }
main()
{ 
   uchar code tab[11]=
{0x37,0x45,0x4c,0x43,0x4f,0x4d,0x45,0x00,0x39,0x4f,0x55};
LED=0;  
fnLCMInit();
  cls_text();
  cls_graph();
  
  for(; ;)
   {  uint i;
      
      uint      Line;
      uint      Lie;
      uchar     HZDaim;
      fnsetpos(0x00,0x00);   
      fnCmd0(0xB0);
      for(i=0;i<11;i++)
       { 
         fnChkST3();
         
         LCMDW=tab[i];
       }
      fnCmd0(0xB2);
      
      
        Line=0x0a;            
        Lie=0x17;
        HZDaim=0x00;

         fnshowHZ(Line,Lie,  HZDaim);  
		 LED=1;
   }
}

⌨️ 快捷键说明

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