ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:691.07KB ,
资源ID:28009939      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28009939.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(称重压力传感器HX711AD模块电路+程序.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

称重压力传感器HX711AD模块电路+程序.docx

1、称重压力传感器HX711AD模块电路+程序 称重模块电路+程序(测试通过) 总体电路电源+串口通讯单片机最小系统:存储模块+下载模块+蜂鸣器+矩阵键盘称重模块:淘宝链接:主程序:#include main.h#include LCD1602.h#include HX711.hunsigned long HX711_Buffer = 0;unsigned long Weight_Maopi = 0,Weight_Shiwu = 0;char Price_Count = 0;unsigned char KEY_NUM = 0;unsigned char Price_Buffer3 = 0x00,0

2、x00,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); /延时2sloop:Price_Count = 0; Price_Buffer0 = 0; Price_Buffer1 = 0; Price_Buffer2 = 0; Flag_OK = 0; LCD1602_writ

3、e_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(.); L

4、CD1602_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_NU

5、M = 12) /数字C输入单价错误时返回上一步 Price_Count-; if( Price_Count = 0 & KEY_NUM = 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=0x

6、ee)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=0x7

7、e)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 = Weigh

8、t_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 + 2497

9、0) /大于5Kg的最大量程,报警 / / Buzzer = 0;/ 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;in;i+) for(j=0

10、;j123;j+);1602.H文件#ifndef _LCD1602_H_#define _LCD1602_H_#include /LCD1602 IO设置#define LCD1602_PORT P0sbit LCD1602_RS = P25;sbit LCD1602_RW = P26;sbit LCD1602_EN = P27;/函数或者变量声明extern void LCD1602_delay_ms(unsigned int n);extern void LCD1602_write_com(unsigned char com);extern void LCD1602_write_data

11、(unsigned char dat);extern void LCD1602_write_word(unsigned char *s);extern void Init_LCD1602();#endif1602.C程序 :#include LCD1602.h/*/MS延时函数(12M晶振下测试)/*void LCD1602_delay_ms(unsigned int n) unsigned int i,j; for(i=0;in;i+) for(j=0;j0) LCD1602_write_data(*s); s+; void Init_LCD1602() LCD1602_EN = 0; LC

12、D1602_RW = 0; /设置为写状态 LCD1602_write_com(0x38); /显示模式设定 LCD1602_write_com(0x0c); /开关显示、光标有无设置、光标闪烁设置 LCD1602_write_com(0x06); /写一个字符后指针加一 LCD1602_write_com(0x01); /清屏指令称重模块.H文件:#ifndef _HX711_H_#define _HX711_H_#include #include /IO设置sbit HX711_DOUT=P20; sbit HX711_SCK=P21; /函数或者变量声明extern void Delay

13、_hx711_us(void);extern unsigned long HX711_Read(void);#endif称重模块.C程序#include HX711.h/*/延时函数/*void Delay_hx711_us(void) _nop_(); _nop_();/*/读取HX711/*unsigned long HX711_Read(void) /增益128 unsigned long count; unsigned char i; HX711_DOUT=1; Delay_hx711_us(); HX711_SCK=0; count=0; while(HX711_DOUT); for(i=0;i24;i+) HX711_SCK=1; count=count1; HX711_SCK=0; if(HX711_DOUT) count+; HX711_SCK=1; count=count0x800000;/第25个脉冲下降沿来时,转换数据 Delay_hx711_us(); HX711_SCK=0; return(count);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1