实时重量计算,附带可分部拿走部分的重量,OLED显示 同时可通过串口上位机显示拿去部分的重量
单片机源程序如下:
- #include "delay.h"
- #include "sys.h"
- #include "oled.h"
- #include "bmp.h"
- #include "adc.h"
- #include "pwm.h"
- #include "key.h"
- #include "pwm.h"
- #include "HX711.h"
- #include "usart.h"
- int main(void)
- {
-
- char current[]={"current:"};
- char take[]={"t a k e:"};
- char carry[]={"current:"};
- u8 i=0 ;
- SystemInit(); /*系统时钟初始化*/
- delay_init(); /*延时函数初始化*/
- OLED_Init(); /*OLED初始化*/
- OLED_Clear(); /*OLED清屏*/
- Init_HX711pin();
- USART1_Config();
- delay_ms(100);
- key_init();
- OLED_ShowString(0,2,current,16);
- OLED_ShowString(0,4,take,16);
- Get_Weight();
- offset=Weight_Shiwu;
- while(1)
- {
- Get_Weight();
- tot=Weight_Shiwu-offset;
- if(tot<=0)tot=0;
- OLED_ShowNum(80,2,tot,6,16);
-
- if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10) == 0)
- {
- delay_ms(500);
- if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10) == 0)
- {
- i++;
- }
- }
- if(i==1)
- {
- tot_old=tot;
- i=2;
- err=0;
- OLED_ShowChar(75,4,'*',16);
- OLED_ShowChar(65,4,' ',16);
- OLED_ShowNum(80,4,err,6,16);
- }
- if(i==3)
- {
- err=tot_old-tot;
- i=0;
- if(err<=0)
- {
- err=-err;
- }
- OLED_ShowChar(75,4,'*',16);
- OLED_ShowChar(65,4,'*',16);
- OLED_ShowNum(80,4,err,6,16);
- USART_SendData(USART1,err);
- }
- // USART_SendData(USART1,err);
- }
-
- }
-
复制代码
所有资料51hei提供下载:
电子秤串口 oled 拿去重量.7z
(206.11 KB, 下载次数: 87)
|