单片机技术网|技术阅读
登录|注册

您现在的位置是:单片机技术网 > 技术阅读 > 基于51单片机的电子秤设计-LCD12864

基于51单片机的电子秤设计-LCD12864

.

       


   51STC89C51/52AT89C51/52使+LCD12864+HX711AD+LED+++10kg

.

110kg0.001kg;

2

3

4LCD12864


.

1AD,

2PCB

.

1

2

void main()                    {      INT_8 j = 0, k = 0, count = 0;    UINT_8 Key = 0, Num = 0;    //KeyNum  UINT_32 tmp = 0;        Init();  while (1)  {    WDT_FeedDog();         //    if (KeycanFlag == 0)          //DDRAM    {          if (TimeCount >= 50)          //250msAD      {        //  Offset = AD_Hx711();                 //8527820-8475960 =51860        //  Display_Int2str(Offset, WeightTable, 0x93);         WeightTemp = AD_Weight(AD_Hx711());           //AD        if (WeightTemp > 4000)                  //4000g        {            for (k = 0; k < 4; k++)          {            LcdDdram_Display(1,3,table5);      //                     }          Beep = 0;        //          Led  = 0;        //Led        }          else        {                              Beep = 1;                    //          Led  = 1;            tmp = (UINT_32)(WeightTemp);  //  tmp = (UINT_32)(WeightTemp + 0.5);       //1000.50 1001 if(RangeFlag == 0) //g
{
            Init_Weighttab(WeightTable,table6);  //            k = 0;                 //12341234              Weight = tmp;             //            while (tmp != 0)                                {              WeightTable[k++] = 0x30 + tmp % 10;       //                tmp /= 10;                }              if (k == 0)          //0            {                WeightTable[k++] = '0';                   }              Write_Cmd(0x93);                               count = k;            while (k > 0)                         {                Write_Data(WeightTable[k-1]);    //                k--;                              }               for (k = count; k < 5; k++ )      //            {               Write_Data(WeightTable[k]);            }          }          else          {            Init_Weighttab(WeightTable,table8);       //            k = 0;            Weight = tmp / 1000.0;            ///g 1000 =  /kg              while (tmp != 0)                           {              WeightTable[k++] = 0x30 + tmp % 10;                       tmp /= 10;                  if (k == 3)                  //i=33                  {                              WeightTable[k] = '.';                       k += 1;                }            }            if (k == 4)        //30 0.123                      {              WeightTable[k] = '0';                  k++;         //k1            }            if (k < 3)               //10.01            {                  WeightTable[4] = 0x30;        //0              WeightTable[3] = '.';        //.              for (j = k; j < 3; j++)              {                WeightTable[j] = 0x30;     //00   0.00              }                   //110   0.0              k = 5;                    //0.0015            }              Write_Cmd(0x93);         //DDRAM                         while (k > 0)                           {                Write_Data(WeightTable[k-1]);    //              k--;                              }           }        }                 TimeCount = 0;        Write_Cmd(0x8b);               //      }             }    }     }