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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于HX711的小型稱重電子秤STM32代碼

  [復制鏈接]
跳轉到指定樓層
樓主
ID:157238 發表于 2019-1-7 22:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
去年學校電子設計大賽的題目:小型電子秤
所用器件:stm32f103zet6最小系統板 ,HX711,壓變片,按鍵,3.2寸顯示屏。
IDE:keil

單片機源程序如下:
  1. /************************************************************************************
  2. *功能:實現重物的稱量,去皮,最大承重5kg
  3. *所用器件:stm32f103zet6最小系統板,HX711芯片,壓變片,按鍵,蜂鳴器,野火3.2寸顯示屏,干電池供電。
  4. *時間:18.6.5
  5. *************************************************************************************/
  6. //#include "stm32f10x.h"
  7. #include "bsp_ili9341_lcd.h"
  8. #include "delay.h"
  9. #include "HX711.h"
  10. #include "usart.h"
  11. #include "beep.h"
  12. #include "led.h"
  13. #include "key.h"
  14. void Saomiao(void);
  15.        
  16. unsigned int price_count=0;//計算價格的位數
  17. unsigned int money=0;//價格值
  18. unsigned char price_buffer[3]={0x00,0x00,0x00};//用于存儲價格的值。
  19. char  disbuff1[100], disbuff2[100],disbuff3[100],disbuff4[100],disbuff5[100],disbuff6[100],disbuff7[100];//用于存儲重量,皮重,單價,總價等數據。
  20. unsigned int z=0 ,z1,z2,z3,zz[3]={0x00,0x00,0x00};//用來存儲計算三次重物的值

  21. int main(void)
  22. {       
  23.        
  24.         ILI9341_Init();
  25.         HX711_Init();
  26.         delay_init();
  27.         LED_Init();
  28.         BEEP_Init();
  29.         KEY_Init();
  30.         NVIC_Configuration();          //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
  31.         uart_init(9600);         //串口初始化為9600
  32.         ILI9341_GramScan(5);
  33.         LCD_SetFont(&Font16x24);//設置字體為8x16大小
  34.         LCD_SetColors(BLUE ,WHITE);//設置字體的顏色為紅色,背景的顏色為白色
  35.   ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH );//設置清屏,顯示全黑
  36.         Get_Fur();                                //稱毛皮重量
  37.         printf("\r\n 毛皮重量的大小為=%d g\r\n:",Weight_Fur);//打印毛皮的重量
  38.        
  39.         //delay_ms(1000);
  40.         delay_ms(1000);
  41.         Get_Fur();                                //重新獲取毛皮重量
  42.   printf("\r\n 重新獲取的毛皮重量的大小為=%d g\r\n:",Weight_Fur);//重新打印毛皮的重量
  43.        
  44. //        sprintf(disbuff1,"Fur: %d ",Weight_Fur);//使用c標準庫把變量轉化成字符串
  45. //  LCD_ClearLine(LINE(1));        //清除單行文字
  46. //  ILI9341_DispStringLine_EN(LINE(1),disbuff1);//然后顯示該字符串即可,其它變量也是這樣處理
  47.         ILI9341_DispStringLine_EN(LINE(0),"Weight:");
  48.         ILI9341_DispStringLine_EN(LINE(2),"Gross:");
  49.         ILI9341_DispStringLine_EN(LINE(4),"Unit:");
  50.         ILI9341_DispStringLine_EN(LINE(6),"Total:");
  51.         LED_ON ;
  52.         BEEP_ON ;
  53.         delay_ms(500);
  54.         LED_OFF;
  55.         BEEP_OFF;
  56. //LCD_SetColors(WHITE ,BLUE );//設置背景前景色
  57.         while(1)
  58.         {
  59. //                zz[z]=Get_Zhongwu();
  60. //                z++;
  61. //                 if(z==2)
  62. //                 {
  63. //                        z=0;
  64. //                         Weight_Zhongwu = (zz[0]+zz[1]+zz[2])/3;
  65. //                 }
  66. //                z1=Get_Zhongwu();
  67. //                //delay_ms(100);
  68. //                z2=Get_Zhongwu();
  69. //                //delay_ms(100);
  70. //                z3=Get_Zhongwu();
  71. //                //delay_ms(100);
  72. //                Weight_Zhongwu=(z1+z2+z3)/3;
  73.                 Get_Zhongwu ();
  74.                 printf("凈重量 = %.1f g\r\n",Weight_Zhongwu); //打印所稱量重物的質量(去除毛皮之后)
  75.     sprintf(disbuff1,"Weight: %.1f ",Weight_Zhongwu);//使用c標準庫把變量轉化成字符串
  76.     LCD_ClearLine(LINE(0));        //清除單行文字
  77.     ILI9341_DispStringLine_EN(LINE(0),disbuff1);//然后顯示該字符串即可,其它變量也是這樣處理
  78.                 //delay_ms(1000);
  79.     Saomiao();

  80.         }
  81. }

  82. void Saomiao(void)
  83. {
  84.         u8 key_num;
  85.         key_num=Key_Scan(1);
  86.         if(key_num)
  87.         {
  88.         if(key_num==11)
  89.         {               
  90.                
  91.                 while(!KEY10)
  92.                 Get_Fur();//獲得毛皮的重量
  93.                
  94.           sprintf(disbuff1,"Gross: %.1f ",Weight_Zhongwu );//使用c標準庫把變量轉化成字符串
  95.     LCD_ClearLine(LINE(2));        //清除單行文字
  96.     ILI9341_DispStringLine_EN(LINE(2),disbuff1);//然后顯示該字符串即可,其它變量也是這樣處理
  97.         }
  98.                 if(key_num==12)//清除數據進行二次測量
  99.         {
  100.                 while(!KEY11)
  101.                 price_count =0;
  102.                 price_buffer[0]=0;
  103.                 price_buffer[1]=0;
  104.                 price_buffer[2]=0;
  105.                 LCD_ClearLine(LINE(2));        //清除單行文字
  106.                 LCD_ClearLine(LINE(4));        //清除單行文字
  107.                 LCD_ClearLine(LINE(6));        //清除單行文字
  108.                 ILI9341_DispStringLine_EN(LINE(2),"Gross:");
  109.                 ILI9341_DispStringLine_EN(LINE(4),"Unit:");//清除單價信息
  110.           ILI9341_DispStringLine_EN(LINE(6),"Total:");//清除總價信息
  111.         }
  112.         if(key_num==13)//計算總價
  113.         {
  114.                 while(!KEY12)
  115.                        
  116.                 printf("\r\n 打印總價:\r\n");
  117.                 printf("\r\n 第一位=%d\r\n",price_buffer[0]);
  118.                 printf("\r\n 第二位=%d\r\n",price_buffer[1]);
  119.                 printf("\r\n 第三位=%d\r\n",price_buffer[2]);
  120.                 if(price_buffer[2]==0)
  121.                 {
  122.                         if(price_count ==2)
  123.                         {
  124.                 money=price_buffer[0]*10+price_buffer[1];//獲取輸入的價格
  125.                         }
  126.                         if(price_count==3)
  127.                         {
  128.                                 money = price_buffer[0]*100;
  129.                         }
  130.                         if(price_count ==1)
  131.                         {
  132.                                 money=price_buffer[0];
  133.                         }
  134.                 }
  135.                 else if(price_buffer[2]==0)
  136.                 {
  137.                         money=price_buffer[0]*10+price_buffer[1];//獲取輸入的價格
  138.                 }
  139.                 else money=price_buffer[0]*100+price_buffer[1]*10+price_buffer[2];
  140.                 printf("\r\n輸入總價為:%d\r\n",money);
  141.                 printf("\r\n重物=%d\r\n",Weight_Zhongwu);
  142.                 money=money*Weight_Zhongwu; //計算出總價
  143.                 sprintf(disbuff4,"Total: %d ",money);//使用c標準庫把變量轉化成字符串
  144.     LCD_ClearLine(LINE(6));        //清除單行文字
  145.     ILI9341_DispStringLine_EN(LINE(6),disbuff4);//然后顯示該字符串即可,其它變量也是這樣處理
  146.         }
  147.         if(key_num>=1&&key_num<=10)//當輸入的是數字時,最多能輸入三位的數字
  148.         {
  149.                 while(!KEY0||!KEY1||!KEY2||!KEY3||!KEY4||!KEY5||!KEY6||!KEY7||!KEY8||!KEY9)
  150.                 printf("\r\n 輸入的數字是=%d\r\n ",key_num);
  151.                 price_buffer[price_count]=key_num-1;
  152.                 price_count++;//                             1.2.3表輸入的順序,前中后表位置
  153.                
  154.                
  155.                 sprintf(disbuff5," %d ",price_buffer[2]);//使用c標準庫把變量轉化成字符串
  156.     ILI9341_DispString_EN ( 95 ,96,disbuff5);//前3
  157.     sprintf(disbuff6," %d ",price_buffer[1]);//使用c標準庫把變量轉化成字符串
  158.     ILI9341_DispString_EN ( 150 ,96,disbuff6);//中2
  159.                 sprintf(disbuff7," %d ",price_buffer[0]);//使用c標準庫把變量轉化成字符串
  160.     ILI9341_DispString_EN ( 205 ,96,disbuff7);//后1
  161.                
  162. //                sprintf(disbuff3,"Unit: %d ",price_buffer[0]+price_buffer[1]+price_buffer[2]+price_buffer[3]);//使用c標準庫把變量轉化成字符串
  163. //      LCD_ClearLine(LINE(4));        //清除單行文字3
  164. //      ILI9341_DispStringLine_EN(LINE(4),disbuff3);//然后顯示該字符串即可,其它變量也是這樣處理
  165.                 if(price_count==2)
  166.                 {
  167.                         ILI9341_DispString_EN ( 150 ,96,disbuff7);//中
  168.                         ILI9341_DispString_EN ( 95 ,96,disbuff5);//前3
  169.                          ILI9341_DispString_EN ( 205 ,96,disbuff6);//后1
  170. //                        sprintf(disbuff3,"Unit: %d ",price_buffer[0]);//使用c標準庫把變量轉化成字符串
  171. //      LCD_ClearLine(LINE(3));        //清除單行文字
  172. //      ILI9341_DispStringLine_EN(LINE(3),disbuff3);//然后顯示該字符串即可,其它變量也是這樣處理
  173.                 }
  174.                 if(price_count==3)
  175.                 {
  176.                         ILI9341_DispString_EN ( 150 ,96,disbuff6);//中2
  177.                         ILI9341_DispString_EN ( 95 ,96,disbuff7);//前3
  178.                         ILI9341_DispString_EN ( 205 ,96,disbuff5);//后1
  179.                         price_count=3;
  180.                 }
  181.         }
  182. }
  183. }
復制代碼

所有資料51hei提供下載:
電子秤程序.7z (204.09 KB, 下載次數: 309)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:163277 發表于 2019-3-14 17:56 | 只看該作者
這個可以出數據了,謝謝
回復

使用道具 舉報

板凳
ID:256651 發表于 2019-3-27 14:51 | 只看該作者
如果我的顯示屏是ALIENTEK 4.3寸的LCD呢 我該怎么改這個程序
回復

使用道具 舉報

地板
ID:510593 發表于 2019-9-29 20:10 | 只看該作者
哥可以發我一份嗎,我黑米不夠
回復

使用道具 舉報

5#
ID:680632 發表于 2020-1-3 20:41 來自手機 | 只看該作者
老哥,我精英版怎么用
回復

使用道具 舉報

6#
ID:364328 發表于 2020-2-19 18:14 | 只看該作者
請問有沒有原理圖啊
回復

使用道具 舉報

7#
ID:866661 發表于 2021-2-7 15:43 | 只看該作者
老鐵,原理圖一起呀!
回復

使用道具 舉報

8#
ID:883378 發表于 2021-2-24 10:13 | 只看該作者
怎么接線呢
  我是小白不要打我i
回復

使用道具 舉報

9#
ID:196383 發表于 2021-3-11 10:08 | 只看該作者
老鐵,原理圖一起呀!
回復

使用道具 舉報

10#
ID:866661 發表于 2021-3-12 16:28 | 只看該作者
發個原理圖,老鐵!
回復

使用道具 舉報

11#
ID:699392 發表于 2021-7-9 21:19 來自手機 | 只看該作者
正好有這個芯片,放著吃灰好幾年了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成年黄网站色视频 | 日韩在线免费视频 | 中文字幕 国产 | 99热在线观看精品 | 成人网在线观看 | 久久亚洲一区二区三区四区 | 国产真实乱对白精彩久久小说 | 久久国产视频播放 | 黄色中文字幕 | 亚洲免费在线播放 | 国产精品mv在线观看 | av片在线观看 | 国产日韩欧美中文 | 日韩视频在线观看一区二区 | 中文字幕在线不卡播放 | 日本成人午夜影院 | 亚洲精品黄 | 亚洲高清在线 | 久久丝袜| 日韩精品一区二区三区视频播放 | 午夜视频网站 | 亚洲精品久久久蜜桃 | 日本成人在线免费视频 | av天空| 免费看淫片 | 国精产品一区二区三区 | 国产成人精品午夜视频免费 | 成人网在线看 | 欧美激情精品久久久久 | 夜夜夜久久 | 日本久久一区二区三区 | 亚洲av一级毛片 | 欧美在线高清 | 国产一区二区三区在线视频 | 99精品在线观看 | 色吊丝2 | 国产一区二区在线播放视频 | 国产成人av在线 | 亚州中文字幕 | 久久一二| 四虎影院在线播放 |