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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

APT32F1023單片機HX711_HX720稱重傳感器原理圖和源代碼分享

[復制鏈接]
跳轉到指定樓層
樓主
APT32F1023H8S6(SSOP-24封裝)MCU是由愛普特微電子推出的基于平頭哥半導體RISC-V內核開發的32位高性能、低成本單片機,現特將基于APT32F1023H8S6單片機的HX711_H720稱重傳感器原理圖和源代碼(3位數碼管顯示)分享給大家,方便大家學習、使用!
制作出來的實物圖如下:


電路原理圖如下:


單片機源程序如下:
  1. /*******************************************************************************
  2. 文件名: HX711/HX720稱重顯示模塊主控程序
  3. 編  寫: 李工/Michael Lee
  4. 修  改:
  5. 版  本: V1.0
  6. 備  注:
  7.         1.時鐘選擇MCU內部48M RC振蕩器;
  8.             2.接口說明:
  9.                   APT32F1023-24PIN              -----                 外部設備
  10.               ******************           輕觸按鍵          ******************
  11.                          PB0.3(Key_1)               -----                  清零鍵
  12.                          PA0.0(Key_2)               -----                  設置鍵
  13.                          PA0.15(Key_3)              -----                  去皮鍵
  14.                          PA0.1(Key_4)               -----                   加鍵
  15.               ******************         3位共陰數碼管       ******************
  16.                         PA0.5                   -----              SG12(SEG1_COM)
  17.                                 PA0.12                  -----               SG9(SEG2_COM)
  18.                                 PA0.13                  -----               SG8(SEG3_COM)
  19.                                 PB0.4                   -----                 SG11(SEG_A)
  20.                                 PA0.14                  -----                  SG7(SEG_B)
  21.                                 PA0.8                   -----                  SG4(SEG_C)
  22.                                 PA0.10                  -----                  SG2(SEG_D)
  23.                                 PA0.11                  -----                  SG1(SEG_E)
  24.                                 PB0.5                   -----                 SG10(SEG_F)
  25.                                 PB0.2                   -----                  SG5(SEG_G)
  26.                                 PA0.9                   -----                 SG3(SEG_DP)
  27.                   ******************            HX720            ******************
  28.                         PB0.1                   -----                 HX720_SCK
  29.                                 PB0.0                   -----                 HX720_DOT
  30.                 3.免費申請APT32系列單片機/MCU下載仿真器、學習板及FAE技術支持、軟硬件
  31. *******************************************************************************/
  32. //加載頭文件
  33. #include "sys_clk.h"
  34. #include "iostring.h"
  35. #include "ifc.h"
  36. #include "csp.h"
  37. #include <string.h>
  38. #include <drv/gpio.h>
  39. #include <drv/pin.h>
  40. #include <drv/adc.h>
  41. #include <drv/bt.h>
  42. #include "led_display_weight.h"                 //加載LED數碼管顯示稱重數值頭文件
  43. #include "hx720_drive.h"                        //加載24位ADC稱重芯片HX720驅動程序頭文件

  44. //宏定義
  45. /*** 變量類型 ***/
  46. #define uchar unsigned char
  47. #define uint unsigned int
  48. #define ushort unsigned short
  49. #define ulong unsigned long
  50. /*** 按鍵IO口 ***/
  51. #define Key1_Input csi_gpio_port_read(GPIOB0,0x0008)//讀取PB0.3端口高低電平值(Key1/清零鍵輸入)

  52. //外部函數
  53. /*** 系統啟動 ***/
  54. extern void system_init(void);
  55. extern void board_init(void);

  56. //外部變量

  57. //主函數標志位

  58. //主函數變量
  59. float Weight_Test = 0;                          //定義、保存測得的重量值(大于0)
  60. ulong Weight_24Bit_ADC_Now = 0;                 //定義、保存當前讀取到的HX720稱重芯片24位ADC轉換值
  61. ulong Weight_24Bit_ADC_Zero = 0;                //定義、保存零點重量24位 ADC轉換值(實測大約為8752222左右)

  62.                            /********** GPIO口初始化操作 ***********/
  63. /*******************************************************************************
  64. 函數名: GPIO_Init()
  65. 功  能: GPIO口初始化
  66. 參  數: 無
  67. 返回值: 無
  68. *******************************************************************************/
  69. void GPIO_Init(void)
  70. {
  71.         //按鍵
  72.         csi_pin_set_mux(PB03, PB03_INPUT);          //配置PB0.3端口為輸入模式(Key_1鍵)
  73.         csi_pin_pull_mode(PB03, GPIO_PULLUP);       //上拉輸入
  74.         
  75.         //HX720稱重芯片
  76.         csi_pin_set_mux(PB01, PB01_OUTPUT);                //配置PB0.1端口為輸出模式(HX720_SCK)
  77.         csi_pin_output_mode(PB01, GPIO_PUSH_PULL);        //推挽輸出
  78.         csi_pin_set_mux(PB00, PB00_INPUT);          //配置PB0.0端口為輸入模式(HX720_DOT)
  79.         csi_pin_pull_mode(PB00, GPIO_PULLNONE);     //浮空輸入
  80.         
  81.         /*** 數碼管 ***/
  82.         //SG12(SEG1_COM)
  83.         csi_pin_set_mux(PA05, PA05_OUTPUT);                //配置PA0.5端口為輸出模式
  84.         csi_pin_output_mode(PA05, GPIO_PUSH_PULL);        //推挽輸出
  85.         //SG9(SEG2_COM)
  86.         csi_pin_set_mux(PA012, PA012_OUTPUT);            //配置PA0.12端口為輸出模式
  87.         csi_pin_output_mode(PA012, GPIO_PUSH_PULL);        //推挽輸出
  88.         //SG8(SEG3_COM)
  89.         csi_pin_set_mux(PA013, PA013_OUTPUT);            //配置PA0.13端口為輸出模式
  90.         csi_pin_output_mode(PA013, GPIO_PUSH_PULL);        //推挽輸出
  91.         //SG11(SEG_A)
  92.         csi_pin_set_mux(PB04, PB04_OUTPUT);                //配置PB0.4端口為輸出模式
  93.         csi_pin_output_mode(PB04, GPIO_PUSH_PULL);        //推挽輸出
  94.         //SG7(SEG_B)
  95.         csi_pin_set_mux(PA014, PA014_OUTPUT);            //配置PA0.14端口為輸出模式
  96.         csi_pin_output_mode(PA014, GPIO_PUSH_PULL);        //推挽輸出
  97.         //SG4(SEG_C)
  98.         csi_pin_set_mux(PA08, PA08_OUTPUT);                //配置PA0.8端口為輸出模式
  99.         csi_pin_output_mode(PA08, GPIO_PUSH_PULL);        //推挽輸出
  100.         //SG2(SEG_D)
  101.         csi_pin_set_mux(PA010, PA010_OUTPUT);            //配置PA0.10端口為輸出模式
  102.         csi_pin_output_mode(PA010, GPIO_PUSH_PULL);        //推挽輸出
  103.         //SG1(SEG_E)
  104.         csi_pin_set_mux(PA011, PA011_OUTPUT);            //配置PA0.11端口為輸出模式
  105.         csi_pin_output_mode(PA011, GPIO_PUSH_PULL);        //推挽輸出
  106.         //SG10(SEG_F)
  107.         csi_pin_set_mux(PB05, PB05_OUTPUT);                //配置PB0.5端口為輸出模式
  108.         csi_pin_output_mode(PB05, GPIO_PUSH_PULL);        //推挽輸出
  109.         //SG5(SEG_G)
  110.         csi_pin_set_mux(PB02, PB02_OUTPUT);                //配置PB0.2端口為輸出模式
  111.         csi_pin_output_mode(PB02, GPIO_PUSH_PULL);        //推挽輸出
  112.         //SG3(SEG_DP)
  113.         csi_pin_set_mux(PA09, PA09_OUTPUT);                //配置PA0.9端口為輸出模式
  114.         csi_pin_output_mode(PA09, GPIO_PUSH_PULL);        //推挽輸出
  115.         //主頻CLO輸出
  116. //        csi_pin_set_mux(PA02, PA02_CLO);            //設置主頻輸出引腳為PA0.2腳
  117. //  csi_clo_config(CLO_SYSCLK, CLO_DIV8);       //CLO分頻系數為8,輸出頻率=主頻48MHz/8=6MHz
  118. }

  119. //主函數
  120. int main()
  121. {
  122.         uint i;                                     //定義臨時變量,方便后續程序使用
  123.         //系統、GPIO口等初始化
  124.         system_init();                              //系統時鐘、TICK等配置(系統時鐘48MHz 1分頻)
  125. //        board_init();                               //UART2硬件串口配置(系統參數、信息打印用)
  126.         GPIO_Init();                                //GPIO口初始化
  127.         
  128.         //主循環
  129.         while(1)
  130.         {
  131.                 //按下“清零”鍵,標定零點重量ADC轉換值,并對稱重值清零
  132.                 if(Key1_Input==0x0000)                  //按下“清零”鍵
  133.                 {
  134.                         Weight_24Bit_ADC_Now = HX720_Read();//讀取當前HX720稱重芯片24位ADC轉換值
  135.                         Weight_24Bit_ADC_Zero = Weight_24Bit_ADC_Now;//賦值零點重量24位ADC轉換值
  136.                         Weight_Test = 0;
  137.                 }
  138.                 //當前沒有按下“清零”鍵
  139.                 else
  140.                 {
  141.                     //獲取當前重量24位ADC轉換值
  142.                         Weight_24Bit_ADC_Now = HX720_Read();//先讀取當前HX720稱重芯片24位ADC轉換值
  143.                     //計算重量值
  144.                     if(Weight_24Bit_ADC_Now<Weight_24Bit_ADC_Zero)//當前ADC轉換值比零點重量ADC轉換值小(電子秤被抬起,傳感器反方向形變)
  145.                         {
  146.                                                                                                 //空操作,稱重出現錯誤(也可以做負數顯示處理,本案則不顯示負數稱重)
  147.                     }
  148.                         else                                //當前ADC轉換值大于等于零點重量ADC轉換值
  149.                     {
  150.                                 Weight_Test = (Weight_24Bit_ADC_Now - Weight_24Bit_ADC_Zero)/106.5;//單位:g
  151.                                 //(106.5數值和使用的傳感器線性度有關,可以多次用標準砝碼測量、計算獲取)
  152.                                 Weight_Test = Weight_Test/1000; //單位:Kg
  153.                     }
  154.                 }
  155.                 //延時并顯示稱重值
  156.                 for(i=0;i<100;i++)                      //循環多次顯示重量值,并延時
  157.                 {
  158.                         Display_Weight(Weight_Test);        //數碼管顯示當前稱重值
  159.                 }
  160.         }
  161.         
  162.     return 0;
  163. }
復制代碼

所有資料51hei附件下載:
基于APT32F1023單片機HX711_HX720稱重傳感器原理圖和源代碼分享.7z (3.14 MB, 下載次數: 28)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:72649 發表于 2023-5-5 05:01 來自手機 | 只看該作者
是不是可以用XH711接上熱敏電阻測量溫度?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区久久 | 成人在线免费电影 | 久久黄色网 | 久久久这里都是精品 | www.av7788.com | 羞羞的视频免费观看 | 亚洲精品欧美一区二区三区 | 91n成人 | 亚洲国产成人av好男人在线观看 | 中国一级特黄毛片大片 | 国产精品久久久久久婷婷天堂 | 福利片在线看 | 日本三级电影在线观看视频 | 一区二区三区四区在线视频 | 久久久夜夜夜 | 日本精品一区二区三区在线观看视频 | 全免费a级毛片免费看视频免 | 欧美中文字幕一区二区三区亚洲 | 成人免费区一区二区三区 | 欧美日韩中文在线 | 国产ts人妖系列高潮 | 欧美中文字幕一区二区 | 国产一区h | 偷拍亚洲色图 | 亚洲网站在线观看 | 三级视频久久 | 日韩av黄色 | 国产精品夜间视频香蕉 | 国产日韩欧美在线观看 | 欧美在线一区二区三区 | 久久精品免费 | 97av视频在线 | 欧美日韩最新 | www.久久精品 | 蜜桃一区二区三区 | 九九九精品视频 | 成人在线免费 | 国产精品欧美一区二区三区不卡 | 91在线视频网址 | 国产亚洲精品精品国产亚洲综合 | 国产精品揄拍一区二区久久国内亚洲精 |