基于51单片机电子秤设计
基于51单片机的电子秤程序
基于51单片机的电子秤程序#include#include//#include "LCD1602.h"//#include "HX711.h"#define uint unsigned int#define uchar unsigned charsbit LCD1602_RS = P2^5;sbit LCD1602_RW = P2^6;sbit LCD1602_EN = P2^7;sbit HX711_DOUT=P2^0;sbit HX711_SCK=P2^1;unsigned long HX711_Buffer = 0;unsigned long Weight_Maopi = 0,Weight_Shiwu = 0;char Price_Count = 0;uchar KEY_NUM = 0;uchar Price_Buffer[3] = {0x00,0x00,0x00};unsigned long Money = 0;bit Flag_OK = 0;uchar com;//延时函数//**************************************************** void Delay__hx711_us(void){_nop_();_nop_();}void LCD1602_delay_ms(unsigned int n){unsigned int i,j;for(i=0;i<n;i++)< p="">for(j=0;j<123;j++);}void Delay_ms(unsigned int n){unsigned int i,j;for(i=0;i<n;i++)< p="">for(j=0;j<123;j++);}//**************************************************** //写指令//**************************************************** void LCD1602_write_com( uchar com){LCD1602_RS = 0;LCD1602_delay_ms(1);LCD1602_EN = 1;P0 = com;LCD1602_delay_ms(1);LCD1602_EN = 0;}//****************************************************//写数据//****************************************************void LCD1602_write_data( uchar dat){LCD1602_RS = 1;LCD1602_delay_ms(1);P0 = dat;LCD1602_EN = 1;LCD1602_delay_ms(1);LCD1602_EN = 0;}//****************************************************//连续写字符//****************************************************void LCD1602_write_word(unsigned char *s){while(*s>0){LCD1602_write_data(*s);s++;}}void Init_LCD1602(){LCD1602_EN = 0;LCD1602_RW = 0; //设置为写状态LCD1602_write_com(0x38); //显示模式设定LCD1602_write_com(0x0c); //开关显示、光标有无设置、光标闪烁设置LCD1602_write_com(0x06); //写一个字符后指针加一LCD1602_write_com(0x01); //清屏指令}//**************************************************** //矩阵键盘扫描//**************************************************** 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;//数字1if(temp==0xed)com=4;//数字4if(temp==0xeb)com=7;//数字7if(temp==0xe7)com=11;//备用键*号键if(temp==0xd7)com=0;//数字0if(temp==0xb7)com=14;//备用键*号键if(temp==0xde)com=2; //数字2if(temp==0xdd)com=5; //数字5if(temp==0xdb)com=8;//数字8if(temp==0xbe)com=3;//数字3if(temp==0xbd)com=6; //数字6if(temp==0xbb)com=9;//数字9if(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);}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;i<24;i++){HX711_SCK=1;count=count<<1;HX711_SCK=0;if(HX711_DOUT)count++;}HX711_SCK=1;count=count^0x800000;//第25个脉冲下降沿来时,转换数据Delay__hx711_us();HX711_SCK=0;return(count);}//****************************************************//称重//****************************************************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采样数值。
基于单片机的电子秤设计1-23.1
摘要本文设计了一种以51单片机来进行控制的电子秤系统,系统的电路部分由以下几个电路模块组成:数据采集和数据处理电路、模数转换电路、LED及蜂鸣器报警电路、最小系统电路、液晶显示电路、矩阵按键电路等。
接通电源后,单片机会把压力传感器输入的小信号进行放大处理及模数转换,通过按键设置单价在LCD1602上显示物体总价信息。
对于硬件设计部分,我们本着低成本,高效率,系统稳定可行的指导方针选取了一些实用的元器件进行设计。
而软件设计则采用模块化的设计方法,争取把软件设计得方便可读易操作。
文中还详细分析了应变式压力传感器在重量测量上的应用及其使用的原理,而HX711作为一个高精度的24位A/D转换器如何在模数转换的过程如何运作也有相应的介绍。
当然,这次设计的结果能够得到预期的效果也离不开其他各部分电路的相辅相成,我们也对一些配合电路做了简单介绍。
仿真部分则为我们的设计是否合理进行了初步验证。
最后,我们完成了实际电路的焊接,使得理论有了实物作为支撑,整个设计能够正常实现功能。
关键词:51单片机;电子称;压力传感器;模数转换;模块化设计ABSTRACTThe paper introduce a kind of electronic weighing system which based on Single-chip Microcomputer.At the beginning,some basic methods about MCU like the internal configuration ,working principle and how to program are introduced. Then ,how to measure an object using a strain type pressure transducer is introduced .Several circuit modules are contained in the design such as data acquisition and data processing circuit, analog to digital conversion circuit, LED and buzzer alarm circuit, minimum system circuit, LCD display module, matrix keyboard circuit, etc.When pressing the button , the detection is begun.the weak analog signal coming from the sensor will be amplified and converted into digital signal.Finally ,the processed signals will be transmitted to the microcomputer . the price is set by pressing different buttons and total price will be shown on the LCD1602.The hardware is designed to be stable,feasible and inexpensive,which will make the design better to be accepted.The software uses modular design.The principle and advantages of the application of the strain gauge pressure sensor to the weight measurement and the application of HX711 to the analog to digital conversion are analyzed in detail.The composition and working characteristics of other circuits are described as well.The feasibility of the circuit is verified by simulation. Finally, the design of the physical circuit is completed, which makes the expected results of the project be realized.Key words: 51 single chip microcomputer; electronic scale;strain pressure sensor; AD conversion; modular design;.目录1 引言 (1)1.1 课题研究的意义 (1)1.2 电子秤的发展现状 (1)1.3 设计内容和章节安排 (2)2 单片机简介 (3)2.1 单片机内部结构 (3)2.2 单片机特点及引脚介绍 (5)2.3 单片机中断系统 (7)2.4 单片机最小系统 (8)2.5 编程语言 (9)2.5.1 汇编语言 (9)2.5.2 C51语言 (9)3 单片机外围电路介绍 (10)3.1称重传感器介绍 (10)3.2 LCD1602液晶显示屏 (12)3.3 AD转换模块HX711 (14)4 硬件电路设计 (16)4.1 硬件电路总框图设计 (16)4.2 数据采集电路设计 (17)4.3 最小系统电路设计 (18)4.4 矩阵键盘电路设计 (19)4.5 LCD1602显示电路设计 (20)4.6 报警电路设计 (21)4.7 硬件电路原理总图 (22)5 软件设计 (23)5.1主程序流程图 (24)5.2键盘扫描程序 (24)5.3 HX711读取程序 (25)5.4 LCD1602写操作程序 (26)6 系统调试 (26)6.1 硬件调试 (27)6.2 软件调试 (27)7 总结及展望 (28)参考文献 (29)致谢 (30)1 引言1.1 课题研究的意义电子秤是一种利用杠杆平衡原理或根据胡克定理制成的衡器。
基于51单片机的多功能电子秤设计研究
基于51单片机的多功能电子秤设计研究摘要随着我国经济的飞速发展,各种新兴商品层出不穷,商品种类增多,度量工具有时是无法实现称量功能的,虽然作为度量工具的各种设备在不断的完善和改进,但是传统的度量工具,如杆秤、盘秤等还是存在着一些弊端和问题,如度量不够精确、效率低,还有一点就是容易被不法商贩作手脚,欺骗消费者,谋取非法的利益,而电子秤的出现就很好的避免了这些问题,本文将围绕51单片机的多功能电子秤的设计进行讨论和研究,希望文中的内容助于这种电子秤的推广应用。
关键词51单片机;多功能电子秤;设计研究基于51单片机的多功能电子秤和传统的度量工具相比,无论是精确度,还是操作方式都有着很明显的优势,电子秤精度高,使用方便简捷,而且电子秤的效率很高,能有效的避免不法商家在秤上弄虚作假,从而保护消费者利益。
1 电子秤工作原理要进行电子秤设计研究,就要从电子秤的工作原理说起。
电子秤中的压力传感器的作用是非常重要的,通常情况下压力传感器常采用电阻应变式,传感器在这里充当媒介的作用,即通过传感器将需要称量物品的重力转变成电压输出,经放大器放大电压过后,再经过A/D转换电路将电压变化的信息转变成相关的数据信息,之后由单片机完成最后的数据计算处理任务,数据处理之后在经由显示电路显示出称量重物的物重信息。
2 硬件部分在第一部分中讲述了电子秤的设计原理,本部分则是关于电子秤的硬件部分,具体的有压力传感器、模数转换以及显示电路。
2.1 压力传感器电子秤的压力传感器型号为FSGl5N1A型,是由Honeywell公司研制生产的。
这种类型的传感器是以压阻效应作为基本原理,同时采用了半导体材料,这里的半导体材料是作为感应测试组件的。
这里的提到的压阻效应主要是指当有外部压力作用在传感器的感测组件时,感测组件的压力值就会有相应的变化。
压力传感器利用这一特性,当这些半导体材料组件遇到外界压力后会发生变形收缩,这时组件的电阻值会随着压力的变化而变化。
基于单片机的智能电子秤设计
基于单片机的智能电子秤设计随着科技的不断发展,智能化和自动化已经成为我们生活中不可或缺的一部分。
在众多领域中,智能电子秤的设计与应用也越来越受到。
本文将介绍一种基于单片机的智能电子秤设计方案,该设计具有高精度、低成本、易于实现等优点,具有一定的实用价值。
一、概述智能电子秤是一种能够自动测量物体重量的设备,广泛应用于超市、菜市场等场所。
与传统的机械秤相比,智能电子秤具有测量精度高、使用方便、易于维护等优点。
而基于单片机的智能电子秤设计,更是将智能化和自动化技术融入到电子秤中,提高了设备的性能和可靠性。
二、设计原理基于单片机的智能电子秤设计主要是利用单片机的控制和数据处理能力,实现对物体重量的准确测量。
其核心部件为压力传感器和单片机。
压力传感器负责采集物体的重量信号,并将信号传输给单片机;单片机则对信号进行处理、分析和存储,同时控制显示屏显示物体的重量。
三、硬件设计1、单片机选择单片机是智能电子秤的核心部件,负责控制整个系统的运行。
本设计选用AT89C51单片机,该单片机具有低功耗、高性能、易于编程等优点,能够满足智能电子秤的设计要求。
2、压力传感器选择压力传感器是智能电子秤的重要组成部件,负责采集物体的重量信号。
本设计选用电阻应变式压力传感器,该传感器具有测量精度高、稳定性好、抗干扰能力强等优点。
3、显示模块选择显示模块负责将物体的重量信息呈现给用户。
本设计选用LED显示屏,该显示屏具有亮度高、视角广、寿命长等优点。
4、电源模块选择电源模块为整个系统提供稳定的电源,保证系统的正常运行。
本设计选用线性稳压电源,该电源具有输出电压稳定、纹波小、安全性高等优点。
四、软件设计软件设计是智能电子秤的关键部分之一,直接影响设备的性能和可靠性。
本设计的软件部分采用C语言编写,主要包括数据采集、数据处理、数据显示等模块。
具体流程如下:1、开机后,系统进行初始化操作;2、压力传感器采集物体的重量信号;3、单片机对采集到的信号进行处理和分析;4、单片机将处理后的数据存储到存储器中;5、单片机控制LED显示屏显示物体的重量信息;6、系统继续等待下一次测量。
基于51单片机的智能电子秤
基于51单片机的智能电子秤研究方案:基于51单片机的智能电子秤一、研究背景与意义随着人们生活质量的提高,对电子秤的精确度和智能化程度提出了更高的要求。
研发一种基于51单片机的智能电子秤具有重要的现实意义和市场前景。
本研究旨在利用51单片机技术,结合传感器原理以及数据采集和分析技术,设计和开发一种新型的智能电子秤,以满足人们对于健康和便捷生活的需求。
二、研究目标1. 设计一种基于51单片机的智能电子秤原型;2. 实现电子秤的重量测量、数据存储和数据展示功能;3. 评估该智能电子秤的测量精度和稳定性;4. 提出改进方法并进一步优化设计。
三、方案实施情况1. 硬件设计:a) 选择合适的传感器:选用高精度传感器进行重量测量;b) 电路设计:根据传感器的特点设计合适的电路板,用于放大、滤波、采样和通信等功能;c) 硬件连接:将传感器、显示屏、按键等硬件进行连接。
2. 软件设计:a) 采用51单片机作为核心,进行编程;b) 实现重量测量:通过合适的采样方法和算法,实时获取物体的重量;c) 数据存储与展示:将采集到的数据存储在内部存储器或外部存储器中,并通过显示屏展示给用户;d) 用户交互:设计一套用户友好的界面,使用户可以方便地和智能电子秤进行交互。
四、数据采集和分析1. 采集数据:在实验过程中,选择不同质量的物体进行重量测量,将采集到的数据以合适的格式存储起来。
2. 数据分析:a) 对采集到的数据进行基本统计分析,包括平均值、方差、偏差等;b) 评估智能电子秤的精确度和稳定性;c) 通过数据分析,找出可能的误差来源和改进方向。
五、实验结果分析与结论在以上实验和数据分析的基础上,得出以下结论:1. 通过对数据的统计和分析,验证了智能电子秤的测量精度和稳定性。
2. 针对可能存在的误差来源,提出了改进和优化的方法,如增加重量校准功能、改进传感器的精度等。
3. 通过用户体验和满意度调查,发现智能电子秤在用户中受到了广泛认可和好评,并能满足用户的需求。
51单片机电子秤程序设计
51单片机电子秤程序设计概述本文档介绍了如何使用51单片机(AT89C51)设计一个简单的电子秤程序。
通过该程序,电子秤能够测量物体的重量并实时显示在液晶显示屏上。
硬件准备在开始编写程序之前,我们需要准备以下硬件设备:- AT89C51单片机开发板- 电子秤传感器模块- 16x2液晶显示屏- 连接线程序设计以下是该电子秤的主要程序设计步骤:1. 引入必要的头文件include <reg51.h>include <lcd.h>2. 定义端口和变量sbit DOUT = P3^7; // 电子秤传感器数据接口float weight = 0; // 测量到的重量3. 初始化液晶显示屏void lcd_init(){// 在这里初始化液晶显示屏的相关设置}4. 启动AD转换void start_conversion(){// 在这里启动AD转换,将传感器的模拟数据转换为数字数据}5. 读取AD转换结果float read_conversion(){// 在这里读取AD转换结果并返回}6. 主程序void main(){lcd_init(); // 初始化液晶显示屏while (1){start_conversion(); // 启动AD转换weight = read_conversion(); // 读取AD转换结果// 将重量显示在液晶显示屏上lcd_gotoxy(1, 1); // 设置光标位置lcd_print("Weight: %.2f kg", weight); // 显示重量delay(500); // 延时一段时间,以控制刷新速度}}总结通过以上步骤,我们可以设计一个简单的51单片机电子秤程序。
该程序可以实时获取电子秤传感器的数据,并将测量到的重量显示在液晶显示屏上。
我们可以根据实际需求进行进一步的功能扩展和优化。
请注意,本文档仅提供了程序设计的概述,并未包含具体的代码实现。
基于51单片机电子秤设计
摘要电子秤是日常生活中常用的称重设备,广泛应用于超市、大中型商场、物流配送中心。
电子秤在结构和原理上取代了以杠杆平衡为原理的传统机械式称量工具。
相比传统的机械式称量工具,电子秤具有称量精度高、装机体积小、应用范围广、易于操作使用等优点,在外形布局、工作原理、结构和材料上都是全新的计量衡器。
微电子技术的发展为电子秤提出了改进的空间。
电子秤向着简单、便宜发展,智能化、精确的电子秤成为了人们的追求。
本简易电子秤以常见的AT89C51为核心,以电阻应变片采集应变数据,通过HX711放大并进行AD转换供单片机处理,用LCD1602显示所测量的重量,同时本电子秤系统还提供单价设置进行求价格的计算以及去皮功能,通过一些简单低成本的元器件就完成了一个功能齐全的电子秤的制作,将传统电子秤的成本进行了缩减。
关键词:电阻应变片 AT89C51 HX711 电子秤第一章方案与论证一、方案类型(一)方案一通过单片机为主控芯片,用应变片采集应变数据,通过专用仪表放大器INA128对采集到的信号进行放大,在配上模数转换芯片对放大了的模拟信号转化为数字信号,传入单片机中进行数据处理,找出函数关系并转化关系。
通过数字信号转化为重量值显示在LDC1602上,同时通过键盘进行数据输入,输入单价、去皮等功能。
通过蜂鸣器和二极管实现超额报警功能。
(二)方案二以单片机为主控芯片,应变片采集应变数据,将放大和模数转换用HX711芯片来同时进行实现,将模拟量传入主控芯片单片机中进行数据转换,通过函数关系转换为重量显示到LED 上或者LCD1602上,同时通过键盘按键进行数据输入,输入单价、去皮等功能,并通过蜂鸣器进行数据处理。
(三)方案三运用PLC作为主控制器,PLC运用广泛,它具有接线简单,通用性好,编程简单,使用方便,可连接为控制网络系统,易于安装,便于维护等优点。
二、方案论证与选定运用51单片机作为主控芯片,AT89C51是一种高效微控制器。
基于51单片机的电子秤的设计整理资料
学号:毕业设计GRADUATE THESIS论文题目:基于51单片机的电子秤的设计学生姓名:专业班级:学院:指导教师:年月日第一章功能说明本设计系统以单片机AT89S52为控制核心,实现电子秤的基本控制功能。
在设计系统时,为了更好地采用模块化设计法,分步设计了各个单元功能模块。
系统的硬件部分包括最小系统部分、数据采集部分、人机交互界面和系统电源四大部分。
最小系统部分主要包括AT89S52和扩展的外部数据存储器;数据采集部分由称重传感器,信号的前期处理和A/D 转换部分组成,包括运算放大器AD620和A/D转换器ICL7135;人机界面部分为键盘输入,四位LED数码显示器,可以直观的显示重量的具体数字以及方便的输入数据,使用方便;系统电源以LM317和LM337为核心设计电路以提供系统正常工作电源。
系统的软件部分应用单片机C语言进行编程,实现了该设计的全部控制功能。
该电子秤可以实现基本的称重功能(称重范围为0~9.999Kg,重量误差不大于±0.005Kg),并发挥部分的显示购物清单的功能,可以设置日期和设定十种商品的单价,还具有超量程和欠量程的报警功能。
本系统设计结构简单,使用方便,功能齐全,精度高,具有一定的开发价值。
称重传感器原理即由非电量(质量或重量)转换成电量的转换元件,它是把支承力变换成电的或其它形式的适合于计量求值的信号所用的一种辅助手段。
按照称重传感器的结构型式不同,可以分直接位移传感器(电容式、电感式、电位计式、振弦式、空腔谐振器式等)和应变传感器(电阻应变式、声表面谐振式)或是利用磁弹性、压电和压阻等物理效应的传感器。
对称重传感器的基本要求是:输出电量与输入重量保持单值对应,并有良好的线性关系;有较高的灵敏度;对被称物体的状态的影响要小;能在较差的工作条件下工作;有较好的频响特性;稳定可靠。
传感器下的定义是:“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。
基于51单片机的电子秤设计毕业论文
基于51单片机的电子秤设计毕业论文基于51单片机的电子秤设计毕业论文目录1绪论 (1)1.1选题的背景与意义 (1)1.1.1选题的背景 (1)1.1.2选题的意义 (2)1.2电子秤的研究现状及发展趋势 (2)1.2.1电子秤的研究现状 (2)1.2.2电子秤的发展趋势 (3)1.3本文的结构 (4)2系统总体方案设计 (6)2.1电子秤的基本知识介绍 (6)2.1.1电子秤的基本结构 (6)2.1.2电子秤的工作原理 (7)2.1.3电子秤的计量参数 (7)2.2总体方案设计 (8)2.3系统各部分设计方案论证 (9)2.3.1电子秤分度数的设定 (9)2.3.2称重传感器的选定 (10)2.3.3A/D转换器的选定 (16)2.3.4单片机型号的选定 (18)3硬件设计 (20)3.1系统硬件结构图 (20)3.2单片机主控单元的设计 (20)3.2.1单片机引脚说明 (20)3.2.2AT89S51最小系统设计 (22)3.3数据采集模块设计 (24)3.3.1传感器单元设计 (24)3.3.2A/D转换单元设计 (25)3.4键盘和显示电路单元设计 (27)3.4.1键盘电路设计 (27)3.4.2显示电路设计 (27)3.5系统总体原理图 (28)3.6硬件抗干扰设计 (28)4系统软件设计 (31)4.1主程序设计 (31)4.2LM4229液晶显示驱动程序 (32)4.3ADC0832采样程序 (33)4.4键盘程序 (33)5系统仿真 (35)5.1欢迎界面的仿真 (35)5.2无重物情况仿真 (36)5.3称量物体仿真 (37)5.4最大量程仿真 (38)5.5仿真总结与问题补充 (39)5.5.1仿真总结 (39)5.5.2问题补充 (39)6总结与展望 (41)附录程序 (42)参考文献 (52)1绪论1.1选题的背景与意义1.1.1选题的背景(1)电子技术渗入衡器制造业随着第二次世界大战后的经济繁荣,为了把称重技术引入生产工艺过程中去,对称重技术提出了新的要求,希望称重过程自动化,为此电子技术不断渗入衡器制造业。
基于51单片机的电子秤的设计
摘要本设计是基于单片机的称重仪,它的硬件电路设计包括单片机最小系统、A/D 转换器、称重传感器、语音电路、LED显示电路、±5V稳压电源电路等几部分设计内容。
其中压力传感器输出响应的模拟电压信号,经过模/数转换(A/D变换)后就得到数字量D。
但是,数字量D并不是重物的实际重量值W,W 需要由数字量D 在控制器内部经过一系列的运算——即数据处理才能得到。
整个设计系统由Atmel 公司生产51系列89S51单片机进行控制;软件实现功能开机检测,主要是开机后自动逐个扫描LED数码管,以防止某段数码管损坏造成视觉误差;出于人性化考虑我们还可以增加语音电路,实现自动语音播报重量。
关键词:称重仪;单片机;LED目录摘要 IAbstract II目录 III第1章绪论 11.1 课题背景 11.2课题目的与意义 11.3课题设计要求 21.4称重仪的国内外现状 2本章小结 2第2章称重仪的总系统设计与各模块方案选型 3 2.1 称重仪的总系统框图 32.2称重仪的主控制系统设计 42.2.1 称重仪的主控制系统结构 42.2.2 称重仪的主控制系统工作原理 42.3 称重仪各模块的方案选型 52.3.1 电源模块方案选型 52.3.2 数据采集模块方案选型 52.3.3 主控制器模块方案选型 62.3.4 数据显示模块方案选型 62.3.5 报警模块方案选型 6本章小结 6第3章称重仪的各单元电路设计 73.1 所用单片机的简介 73.1.1单片机的最小系统设计 73.2 电源电路设计 83.3 称重传感器电路设计 93.3.1传感器的工作原理 93.4前级放大器电路设计 113.5 A/D转换器电路设计 123.5.1A/D转换器原理 123.5.2 A/D转换器外围电路 153.6 显示电路设计 163.6.1 LED 结构与原理 183.6.2 动态显示 LED 显示器接口 19 本章小结 21第4章称重仪的系统程序设计 22 4.1 主程序设计 224.2 MAX187转换程序设计 23 4.3显示程序设计 24本章小结 25第五章称重仪的安装与调试 26本章小结 26结论 27致谢 28参考文献 29第1章绪论1.1 课题背景称重技术自古以来就被人们所重视,作为一种计量手段,广泛应用于工农业、科研、交通、内外贸易等各个领域,与人民的生活紧密相连。
基于51单片机的电子秤的设计
摘要本设计是基于单片机的称重仪,它的硬件电路设计包括单片机最小系统、A/D转换器、称重传感器、语音电路、LED显示电路、±5V稳压电源电路等几部分设计内容。
其中压力传感器输出响应的模拟电压信号,经过模/数转换(A/D变换)后就得到数字量D。
但是,数字量D并不是重物的实际重量值W,W 需要由数字量D在控制器内部经过一系列的运算——即数据处理才能得到。
整个设计系统由Atmel公司生产51系列89S51单片机进行控制;软件实现功能开机检测,主要是开机后自动逐个扫描LED数码管,以防止某段数码管损坏造成视觉误差;出于人性化考虑我们还可以增加语音电路,实现自动语音播报重量。
关键词:称重仪;单片机;LED目录摘要 (1)Abstract....................错误!未定义书签。
目录. (1)第1章绪论 (3)1.1 课题背景 (3)1.2课题目的与意义 (4)1.3课题设计要求 (6)1.4称重仪的国内外现状 (4)本章小结 (7)第2章称重仪的总系统设计与各模块方案选型 (7)12.1 称重仪的总系统框图 (7)2.2称重仪的主控制系统设计 (8)2.2.1 称重仪的主控制系统结构 (8)2.2.2 称重仪的主控制系统工作原理 (8)2.3 称重仪各模块的方案选型 (9)2.3.1 电源模块方案选型 (9)2.3.2 数据采集模块方案选型 (9)2.3.3 主控制器模块方案选型 (10)2.3.4 数据显示模块方案选型 (10)2.3.5 报警模块方案选型 (11)本章小结 (11)第3章称重仪的各单元电路设计 (11)3.1 所用单片机的简介 (11)3.1.1单片机的最小系统设计 (12)3.2 电源电路设计 (12)3.3 称重传感器电路设计 (13)3.3.1传感器的工作原理···········错误!未定义书签。
基于51单片机数字电子称程序
外围电路:ADC0804,24C02,1602主函数部分参考下,其他的就不用加加#include<reg52.h>#include <intrins.h>#include"1602.h"#include"24c02.h"#define uint unsigned int#define uchar unsigned charsbit adrd=P3^7; //IO口定义sbit adwr=P3^6;sbit adcs=P0^7;sbit diola=P2^5;sbit beep=P2^3;sbit setkey=P3^7;uchar key_num,num;uchar RMB_s,RMB_g,RMB;long date,ren,dat;int add_i2c,bianma;uchar code table[]="0123456789";uchar table1[4];/********************************************************************蜂鸣器驱动********************************************************************/ void BEEP(){uchar i;for(i=0;i<180;i++){delayB(5);beep=!beep;}beep=1;}/********************************************************************ADC0804 起始信号********************************************************************/ void ad_start(){adcs=0;_nop_();adwr=0;_nop_();adwr=1;_nop_();adcs=1;}/********************************************************************ADC0804 读操作********************************************************************/uchar ad_read(){uchar temp;adcs=0;_nop_();adrd=0;_nop_();temp=P1;_nop_();adrd=1;_nop_();adcs=1;return(temp);}/********************************************************************矩阵键盘扫描********************************************************************/uchar getkey(){static unsigned char flag = 0;unsigned char key;P3=0x0f;if(P3!=0x0f){if(flag==0){flag=1; //松手检测key=P3|0xf0;P3=key;switch(P3){case 0xee:return 0; break;case 0xde:return 1; break;case 0xbe:return 2; break;case 0x7e:return 3; break;case 0xed:return 4; break;case 0xdd:return 5; break;case 0xbd:return 6; break;case 0x7d:return 7; break;case 0xeb:return 8; break;case 0xdb:return 9; break;case 0xbb:return 10;break;case 0x7b:return 11;break;case 0xe7:return 12;break;case 0xd7:return 13;break;case 0xb7:return 14;break;case 0x77:return 15;break;}}}else{flag=0;}return 0xff;}/********************************************************************控制按键设置********************************************************************/ void keyscan(){static uchar i=0,flag = 0,flag1=0,flag2=0;static bit flag_frist = 1;static uchar p;uchar pri;num = getkey();if(num != 0xff){if((num>=0)&&(num<10)&&(flag==0)){if(flag1==0){// flag1=1;if(i==0){Lcd_dis_str(12,1,"____");Lcd_dis_str(4,2,"00");}display(0x8c+i,table[num]);table1[i]=num;i++;if(i==4){i=0;}}else{if(flag_frist){RMB_s = num;flag_frist = 0;display(0xc4,table[RMB_s]);}else{RMB_g = num;flag_frist = 1;flag = 0;flag1=0;RMB=RMB_s*10+RMB_g;display(0xc5,table[RMB_g]);}}}//////////////////////////////////////////if(num==10){if(flag2==0){flag2=1;flag1=1;Lcd_dis_str(12,1," ");}else{flag2=0;flag1=0;Lcd_dis_str(12,1,"____");}}/////////////////////////////////////////////if(num==15){flag = 1;Lcd_dis_str(4,2," ");}////////////////////////////////////////////////if(num==12){RMB=0;Lcd_dis_str(12,1,"____");Lcd_dis_str(4,2,"00");Lcd_dis_str(11,2,"00.00");}/////////////////////////////////////////////////////if(num==11){write_24c02(add_i2c,RMB);Lcd_dis_str(4,2,"OK");delay1(600);p=read_24c02(add_i2c);display(0xc4,table[p/10]);display(0xc5,table[p%10]);}/////////////////////////////////////////////////////if(num==14){pri=read_24c02(add_i2c);RMB=pri;display(0xc4,table[pri/10]);display(0xc5,table[pri%10]);}//////////////////////////////////////////////////////if((num>=0)&&(num<10)&&(flag==1)) //改变{if(flag_frist){RMB_s = num;flag_frist = 0;display(0xc4,table[RMB_s]);}else{RMB_g = num;flag_frist = 1;flag = 0;RMB=RMB_s*10+RMB_g;display(0xc5,table[RMB_g]);}}}}void datdeal(){bianma=table1[0]*1000+table1[1]*100+table1[2]*10+table1[3];add_i2c=bianma+1;}/********************************************************************显示函数********************************************************************/void Lcd1602_dis(){date=ad_read();date=date*1000/255;ren=date*RMB;display(0x85,table[date/100]) ; //重量Lcd_dis_char(6,1,'.');display(0x87,table[date%100/10]);display(0x88,table[date%10]);display(0xcb,table[ren/1000]) ; //总额display(0xcc,table[ren%1000/100]);Lcd_dis_char(13,2,'.');display(0xce,table[ren%1000%100/10]);display(0xcf,table[ren%10]);if(date>=500)BEEP(); //超重报警}void dis_init(){lcd_init();Lcd_dis_str(5,1,"WELCOME");Lcd_dis_str(2,2,"QQ:469790714");delay1(500);Lcd_clean();delay(1);Lcd_dis_str(0,1,"Heft:");Lcd_dis_str(0,2,"RMB:");Lcd_dis_str(7,2,"ALL:");Lcd_dis_str(9,1,"Kg");Lcd_dis_str(12,1,"____");Lcd_dis_str(4,2,"00");}/********************************************************************主函数********************************************************************/ void main(){dis_init();while(1){ad_start() ;delay1(100);Lcd1602_dis();keyscan();datdeal();}}。
基于51单片机的电子秤的设计
基于51单片机的电子秤的设计一、设计要求和总体方案(一)设计要求设计一款基于 51 单片机的电子秤,能够实现以下功能:1、测量范围:0 5kg。
2、测量精度:01g。
3、具备数码管显示功能,能够实时显示测量的重量值。
4、具有去皮功能,方便测量容器的重量。
(二)总体方案本电子秤主要由传感器、信号调理电路、A/D 转换电路、51 单片机、数码管显示电路和按键电路等组成。
传感器将物体的重量转换为电信号,经过信号调理电路进行放大和滤波处理后,送入 A/D 转换电路转换为数字信号。
51 单片机对数字信号进行处理和计算,得到物体的重量值,并通过数码管显示电路进行显示。
按键电路用于实现去皮等功能。
二、硬件设计(一)传感器选择选用电阻应变式传感器,它具有精度高、稳定性好、测量范围广等优点。
当物体放在传感器上时,传感器的电阻值会发生变化,通过测量电阻值的变化可以得到物体的重量。
(二)信号调理电路由于传感器输出的信号比较微弱,需要经过信号调理电路进行放大和滤波处理。
放大电路采用仪表放大器,它具有高共模抑制比、低噪声等优点。
滤波电路采用无源 RC 滤波器,去除信号中的高频噪声。
(三)A/D 转换电路选用 ADC0809 作为 A/D 转换芯片,它是 8 位逐次逼近型 A/D 转换器,具有转换速度快、精度高等优点。
(四)51 单片机选择AT89C51 单片机作为控制核心,它具有性能稳定、价格低廉、编程简单等优点。
(五)数码管显示电路采用共阳数码管进行显示,通过 74HC573 锁存器驱动数码管。
(六)按键电路使用独立按键实现去皮、清零等功能。
三、软件设计(一)主程序流程主程序首先进行系统初始化,包括初始化单片机的 I/O 口、A/D 转换芯片等。
然后进入循环,不断读取 A/D 转换的结果,并进行数据处理和计算,得到物体的重量值,最后将重量值发送到数码管显示。
(二)数据处理算法采用线性拟合的方法对 A/D 转换的结果进行处理,得到与重量值对应的数字量。
基于51单片机的电子秤设计实施计划
基于51单片机的电子秤设计实施计划下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!电子称在我们日常生活中扮演着非常重要的角色,它的出现为我们的计量工作提供了便利。
基于51单片机的简易电子秤设计
1 系统设计原理
本系统具有称重、计价、去皮、清零、累加等功能。其 称重功能的实现主要是通过压力传感器将采集到被测物体的 重量转换成模拟的电压信号,计价功能是利用乘法器实现的, 累加和去皮是利用 C 程序进行加法运算和减去皮值,清零利 用电路复位实现。系统总体框图如图 1 所示。
首先检查整个电路系统的接线,对 LCD 显示屏进行初 始化操作,在秤上依次放上 5 ~ 500g 的砝码,调整预定的 初始值,使得到的值更加精确。预先设定好单价,当重量改 变时读取显示屏上相应的数值,记录数据。按下累加键时, 可实现金额的累加等功能。当所需操作均完成后按下确认键, 读取显示屏上最终值即可。
2 系统硬件设计
主控电路以 89C51 为核心扩展 32K RAM;单片机使用 12M 晶振,P0 口外接上拉电阻,增强了带负载能力;扩展了几个接 口用于其他部分与单片机的通信。主控电路原理图如图 2 所示。
3 软件设计
4 测量数据及测量结果分析
4.1 测试数据 在实验室对 5 ~ 500g 的砝码进行测试,从小到大,然
测试重量(g) 20.77 42.29 62.74 83.82 100.69 122.32 144.13 166.93 188.47 199.76
绝对误差 0.77 2.29 2.74 3.82 0.69 2.32 4.13 6.93 8.47 0.24
相对误差 0.77 2.29 2.74 3.82 0.69 2.32 4.13 6.93 8.47 0.24
图 5 连通区域最小外接矩形
该方法虽然能快速获得眼睛睁开高度,但是误差较大。
基于51单片机控制的电子秤设计与实现--update
基于51单片机的可穿戴式电子秤设计与实现作者翟成英指导老师徐冬寅【摘要】本设计以51单片机模块设计、A/D转换模块、传感器为核心部份,实现人体尺度的基本系统的硬件部分包括数据采集与处理模块、CPU控制模块、液晶显示模块、电源模块。
数据采集及处理模块由称重传感器,放大电路和A/D转换电路组成,本设计采用的是HX711集成芯片。
CPU控制模块主要外部扩展电路;液晶屏显示模块。
可以直接在显示屏上显示,非常人性化;无线传输模块采用FBT06_V2进行数据的发送与接收。
系统电源使用220V进行降压处理所得正常工作电源。
本智能秤平衡系统的设计,显示器可以拿在手上读数据,用户不要低头看体重。
使用方便,具有一定的开发价值。
【关键词】 51单片机;传感器;A/D转换模块Wearable wireless weight measurement instrument research and implementation【Abstract】The design system microcontroller to STM8S003F3P6 to control the core hardware part of the basic system of the human scale, including data acquisition and processing module, CPU control module, wireless transmission module and LCD touch screen display module, clock module, power supply module and five. Data acquisition module by the load cell amplification circuit and A / D conversion circuit, the design is the HX711 integrated chip. CPU control module including STM8S003F3P6 and external expansion circuit; LCD touch screen display module for touch color display, intuitive display that was the historical weight value on the display, and can be directly related to the operation, is very user-friendly 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要电子秤是日常生活中常用的称重设备,广泛应用于超市、大中型商场、物流配送中心。
电子秤在结构和原理上取代了以杠杆平衡为原理的传统机械式称量工具。
相比传统的机械式称量工具,电子秤具有称量精度高、装机体积小、应用范围广、易于操作使用等优点,在外形布局、工作原理、结构和材料上都是全新的计量衡器。
微电子技术的发展为电子秤提出了改进的空间。
电子秤向着简单、便宜发展,智能化、精确的电子秤成为了人们的追求。
本简易电子秤以常见的AT89C51为核心,以电阻应变片采集应变数据,通过HX711放大并进行AD转换供单片机处理,用LCD1602显示所测量的重量,同时本电子秤系统还提供单价设置进行求价格的计算以及去皮功能,通过一些简单低成本的元器件就完成了一个功能齐全的电子秤的制作,将传统电子秤的成本进行了缩减。
关键词:电阻应变片 AT89C51 HX711 电子秤第一章方案与论证一、方案类型(一)方案一通过单片机为主控芯片,用应变片采集应变数据,通过专用仪表放大器INA128对采集到的信号进行放大,在配上模数转换芯片对放大了的模拟信号转化为数字信号,传入单片机中进行数据处理,找出函数关系并转化关系。
通过数字信号转化为重量值显示在LDC1602上,同时通过键盘进行数据输入,输入单价、去皮等功能。
通过蜂鸣器和二极管实现超额报警功能。
(二)方案二以单片机为主控芯片,应变片采集应变数据,将放大和模数转换用HX711芯片来同时进行实现,将模拟量传入主控芯片单片机中进行数据转换,通过函数关系转换为重量显示到LED 上或者LCD1602上,同时通过键盘按键进行数据输入,输入单价、去皮等功能,并通过蜂鸣器进行数据处理。
(三)方案三运用PLC作为主控制器,PLC运用广泛,它具有接线简单,通用性好,编程简单,使用方便,可连接为控制网络系统,易于安装,便于维护等优点。
二、方案论证与选定运用51单片机作为主控芯片,AT89C51是一种高效微控制器。
它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
但方案一中,放大和AD转换模块为独立模块,它们的独立设计费事费力且还会存在误差较大的情况。
相比于方案一,方案二一HX711作为放大和AD 转换芯片,简化了电路结构。
HX711是一款专为高精度电子秤设计的24位AD转换器芯片。
与同类型其他芯片相比,该芯片集成了包括文雅电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。
精度方面很好的满足了题目中的要求,相比于方案一,方案二根据可行性。
方案三采用PLC作为主控芯片,但其价格昂贵,违背了我们制作电子秤的简单、便捷、便宜的原则,所以我们并没考虑选用PLC作为主控芯片。
综合考虑后,我们决定选择方案二来进行本简易电子秤系统的设计与制作。
通过精度、价格、简单程度出发考虑,方案二是最合适的。
第二章设计方案一、设计思路传感器放大电路AD 转换主控芯片去皮超额报警单价LCD显示图2-1总体思路图电阻应变片HX711AT89C51按键输入去皮蜂鸣器超额报警键盘输入单价LCD1602显示图2-2 具体思路二、各部分设计(一)传感器部分设计传感器应题目要求选用电阻应变片,是用于测量应变的元件。
它能将机械构件上应变的变化转换为电阻变化。
为了减少测量误差,本简易电子秤系统采用全桥差动形式,全桥差动测量电路不仅没有非线性测量误差,且电压灵敏度是单臂电阻应变片工作时的四倍,运用全桥差动[1]使得本电子秤系统更加稳定和可靠。
图2-3 全桥差动电路(二)主控芯片主控芯片是电子秤的核心部分,它能接受转换后的传感器信号,同时也能扫描接受到键盘的输入信号,计算价格后控制显示器的输出,能够实现去皮功能,当超过称重量量程时还要控制报警装置报警。
本简易电子秤选用AT89C51作为主控芯片,AT89C51是一种带4K字节 FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
51单片机的操作简单,功能强大,价格便宜。
运用51单片机作为主控芯片可以减少成本,而且制作简便,能够实现本系统的所有功能,是一个不错的选择。
(三)放大与AD转换模块在系统总体设计时,我们考虑到了将放大与AD转换作为单独的模块进行设计,但是思考后发现这其中还有更好的选择。
HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。
与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。
同时HX711还自带放大功能,可选增益为64和128两种。
运用HX711保证了题目要求的高精度,可实现精度误差控制在01g以内,保证了我们完成题目的要求。
(四)键盘方案针对题目要求,需要我们输入单间进行计算,单价包含0-9十个数字,数字键占用十个,确定和清除占用两个,去皮占用一个,复位占用一个。
去皮键、复位键、清除键单独用一个IO口引出;将十个数字键、确定键、计算总价键十二个键制成3x4的矩阵键盘[2]。
通过设计成矩阵键盘的模式而减少单片机IO口的占用,为其他功能腾出空间。
图2-4 3x4矩阵键盘第三章电路设计一、单片机最小系统电路AT89C51是片内有ROM/EPROM的单片机,其最小系统简单、可靠,仅由时钟电路、复位电路、电源电路构成。
(一)时钟电路AT89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。
AT89C51单片机的时钟产生方法有两种。
内部时钟方式和外部时钟方式。
本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2MHZ到12MHZ之间选择。
电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,可在20pF到100pF之间取值。
所以本设计中,振荡晶体选择12MHZ,电容选择22pF。
(二)复位电路AT89C51的复位电路是由外部的复位电路来实现的。
只需给复位引脚RST加上大于2个机器周期的高电平就可使其复位。
复位电路通常采用上电自动复位和按键复位两种方式。
本设计就是用的按键手动复位。
其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。
(三)电源电路AT89C51的电源脚分别为20脚Vss和40脚Vcc。
这两个脚分别接地和+5V直流电源,31脚EA为内外存储器的控制端,接+5V允许访问外部存储器。
图3-1 晶振电路和复位电路二、AD转换电路HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。
与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点、降低了电子秤的整机成本,提高了整机的性能和可靠性。
该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。
输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。
通道A的可编程增益为128或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。
通道B则为固定的64增益,用于系统参数检测。
芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D转换器提供电源,系统板上无需另外的模拟电源。
芯片内的时钟振荡器不需要任何外接部件。
上电自动复位功能简化了开机的初始化过程。
图3-2 HX711模块电路三、LCD1602显示电路本设计采用的是LCD1602显示,LCD1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。
1602LCD是指显示的内容为16×2,即可以显示两行,每行16个字符液晶模块。
图3-3 LCD1602电路四、总设计电路图3-4 系统总电路第四章测试方法与测试结果一、测试方法由于本系统是一个简易电子秤系统,所以最好的测量方法就是通过测量标准砝码的质量来比对本电子秤系统的测量显示值。
以测量结果显示值减去砝码质量再除以砝码质量得出误差百分比,同时也得出精确程度。
(一)键盘测量与LCD1602测量键盘与LCD1602的测量我们放在一起进行,编写按键与LCD1602显示函数,将对应按键编码成0-9,按下按键通过LCD1602来进行显示所按下键盘的数值,通过这种方法我们同时测量了键盘与LCD1602的功能,保证了电路焊接的正确性。
(二)模数转换对应数值测量将HX711连接到电路中,通过LCD1602来显示转换后的数值信号,依次将10g、20g、30g、40g到500g的砝码放到秤盘上,依次独处LCD1602的显示数值,将这五十组数据放入到Excel 表格中,通过Excel绘制线性图形。
通过线性图形拟合出线性函数关系。
(三)测量质量检测分别用10g、20g、50g、100g、200g、500g的砝码放到本简易电子系统的秤盘上,比对测量显示值,求出误差百分比和测量精度。
除此之外,我们还用一个10克、两个2克砝码组成一个五十克砝码;一个10克砝码、两个20克砝码和一个50克砝码组成一个100克方法等组合放在秤盘中心进行测量,以此来确定本简易电子秤系统的精确度。
二、测量结果(一)AD转换后数值信号值与砝码质量的对应关系表4-1 AD值与砝码质量(g)的对应关系重量300 310 320 330 340 350 360 370 380 390AD值5780 5695 5615 5535 5455 5371 5290 5212 5133 5049重量400 410 420 430 440 450 460 470 480 490通过表中的数据,通过Excel折线图进行拟合,拟合出的结果为数据呈现线性关系,这满足应变片的性质,得出的转换函数为:y=0.1185x+1085.8145。
图4-1 折线图(二)简易电子秤测量结果与标准砝码比对关系在确定了函数转换关系之后,电子秤的制作基本快要完成,将函数关系编写到程序中就实现电子秤的制作。
将10g-500g依次增长10g的砝码放入到秤盘中,比对标准砝码值与测量显示值之间的关系发现误差基本控制在1g之内,0-50g期间大致控制在了0.5g的范围内,基本完成了题目所给要求。