標(biāo)題:
STM32 HX711+LCD12864電子秤程序
[打印本頁]
作者:
z102656274
時(shí)間:
2017-8-1 16:20
標(biāo)題:
STM32 HX711+LCD12864電子秤程序
從別處找的電子秤程序STM32單片機(jī)主控 hx711芯片+12864液晶顯示 希望對(duì)大家有幫助
0.png
(53.45 KB, 下載次數(shù): 54)
下載附件
2017-8-1 19:23 上傳
stm32單片機(jī)主程序如下:
/******************** (C) COPYRIGHT 2012 WildFire Team **************************
* 文件名 :main.c
* 描述 :3個(gè)LED在 SysTick 的控制下,以500ms的頻率閃爍。
* 實(shí)驗(yàn)平臺(tái):野火STM32開發(fā)板
* 庫版本 :ST3.5.0
* 作者 :wildfire team
**********************************************************************************/
#include "stm32f10x.h"
#include "SysTick.h"
#include "12864.h"
#include "HX711.h"
uint32_t ticktime;
unsigned long HX711_Buffer = 0;
unsigned int Weight_Maopi = 0,Weight_Shiwu = 0;
char Price_Count = 0;
unsigned char KEY_NUM = 0;
unsigned char Price_Buffer[5] = {0x00,0x00,0x00,0x00,0x00};
unsigned long Money = 0;
unsigned char Flag_OK = 0;
unsigned char temp = 0,temp1 = 0xf7;
/*
* 函數(shù)名:main
* 描述 :主函數(shù)
* 輸入 :無
* 輸出 :無
*/
void Key_GPIO_Config(void)
{ GPIO_InitTypeDef GPIO_InitStructTRIG;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructTRIG.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2;
GPIO_InitStructTRIG.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructTRIG.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructTRIG);
GPIO_SetBits(GPIOA, GPIO_Pin_1|GPIO_Pin_2 );
}
/********************************************************/
void Led_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_SetBits(GPIOC, GPIO_Pin_3 );
}
/************************************************************/
void Get_Weight()
{
HX711_Buffer = HX711_Read();
HX711_Buffer = HX711_Buffer/100;
if(HX711_Buffer >= Weight_Maopi)
{
Weight_Shiwu = HX711_Buffer;
Weight_Shiwu = Weight_Shiwu - Weight_Maopi; //獲取實(shí)物的AD采樣數(shù)值。
Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/2.135+0.05); //計(jì)算實(shí)物的實(shí)際重量
//因?yàn)椴煌膫鞲衅魈匦郧不一樣,因此,每一個(gè)傳感器需要矯正這里的2.15這個(gè)除數(shù)。
//當(dāng)發(fā)現(xiàn)測(cè)試出來的重量偏大時(shí),增加該數(shù)值。
//如果測(cè)試出來的重量偏小時(shí),減小改數(shù)值。
//該數(shù)值一般在2.15附近調(diào)整之間。因傳感器不同而定。
//+0.05是為了四舍五入百分位
if( Weight_Shiwu > 20000 )
{
GPIO_ResetBits(GPIOC, GPIO_Pin_3 ); //打開警報(bào)
}
else
{
GPIO_SetBits(GPIOC, GPIO_Pin_3 ); //關(guān)閉警報(bào)
}
}
else if(HX711_Buffer < Weight_Maopi - 30)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_3 ); //負(fù)重量報(bào)警
}
}
//****************************************************
//獲取毛皮重量
//****************************************************
void Get_Maopi()
{
HX711_Buffer = HX711_Read();
Weight_Maopi = HX711_Buffer/100;
}
/******************************************************************/
/******************************************************************/
int main(void)
{
Led_GPIO_Config();
Key_GPIO_Config();
/* 配置SysTick 為10us中斷一次 */
SysTick_Init();
/*********************************************************************/
/************************************************************************/
LCD12864_InitPort(); //端口初始化
LCD12864_Init(); //液晶初始化
HX711_init();
// LCD12864_Pos(3,5);
LCD_ShowString(1,0,"初始化……");
/* LCD12864_NoWaitIdle_COM_Write(0x80); //指針設(shè)置
LCD12864_write_word("※※※※※※※※");
LCD12864_NoWaitIdle_COM_Write(0x90); //指針設(shè)置
LCD12864_write_word("※※歡迎使用※※");
LCD12864_NoWaitIdle_COM_Write(0x88); //指針設(shè)置
LCD12864_write_word("※20公斤電子秤※");
LCD12864_NoWaitIdle_COM_Write(0x98); //指針設(shè)置
LCD12864_write_word("※※※※※※※※"); */
Get_Maopi(); //稱毛皮重量
delay_ms(10000); //延時(shí)10s,等待傳感器穩(wěn)定
Price_Count = 0;
Price_Buffer[0] = 0;
Price_Buffer[1] = 0;
Price_Buffer[2] = 0;
Price_Buffer[3] = 0;
Price_Buffer[4] = 0;
Money = 0;
Flag_OK = 0;
Get_Maopi(); //稱毛皮重量
LCD12864_Clr(); //清空
while(1)
{
delay_ms(500);
LCD12864_Clr();
LCD_ShowString(1,0,"上海工程技術(shù)大學(xué)");
LCD_ShowString(2,0,"大學(xué)生創(chuàng)新項(xiàng)目");
// LCD12684_Wdat(i+0x30);
Get_Weight(); //稱重
//顯示當(dāng)前重量
LCD_ShowString(3,0,"重量");
LCD12864_Pos(3,2);
// LCD12684_Wdat('');
if( Weight_Shiwu/10000 != 0)
{
LCD12684_Wdat(Weight_Shiwu/10000 + 0x30);
}
else
{
LCD12684_Wdat(' ');
}
LCD12684_Wdat(Weight_Shiwu%10000/1000 + 0x30);
LCD12684_Wdat('.');
LCD12684_Wdat(Weight_Shiwu%1000/100 + 0x30);
LCD12684_Wdat(Weight_Shiwu%100/10 + 0x30);
LCD12684_Wdat(Weight_Shiwu%10 + 0x30);
LCD_ShowString(3,6,"kg");
}
}
/******************* (C) COPYRIGHT 2012 WildFire Team *****END OF FILE************/
復(fù)制代碼
完整源碼51黑下載地址:
HX711+lcd12864.rar
(286.38 KB, 下載次數(shù): 166)
2017-8-1 19:25 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
746228432
時(shí)間:
2018-3-7 09:37
串行還是并行
作者:
wjh_004
時(shí)間:
2019-1-3 16:48
正需要這樣的程序,下來看看
作者:
菜鳥鴻
時(shí)間:
2019-4-27 20:29
wjh_004 發(fā)表于 2019-1-3 16:48
正需要這樣的程序,下來看看
能給我發(fā)一份嗎。謝謝
1799835116@qq.com
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1