欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
HX711 5K壓力傳感器配套程序
[打印本頁]
作者:
TTCC
時間:
2017-7-28 16:51
標題:
HX711 5K壓力傳感器配套程序
0.png
(43.72 KB, 下載次數: 60)
下載附件
2017-7-28 17:42 上傳
單片機源程序如下:
#include "main.h"
#include "LCD1602.h"
#include "HX711.h"
unsigned long HX711_Buffer = 0;
unsigned long Weight_Maopi = 0,Weight_Shiwu = 0;
char Price_Count = 0;
unsigned char KEY_NUM = 0;
unsigned char Price_Buffer[3] = {0x00,0x00,0x00};
unsigned long Money = 0;
bit Flag_OK = 0;
//****************************************************
//主函數
//****************************************************
void main()
{
Init_LCD1602(); //初始化LCD1602
LCD1602_write_com(0x80); //指針設置
LCD1602_write_word("Welcome to use! "); //開機畫面第一行
Delay_ms(2000); //延時2s
loop:Price_Count = 0;
Price_Buffer[0] = 0;
Price_Buffer[1] = 0;
Price_Buffer[2] = 0;
Flag_OK = 0;
LCD1602_write_com(0x80); //指針設置
LCD1602_write_word("+WEI |PRI | MON ");
LCD1602_write_com(0x80+0x40); //指針設置
LCD1602_write_word("0.000| . | . ");
Get_Maopi(); //稱毛皮重量
while(1)
{
if( Flag_OK == 0)
{
Get_Weight(); //稱重
//顯示當前重量
LCD1602_write_com(0x80+0x40);
LCD1602_write_data(Weight_Shiwu/1000 + 0x30);
LCD1602_write_data('.');
LCD1602_write_data(Weight_Shiwu%1000/100 + 0x30);
LCD1602_write_data(Weight_Shiwu%100/10 + 0x30);
LCD1602_write_data(Weight_Shiwu%10 + 0x30);
}
KEY_NUM = KEY_Scan();
if( KEY_NUM != 0x55) //當返回的不是初值時候,確認按鍵按下。
{
if(KEY_NUM == 16) //數字A鍵,去皮功能
{
Get_Maopi(); //去皮
}
if(KEY_NUM == 15) //數字B鍵清除鍵,二次測量
{
goto loop;
}
if(KEY_NUM == 12) //數字C輸入單價錯誤時返回上一步
{
Price_Count--;
if( Price_Count < 0)
{
Price_Count = 0;
}
Price_Buffer[Price_Count] = 0; //清除上一個輸入的數據
switch(Price_Count)
{
case 0:
LCD1602_write_com(0x80+0x40+6);
LCD1602_write_data(' ');
break;
case 1:
LCD1602_write_com(0x80+0x40+7);
LCD1602_write_data(' ');
break;
case 2:
LCD1602_write_com(0x80+0x40+9);
LCD1602_write_data(' ');
break;
default : break;
}
}
if(KEY_NUM == 13) //數字D鍵,計算總價
{
Money = Price_Buffer[0] * 100 + Price_Buffer[1] * 10 + Price_Buffer[2];
Money = Money * Weight_Shiwu / 1000;
LCD1602_write_com(0x80+0x40+11);
LCD1602_write_data(Money/1000 + 0x30);
LCD1602_write_data(Money%1000/100 + 0x30);
LCD1602_write_data(Money%100/10 + 0x30);
LCD1602_write_data('.');
LCD1602_write_data(Money%10 + 0x30);
Flag_OK = 1;
}
if(KEY_NUM >= 0 && KEY_NUM <= 9) //顯示輸入的價格值
{
Price_Buffer[Price_Count] = KEY_NUM;
switch(Price_Count)
{
case 0:
LCD1602_write_com(0x80+0x40+6);
LCD1602_write_data(Price_Buffer[0] + 0x30);
break;
case 1:
LCD1602_write_com(0x80+0x40+7);
LCD1602_write_data(Price_Buffer[1] + 0x30);
break;
case 2:
LCD1602_write_com(0x80+0x40+9);
LCD1602_write_data(Price_Buffer[2] + 0x30);
break;
default : break;
}
Price_Count++;
if( Price_Count >= 3)
{
Price_Count = 3;
}
}
}
}
}
//****************************************************
//矩陣鍵盤掃描
//****************************************************
unsigned char KEY_Scan()
{
unsigned char temp = 0;
unsigned char com = 0x55 , com1 = 0 , com2 = 0;
P3=0xf0;
if(P3!=0xf0)
{
com1=P3;
P3=0x0f;
com2=P3;
}
P3=0xf0;
while(P3!=0xf0);
temp=com1|com2;
if(temp==0xee)com=1;//數字1
if(temp==0xed)com=4;//數字4
if(temp==0xeb)com=7;//數字7
if(temp==0xe7)com=11;//備用鍵*號鍵
if(temp==0xd7)com=0;//數字0
if(temp==0xb7)com=14;//備用鍵*號鍵
if(temp==0xde)com=2; //數字2
if(temp==0xdd)com=5; //數字5
if(temp==0xdb)com=8;//數字8
if(temp==0xbe)com=3;//數字3
if(temp==0xbd)com=6; //數字6
if(temp==0xbb)com=9;//數字9
if(temp==0x7e)com=16;//數字A鍵,去皮功能
if(temp==0x7d)com=15;//數字B鍵清除鍵,二次測量
if(temp==0x7b)com=12;//數字C輸入單價錯誤時返回上一步
if(temp==0x77)com=13;//數字D鍵,計算總價
return(com);
}
//****************************************************
//稱重
//****************************************************
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; //獲取實物的AD采樣數值。
Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/4.22+0.05); //計算實物的實際重量
//因為不同的傳感器特性曲線不一樣,因此,每一個傳感器需要矯正這里的4.30這個除數。
//當發現測試出來的重量偏大時,增加該數值。
//如果測試出來的重量偏小時,減小改數值。
//該數值一般在4.0-5.0之間。因傳感器不同而定。
//+0.05是為了四舍五入百分位
Buzzer = 1; //關閉警報
}
// else if(HX711_Buffer < Weight_Maopi - 30)
// {
// Buzzer = 0; //負重量報警
// }
// else if(HX711_Buffer > Weight_Maopi + 24970) //大于5Kg的最大量程,報警
// {
// Buzzer = 0;
// }
if(Weight_Shiwu > 5000 || HX711_Buffer < Weight_Maopi - 30)
{
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
5K壓力傳感器配套程序V2.5(最新).rar
(45.11 KB, 下載次數: 32)
2017-7-28 16:50 上傳
點擊文件名下載附件
5K壓力傳感器配套程序
下載積分: 黑幣 -5
作者:
dream602
時間:
2019-4-3 10:56
感謝樓主
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1