标题:
stm32电子秤源码
[打印本页]
作者:
w千与千寻
时间:
2017-8-17 15:30
标题:
stm32电子秤源码
本人亲试,可以实现,电子秤制作学习
所有资料51hei提供下载:
电子秤.rar
(587.49 KB, 下载次数: 173)
2017-8-17 17:31 上传
点击文件名下载附件
电子秤源码,需要的同学可以下载试一下
下载积分: 黑币 -5
单片机源程序如下:
#include <stm32f10x_lib.h>
#include "STM32_Init.h"
#include "stm32f10x_it.h"
#include "main.h"
#include "delay.h"
#include "sys.h"
#include "lcd12864.h"
#include "scale_key.h"
#include "scale_lcd.h"
#include "keyboard.h"
#include "hx711.h"
#include "timer.h"
#define weightNum 0x1FF22
//定义变量
u8 keyNum; //按键位
u16 outWeightNum; //去皮重
u8 pointNum; //小数点的位置
u8 saveMoneyFlag; //保存单价的次数
u8 countNum; //当前数的位置
Thing curr, moneyOne, moneyTwo, moneyThree;
//按键反应函数
void funManage(void)
{
switch(keyNum)
{
case Clear : //清除:去皮指示、去皮量、单价、E2PROM价格
Skey_Clear();
break;
case Total : //多次单次金额总价
Skey_Total();
break;
case OutWeight : //去皮:当前重量,去皮后每次的AD值都要减去当前值才计算重量
Skey_OutWeight();
break;
case SetZero : //清掉价格
Skey_SetZero();
break;
case Save : //存储当前金额
Skey_Save();
break;
case Zero : break;
case One : break;
case Two : break;
case Three :break;
case Four : break;
case Five : break;
case Six : break;
case Server :break;
case Eight :break;
case Nine :break;
case Point :
Skey_OneToNine();
break;
default : break;
}
}
//12864 显示函数
void disManage(void)
{
switch(keyNum)
{
case Clear : //清除:去皮指示、去皮量、单价、E2PROM价格
DIS_Init();
break;
case Total : //多次单次金额总价
DIS_Body();
break;
case OutWeight : //去皮:当前重量,去皮后每次的AD值都要减去当前值才计算重量
DIS_OutWeight();
break;
case SetZero : //清掉价格
DIS_Body();
break;
case Save : //存储当前金额
DIS_Save();
break;
case Money1 : //金额1
DIS_Money1();
break;
case Money2 : //金额2
DIS_Money2();
break;
case Money3 : //金额3
DIS_Money3();
break;
case Zero :
case One :
case Two :
case Three :
case Four :
case Five :
case Six :
case Server :
case Eight :
case Nine :
case Point :
if(countNum > 5)
{
DIS_MoreLimit();
}
else
{
DIS_Body();
}
break;
default : //显示重量的值
DIS_Body();
break;
}
}
unsigned long temp;
int main()
{
u8 i = 0;
stm32_Init();
SysTickInit();
LCD_Init();
DIS_Init();
// Timerx_Init(5000,7199);//10Khz的计数频率,计数到5000为500ms
curr.weight = 0;
curr.weightZero = 0;
curr.money = 0;
// DIS_Init();
// LCD_WriteCMD(0x01); //清屏
// while(1);
// while(1)
// {
//
// temp = GetValueMidTui();
// //temp >>= 6;
// LCD_WriteCMD(0x90);
// LCD_WriteNum(temp);
//
// LCD_WriteCMD(0x80);
// if(temp < 0x20085)
// {
// LCD_WriteNum(0);
// } else
// {
// temp -= 0x20080;
// LCD_WriteNum(temp);
// }
// delay_ms(100);
// LCD_WriteCMD(0x80);
// LCD_WriteString(" ");
// }
while(1)
{
keyNum = Key_Scan(); // 键盘扫描
if(keyNum != 255)
{
funManage();
//功能实现
}
else
{
curr.weight = GetValueMidTui(); //重量 滤波
if(curr.weight > (weightNum - outWeightNum))
{
curr.weight = 0;
} else
{
curr.weight = (weightNum - outWeightNum) - curr.weight;
}
//AD采集
}
if(keyNum != 255)
{
disManage();
}
else
{
DIS_Body();
}
}
}
复制代码
作者:
龙軒
时间:
2017-9-15 17:59
最近实习正想坐这个,参考下楼主的😃
作者:
windx1
时间:
2017-10-11 22:53
有没有电路图
作者:
天朝贱民
时间:
2018-6-21 21:23
真的好,就是没有黑币下载
作者:
w_yh2000
时间:
2018-6-22 10:39
好贴,谢谢。
作者:
jxchen
时间:
2019-1-20 20:38
好贴,谢谢
作者:
一念123
时间:
2019-3-27 10:30
谢谢楼主的资源。
作者:
一如既往s
时间:
2019-5-9 10:26
太棒了
作者:
agentzhang
时间:
2019-12-13 18:20
非常感谢
作者:
我是大旺
时间:
2021-11-13 10:29
怎么一编译显示有8个错误
作者:
我是大旺
时间:
2021-11-13 10:30
这是用32哪个板子
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1