称重压力传感器HX711AD模块电路+程序(2)

2019-04-14 09:33

}

}

}

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(Money00/100 + 0x30); LCD1602_write_data(Money0/10 + 0x30); LCD1602_write_data('.');

LCD1602_write_data(Money + 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) { Buzzer = 0; }

//大于5Kg的最大量程,报警

if(Weight_Shiwu > 5000 || HX711_Buffer < Weight_Maopi - 30) { Buzzer = 0; } else { Buzzer = 1; }

}

//**************************************************** //获取毛皮重量

//**************************************************** void Get_Maopi() {

HX711_Buffer = HX711_Read();

Weight_Maopi = HX711_Buffer/100; }

//**************************************************** //MS延时函数(12M晶振下测试)

//**************************************************** void Delay_ms(unsigned int n) {

unsigned int i,j; for(i=0;i

1602.H文件

#ifndef __LCD1602_H__ #define __LCD1602_H__

#include

//LCD1602 IO设置

#define LCD1602_PORT P0 sbit LCD1602_RS = P2^5; sbit LCD1602_RW = P2^6; sbit LCD1602_EN = P2^7;

//函数或者变量声明

extern void LCD1602_delay_ms(unsigned int n);

extern void LCD1602_write_com(unsigned char com); extern void LCD1602_write_data(unsigned char dat); extern void LCD1602_write_word(unsigned char *s); extern void Init_LCD1602();

#endif

1602.C程序 :

#include \

//**************************************************** //MS延时函数(12M晶振下测试)

//**************************************************** void LCD1602_delay_ms(unsigned int n) {

unsigned int i,j; for(i=0;i

//**************************************************** //写指令

//**************************************************** void LCD1602_write_com(unsigned char com) {

LCD1602_RS = 0;

LCD1602_delay_ms(1); LCD1602_EN = 1;

LCD1602_PORT = com; LCD1602_delay_ms(1); LCD1602_EN = 0; }

//**************************************************** //写数据

//**************************************************** void LCD1602_write_data(unsigned char dat) {

LCD1602_RS = 1;

LCD1602_delay_ms(1); LCD1602_PORT = dat; LCD1602_EN = 1;

LCD1602_delay_ms(1); LCD1602_EN = 0; }


称重压力传感器HX711AD模块电路+程序(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:部分品牌TV CPU型号与简单代换

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: