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

📄 ha0_de.c

📁 t6963控制器 液晶显示程序
💻 C
📖 第 1 页 / 共 3 页
字号:
   }
   void Test(uint command,uint p1,uint p2)
   {
      com = command;
      dat1 = p1;
      dat2 = p2;

      ST01();
      d_add = dat1;
      ST01();
      d_add = dat2;
      ST01();
      c_add = com;
   }                                                                          //
/*----------------- 判状态位S1,S0 函数(读写指令和读写数据状态)------------- */ //
ST01()                                                                         //
    {                                                                          //
      do                                                                       //
      { ACC=c_add;}                                                            //
      while(Acc_0==0,Acc_1==0);                                                //
    }                                                                          //                                                      */                     //
/*----------------- 判状态位S3函数(数据自动写状态)-------------------------*/  //
ST3()                                                                          //
   {                                                                           //
     do                                                                        //
     {                                                                         //
            ACC=c_add;                                                              //
     }                                                                         //
     while(Acc_3==0);                                                          //
   }                                                                           //
/*--------------------------西文字符写入(文本属性)函数--------------------  */ //
write_english()                                                                //
{                                                                              //
   uint i,j;                                                                   //
   i=para1;                                                                    //
   j=i*O_Y+O_X;                                                                //
   dat1=j%256;                                                                 //
   dat2=j/256;                                                                 //
   com=0x24;          // 显示地址设置                                          //
   PR1();                                                                      //
   dat2=code_1;                                                                //
   com=0xc4;          // 数据写,地址不变                                       //
   PR11();                                                                     //
   dat2=0x08;                                                                  //
   com=0x24;                                                                   //
   PR1();                                                                      //
   dat2=attr;       // 写入属性参数                                            //
   com=0xc4;                                                                   //
   PR11();                                                                     //
                                                                               //
}                                                                              //
                                                                               //
/*----------------------------------初始化函数----------------------------*/   //
INT_1()                                                                        //
    {                                                                          //
       dat1=0x00;      //设文本显示区域首地址                                  //
       dat2=0x00;                                                              //
       com=0x40;                                                               //
       PR1();                                                                  //
       dat1=para1;    //设文本显示区域宽度                                     //
       dat2=0x00;                                                              //
       com=0x41;                                                               //
       PR1();                                                                  //
      /* dat1=0x08;    //设图形显示区域首地址                                    //
       dat2=0x08;                                                              //
       com=0x42;                                                               //
       PR1(); */
      w_cmd2(0x41,0x08,0x08);                                                                  //
      /* dat1=0x20;    //设图形显示区域宽度                                     //
       dat2=0x20;                                                              //
       com=0x43;                                                               //
       PR1(); */
      w_cmd2(0x43,0x20,0x20);                                                                  //
       com=0xa0;      //光标形状设置                                           //
       PR12();                                                                 //
       com=0x80;      //显示方式设置逻辑"或"合成,可以使用00H-7FH内部符号      //
       PR12();                                                                 //
       com=0x9c;      //显示开关设置 开文本和图形显示,9d 光标闪                //
       PR12();                                                                 //
    }                                                                          //
/*-------------------------清显示函数-----------------------*/                 //
 CLEAR()                                                                        //
    {                                                                          //
    uint i;                                                            //
       // dat1=0x00;                                                             //
       // dat2=0x00;                                                             //
       // com=0x24;       // 设置显示地址                                        //
       //PR1();
       //  Test(0x24,0x00,0x00);

        w_cmd2(0x24,0x00,0x00);                                                                  //
        /*com=0xb0;       //设置自动写方式                                       //
        PR12(); */
        w_cmd0(0xb0);                                                               //
    for(i=0;i<8200;i++) // 清8K存储器                                          //
       {                                                                       //
         ST3();                                                                //
         d_add=0x00;                                                           //
       }                                                                       //
      //com=0xb2;        // 设置自动写结束方式                                  //
      w_cmd0(0xb2);                                                               //
    }                                                                          //                                                                //
/*--------------------------------汉字写入(图形方式)函数---------------*/    //
write_word_phto()                                                              //
{                                                                              //
     uint i,j,count1;                                                  //
     i=para1;                                                                  //
     j=i*O_Y+O_X+0x0800;              // 图形显示区首地址为0x0800              //
     for(count1=0;count1<16;count1++)                                          //
     {                                                                         //
          dat1=j%256;            // 显示地址设置                               //
          dat2=j/256;                                                          //
          com=0x24;                                                            //
         // PR1();
          w_cmd2(0x24,dat2,dat1);                                                               //
          dat2=CCTAB[code_1][count1];                                          //
          com=0xc0;                                                            //
         // PR11();
          w_cmd1(0xc0,dat2);                                                             //
          dat2=CCTAB[code_1][count1+16];
          com=0xc0;
          w_cmd1(0xc0,dat2);                                       //
         // PR11();                                                              //
          j=j+i;                                                               //
     }                                                                         //
}                                                                              //
                                                                               //
/*------------------------ 汉字写入一串(图形方式)-------------------------*/ //
write_phto_str(uchar x,uchar y,uchar addr,uchar many)                          //
 {                                                                             //
     uint i;                                                                   //
     O_X=x;                                                                    //
     O_Y=y;                                                                    //
     code_1=addr;                                                              //
     for(i=0;i<many;i++)                                                       //
     {                                                                         //
       write_word_phto();                                                      //
       O_X=O_X+2;                                                              //
       code_1=code_1+1;                                                        //
     }                                                                         //
 }                                                                             //                                           //
/*----------------------写入一串西文------------------------*/                 //
write_english_str(uchar x,uchar y,uchar many,uchar w)                          //
{  //    x--列  y--行 many--多少个字符 w---起始点                              //
    uint j;                                                                    //
    com=0x80;        // 显示方式设置                                           //
    PR12();                                                                    //
    com=0x9c;        // 显示状态设置                                           //
    PR12();                                                                    //
    O_X=x;                                                                     //
    O_Y=y;                                                                     //
    for(j=w;j<(w+many);j++)                                                    //
    {                                                                          //
       code_1=num[j];                                                          //
       write_english();                                                        //
       O_X++;                                                                  //
    }                                                                          //
}
//-----------------------------------所有始化程序--------------------------------------------
void start(void)
{
    EA=1; ES=1;RI=0;ET0=1;//-----开定时中断-----------
    TMOD=0x22; //方式二 T1作串口通信用    T0作为计时用
    TH0=0x18;
    TL0=0x18;
    TL1 = 0xFD;
    TH1 = 0xFD;
    TR0=0;      //初始化时不计时
    TR1=1;
    RI=0;
    PCON = 0x00;
    SCON = 0xD8;
}
//---------------------------------------液晶显示程序---------------------------------------
void play(void)
{
       write_phto_str(0x05,0x00,0x0d,10); //吉林省大学生电子竞赛
       write_phto_str(0x00,0x5f,0x00,5);  //显示执行时间

       num[3]=Number[miao];num[2]=Number[shi_miao];//读秒,十秒
       num[1]=Number[fen]; num[0]=Number[shi_fen]; //读分,十分
       write_english_str(0x0a,0x0d,2,0);  //分
       write_phto_str(0x0d,0x5f,0x05,1);   //分值
       write_english_str(0x0f,0x0d,2,1);  //秒
      /* write_phto_str(0x12,0x5f,0x06,1);   //秒值
       write_phto_str(0x00,0x3f,0x07,1); // 水
       write_phto_str(0x06,0x3f,0x08,1); // 重
       write_phto_str(0x08,0x3f,0x04,1); // 水重__:
       write_phto_str(0x00,0x4f,0x09,4); //设定值
       write_phto_str(0x08,0x4f,0x04,1); //设定值__:
       write_english_str(0x0a,0x09,4,4);  //水重--值
       write_phto_str(0x0f,0x3f,0x17,1); //克--设定值  */
    if(flag)
       {
       write_english_str(0x0a,0x0b,4,8);  //设定值--值
       write_phto_str(0x0f,0x4f,0x17,1); //克--设定值
       }
     else
     {
       write_phto_str(0x0a,0x4f,0x18,3); //请输入
       write_phto_str(0x10,0x4f,0x09,4); //设定值
       write_phto_str(0x18,0x4f,0x1b,1); //  !
     }
  delay(1);
}

//----------------------------------计算重量程序--------------------------------------
void make_data( uint table, uint bian_liang )//table作为存放数据数据的起始位置
{
   int buf=0;

⌨️ 快捷键说明

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