#include <reg52.h>
#include <intrins.h>
#include"LCD1602.h"
#include"HX711.h"
void Delay_ms(unsigned int n) ;
void Get_Maopi();
void Get_Weight();
unsigned char KEY_Scan();
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,Flag_OK1 = 0;
unsigned int num;
void Delay_ms(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<123;j++);
}
void main()
{
num=0;
Init_LCD1602(); //初始化LCD1602
LCD1602_write_com(0x80);
LCD1602_write_word("Welcome to use! "); //指针设置
//开机画面第一行
Delay_ms(2000);
loop: //延时2s
loop1:Price_Count = 0;
Price_Buffer[0] = 0;
Price_Buffer[1] = 0;
Price_Buffer[2] = 0;
Flag_OK1 = 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)
{
LCD1602_write_com(0x80+ 0x10);
LCD1602_write_word(" WEI |PRI| MON ");
// for(num=0;num<=16;num++)
// {
//
// LCD1602_write_com(0x1C);
// Delay_ms(1000);
// }
Get_Weight();
Delay_ms(200);
if(Weight_Shiwu > 5000)
{
Flag_OK1 = 1;
Flag_OK = 1 ;
}
if( Flag_OK1 == 1)
{ unsigned int i,j;
for(i=0;i<32;i++)
{
LCD1602_write_com(0x01);
Delay_ms(10);
LCD1602_write_com(0x80);
LCD1602_write_word(" OVERWEIGHT ");
LCD1602_write_com(0x80+0x40+ num);
LCD1602_write_word("!!!!!!!!!!!! ");
Delay_ms(200);
num++;
if(num>16)
{num=0;}
}
Weight_Shiwu = 0;
goto loop;
}
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)
{
Get_Maopi();
Price_Count = 0;
Price_Buffer[0] = 0;
Price_Buffer[1] = 0;
Price_Buffer[2] = 0;
Flag_OK1 = 0;
Flag_OK = 0;
goto loop1;
}
if(KEY_NUM == 13)
{
Money=Price_Buffer[0]*100+Price_Buffer[1]*10+Price_Buffer[2];
Money=Money*Weight_Shiwu/100;
LCD1602_write_com(0x80+0x40+11);
LCD1602_write_data(Money/1000+0x30);
LCD1602_write_data(Money%1000/100+0x30);
LCD1602_write_data('.');
LCD1602_write_data(Money%100/10+0x30);
LCD1602_write_data(Money%10+0x30);
Flag_OK=1; //数字D键,计算总价
}
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 = 0;
}
}
}
}
} //矩阵键盘
unsigned char KEY_Scan()
{
unsigned char temp=0;
unsigned char com=0x55,com1=0,com2=0;
P1=0xf0;
if(P1!=0xf0)
{com1=P1;
P1=0x0f;
com2=P1;
}
P1=0xf0;
while(P1!=0xf0);
temp=com1|com2;
if(temp==0xee)com=1;
if(temp==0xed)com=4;
if(temp==0xeb)com=7;
if(temp==0xe7)com=16;
if(temp==0xde)com=2;
if(temp==0xdd)com=5;
if(temp==0xdb)com=8;
if(temp==0xd7)com=0;
if(temp==0xbe)com=3;
if(temp==0xbd)com=6;
if(temp==0xbb)com=9;
if(temp==0xb7)com=13;
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/3.70+0.05); //计算实物的实际重量
}
}
void Get_Maopi()
{
HX711_Buffer = HX711_Read();
Weight_Maopi = HX711_Buffer/100;
}
没有合适的资源?快使用搜索试试~ 我知道了~
PWM.zip_brass2s3_pwm_pwm stm32_rocketepr_zip
共63个文件
bak:10个
obj:7个
c:7个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 57 浏览量
2022-09-15
01:32:00
上传
评论
收藏 127KB ZIP 举报
温馨提示
STM32输出PWM波,。。。。。。。。。。。
资源推荐
资源详情
资源评论
收起资源包目录
PWM.zip (63个子文件)
PWM
main.OBJ 7KB
PWM_uvopt.bak 55KB
aa.hex 5KB
LCD1602.LST 3KB
HX711.c 667B
PWM.OBJ 7KB
key.h 106B
PWM.LST 6KB
main.c 5KB
cc.c 931B
Last Loaded PWM.DBK 78KB
aa_uvproj.bak 13KB
HX711.LST 2KB
PWM.hex 3KB
BB.OBJ 4KB
main.LST 14KB
HX711.h 249B
PWM.DSN 86KB
PWM.PWI 766B
aa.lnp 53B
C1_uvproj.bak 0B
aa.uvopt 6KB
PWM.plg 166B
LCD1602.c 999B
key.c 2KB
C1.uvproj 13KB
PWM.Uv2.bak 2KB
PWM1 3KB
aa.M51 16KB
PWM1.M51 5KB
key.LST 5KB
PWM.lnp 38B
PWM1.lnp 38B
C1.plg 161B
PWM.uvproj 13KB
PWM.uvopt 55KB
C1.uvopt 53KB
PWM.c 3KB
aa.build_log.htm 0B
PWM.opt.bak 980B
aa 12KB
cc.OBJ 3KB
PWM1.hex 922B
LCD1602.OBJ 4KB
aa.uvproj 14KB
LCD1602..h 0B
C1_uvopt.bak 53KB
aa.plg 161B
PWM 6KB
PWM.Opt 1KB
cc.LST 3KB
LCD1602.h 403B
HX711.OBJ 2KB
aa_uvopt.bak 57KB
key.obj 4KB
PWM_uvproj.bak 13KB
BB.c 928B
PWM.M51 10KB
PWM.Uv2 2KB
BB.LST 3KB
PWM_Opt.Bak 980B
aa.uvgui.guo 70KB
PWM_Uv2.Bak 2KB
共 63 条
- 1
资源评论
我虽横行却不霸道
- 粉丝: 75
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功