wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 38709|回復: 34
打印 上一主題 下一主題
收起左側

HX711電子稱完整單片機程序和原理圖

  [復制鏈接]
跳轉到指定樓層
樓主
HX711電子稱原理圖:


HX711電子秤使用說明:
商品代碼:
0001        香蕉
0002        蘋果
0003        橘子
0004        葡萄
0005        柚子
0006        橙子
0007        梨子
0008        西瓜
0009        木瓜
0010        桃子

鍵盤鍵位定義:

7        8        9        10(清零)
4        5        6        11(刪除)        總金額(P3.7)
1        2        3        12(去皮)
14(累計)0        15(.)        13(確定)

大體流程:
1.連接好傳感器及主板各部件,給系統通電
2.通電后,液晶顯示第一屏,包括學校、系部、專業、制作人以及作品名稱。
3.幾秒后,液晶顯示第二屏,大體格式是:
名稱數量:0000-00
重量:   0.000kg
單價:   0.00 元
金額:------- 元

4.名稱數量:0000-00,前面的0000表示商品代碼,如上面所示,后面00的代表數量。
例如:輸入0001-01,則先按1鍵,再按小數點,再按0,再按1即輸入了0001-01,然后按確定鍵,則顯示香蕉01.
注意:如果輸錯了,比如是0001-00,按確定鍵,即清零了,也就是你得重新輸入數據。
還有幾種情況,也是按確定鍵自動清零的。比如是0000-01,沒有這個商品編碼,則出錯。
再比如,我們設置的商品代碼范圍是1-10,則如果輸入的商品代碼不在范圍內,則按確定鍵即清零,需要重新輸入數據。
5.輸入完名稱數量,再按數字鍵,則是輸入單價,輸入單價后,按確定鍵,則計算出金額,并顯示出來。

6.如果不需要累計,下次稱重前,按一次清零即可。
如果需要累計,則在商品沒有拿下錢,按一次累計,然后拿下商品,再按一次清零即可進行下一次稱重。

7.清零前,必須在拿下商品的情況下才能準確回零。

8.去皮功能:先在傳感器支架上放上要去皮的,然后按一下去皮鍵,則重量那顯示0kg,表示去皮成功。這時,再放上商品,按操作順序進行操作。

9.總金額:當累計幾次后,需要算總金額時,按一下總金額鍵,即可算出總金額,并在屏幕顯示出來。
再按一次總金額即可清零,回到初始狀態。

10.輸入數字過程中,如果出錯,可以退格,也就類似電腦的backspace,向前刪除一位。

11.按鍵注意事項:按鍵時間不能過長,也不能過短,按鍵時間和按鍵壓力一定要適中,這樣才能正確讀取數據。

HX711電子稱部分源程序:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #include<string.h>
  4. #include<lcd12864.h>
  5. #include<hx711.h>
  6. #include<keyboard.h>
  7. #define uint unsigned int
  8. #define uchar unsigned char
  9. #define ulong unsigned long
  10. #define delayNOP();{_nop_();_nop_();_nop_();_nop_();};
  11. //定義量程系數
  12. #define RATIO     6797/1000   
  13. //定義標識
  14. volatile bit FlagTest = 0;                //定時測試標志,每0.5秒置位,測完清0
  15. volatile bit FlagKeyPress = 0;  //有鍵按下標志,處理完畢清0
  16. volatile bit FlagSetPrice = 0;  //價格設置狀態標志,設置好為1。
  17. //管腳定義
  18. //sbit LedA = P2^2;
  19. sbit beep = P1^5;
  20. sbit alert = P1^6;
  21. sbit key_all=P3^7;        //總金額鍵
  22. //顯示用變量
  23. int Counter;
  24. uchar idata str1[6] = "000000";
  25. uchar code name0[]={"本次購物總金額:"};
  26. uchar code name1[]={"香蕉"};
  27. uchar code name2[]={"蘋果"};
  28. uchar code name3[]={"橘子"};
  29. uchar code name4[]={"葡萄"};
  30. uchar code name5[]={"柚子"};
  31. uchar code name6[]={"橙子"};
  32. uchar code name7[]={"梨子"};
  33. uchar code name8[]={"西瓜"};
  34. uchar code name9[]={"木瓜"};
  35. uchar code name10[]={"桃子"};
  36. int i, iTemp;
  37. //稱重用變量
  38. ulong idata FullScale; //滿量程AD值/1000
  39. ulong AdVal;     //AD采樣值
  40. ulong weight;    //重量值,單位g
  41. ulong idata price;     //單價,長整型值,單位為分   
  42. ulong idata money;     //總價,長整型值,單位為分
  43. ulong dec_weight;
  44. //鍵盤處理變量
  45. uchar keycode;
  46. uchar DotPos;                                   //小數點標志及位置
  47. uchar Dec_pi;                //去皮變量
  48. uchar all_flag;                //累計變量
  49. //標志位
  50. uchar num_name;                //名稱數量標志
  51. uchar shuliang;                //數量值
  52. ulong idata all_money;        //累計

  53. //函數聲明
  54. void int2str(int, char *);
  55. void Data_Init();
  56. void Port_Init();  
  57. void Timer0_Init();
  58. void Timer0_ISR () ;
  59. void INT1_Init();
  60. void KeyPress(uchar);
  61. void To_Zero();
  62. void Display_Namenum();
  63. void Display_Price();
  64. void Display_Weight();
  65. void Display_Money();
  66. void Display_Allmoney();
  67. //整型轉字符串的函數,轉換范圍0--65536
  68. void int2str(int x, char* str)
  69. {
  70.         int i=1;
  71.     int tmp=10;
  72.     while(x/tmp!=0)
  73.     {
  74.               i++;
  75.         tmp*=10;
  76.     }
  77.     tmp=x;
  78.     str[i]='\0';
  79.     while(i>1)
  80.     {
  81.         str[--i]='0'+(tmp%10);
  82.         tmp/=10;
  83.     }
  84.     str[0]=tmp+'0';
  85. }
  86. //重新找回零點,每次測量前調用
  87. void To_Zero()
  88. {
  89.            FullScale=ReadCount()/1000;
  90.            price=0;
  91. }
  92. //顯示名稱數量,單位為元,四位整數,兩位小數
  93. void Display_Namenum()
  94. {
  95.            uint i,j;
  96.         uchar A1,A2,A3,A4;
  97.         uchar B1,B2;
  98.            i = price/100;    //得到整數部分
  99.            j = price - i*100;//得到小數部分
  100. //           int2str(a,str1);
  101.         A1=i/1000+48;
  102.         A2=i%1000/100+48;
  103.         A3=i%1000%100/10+48;
  104.         A4=i%1000%100%10+48;
  105.         B1=j/10+48;
  106.         B2=j%10+48;
  107.            //顯示整數部分
  108.               Lcd_Pos(0,4);
  109.                 Lcd_Wdat(':');
  110.                 Lcd_Wdat(A1);
  111.                    Lcd_Wdat(A2);
  112.                 Lcd_Wdat(A3);
  113.                 Lcd_Wdat(A4);
  114.                 Lcd_Wdat('-');
  115.            //顯示小數點, 小數點部分
  116.         //   int2str(j,str1);
  117.         Lcd_Pos(0,7);
  118.                 Lcd_Wdat(B1);
  119.                 Lcd_Wdat(B2);
  120. }
  121. //顯示單價,單位為元,四位整數,兩位小數
  122. void Display_Price()
  123. {
  124.            uint i,j;
  125.         uchar A1,A2,A3,A4;
  126.         uchar B1,B2;
  127.            i = price/100;    //得到整數部分
  128.            j = price - i*100;//得到小數部分
  129. //           int2str(a,str1);
  130.         A1=i/1000+48;
  131.         A2=i%1000/100+48;
  132.         A3=i%1000%100/10+48;
  133.         A4=i%1000%100%10+48;
  134.         B1=j/10+48;
  135.         B2=j%10+48;
  136.            //顯示整數部分
  137.            if (i>=1000)
  138.            {
  139.               Lcd_Pos(2,3);
  140.                 Lcd_Wdat(A1);
  141.                    Lcd_Wdat(A2);
  142.                 Lcd_Wdat(A3);
  143.                 Lcd_Wdat(A4);
  144.            }
  145.            else if (i>=100)
  146.            {
  147.               Lcd_Pos(2,3);
  148.                 Lcd_Wdat(' ');
  149.                    Lcd_Wdat(A2);
  150.                 Lcd_Wdat(A3);
  151.                 Lcd_Wdat(A4);
  152.            }
  153.            else if (i>=10)
  154.            {
  155.               Lcd_Pos(2,3);
  156.                 Lcd_Wdat(' ');
  157.                 Lcd_Wdat(' ');
  158.                 Lcd_Wdat(A3);
  159.                 Lcd_Wdat(A4);
  160.            }
  161.    else
  162.    {
  163.         Lcd_Pos(2,3);
  164.                 Lcd_Wdat(' ');
  165.                 Lcd_Wdat(' ');
  166.                 Lcd_Wdat(' ');
  167.                 Lcd_Wdat(A4);
  168.    }
  169.    //顯示小數點, 小數點部分
  170. //   int2str(j,str1);
  171.    if(j<10)
  172.    {
  173.         Lcd_Pos(2,5);
  174.                 Lcd_Wdat('.');
  175.                 Lcd_Wdat('0');
  176.                 Lcd_Wdat(B2);
  177.                 Lcd_Wdat(' ');          
  178.    }
  179.    else
  180.    {
  181.         Lcd_Pos(2,5);
  182.                 Lcd_Wdat('.');
  183.                 Lcd_Wdat(B1);
  184.                 Lcd_Wdat(B2);
  185.                 Lcd_Wdat(' ');
  186.    }
  187. }
  188. //顯示重量,單位kg,兩位整數,三位小數
  189. void Display_Weight()
  190. {
  191.            uint i,j;
  192.            uchar A1,A2;
  193.            uchar B1,B2,B3;
  194.            //weight單位是g                                          
  195.            i = weight/1000;    //得到整數部分
  196.            j = weight - i*1000;//得到小數部分
  197.            A1=i/10+48;
  198.            A2=i%10+48;
  199.            B1=j/100+48;
  200.            B2=j%100/10+48;
  201.            B3=j%100%10+48;
  202.         //   int2str(i,str1);
  203.            if (i>=10)
  204.            {
  205.              
  206.            }
  207.            else
  208.            {
  209.                Lcd_Pos(1,4);
  210.                 Lcd_Wdat(' ');
  211.                 Lcd_Wdat(A2);
  212.            }  
  213.         //   int2str(j,str1);
  214.            if (j<10)
  215.            {
  216.               Lcd_Pos(1,5);
  217.                 Lcd_Wdat('.');
  218.                 Lcd_Wdat('0');
  219.                 Lcd_Wdat('0');
  220.                 Lcd_Wdat(B3);
  221.            }
  222.            else if (j<100)
  223.            {
  224.               Lcd_Pos(1,5);
  225.                 Lcd_Wdat('.');
  226.                 Lcd_Wdat('0');
  227.                 Lcd_Wdat(B2);
  228.                 Lcd_Wdat(B3);
  229.            }
  230.            else
  231.            {
  232.               Lcd_Pos(1,5);
  233.                 Lcd_Wdat('.');
  234.                 Lcd_Wdat(B1);
  235.                 Lcd_Wdat(B2);
  236.                 Lcd_Wdat(B3);
  237.            }
  238. }
  239. //顯示總價,單位為元,四位整數,兩位小數
  240. void Display_Money()
  241. {
  242.            uint i,j;
  243.            uchar A1,A2,A3,A4;
  244.            uchar B1,B2;
  245.            if (money>999999)         //超出顯示量程
  246.            {
  247.               Lcd_Pos(3,3);
  248.                 Lcd_Wdat('-');
  249.                 Lcd_Wdat('-');
  250.                    Lcd_Wdat('-');
  251.                 Lcd_Wdat('-');
  252.                 Lcd_Wdat('-');
  253.                 Lcd_Wdat('-');
  254.                 Lcd_Wdat('-');
  255.               return;      
  256.            }
  257.            i = money/100;    //得到整數部分
  258.            j = money - i*100;//得到小數部分
  259.            A1=i/1000+48;
  260.            A2=i%1000/100+48;
  261.            A3=i%1000%100/10+48;
  262.            A4=i%1000%100%10+48;
  263.            B1=j/10+48;
  264.            B2=j%10+48;
  265.         //   int2str(i,str1);
  266.            //顯示整數部分
  267.         if (i>=1000)
  268.            {
  269.               Lcd_Pos(3,3);
  270.                 Lcd_Wdat(A1);
  271.                    Lcd_Wdat(A2);
  272.                 Lcd_Wdat(A3);
  273.                 Lcd_Wdat(A4);
  274.            }
  275.            else if (i>=100)
  276.            {
  277.               Lcd_Pos(3,3);
  278.                 Lcd_Wdat(' ');
  279.                    Lcd_Wdat(A2);
  280.                 Lcd_Wdat(A3);
  281.                 Lcd_Wdat(A4);
  282.            }
  283.            else if (i>=10)
  284.            {
  285.               Lcd_Pos(3,3);
  286.                 Lcd_Wdat(' ');
  287.                 Lcd_Wdat(' ');
  288.                 Lcd_Wdat(A3);
  289.                 Lcd_Wdat(A4);
  290.            }
  291.            else
  292.            {
  293.              Lcd_Pos(3,3);
  294.                 Lcd_Wdat(' ');
  295.                 Lcd_Wdat(' ');
  296.                 Lcd_Wdat(' ');
  297.                 Lcd_Wdat(A4);
  298.            }
  299.            //顯示小數點, 小數點部分
  300.         //   int2str(j,str1);
  301.            if(j<10)
  302.            {
  303.         Lcd_Pos(3,5);
  304.                 Lcd_Wdat('.');
  305.                 Lcd_Wdat('0');
  306.                 Lcd_Wdat(B2);          
  307.            }
  308.            else
  309.            {
  310.         Lcd_Pos(3,5);
  311.                 Lcd_Wdat('.');
  312.                 Lcd_Wdat(B1);
  313.                 Lcd_Wdat(B2);
  314.            }
  315. }
  316. //顯示總金額,單位為元,四位整數,兩位小數
  317. void Display_Allmoney()
  318. {
  319.            uint i,j;
  320.            uchar A1,A2,A3,A4;
  321.            uchar B1,B2;
  322. //        all_money=all_money/2;
  323.            if (all_money>999999)         //超出顯示量程
  324.            {
  325.               Lcd_Pos(3,3);
  326.                 Lcd_Wdat('-');
  327.                 Lcd_Wdat('-');
  328.                    Lcd_Wdat('-');
  329.                 Lcd_Wdat('-');
  330.                 Lcd_Wdat('-');
  331.                 Lcd_Wdat('-');
  332.                 Lcd_Wdat('-');
  333.               return;      
  334.            }
  335.            i = all_money/100;    //得到整數部分
  336.            j = all_money - i*100;//得到小數部分
  337.            A1=i/1000+48;
  338.            A2=i%1000/100+48;
  339.            A3=i%1000%100/10+48;
  340.            A4=i%1000%100%10+48;
  341.            B1=j/10+48;
  342.            B2=j%10+48;
  343.         //   int2str(i,str1);
  344.            //顯示整數部分
  345.         if (i>=1000)
  346.            {
  347.               Lcd_Pos(2,3);
  348.                 Lcd_Wdat(A1);
  349.                    Lcd_Wdat(A2);
  350.                 Lcd_Wdat(A3);
  351.                 Lcd_Wdat(A4);
  352.            }
  353.            else if (i>=100)
  354.            {
  355.               Lcd_Pos(2,3);
  356.                 Lcd_Wdat(' ');
  357.                    Lcd_Wdat(A2);
  358.                 Lcd_Wdat(A3);
  359.                 Lcd_Wdat(A4);
  360.            }
  361.            else if (i>=10)
  362.            {
  363.               Lcd_Pos(2,3);
  364.                 Lcd_Wdat(' ');
  365.                 Lcd_Wdat(' ');
  366.                 Lcd_Wdat(A3);
  367.                 Lcd_Wdat(A4);
  368.            }
  369.            else
  370.            {
  371.              Lcd_Pos(2,3);
  372.                 Lcd_Wdat(' ');
  373.                 Lcd_Wdat(' ');
  374.                 Lcd_Wdat(' ');
  375.                 Lcd_Wdat(A4);
  376.            }
  377.            //顯示小數點, 小數點部分
  378.         //   int2str(j,str1);
  379.            if(j<10)
  380.            {
  381.         Lcd_Pos(2,5);
  382.                 Lcd_Wdat('.');
  383.                 Lcd_Wdat('0');
  384.                 Lcd_Wdat(B2);          
  385.            }
  386.            else
  387.            {
  388.         Lcd_Pos(2,5);
  389.                 Lcd_Wdat('.');
  390.                 Lcd_Wdat(B1);
  391.                 Lcd_Wdat(B2);
  392.            }
  393. }
  394. //數據初始化
  395. void Data_Init()
  396. {
  397.            price = 0;
  398.            DotPos = 0;
  399.            beep = 1;
  400.            alert = 1;
  401.         num_name=0;
  402.         all_money=0;
  403.         Dec_pi=0;
  404.         dec_weight=0;
  405.         all_flag=0;
  406. }
  407. //管腳配置
  408. void Port_Init()
  409. {
  410.        
  411. }
  412. //定時器0初始化
  413. void Timer0_Init()
  414. {
  415.         ET0 = 1;        //允許定時器0中斷
  416.         TMOD = 1;       //定時器工作方式選擇
  417.         TL0 = 0x06;     
  418.         TH0 = 0xf8;     //定時器賦予初值
  419.         TR0 = 1;        //啟動定時器
  420. }
  421. //定時器0中斷
  422. void Timer0_ISR (void) interrupt 1 using 0
  423. {
  424.         TL0 = 0x06;
  425.         TH0 = 0xf8;     //定時器賦予初值

  426.         //每0.5秒鐘刷新重量
  427.     Counter ++;
  428.     if (Counter >= 200)
  429.     {
  430.                FlagTest = 1;
  431.                    Counter = 0;
  432.     }
  433. }
  434. //按鍵響應程序,參數是鍵值
  435. //返回鍵值:
  436. //         7          8    9      10(清0)
  437. //         4          5    6      11(刪除)
  438. //         1          2    3      12(未定義)
  439. //         14(未定義) 0    15(.)  13(確定價格)

  440. void KeyPress(uchar keycode)
  441. {
  442.            uint nam1,nam2;
  443.         uchar i;
  444.         switch (keycode)
  445.            {
  446.               case 0:
  447.               case 1:
  448.               case 2:
  449.               case 3:
  450.               case 4:
  451.               case 5:
  452.               case 6:
  453.               case 7:
  454.               case 8:
  455.               case 9:
  456.             //目前在設置整數位,要注意price是整型,存儲單位為分
  457.                    if (DotPos == 0)
  458.                 {  
  459.                     //最多只能設置到千位
  460.                         if (price<100000)
  461.                         {
  462.                               price=price*10+keycode*100;
  463.                         }
  464.                 }
  465.                  //目前在設置小數位
  466.                 else if (DotPos==1)  //小數點后第一位
  467.                 {
  468.                     price=price+keycode*10;
  469.                         DotPos++;
  470.                 }
  471.                 else if (DotPos==2)
  472.                 {
  473.                     price=price+keycode;
  474.                         DotPos++;
  475.                 }
  476.                 if(num_name==0)
  477.                 {
  478.                         Display_Namenum();
  479.                 }
  480.                 else if(num_name==1)
  481.                 {
  482.                         Display_Price();
  483.                 }
  484.             break;
  485.               case 10:   //清零鍵
  486.                      To_Zero();
  487.                          Display_Price();
  488.                         Display_Namenum();
  489.                          FlagSetPrice = 0;
  490.                          DotPos = 0;
  491.                         num_name=0;
  492.                         Dec_pi=0;
  493.                         dec_weight=0;
  494.                          break;
  495.                   case 11:        //刪除鍵,按一次刪除最右一個數字
  496.                      if (DotPos==2)
  497.                          {
  498.                             price=price/10;
  499.                                 price=price*10;
  500.                                 DotPos--;
  501.                          }
  502.                          else if (DotPos==1)
  503.                          {
  504.                             price=price/100;
  505.                                 price=price*100;
  506.                                 DotPos--;
  507.                          }
  508.                          else if (DotPos==0)
  509.                          {
  510.                             price=price/1000;
  511.                                 price=price*100;
  512.                          }
  513.                          if(num_name==0)
  514.                         {
  515.                                 Display_Namenum();
  516.                         }
  517.                         else if(num_name==1)
  518.                         {
  519.                                 Display_Price();
  520.                         }
  521.                  break;
  522.                 case 12:                //
  523.                         Dec_pi=1;        //去皮變量
  524.                         break;
  525.               case 13:   //確認鍵,名稱數量和單價
  526.                      if(num_name==0)
  527.                         {
  528.                                 nam1=price/100;
  529.                                 nam2=price-nam1*100;
  530.                                    num_name=1;
  531.                                 if(nam2!=0)
  532.                                 {
  533.                                         //顯示整數部分
  534.                                       Lcd_Pos(0,4);
  535.                                         Lcd_Wdat(':');
  536.                                         Lcd_Wdat(' ');
  537.                                         Lcd_Pos(0,5);                        //顯示位置為第四行的第1個字符               
  538.                                         i = 0;
  539.                                         if(nam1==1)
  540.                                         {
  541.                                             while(name1[i] != '\0')
  542.                                             {
  543.                                                        Lcd_Wdat(name1[i]);             //顯示相應表格中的字符                  
  544.                                                        i++;
  545.                                             }
  546.                                         }
  547.                                         else if(nam1==2)
  548.                                         {
  549.                                             while(name2[i] != '\0')
  550.                                             {
  551.                                                        Lcd_Wdat(name2[i]);             //顯示相應表格中的字符                  
  552.                                                        i++;
  553.                                             }       
  554.                                         }
  555.                                         else if(nam1==3)
  556.                                         {
  557.                                             while(name3[i] != '\0')
  558.                                             {
  559.                                                        Lcd_Wdat(name3[i]);             //顯示相應表格中的字符                  
  560.                                                        i++;
  561.                                             }       
  562.                                         }
  563.                                            else if(nam1==4)
  564.                                         {
  565.                                             while(name4[i] != '\0')
  566.                                             {
  567.                                                        Lcd_Wdat(name4[i]);             //顯示相應表格中的字符                  
  568.                                                        i++;
  569.                                             }       
  570.                                         }
  571.                                         else if(nam1==5)
  572.                                         {
  573.                                             while(name5[i] != '\0')
  574.                                             {
  575.                                                        Lcd_Wdat(name5[i]);             //顯示相應表格中的字符                  
  576.                                                        i++;
  577.                                             }       
  578.                                         }
  579.                                         else if(nam1==6)
  580.                                         {       
  581.                                             while(name6[i] != '\0')
  582.                                             {
  583.                                                        Lcd_Wdat(name6[i]);             //顯示相應表格中的字符                  
  584.                                                        i++;
  585.                                             }       
  586.                                         }
  587.                                         else if(nam1==7)
  588.                                         {
  589.                                             while(name7[i] != '\0')
  590.                                             {
  591.                                                        Lcd_Wdat(name7[i]);             //顯示相應表格中的字符                  
  592.                                                        i++;
  593.                                             }       
  594.                                         }
  595.                                            else if(nam1==8)
  596.                                         {
  597.                                             while(name8[i] != '\0')
  598.                                             {
  599.                                                        Lcd_Wdat(name8[i]);             //顯示相應表格中的字符                  
  600.                                                        i++;
  601.                                             }       
  602.                                         }
  603.                                         else if(nam1==9)
  604.                                         {
  605.                                             while(name9[i] != '\0')
  606.                                             {
  607.                                                        Lcd_Wdat(name9[i]);             //顯示相應表格中的字符                  
  608.                                                        i++;
  609.                                             }       
  610.                                         }
  611.                                         else if(nam1==10)
  612.                                         {
  613.                                             while(name10[i] != '\0')
  614.                                             {
  615.                                                        Lcd_Wdat(name10[i]);             //顯示相應表格中的字符                  
  616.                                                        i++;
  617.                                             }       
  618.                                         }
  619.                                         else
  620.                                         {
  621.                                                 num_name=0;
  622.                                                 Lcd_Pos(0,4);
  623.                                                 Lcd_Wdat(':');
  624.                                                 Lcd_Wdat('0');
  625.                                                 Lcd_Wdat('0');
  626.                                                 Lcd_Wdat('0');
  627.                                                 Lcd_Wdat('0');
  628.                                                 Lcd_Wdat('-');
  629.                                                 Lcd_Wdat('0');
  630.                                                 Lcd_Wdat('0');
  631.                                         }
  632.                                 }
  633.                                 else if(nam2==0)
  634.                                 {
  635.                                         num_name=0;
  636.                                         Lcd_Pos(0,4);
  637.                                         Lcd_Wdat(':');
  638.                                         Lcd_Wdat('0');
  639.                                         Lcd_Wdat('0');
  640.                                         Lcd_Wdat('0');
  641.                                         Lcd_Wdat('0');
  642.                                         Lcd_Wdat('-');
  643.                                         Lcd_Wdat('0');
  644.                                         Lcd_Wdat('0');       
  645.                                 }
  646.                                 shuliang=nam2;
  647.                                 price=0;
  648.                                 DotPos=0;
  649.                                 Dec_pi=0;
  650.                         }
  651.                         else if(num_name==1)
  652.                         {
  653.                                 FlagSetPrice = 1;
  654.                                  DotPos=0;
  655.                                 num_name=0;
  656.                                 Dec_pi=0;
  657.                         }
  658.                          break;
  659.                 case 14:                 //累計
  660.                         all_money=all_money+money;
  661.                         break;
  662.                   case 15:   //小數點按下
  663.                          if (DotPos == 0)  
  664.                          {   
  665.                                 DotPos = 1;      //小數點后第一位
  666.                          }
  667.                      break;
  668.                    }
  669.         Delay(10);
  670. }
  671. void main()
  672. {
  673.         //   Rom_CS=1;
  674.            Lcd_Init();
  675.            EA = 0;
  676.            Data_Init();
  677.            Port_Init();
  678.            Timer0_Init();
  679.            //初始化完成,開中斷
  680.            EA = 1;
  681.            beep=1;
  682.            //背光
  683.         //   LedA = 1;
  684.            Lcd_Clear();    //clear all dots
  685.           Lcd_Display1();
  686.           Delay(1000);
  687.           To_Zero();
  688.         Lcd_Clear();
  689.           Lcd_Display2();
  690.            Display_Price();   
  691.            while(1)
  692.            {
  693.               //每0.5秒稱重一次
  694.                   if (FlagTest==1)
  695.                   {
  696.                      //稱重,得到重量值weight,單位為g
  697.                          AdVal=ReadCount();
  698.                          weight=FullScale-AdVal/1000;
  699.                          if (weight>0x8000) weight=0;
  700.                          weight=10000*weight/FullScale;
  701.                          weight=weight*RATIO;
  702.                        
  703.                         if(Dec_pi==1)
  704.                         {
  705.                                 dec_weight=weight;
  706.                                 Dec_pi=0;
  707.                         }
  708.                         weight=weight-dec_weight;
  709.                          //如果超量程,則報警
  710.                          if (weight >= 10000)
  711.                          {
  712.                             beep = 0;
  713.                                 alert = 0;
  714.                                 Lcd_Pos(1,4);
  715.                                 Lcd_Wdat('-');
  716.                                 Lcd_Wdat('-');
  717.                                    Lcd_Wdat('-');
  718.                                 Lcd_Wdat('-');
  719.                                 Lcd_Wdat('-');
  720.                                 Lcd_Wdat('-');

  721.                                    Lcd_Pos(3,3);
  722.                                 Lcd_Wdat('-');
  723.                                 Lcd_Wdat('-');
  724.                                    Lcd_Wdat('-');
  725.                                 Lcd_Wdat('-');
  726.                                 Lcd_Wdat('-');
  727.                                 Lcd_Wdat('-');
  728.                                 Lcd_Wdat('-');
  729.                          }
  730.                          //如果不超量程
  731.                          else
  732.                          {
  733.                             beep = 1;
  734.                                 alert = 1;
  735.                                 //顯示重量值
  736.                         Display_Weight();                 
  737.                                  //如果單價設定好了,則計算價格
  738.                    

  739. …………余下代碼請下載附件…………
復制代碼


電子秤的完整程序代碼和原理圖等資料下載:
HX711完整單片機程序.rar (206 KB, 下載次數: 626)



評分

參與人數 3黑幣 +109 收起 理由
LT81041667 + 5 很給力!
qjzyx + 4 贊一個!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏27 分享淘帖 頂2 踩1
回復

使用道具 舉報

沙發
ID:200153 發表于 2017-5-12 23:57 | 只看該作者
厲害了,我的哥
回復

使用道具 舉報

板凳
ID:105804 發表于 2017-5-13 06:36 | 只看該作者
感謝分享,正需要
回復

使用道具 舉報

地板
ID:216505 發表于 2017-7-25 11:11 | 只看該作者
謝謝樓主分享,學習下
回復

使用道具 舉報

5#
ID:52857 發表于 2017-7-27 11:25 | 只看該作者
看看學習一下
回復

使用道具 舉報

6#
ID:157057 發表于 2017-7-27 11:57 | 只看該作者
謝謝樓主分享,學習下
回復

使用道具 舉報

7#
ID:128121 發表于 2017-7-27 15:11 | 只看該作者
很不錯
回復

使用道具 舉報

8#
ID:229863 發表于 2017-8-29 14:11 | 只看該作者
謝謝分享,多謝樓主
回復

使用道具 舉報

9#
ID:238525 發表于 2017-10-11 10:51 | 只看該作者
謝謝分享,多謝樓主
回復

使用道具 舉報

10#
ID:249717 發表于 2017-11-30 08:16 | 只看該作者
感謝分享
回復

使用道具 舉報

11#
ID:128518 發表于 2018-2-8 09:32 | 只看該作者
非常好,正需要!
回復

使用道具 舉報

12#
ID:283967 發表于 2018-2-13 16:16 | 只看該作者
感謝分享
回復

使用道具 舉報

13#
ID:266116 發表于 2018-2-13 20:44 | 只看該作者
謝謝分享
回復

使用道具 舉報

14#
ID:284326 發表于 2018-2-17 20:21 | 只看該作者
謝謝大佬
回復

使用道具 舉報

15#
ID:304591 發表于 2018-4-9 17:14 | 只看該作者
學習中
回復

使用道具 舉報

16#
ID:310828 發表于 2018-4-18 13:53 | 只看該作者
樓主很強
回復

使用道具 舉報

17#
ID:312831 發表于 2018-4-21 08:36 | 只看該作者
很厲害
回復

使用道具 舉報

18#
ID:345291 發表于 2018-6-5 11:26 | 只看該作者
感謝樓主分享,多謝多謝,
回復

使用道具 舉報

19#
ID:314218 發表于 2018-6-30 11:53 | 只看該作者
感謝樓主分享   
回復

使用道具 舉報

20#
ID:348594 發表于 2018-7-21 21:20 | 只看該作者
這個精度多少啊
回復

使用道具 舉報

21#
ID:375092 發表于 2018-7-30 11:00 | 只看該作者
樓主,不知道為什么,我用不了,管腳單片機都是和你一樣的,上電之后重量那點一直顯示0.000kg,不知道是不是我的HX711的問題還是怎么回事,我這個是稱5KG的稱

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

22#
ID:382431 發表于 2018-8-3 10:04 | 只看該作者
不錯,真給力,贊一個
回復

使用道具 舉報

23#
ID:384477 發表于 2018-9-1 15:49 | 只看該作者
樓主,為啥我照你的接好后只顯示第一屏的制作人什么的,12864不能跳轉到第二屏顯示重量啊
回復

使用道具 舉報

24#
ID:397804 發表于 2018-9-17 16:39 | 只看該作者
回復

使用道具 舉報

25#
ID:410353 發表于 2018-11-1 16:00 | 只看該作者
好東西,感謝樓主
回復

使用道具 舉報

26#
ID:409457 發表于 2018-11-20 23:05 | 只看該作者
如果用stm32的怎么弄呢
回復

使用道具 舉報

27#
ID:80618 發表于 2019-5-25 14:57 | 只看該作者
支持下 非常不錯
回復

使用道具 舉報

28#
ID:468272 發表于 2020-1-4 00:21 | 只看該作者
很棒!很給力!
回復

使用道具 舉報

29#
ID:609520 發表于 2020-1-5 09:08 | 只看該作者
論壇真好 什么東西都能找到
回復

使用道具 舉報

30#
ID:709089 發表于 2020-3-15 21:41 | 只看該作者
支持下 非常不錯
回復

使用道具 舉報

31#
ID:719591 發表于 2020-3-31 17:56 | 只看該作者
上層大哥,你proteus文件 有嗎?能不能借我看下
回復

使用道具 舉報

32#
ID:688460 發表于 2020-4-1 07:10 | 只看該作者
好好學習天天向上!感謝大師們的奉獻精神!
回復

使用道具 舉報

33#
ID:1099882 發表于 2023-11-15 20:46 | 只看該作者
nb,學習一下,謝樓主
回復

使用道具 舉報

34#
ID:345562 發表于 2023-11-17 08:09 | 只看該作者
樓主好樣的,學習了
回復

使用道具 舉報

35#
ID:1095017 發表于 2024-3-26 16:27 | 只看該作者
剛好需要,多謝分享!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
丁香婷婷激情| 国产欧美69| 日本福利午夜视频在线| 日韩一级在线播放| 国产精品边吃奶边做爽| 裸体大乳女做爰69| 国产精品中文字幕久久久| 欧美一区二区高清| 亚洲视频在线一区观看| 美女国产一区二区三区| 精品99在线| 日韩精品一区二区三区| 激情在线视频| 成年人深夜福利| 亚洲AV第二区国产精品| 日韩手机在线视频| 日韩视频在线观看免费视频| 国产aaaaa毛片| 亚洲在线播放电影| 99精彩视频| 91精品国产免费久久久久久 | 久操久操久操| 天堂av免费在线观看| 韩国女同性做爰三级| 日本美女高潮视频| 自拍另类欧美| 久久波多野结衣| 国产精品久久久久999| 中文字幕亚洲欧美在线| 欧美一区二区观看视频| 色综合网色综合| 成人动态视频| 国产美女情趣调教h一区二区| 日漫免费在线观看网站| 天天操天天碰| 国产变态拳头交视频一区二区| 成人免费视频国产免费麻豆| 国产精品成人无码| 国产一级淫片免费| 欧洲美熟女乱又伦| 成人免费无码大片a毛片| 精品999在线| 欧美网站免费观看| 欧美一区二区视频在线播放| 亚洲一区二区三区色| 免费国产一区| 久久精品日产第一区二区三区| 97超碰人人模人人爽人人看| 国产精品永久免费| 国产精品久久二区| 国产成人精品在线播放| 91成品人片a无限观看| 欧美激情久久久久久| 久久亚洲精品国产亚洲老地址| 一本色道久久88亚洲综合88| 国产丝袜一区视频在线观看| 亚洲精品国产精品国自产在线| 欧美一区二区三区思思人| 欧美精品123区| 欧美日韩国产另类一区| 精品视频在线免费观看| 狠狠色狠色综合曰曰| 亚洲一区二区三区视频在线播放| 国产精品美女一区二区| 国产精品嫩草影院com| 国产日韩av一区二区| 久久久三级国产网站| 久久亚洲精品国产精品紫薇 | 欧美精品xxx| 久久久国产一区二区三区| 中文字幕亚洲二区| 久久久精品网站| 久久大大胆人体| 欧美黄色片视频| 精品综合久久久久久97| 久久久免费观看| 高清欧美性猛交xxxx| 国外成人在线播放| 青草青草久热精品视频在线观看| 国产精品wwww| 国产综合福利在线| 成人自拍网站| 日本不卡二区高清三区| 性欧美18一19内谢| 丰满少妇久久久| 伊人国产在线视频| 蜜臀av粉嫩av懂色av| 800av在线播放| jizz18女人高潮| 免费无遮挡无码永久在线观看视频 | 国产精品自产拍在线观| 95av在线视频| 欧美区高清在线| 综合久久国产| 黑人粗进入欧美aaaaa| 国产高潮视频在线观看| 国产老头老太做爰视频| 亚洲不卡视频在线观看| av手机免费看| 国产综合精品久久| www.天天操| 蜜桃免费在线| 亚洲美女炮图| 国产成人夜色高潮福利影视| 国产精品二区不卡| 免费看欧美女人艹b| 久久久久久影视| 亚洲成av人片在线| 欧美大胆一级视频| 欧美老妇交乱视频| 97免费资源站| 国产树林野战在线播放| 久久综合在线观看| 紧身裙女教师波多野结衣| 中文字幕在线播放av| 久草网站在线| 男人的天堂网av| 日本色护士高潮视频在线观看 | www.黄在线观看| 欧美日韩免费看片| 久久99影视| 蜜乳av一区二区| 一区二区中文字幕在线| 欧美精品高清视频| 欧美乱妇40p| 翡翠波斯猫1977年美国| 婷婷无套内射影院| 法国伦理少妇愉情| 樱花视频在线免费观看| 国产日韩欧美第一页| 中文字幕在线免费观看| 午夜激情在线播放| 成人情趣视频网站| 国产乱人伦偷精品视频不卡| 亚洲成人动漫av| 国产亚洲视频在线观看| 亚洲人精品午夜| 欧美麻豆精品久久久久久| 久久久国产精品一区| av成人观看| 久久久久久久片| 欧美日韩激情在线观看| 毛片中文字幕| 久久精品国产亚洲a∨麻豆| 日本午夜免费一区二区| 伊人久久成人| 国产精品久久久久久久久久久免费看 | 国产成人啪免费观看软件| 一区二区日韩av| 亚洲精品自产拍| 91色精品视频在线| 日韩在线一级片| 亚洲二区在线播放| 一区二区精品区| yjizz视频网站在线播放| gogo久久日韩裸体艺术| 九九精品视频在线看| 色美美综合视频| 91av在线精品| 亚洲人精品午夜射精日韩 | 亚洲欧美国产高清| 在线观看日韩www视频免费| 国产免费一区二区| 麻豆传媒在线看| av中文在线观看| 性感美女激情视频在线观看| caoporn成人| 懂色av中文字幕一区二区三区| 777久久久精品| 91精品视频网站| 亚洲一二三av| 国产乱码精品一区二三区蜜臂| 在线观看视频免费| 亚洲一级大片| 高清av一区二区| 亚洲国模精品一区| 久久综合狠狠综合久久综青草| 久久久老熟女一区二区三区91| 欧美特黄一级视频| 欧洲不卡av| 国产真实久久| 日韩欧美综合在线视频| 国产精品精品国产| wwwwwxxxx日本| 国产国语亲子伦亲子| 中国黄色在线视频| 国产精品欧美三级在线观看| 国产精品网站导航| 不卡av日日日| 成人av一级片| 中文字幕一区二区人妻| 中国在线观看免费国语版电影 | 在线亚洲免费视频| 国产欧美 在线欧美| 久热在线视频观看| 亚洲国产综合网| 老司机精品视频在线观看6| 天天综合亚洲| 欧美日韩国产丝袜美女| 国产精品美女久久久久av超清| 国产女同无遮挡互慰高潮91| 欧洲成人一区二区三区| 在线视频中文字幕第一页| 日韩一级不卡| 欧美高清dvd| 欧美精品一区二区视频 | 亚洲在线观看免费| 欧美野外猛男的大粗鳮| 日本精品一区在线| 婷婷在线免费观看| 人在线成免费视频| 国产精品99久久久久久久vr| 国产亚洲欧美日韩一区二区| 97av中文字幕| 成人毛片一区二区三区| 久蕉依人在线视频| 国内揄拍国内精品久久| 欧美精品xxxxbbbb| 一区不卡字幕| 亚洲综合一区中| 岛国成人毛片| 国产美女在线精品| 久久久国产影院| 亚洲天堂av一区二区三区| 另类欧美视频| 77成人影视| 一区二区欧美国产| 粉嫩精品一区二区三区在线观看| 婷婷激情四射网| 精品国产一区二区三区四区阿崩| 五月激情久久久| 欧美精品久久99久久在免费线| 中国成人在线视频| 国产免费高清视频| 国产激情在线播放| 2021国产精品久久精品| 2019精品视频| 久操视频在线观看免费| 最新av番号| 国产亚洲一区在线| 国产亚洲xxx| 黄色三级视频在线播放| 美女在线不卡| 99热国内精品| 欧美精品一区二区在线播放| 欧美精品99久久| 欧美做爰性欧美大fennong| 亚洲专区**| 日韩欧美中文字幕在线播放| 亚洲视频欧美在线| 朝桐光av在线一区二区三区| 精品视频在线一区二区在线| 自拍av一区二区三区| 国产精品国模大尺度私拍| 亚洲 日本 欧美 中文幕| 国产蜜臀一区二区打屁股调教| 久久综合国产精品| 国产美女久久久| 国产精品1234区| 欧美人与动牲性行为| 久久久99久久| 高清日韩一区| 91欧美日韩麻豆精品| 国产亚洲精品精品国产亚洲综合| 亚洲一区二区三区四区中文字幕| 手机成人在线| 污污网站免费在线观看| 红杏aⅴ成人免费视频| 欧美日韩一级片在线观看| 成人在线免费观看av| 美女毛片免费看| 亚洲高清资源| 精品自拍视频在线观看| 影音先锋男人资源在线观看| 思思99re6国产在线播放| 久久综合狠狠综合久久激情| 丁香婷婷久久久综合精品国产 | 伊人久久综合一区二区| 亚洲色欲色欲www| 亚洲不卡1区| 天天干在线观看| 国产一区二区三区日韩精品| 亚洲国产黄色片| 日本泡妞xxxx免费视频软件| 写真福利理论片在线播放| 国产精品自在在线| 成人中心免费视频| 在线观看一区二区三区三州| 男女爱爱网站| 色综合咪咪久久网| 在线观看视频亚洲| 九九热免费在线| 污片视频在线免费观看| 亚洲三级久久久| 日韩中文字幕在线不卡| 色免费在线观看| 久久午夜视频| 国产精品日日做人人爱| 中文字幕一区二区三区四区欧美| 亚洲一区有码| 日韩欧美第一区| 李丽珍裸体午夜理伦片| 求av网址在线观看| 亚洲最快最全在线视频| heyzo亚洲| 免费黄视频网站| 成人午夜视频网站| 欧美国产一区二区在线| 日韩在线第二页| 在线综合视频| 国产欧美日韩中文| 亚洲精品国产av| 成人一级毛片| 久久露脸国产精品| 国产真人无遮挡作爱免费视频| 亚洲一区二区免费在线观看| 亚洲性xxxx| 久久久久免费看| 亚洲精品午夜| 亚洲欧美综合另类中字| 暗呦丨小u女国产精品| 亚洲成人短视频| 日韩午夜在线观看| 91精品国自产在线| 日韩成人高清| 亚洲国产精品久久久久秋霞蜜臀| 国产手机在线观看| 中文字幕在线高清| 欧美一区二区三区在线| 一区二区精品免费| 成人看片网页| 日韩精品免费在线视频| 成人在线观看免费完整| crdy在线观看欧美| 在线午夜精品自拍| www.国产一区二区| 色综合中文网| 欧洲精品久久久| 亚洲成a人片77777老司机| 性欧美videos另类喷潮| 国产精品久久久对白| 三级a性做爰视频| 成人综合婷婷国产精品久久免费| 中文字幕一区二区三区最新| 激情视频免费| 亚洲一区二区综合| 伊人久久久久久久久| 午夜伦理福利在线| 亚洲欧美综合另类中字| 亚洲熟妇无码乱子av电影| 欧美日韩高清| 国产精品视频自拍| 欧美a一片xxxx片| 成+人+亚洲+综合天堂| 久久人妻无码一区二区| 在线免费视频你懂得| 欧美日韩免费观看中文| 泷泽萝拉在线播放| 99久久久国产| 欧美国产日产韩国视频| 天堂在线视频免费| 日韩国产精品91| 一区二区精品在线观看| 天海翼一区二区三区免费| 精品国产91久久久| 亚洲精品国产一区黑色丝袜| 一区二区日韩| 国产高清在线不卡| 免费观看91视频大全| 欧美韩国一区二区| 91精产国品一二三| 国产午夜久久av| 欧美在线视频一区| 国产精选在线观看| 欧美国产丝袜视频| 在线播放第一页| 亚洲超碰在线观看| 国产精品久久久久久av下载红粉 | 无码日韩精品一区二区| 久久精品久久久| 国产伦视频一区二区三区| 操她视频在线观看| 2020最新国产精品| 国产精品九九九| 美女被艹网站| 亚洲图片有声小说| 中文字幕精品亚洲| 成人vr资源| 开心色怡人综合网站| 天堂v视频永久在线播放| 日韩一级片网站| 特级西西444www高清大视频| 亚洲女同同性videoxma| 国产肉体ⅹxxx137大胆| 日韩123区| 久99久在线视频| 国产极品美女到高潮| 一区二区三区在线免费视频| 国产大屁股喷水视频在线观看| 欧美3p在线观看|