久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 基于51單片機HX711壓力檢測程序及手機藍牙APP控制 [打印本頁]

作者: 51hei圓圓    時間: 2025-5-23 19:25
標題: 基于51單片機HX711壓力檢測程序及手機藍牙APP控制
HX711壓力檢測,用LCD1602,包含app的e4a文件源碼
通過51單片機檢測壓力,將數據通過編寫的藍牙APP發送到手機顯示,同時手機可以控制設定的壓力值。

電路原理圖如下:


e4a源碼:

制作出來的HX711壓力檢測實物圖如下:


單片機源程序如下:
  1. #include<reg51.h>
  2. #include "HX711.h"
  3. #include "LCD1602.h"
  4. #include "eeprom52.h"

  5. // char UART_data;
  6. // char shuju;
  7. /**********按鍵定義*********/
  8. sbit SKY_1=P1^3;//校準
  9. sbit SKY_2=P1^4;//加
  10. sbit SKY_3=P1^5;//減
  11. bit  SKY_1_flag=0;//防抖標志位
  12. bit  SKY_2_flag=0;
  13. bit  SKY_3_flag=0;
  14. sbit SKY_4=P1^6;//減
  15. /*********蜂鳴器***********/
  16. sbit BEEP=P1^0;
  17. /***********稱重定義區***********/
  18. unsigned long Weight_Maopi = 0;
  19. long Weight_Shiwu = 0;
  20. long Weight_Warn=2000;//報警值
  21. /********向app發送數據字符串定義區****/
  22. uchar see_add=0;//
  23. bit sendFlag=0;
  24. uchar saa[13];
  25. uchar UART_data; //定義串口接收數據變量
  26. //校準參數
  27. //因為不同的傳感器特性曲線不是很一致,因此,每一個傳感器需要矯正這里這個參數才能使測量值很準確。
  28. //當發現測試出來的重量偏大時,增加該數值。
  29. //如果測試出來的重量偏小時,減小改數值。
  30. //該值可以為小數
  31. #define GapValue 410
  32. //****************************************************
  33. //MS延時函數(12M晶振下測試)
  34. //****************************************************
  35. void Delay_ms(unsigned int n)
  36. {
  37.         unsigned int  i,j;
  38.         for(i=0;i<n;i++)
  39.                 for(j=0;j<123;j++);
  40. }
  41. void sendChar(uchar Value)  //發送一個字節數據  
  42. {  
  43.      SBUF = Value;      
  44.             while(!TI);
  45.                 TI=0;
  46. }
  47. void sendAll(uchar *pValue) //發送一組數據  
  48. {  
  49.     while((*pValue) != '\0')   //如果沒有發送完畢就繼續發  
  50.     {  
  51.         sendChar(*pValue);      //發送1字節數據  
  52.         pValue++;                 //指向下1個字節  
  53.     }  
  54. }
  55. //****************************************************
  56. //獲取毛皮重量
  57. //****************************************************
  58. void Get_Maopi()
  59. {
  60.         Weight_Maopi = HX711_Read();        
  61. }
  62. //****************************************************
  63. //稱重
  64. //****************************************************
  65. void Get_Weight()
  66. {
  67.         Weight_Shiwu = HX711_Read();
  68.         Weight_Shiwu = Weight_Shiwu - Weight_Maopi;                //獲取凈重
  69.         if(Weight_Shiwu > 0)                        
  70.         {        
  71.                 Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/GapValue);         //計算實物的實際重量
  72.                                                                                                                                                 
  73.                                                                                                                                                 
  74.                 if(Weight_Shiwu > Weight_Warn)                //超重報警
  75.                 {
  76.                         BEEP = 0;        
  77.                 }
  78.                 else
  79.                 {
  80.                         BEEP = 1;
  81.                 }
  82.         }
  83.         else
  84.         {
  85.                 Weight_Shiwu = 0;
  86.         }
  87.         
  88. }
  89. //1602顯示函數
  90. void dis_play()
  91. {
  92.         LCD1602_write(0,0x80);
  93.         LCD1602_writebyte("weighting:");
  94.         LCD1602_write(1,Weight_Shiwu/1000 + 0X30);
  95.         LCD1602_write(1,Weight_Shiwu%1000/100 + 0X30);
  96.         LCD1602_write(1,Weight_Shiwu%100/10 + 0X30);
  97.         LCD1602_write(1,Weight_Shiwu%10 + 0X30);
  98.         LCD1602_writebyte("g  ");
  99.         LCD1602_write(0,0xc0);
  100.         LCD1602_writebyte("warning: ");
  101.         if(Weight_Warn/1000==0) LCD1602_writebyte("0");  else LCD1602_write(1,Weight_Warn/1000+ 0X30);
  102.         if(Weight_Warn%1000/100==0) LCD1602_writebyte("0"); else LCD1602_write(1,Weight_Warn%1000/100+ 0X30);
  103.         if(Weight_Warn%100/10==0) LCD1602_writebyte("0"); else LCD1602_write(1,Weight_Warn%100/10+ 0X30);
  104.         if(Weight_Warn%10==0) LCD1602_writebyte("0"); else LCD1602_write(1,Weight_Warn%10+ 0X30);
  105.         LCD1602_writebyte("g  ");

  106. }
  107. //按鍵控制
  108. void sky_kg()
  109. {
  110.         if(SKY_1==0||UART_data==0x31)
  111.         {
  112.                 UART_data=0;
  113.                 if(SKY_1_flag==1)
  114.                 {
  115.                         SKY_1_flag=0;
  116.                         Get_Maopi();                        //去皮
  117.                 }
  118.         }
  119.         else
  120.                  SKY_1_flag=1;

  121.         if(SKY_2==0||UART_data==0x32)
  122.         {
  123.                 UART_data=0;
  124.                 if(SKY_2_flag==1)
  125.                 {
  126.                         SKY_2_flag=0;
  127.                         Weight_Warn+=100;
  128.                         if(Weight_Warn>5000)
  129.                                 Weight_Warn=5000;
  130.                         SectorErase(0x2000);
  131.                         byte_write(0x2000,Weight_Warn);
  132.                 }
  133.         }
  134.         else               
  135.         {
  136.                 SKY_2_flag=1;
  137.         }
  138.          if(SKY_3==0||UART_data==0x33)
  139.                 {
  140.                         UART_data=0;
  141.                         if(SKY_3_flag==1)
  142.                         {
  143.                                 SKY_3_flag=0;
  144.                                 Weight_Warn-=100;
  145.                                 if(Weight_Warn<0)
  146.                                         Weight_Warn=0;
  147.                                 SectorErase(0x2000);
  148.                                 byte_write(0x2000,Weight_Warn);
  149.                         }
  150.                 }
  151.                 else
  152.                 {
  153.                          SKY_3_flag=1;
  154.                 }
  155. }
  156. /***********上電讀取************/
  157. void eeprom_red()
  158. {
  159.         Weight_Warn=byte_read(0x2000);
  160.         if(Weight_Warn>5000||Weight_Warn<0)
  161.                 Weight_Warn=2000;
  162. }

  163.   void chushihua()
  164.   {
  165.     TMOD=0X20;                        //定時器工作方式設計,方式2,自動重裝初值的8位定時器
  166.         TH1=0XFA;                        //設置波特率4800,此處晶振頻率是按12MHZ計算的
  167.         TL1=0XFA;
  168.         SCON=0X50;                         //設置串行口工作方式1,串行口允許接收
  169.         PCON=0X80;                        //波特率加倍
  170.         ES=1;                            //打開串行口中斷允許位
  171.         EA=1;                                 //打開總中斷
  172.         TR1=1;                                 //開啟定時器
  173.   }
  174. /********數據包發送函數**********/
  175. void steed()
  176. {
  177.                 saa[0]='d';
  178.                 saa[1]='a';
  179.                 saa[2]='t';
  180.                 saa[3]=Weight_Shiwu/1000 + 0X30;
  181.                 saa[4]=Weight_Shiwu%1000/100 + 0X30;
  182.                 saa[5]=Weight_Shiwu%100/10 + 0X30;
  183.                 saa[6]=Weight_Shiwu%10 + 0X30;

  184.                 saa[7]=Weight_Warn/1000+0X30;
  185.                 saa[8]=Weight_Warn%1000/100 + 0X30;
  186.                 saa[9]=Weight_Warn%100/10 + 0X30;
  187.                 saa[10]=Weight_Warn%10 + 0X30;

  188.                 saa[11]='t';
  189.                 saa[12]='a';
  190.                 SKY_4=0;
  191.                 sendAll(saa);
  192. }
  193.   /*主函數*/
  194.   void main()
  195.   {
  196. ……………………

  197. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

單片機代碼和apk文件e4a文件 51hei附件下載:
信號采集控制器源碼.7z (5.33 MB, 下載次數: 0)





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 免费视频一区二区 | 国产精品毛片无码 | 日本一卡精品视频免费 | 日韩一区二区成人 | 久久午夜精品福利一区二区 | 成人做爰999| 国产精品视频久久 | 综合久久综合久久 | 99综合在线 | 欧美日韩大陆 | 欧美综合国产精品久久丁香 | 亚州精品天堂中文字幕 | 久久久91 | 亚洲一区二区网站 | 亚洲精品久久久久久久久久久 | 蜜桃免费一区二区三区 | 国产欧美日韩 | 91麻豆精品国产91久久久久久 | 91久久婷婷 | h视频免费在线观看 | 国产做a爱免费视频 | 成人免费在线视频 | 中文字幕一区在线观看视频 | 人人爽日日躁夜夜躁尤物 | 久久精品一级 | 久久精品色欧美aⅴ一区二区 | 免费国产一区二区 | 婷婷综合久久 | 亚洲成人中文字幕 | 热99视频| 日韩欧美一区二区在线播放 | 黄色av免费网站 | 久草视频在线播放 | 成人综合在线视频 | 日韩在线小视频 | 亚洲精品天堂 | 欧美激情欧美激情在线五月 | 久久精品国产一区二区电影 | av永久 | 日韩一区二区三区av | 伊人影院99 |