找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 22207|回復(fù): 16
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)制作hx711電子秤

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:253200 發(fā)表于 2017-11-26 10:11 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
使用51單片機(jī)制作一個(gè)電子秤,所需器件:全橋傳感器,hx711芯片,數(shù)碼管,at89c52.
其中一定要注意傳感器和hx711芯片的接法,我是用A通道,DT接P3.0,SCK接P3.1。
部分代碼如下,有點(diǎn)亂,懶得整理了。
我的傳感器有點(diǎn)問題,加上上面的光碟計(jì)算為初始重量0000.

制作出來的實(shí)物圖:


單片機(jī)源程序如下:
  1. #include "main.h"
  2. #include "HX711.h"

  3. /////共陰數(shù)碼管段選//////////////////////////////////////////////
  4. unsigned char table[22]={0x3F,0x06,0x5B,0x4F,0x66,
  5. 0x6D,0x7D,0x07,0x7F,0x6F,
  6. 0x77,0x7C,0x39,0x5E,0x79,0x71,
  7. 0x40,0x38,0x76,0x00,0xff,0x37};//'-',L,H,滅,全亮,n         16-21

  8. float m__1=16.752;

  9. unsigned long HX711_Buffer = 0;
  10. unsigned int Weight_Maopi = 0,Weight_Shiwu = 0;
  11. char Price_Count = 0;
  12. unsigned char KEY_NUM = 0,j=0;
  13. unsigned char Price_Buffer[3] = {0x00,0x00,0x00};
  14. unsigned long Money = 0;
  15. bit Flag_OK = 0;
  16. unsigned int a=0;
  17. unsigned int b=0;
  18. unsigned int c=0;
  19. unsigned int d=0;


  20. void delay(unsigned int ms)
  21. {
  22.         unsigned char x;
  23.         for(ms;ms>0;ms--)
  24.                 for(x=112;x>0;x--);
  25. }

  26. void display(unsigned int zl)//顯示重量 單位g
  27. {
  28.        
  29.         w1=1;w2=0;w3=0;w4=0;
  30.         P0=table[zl/1000];
  31.         delay(20);
  32.         w1=0; //第1位
  33.                   
  34.         w1=0;w2=1;w3=0;w4=0;
  35.         P0=table[zl%1000/100];
  36.         delay(20);//第2位
  37.         w2=0;

  38.         w1=0;w2=0;w3=1;w4=0;
  39.         P0=table[zl%100/10];
  40.         delay(20);//第3位
  41.         w3=0;
  42.        
  43.         w1=0;w2=0;w3=0;w4=1;
  44.         P0=table[zl%10];
  45.         delay(20);
  46.         w4=0;//第4位
  47. }
  48. void Get_Maopi()
  49. {
  50.         HX711_Buffer = HX711_Read();
  51.         Weight_Maopi = HX711_Buffer/100;               
  52. }

  53. //****************************************************
  54. //主函數(shù)
  55. //****************************************************
  56. void main()
  57. {                                       
  58.         Get_Maopi();                                //稱毛皮重量
  59.        
  60.         while(1)
  61.         {       
  62.                 if( Flag_OK == 0)
  63.                 {
  64.                         Get_Weight();
  65.                         for(j=0;j<100;j++)display(Weight_Shiwu);//顯示重量 單位g
  66.                        
  67.                 }
  68.                 if(key1==0)                        //
  69.                 {       
  70.                     while(!a)
  71.                     {a=Weight_Shiwu;}
  72.                         for(j=0;j<100;j++)display(a);
  73.                 }
  74.                 if(key2==0)                //
  75.                 {
  76.                          while(!b)
  77.                     {b=Weight_Shiwu;}
  78.                         for(j=0;j<100;j++)display(b);       
  79.                 }
  80.                 if(key3==0)                        //
  81.                 {
  82.                          while(!c)
  83.                     {c=Weight_Shiwu;}
  84.                         for(j=0;j<100;j++)display(c);
  85.             }
  86.                 if(key4==0)                        //
  87.                 {
  88.                          while(!d)
  89.                     {d=Weight_Shiwu;}
  90.                         for(j=0;j<100;j++)display(d);
  91.             }


  92.                 }
  93. }

  94. //****************************************************
  95. //稱重
  96. //****************************************************
  97. void Get_Weight()
  98. {       
  99.         HX711_Buffer = HX711_Read();
  100.         HX711_Buffer = HX711_Buffer/100;
  101.         if(HX711_Buffer > Weight_Maopi)                       
  102.         {
  103.                 Weight_Shiwu = HX711_Buffer;
  104.                 Weight_Shiwu = Weight_Shiwu - Weight_Maopi;                                //獲取實(shí)物的AD采樣數(shù)值。
  105.        
  106.                 Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/m__1+0.05);         //計(jì)算實(shí)物的實(shí)際重量
  107.                                                                                                                                                 //因?yàn)椴煌膫鞲衅魈匦郧€不一樣,因此,每一個(gè)傳感器需要矯正這里的4.30這個(gè)除數(shù)。
  108.                                                                                                                                                 //當(dāng)發(fā)現(xiàn)測(cè)試出來的重量偏大時(shí),增加該數(shù)值。
  109.                                                                                                                                                 //如果測(cè)試出來的重量偏小時(shí),減小改數(shù)值。
  110.                                                                                                                                                 //該數(shù)值一般在4.0-5.0之間。因傳感器不同而定。
  111.                                                                                                                                                 //+0.05是為了四舍五入百分位
  112.                 Buzzer = 1;                                //關(guān)閉警報(bào)
  113.         }
  114. //    if(Weight_Shiwu>1000)Buzzer=0;       
  115. //
  116. //        if(Weight_Shiwu < 2)Weight_Shiwu=0;
  117. //

  118. //        else if(HX711_Buffer < Weight_Maopi - 30)
  119. //        {
  120. //                Buzzer = 0;                                //負(fù)重量報(bào)警
  121. //        }
  122. //        else if(HX711_Buffer > Weight_Maopi + 24970)                //大于5Kg的最大量程,報(bào)警       
  123. ……………………

  124. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
藍(lán)色 電子稱程序 - 副本.zip (37.62 KB, 下載次數(shù): 330)


評(píng)分

參與人數(shù) 2黑幣 +55 收起 理由
1263558620 + 5 共享資料的黑幣獎(jiǎng)勵(lì)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:89286 發(fā)表于 2017-11-27 20:54 | 只看該作者
thanks for sharing
回復(fù)

使用道具 舉報(bào)

板凳
ID:185024 發(fā)表于 2018-3-21 19:03 | 只看該作者
666共享資料的
回復(fù)

使用道具 舉報(bào)

地板
ID:310057 發(fā)表于 2018-4-17 14:59 來自手機(jī) | 只看該作者
我想問一下這個(gè)如何下載的,現(xiàn)在很需要,謝謝樓主了
回復(fù)

使用道具 舉報(bào)

5#
ID:149389 發(fā)表于 2018-4-30 13:48 | 只看該作者
發(fā)表于 2018-4-17 14:59
我想問一下這個(gè)如何下載的,現(xiàn)在很需要,謝謝樓主了

http://www.torrancerestoration.com/bbs/dpj-85148-1.html


回復(fù)

使用道具 舉報(bào)

6#
ID:438375 發(fā)表于 2019-1-1 14:51 | 只看該作者
正好需要,三扣思密達(dá)
回復(fù)

使用道具 舉報(bào)

7#
ID:440348 發(fā)表于 2019-1-1 15:59 | 只看該作者
我很需要這個(gè),謝謝
回復(fù)

使用道具 舉報(bào)

8#
ID:423460 發(fā)表于 2019-3-24 21:17 | 只看該作者
請(qǐng)問樓主有原理圖嗎
回復(fù)

使用道具 舉報(bào)

9#
ID:216341 發(fā)表于 2020-3-18 21:34 | 只看該作者
謝謝樓主,正學(xué)習(xí)應(yīng)用這個(gè)模塊。下載來參考一下!
回復(fù)

使用道具 舉報(bào)

10#
ID:711024 發(fā)表于 2020-3-19 09:17 | 只看該作者
有點(diǎn)意思�。。�!
回復(fù)

使用道具 舉報(bào)

11#
ID:696168 發(fā)表于 2020-3-24 19:57 來自手機(jī) | 只看該作者
無語了
回復(fù)

使用道具 舉報(bào)

12#
ID:783157 發(fā)表于 2020-6-18 13:58 | 只看該作者
你好,請(qǐng)問一下可以發(fā)qq嗎
回復(fù)

使用道具 舉報(bào)

13#
ID:60263 發(fā)表于 2020-7-7 10:22 | 只看該作者
正是需要參考的,謝謝!
回復(fù)

使用道具 舉報(bào)

14#
ID:997784 發(fā)表于 2022-1-3 10:04 | 只看該作者
樓主,仿真圖可以發(fā)出來嗎
回復(fù)

使用道具 舉報(bào)

15#
ID:661945 發(fā)表于 2022-1-4 17:54 | 只看該作者
這個(gè)模塊我也買了兩塊,沒傳感器,后來一直在吃灰中
回復(fù)

使用道具 舉報(bào)

16#
ID:617449 發(fā)表于 2022-1-4 18:12 | 只看該作者
HX711電子秤仿真文件(不含源程序)

電子稱仿真.rar (19.31 KB, 下載次數(shù): 10)

回復(fù)

使用道具 舉報(bào)

17#
ID:696267 發(fā)表于 2022-3-17 15:05 | 只看該作者
感謝 這個(gè)數(shù)碼管能直接顯示嗎!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表