基于51单片机的智能电子秤.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
基于51单⽚机的智能电⼦秤 1.概述 (1)系统原理 本电⼦秤系统利⽤压⼒传感器采集因压⼒变化产⽣的电压信号,经过电压放⼤电路放⼤,然后再经过模数转换器转换为数字信号,最后把数 字信号送⼊单⽚机。单⽚机经过相应的处理后,得出当前所称物品的重量及总额,然后再显⽰出来。此外,还可通过键盘设定所称物品的价 格。主要技术指标为:称量范围0~5kg;分度值0.001kg;电源DC1.5V(⼀节5号电池供电)。 (2)功能 a.量程:0-5Kg b.可结合键盘输⼊货物单价,并计算出总价格 c.具有去⽪、休眠、切换量程等功能 d.输出的重量分度值为0.001Kg,并采⽤四舍五⼊ 2.硬件电路设计 (1)系统硬件框图 系统硬件由6个部分组成:控制器部分、测量部分、报警部分、数据显⽰部分、键盘部分、和电路电源部分,系统设计总体⽅案框图,如 图。 (2)压⼒信号处理电路 a. 压⼒信号处理电路主要分为两部分,⼀部分是压⼒传感器,主要是将压⼒信号转换为电信号,压⼒传感器内部电路图,如图。 本设计采⽤SP20C-G501电阻应变式传感器,其最⼤量程为7.5 Kg.称重传感器由组合式S型梁结构及⾦属箔式应变计构成,具有过载保护装 置。 b.压⼒信号处理电路另⼀部分为AD转换电路,主要功能为将模拟信号转换为数字信号,供单⽚机处理。本AD转换芯⽚采⽤电⼦秤专⽤模 拟/数字(A/D)转换器芯⽚hx711对传感器信号进⾏调理转换,是⼀款专为⾼精度电⼦秤⽽设计的24 位A/D 转换器芯⽚,电路如图。 (3)总体硬件电路图 由于其他电路都是⽐较常规的电路,就贴上总体的电路供⼤家参考。 原理图 PCB电路图 3.软件设计 总体程序主要分为五部分: 1.键盘驱动程序 2.AD采集处理程序 3.LCD12864驱动程序 4.定时器中断程序 5.主程序 这⾥我就只贴出部分程序(详细的程序可下载源码去看) (1)键盘驱动程序 #include "Main.h" #define KEY_PORT P3 //按键输⼊单⽚机端⼝ #define KEY_MASK 0xF0 //掩码 #define KEY_SEARCH_STATUS 0 #define KEY_ACK_STATUS 1 #define KEY_REALEASE_STATUS 2 sbit Beep = P1^3; //sbit类似于宏定义,可以在其他⽂件⽤到时重复声明,不可在头⽂件⽤extern sbit声明 /******************************************************************** 函数名称: UINT_8 KeyRead() 功能简介: 状态机键盘扫描 ⼊⼝参数: ⽆ 返回值 :扫描的键值 *********************************************************************/ UINT_8 KeyRead(void) { static UINT_8 KeyStatus = KEY_SEARCH_STATUS, KeyCurPress = 0; //定义状态变量KeyStatus为静态局部变量,初始化为检测状态 UINT_8 KeyValue = 0; //定义状态变量KeyCurPress为静态局部变量,初始化为0(⽆按键按下) KEY_PORT = KEY_MASK; //把KEYPORT前四⾏拉低,通过与KEYMASK列检测是否有按键按下 KeyValue = (~KEY_PORT) & KEY_MASK; //KEYPORT⾼四位其中⼀个为0时证明有按键按下,KeyValue不为0 switch (KeyStatus) //初始状态为KEY_SEARCH_STATUS { case KEY_SEARCH_STATUS : //扫描状态 { if (KeyValue) { KeyStatus = KEY_ACK_STATUS; //转到确认状态 } return 0; //返回键值为0 } break; case KEY_ACK_STATUS : //确认状态 { if (!KeyValue) { KeyStatus = KEY_SEARCH_STATUS; //如果是抖动引起的就回到扫描态,进⼊确认态 } else //确认按键按下 { TR1 = 1; //确认有按键按下时开启定时器1中断 KEY_PORT = 0XFE; //把第⼀⾏拉低,检测哪⼀列被按下 switch (KEY_PORT) { case 0XEE: KeyCurPress = KEY1; break; //KeyCurPress的值为静态局部变量,可以保存 case 0XDE: KeyCurPress = KEY2
剩余10页未读,继续阅读
- 粉丝: 168
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助