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

📄 lcd16_96.c

📁 使用cs5512做的电子秤,精度0.002kg
💻 C
字号:
#include <config.h>

flash unsigned char tab_char[68][8]=
{
{0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00},/*"0", 0*/
{0x00,0x10,0x1c,0x10,0x10,0x10,0x3c,0x00},/*"1", 1*/
{0x00,0x3C,0x42,0x60,0x1C,0x02,0x7E,0x00},/*"2", 2*/
{0x00,0x3C,0x42,0x38,0x40,0x42,0x3C,0x00},/*"3", 3*/
{0x00,0x30,0x2C,0x22,0x7e,0x20,0x20,0x00},/*"4", 4*/
{0x00,0x7C,0x04,0x3c,0x40,0x40,0x3C,0x00},/*"5", 5*/
{0x00,0x3C,0x02,0x3E,0x42,0x42,0x3C,0x00},/*"6", 6*/
{0x00,0x7E,0x20,0x10,0x08,0x08,0x08,0x00},/*"7", 7*/
{0x00,0x3C,0x42,0x3C,0x42,0x42,0x3C,0x00},/*"8", 8*/
{0x00,0x3c,0x42,0x42,0x7C,0x40,0x3e,0x00},/*"9", 9*/ 
  
{0x00,0x00,0x3E,0x40,0x7C,0x42,0xFC,0x00},/*"a", 0*/
{0x00,0x02,0x02,0x3E,0x42,0x42,0x3E,0x00},/*"b", 1*/
{0x00,0x00,0x7C,0x02,0x02,0x02,0x7C,0x00},/*"c", 2*/
{0x00,0x40,0x40,0x7C,0x42,0x42,0x7C,0x00},/*"d", 3*/
{0x00,0x3C,0x42,0x42,0x3E,0x02,0x7C,0x00},/*"e", 4*/
{0x00,0x38,0x08,0x3C,0x08,0x08,0x08,0x00},/*"f", 5*/
{0x00,0x00,0x00,0x5C,0x62,0x42,0x7C,0x3E},/*"g", 6*/
{0x00,0x02,0x02,0x7E,0x42,0x42,0x42,0x00},/*"h", 7*/
{0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x00},/*"i", 8*/
{0x00,0x00,0x00,0x5C,0x62,0x42,0x7C,0x3E},/*"g", 9*/
{0x00,0x02,0x22,0x12,0x0E,0x12,0x22,0x00},/*"k",10*/
{0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00},/*"l",11*/
{0x00,0x00,0x00,0x7E,0x52,0x52,0x52,0x00},/*"m",12*/
{0x00,0x00,0x00,0x7E,0x42,0x42,0x42,0x00},/*"n",13*/
{0x00,0x00,0x00,0x3C,0x42,0x42,0x3C,0x00},/*"o",14*/
{0x00,0x00,0x00,0x3E,0x42,0x42,0x3E,0x02},/*"p",15*/
{0x00,0x00,0x00,0x7C,0x42,0x42,0x7C,0x40},/*"q",16*/
{0x00,0x00,0x04,0x3C,0x0C,0x04,0x04,0x00},/*"r",17*/
{0x00,0x00,0x3C,0x02,0x3E,0x40,0x3E,0x00},/*"s",18*/
{0x00,0x00,0x08,0x3C,0x08,0x08,0x38,0x00},/*"t",19*/
{0x00,0x00,0x00,0x42,0x42,0x42,0x7E,0x00},/*"u",20*/
{0x00,0x00,0x00,0x42,0x24,0x14,0x18,0x00},/*"v",21*/
{0x00,0x00,0x00,0x99,0x59,0x66,0x66,0x00},/*"w",22*/
{0x00,0x00,0x00,0x7E,0x3E,0x40,0x3E,0x00},/*"s",23*/
{0x00,0x00,0x00,0x42,0x24,0x14,0x08,0x0E},/*"y",24*/
{0x00,0x00,0x00,0x7E,0x10,0x0C,0x7E,0x00},/*"z",25*/ 

{0x00,0x18,0x18,0x24,0x7E,0x42,0x81,0x00},/*"A",0*/
{0x00,0x3E,0x42,0x3E,0x42,0x82,0x7E,0x00},/*"B",1*/
{0x00,0x3C,0x46,0x02,0x02,0x86,0x7C,0x00},/*"C",2*/
{0x00,0x3E,0x62,0x42,0x42,0x62,0x3E,0x00},/*"D",3*/
{0x00,0x7E,0x02,0x7E,0x02,0x02,0x7E,0x00},/*"E",4*/
{0x00,0x7E,0x02,0x7E,0x02,0x02,0x02,0x00},/*"F",5*/
{0x00,0x3C,0x46,0x02,0x72,0x46,0x7C,0x00},/*"G",6*/
{0x00,0x42,0x42,0x7E,0x42,0x42,0x42,0x00},/*"H",7*/
{0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00},/*"I",8*/
{0x00,0x3C,0x46,0x02,0x72,0x46,0x7C,0x00},/*"G",9*/
{0x00,0x62,0x12,0x0A,0x16,0x22,0x42,0x00},/*"K",10*/
{0x00,0x02,0x02,0x02,0x02,0x02,0x7E,0x00},/*"L",11*/
{0x00,0x66,0x66,0x66,0x5A,0x5A,0x5A,0x00},/*"M",12*/
{0x00,0x46,0x46,0x4A,0x52,0x62,0x62,0x00},/*"N",13*/
{0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00},/*"O",14*/
{0x00,0x3E,0x42,0x42,0x3E,0x02,0x02,0x00},/*"P",15*/
{0x00,0x3C,0x66,0x42,0x42,0x56,0x3C,0x40},/*"Q",16*/
{0x00,0x3E,0x42,0x7E,0x42,0x42,0x42,0x00},/*"R",17*/
{0x00,0x7C,0x02,0x3C,0x40,0x82,0x7C,0x00},/*"S",18*/
{0x00,0x7F,0x08,0x08,0x08,0x08,0x08,0x00},/*"T",19*/
{0x00,0x42,0x42,0x42,0x42,0x42,0x3C,0x00},/*"U",20*/
{0x00,0x81,0x42,0x22,0x24,0x1C,0x08,0x00},/*"V",21*/
{0x00,0x81,0x5A,0x5A,0x5A,0x24,0x24,0x00},/*"W",22*/
{0x00,0x22,0x14,0x08,0x1C,0x26,0x43,0x00},/*"X",23*/
{0x00,0x43,0x26,0x1C,0x08,0x08,0x08,0x00},/*"Y",24*/
{0x00,0x7F,0x20,0x18,0x04,0x02,0x7F,0x00},/*"Z",25*/ 
{0x00,0x09,0x05,0x73,0x53,0x75,0x49,0x71},      //kg
{0x00,0x00,0x82,0x92,0x92,0xAA,0x44,0x44},      //w
{0x00,0x00,0x00,0x4C,0x12,0x4E,0x42,0x5C},      //ei
{0x00,0x00,0x20,0x2E,0x2A,0xEE,0xA8,0xAE},      //gh
{0x00,0x00,0x00,0x04,0x6E,0x04,0x64,0x0C},      //tt
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}       //nop
};                  


void written_add_data(unsigned int temp_add,unsigned char temp_data)
{ 
 unsigned char temp;

    RAM_EN=0;
    RAM_ADRESS=0; 
  
    RAM_WRITTEN=0; 
    temp=(unsigned char)(temp_add>>8);
    PORTC=temp;    
   // delay_us(1);          //Tw>=700ns
   
    RAM_WRITTEN=1; 
      
   // delay_us(1);          //Tdd>=100ns   
    
    RAM_WRITTEN=0; 
    temp=(unsigned char)(temp_add);
    PORTC=temp;    
   // delay_us(1);          //Tw>=700ns
    RAM_WRITTEN=1; 
    
   // delay_us(1);          //Tdd>=100ns  
              
    RAM_ADRESS=1;           //2次确保有效
    RAM_ADRESS=1;        
   
    RAM_WRITTEN=0; 
    PORTC=temp_data;    
   // delay_us(1);          //Tw>=700ns
    RAM_WRITTEN=1;                                 
   // RAM_EN=1;
}

 void written(unsigned char temp_1)
{  

 //  RAM_EN=0;     
 //  RAM_ADRESS=1;         //数据 
   RAM_WRITTEN=0; 
   PORTC=temp_1;  
 //  PORTC=(temp_1&0xf0);  
 //  delay_us(1);          //Tdd>=100ns      
   RAM_WRITTEN=1;
 //  RAM_EN=1;
}   
  
/*
 void inintially(void)   //初始化LCD
{ 
  written_add_data(0x500,0x7a);
  delay_ms(10);
  written_add_data(0x501,0xb7);
 delay_ms(10);
  written_add_data(0x502,0x06);
}  
*/

void Lcd_inint(void)   //初始化LCD
{ 
  POWER_EN=0;        //OPEN POWER FOR IC
  light=1;           //LCD's light open
  
  written_add_data(0x500,0xe8);
  //delay_ms(10);
  written(0xa6);
  //delay_ms(10);
  written(0x04);
  
  display_clear();   //清屏
}  

void display_clear(void)    //清除所有显示
{       
  unsigned char i;
       for(i=0;i<16;i++)
         {
          written_add_data((unsigned int)i*16,0x0);
          written(0x0);
         }  
           
       for(i=0;i<16;i++)
         {
          written_add_data((unsigned int)i*16+2,0x0);
          written(0x0);
         } 
         
       for(i=0;i<16;i++)
         {
          written_add_data((unsigned int)i*16+4,0x0);
          written(0x0);
         } 
         
       for(i=0;i<16;i++)
         {
          written_add_data((unsigned int)i*16+256,0x0);
          written(0x0);
         }  
         
       for(i=0;i<16;i++)
         {
          written_add_data((unsigned int)i*16+258,0x0);
          written(0x0);
         } 
         
       for(i=0;i<16;i++)
         {
          written_add_data((unsigned int)i*16+260,0x0);
          written( 0x0);
         }         
}    
   
void Written_char(unsigned char line,unsigned char row,unsigned char z)
{   
  unsigned char i;
if(row<6)
  { 
    switch(line)
     {
      case 0: 
        for(i=0;i<8;i++) written_add_data((unsigned int)i*16+row,tab_char[z][i]);
        break;  
      case 1: 
        for(i=8;i<16;i++) written_add_data((unsigned int)i*16+row,tab_char[z][i-8]);
        break;
      }
   }
else 
  { 
    switch(line)
     {
      case 0: 
        for(i=0;i<8;i++) written_add_data((unsigned int)i*16+row+250,tab_char[z][i]);
        break;        
      case 1: 
        for(i=8;i<16;i++) written_add_data((unsigned int)i*16+row+250,tab_char[z][i-8]);
        break;
      }
   }
} 

//********************************************************************
//改进的显示方式,占用8个字节的动态内存
//优点:速度快
//********************************************************************
/*
void Display_AD(unsigned int Dis_data)
{  
  Written_char(0,3,( unsigned char)Dis_data/1000); 
  Written_char(0,4,( unsigned char)Dis_data%1000/100);
  Written_char(0,5,( unsigned char)Dis_data%1000%100/10);
  Written_char(0,6,( unsigned char)Dis_data%1000%100%10);
}

void Display_AD_1(unsigned int Dis_data)
{ 
  
  Written_char(0,8,( unsigned char)Dis_data/100);
  Written_char(0,9,( unsigned char)Dis_data%100/10);
  Written_char(0,10,( unsigned char)Dis_data%100%10);
}
*/
//********************************************************************
//改进的显示方式,占用8个字节的动态内存
//优点:速度快
//********************************************************************
void Display_AD(unsigned int Dis_data)
{   
  unsigned int temp1=0,temp2=0,temp3=0,temp4=0;

  temp1=Dis_data/10000;// 最高位
  temp2=Dis_data%10000;
  temp3=temp2%1000;
  temp4=temp3%100;
  
  Written_char(0,3,temp1);
  Written_char(0,4,(temp2/1000));
  Written_char(0,5,(temp3/100));
  Written_char(0,6,(temp4/10));
  Written_char(0,7,temp4%10);//个位
}


/*
void Display_AD(unsigned long int Dis_data)     //Dis_data<524288
{   
  unsigned char temp0;     //最高位,十万位
  unsigned long int temp1;
  unsigned char temp2;     //万位
  unsigned int temp3;     //万%万
  unsigned char temp4;     //1000位
  unsigned int  temp5;
  unsigned char temp6;
  unsigned char temp7;
  
  temp0=( unsigned char)(Dis_data/100000); // 最高位
  temp1=Dis_data%100000;
  temp2=( unsigned char)temp1/10000;     //万位
  temp3=( unsigned int)temp2%10000;
  temp4=( unsigned char)temp3/1000;      //1000位
  temp5=temp4%1000;      //百
  temp6=( unsigned char)temp5/100;       //百位
  temp7=( unsigned char)temp6%100;

  Written_char(0,4,temp0);
  Written_char(0,5,temp2);
  Written_char(0,6,temp4);
  Written_char(0,7,temp6);
  Written_char(0,8,(temp7/10));//10位
  Written_char(0,9,(temp7%10));//个位
} 
   */

⌨️ 快捷键说明

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