基于单片机的智能电子秤设计Word格式.docx
- 文档编号:21886002
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:40
- 大小:507.30KB
基于单片机的智能电子秤设计Word格式.docx
《基于单片机的智能电子秤设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能电子秤设计Word格式.docx(40页珍藏版)》请在冰豆网上搜索。
同时还需要键盘对物品单价等信息输到微处理器内部,还需要有过载报警装置。
其整体设计方案如图2-1所示:
图21电子秤整体设计方案图
2.2主控制器的方案
主控制器是电子秤的核心部分,它需要接受转换后的传感器信号,同时也能扫描接受到键盘的输入信号,计算价格后控制显示器的输出,当超过称重量量程时还要控制报警装置报警。
主控制器的选择有两个如下两个方案。
方案一:
单片机作为主控制器
单片机控作为主控制器其优点有:
可以做成专用的控制系统,程序被固化,可靠性较高,操作简单,易于维护,并且成本低。
在比较小型的控制系统中,最适合的应是单片机作为控制核心。
但在大型的控制系统中,控制系统各方面性能要求很高,或者工作环境很恶劣,有很强的电噪声、电磁干扰、机械振动、极端温度和湿度很大的环境中,如果利用单片机作为控制系统,其性能会受到相应的影响。
方案二:
PLC作为主控制器
PLC作为主控制器应用广泛,它具有接线简单,通用性好,编程简单,使用方便,可连接为控制网络系统,易于安装,便于维护,其主要应用在准确、精密、快速、稳定和多点控制的系统中,但是其价格昂贵。
本文设计的简易电子秤精度不需要很高,它需要控制器及程序被固化,并且工作环境适宜。
单片机作为处理器完全能够满足要求,并且单片机价格低廉,体积小,最终我选择了市面上常见的51系列的单片机AT89S51作为主控制器。
2.3称重传感器的方案
称重传感器按转换方法分为光电式、液压式、电磁力式、电容式、磁极变形式、振动式、陀螺仪式、电阻应变式等8类,我选择应用最广泛的电阻应变式传感器。
电阻应变式称重传感器是利用电阻应变片变形时其电阻也随之改变的原理工作的,根据传感器理论可知,设长为L、截面积为S、电阻率为ρ的电阻丝,已知其阻值为:
(2-1)
当电阻丝两端有机械应力F时,ρ、L、S都会发生变化,从而导致电阻发生变化。
这种应变片式传感器是基于材料的电阻应变效应,电阻应变片即可单独作为传感器使用,又能作为敏感元件结合弹性元件构成力学量传感器。
电阻应变片把机械应变信号转换为△R/R后,由于应变量及相应电阻变化一般都很微小,难以直接精确测量,且不便处理。
因此,要采用转换电路把应变片的△R/R变化转换成电压或电流变化。
其转换电路常用测量电桥[4]。
如图2-2所示为常见的直流供电的平衡差动测量电桥:
图22直流供电的平衡差动测量电桥
图中,
为供桥电源电压,当初始有
时,则电桥输出电压或电流为零,这时电桥处于平衡状态。
其测量原理:
用应变片测量时,将其粘贴在弹性体上。
当弹性体受力变形时,应变片的敏感栅也随同变形,其电阻值发生相应变化,通过转换电路转换为电压或电流的变化。
由于内部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,输出信号电压可由下式给出:
(2-2)
本文的目的是设计一简易电子秤,最大称重约为2.5千克,重量误差不大于±
0.01千克;
考虑到与其相配置的各种电路的设计的难易程度和设计性价比,最终选择了CZAF-605[8]电阻应变式称重传感器,其称重规模为5kg。
2.4放大器的方案
压力传感器感受重力转换后输出的信号一般电平较低;
经由电桥等电路变换后的信号亦难以直接用来显示、记录、控制或进行模数转换。
为此,测量电路中需要模拟放大环节。
这一环节目前主要依靠由集成运算放大器的基本元件构成具有各种特性的放大器来完成。
所采用的传感器输出电压振幅范围0~10mV。
而模数转换的输入电压要求为0~2V,因此放大环节至少200倍的增益,此处我们需要放大500倍。
根据本设计的实际情况增列出了两种方案。
由高精度低漂移运算放大器构成差动放大器。
差动放大器具有高输入阻抗,增益高的特点,可以利用普通运放(如OP07)做成一个差动放大器,其内部电路如图2-3所示。
图23差动放大器内部电路
电阻R1、R2电容C1、C2、C3、C4用于滤除前级的噪声,C1、C2为普通小电容,可以滤除高频干扰,C3、C4为大的电解电容,主要用于滤除低频噪声。
优点:
输入级加入射随放大器,增大了输入阻抗,中间级为差动放大电路,滑动变阻器R6可以调节输出零点,最后一级可以用于微调放大倍数,使输出满足满量程要求。
输出级为反向放大器,所以输出电阻不是很大,比较符合应用要求。
缺点:
此电路要求R3、R4相等,误差将会影响输出精度,难度较大。
实际测量,每一级运放都会引入较大噪声,对精度影响较大。
采用专用仪表放大器[12],如:
INA128,INA129等。
此类芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。
以INA128为例,引脚图如2-4所示:
图2-4INA128引脚图
放大器增益G=1+50k/Rg,通过改变Rg的大小来改变放大器的增益。
因为放大的倍数是500,所以大致选用100欧姆的电阻就可以了。
基于以上分析,采用专用仪表放大器能跟好的满足要求,我最终选择了INA128。
2.5模数转换器的方案
称重传感器采集的压力信号是模拟量,单片机系统内部运算时用的都是数字量,即0和1,因此对于单片机而言我们无法直接操作模拟量,必须将模拟量转换为数字量。
这就需要在单片机前段加上模数转换器,模数转换器就是将输入的模拟信号转换成数字信号。
而模数转换器的数字信号提供给微处理器处理。
现在模数转换的基本方法有十几种,常用的有计数法、逐次比较法、双斜积分法和并行转换法。
由于逐次比较法模数转换具有速度快、分辨率高等特点,而且采用这种方法的ADC芯片成本较低,所以我们选用逐次比较型模数转换集成芯片ADC0832,ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道模数转换芯片,其输入输出电平与TTL/CMOS相兼容,电源供电时输入电压在0~5V之间,工作频率为250KHZ转换时间为32μS,一般功耗仅为15mW;
由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
图2-5为AD0832双列直插式封装引脚图。
图2-5ADC0832引脚图
2.6键盘部分的方案
键盘部分有两个可行的方案,第一是采用3×
4的矩阵键盘结构的键盘接口电路,第二是采用4×
4的矩阵键盘结构的键盘接口电路。
由于电子秤需要设置单价(十个数字键),还具有确认、清零等功能,总共需设置13个键(包括一个复位键),其中复位可以单独拿出来。
所以我们采用3×
3×
4矩阵式键盘的特点是把检测线分成两组,一组为行线,一组列线,按键放在行线和列线的交叉点上。
图2-6给出了一个3×
4的矩阵键盘结构的键盘接口电路,图中的每一个按键都通过不同的行线和列线与主机相连这。
4矩阵式键盘共可以安装12个键,但只需要7条测试线。
图263×
4矩阵式键盘图
显示部分的方案:
数据显示是电子秤的一项重要功能,是人机交换的主要组成部分,它可以将测量电路测得的数据经过微处理器处理后直观的显示出来。
数据显示部分可以有以下两种方案供选择:
一是LED数码管显示,二是LCD液晶。
LED显示每一个数码管只能显示一个数字,电子秤系统需要许多数码管,会使线路变得复杂化。
LCD液晶显示器是一种极低功耗显示器,其能够多行显示,并且能够显示汉字或英文字母,应用于电子秤中能够更人性化,更容易操作。
所以最终选择了两行显示的LCD1602,LCD1602的引脚图如2-7所示。
图27液晶显示器LCD1602
2.8过载报警部分的方案
智能仪器一般都具有报警和通讯功能,报警主要用于系统运行出错、当测量的数据超过仪表量程或者是超过用户设置的上下限时为提醒用户而设置。
在本系统中,设置报警的目的就是在超出电子秤测量范围时,发出声光报警信号,提示用户,防止损坏仪器。
超限报警电路是由单片机的I/O口来控制的,当称重物体重量超过系统设计所允许的重量时,通过程序使单片机的I/O值为高电平,从而三极管导通,使蜂鸣器SPEAKER发出报警声,同时使二极管发光。
3电子秤的硬件设计
3.1系统设计的总体思路
物体放在压力传感器上,传感器发生形变,阻抗就发生变化,产生一个变化的模拟信号,该信号需要有放大电路放大后输入到模数转换器,转换为数字信号后输入到微处理器处理。
微处理器根据键盘命令以及程序将结果输出到显示器,直到显示结果。
如下图所示3-1所示。
图3-1硬件设计的总体思路
3.2单片机AT89S51最小系统
AT89S51是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器,128字节RAM,32个双向I/O口线,两个16位定时器/计数器,5个中断源,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
AT89S51的P0口为一个8位漏级开路双向I/O口,P1、P2和P3口是一个内部提供上拉电阻的8位双向I/O口,同时P3口还作为AT89S51的一些特殊功能口[16]。
AT89S51是片内有ROM/EPROM的单片机,其最小系统简单、可靠,仅由时钟电路、复位电路、电源电路构成。
如图3-2所示。
1、时钟电路
AT89S51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。
AT89S51单片机的时钟产生方法有两种。
内部时钟方式和外部时钟方式。
本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2MHZ到12MHZ之间选择。
电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,可在20pF到100pF之间取值。
所以本设计中,振荡晶体选择12MHZ,电容选择22pF[11]。
图32AT89C52最小系统的设计
1、复位电路
AT89S51的复位电路是由外部的复位电路来实现的。
只需给复位引脚RST加上大于2个机器周期的高电平就可使其复位。
复位电路通常采用上电自动复位和按键复位两种方式。
本设计就是用的按键手动复位。
其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。
2、电源电路
AT89S51的电源脚分别为20脚Vss和40脚Vcc(图中已默认连接,未显示出来)。
这两个脚分别接地和+5V直流电源,31脚EA为内外存储器的控制端,接+5V允许访问外部存储器。
3.3放大电路
传感器检测电路的功能是把电阻应变片的电阻变化转变为电压输出,本设计中选用的是CZAF-605电阻应变式称重传感器,因为通过其得到的电压信号很小,为所以还需要放大器放大信号。
考虑到干扰的作用,对传感器的信号进行了滤波处理,最终设计如图3-3所示。
图33传感器与放大器的接口电路
INA128的2和3脚为信号输入端,4、5和7脚为电源引脚。
微弱信号放大后从INA128的第6脚输出。
通过调节Rg的阻值可以来改变放大倍数,使得输出电压在A/D转换的基准电压要求范围之内。
根据要求,A/D转换器的输入电压变化范围是0V~4.999V,传感器的输出电压信号在0~10mv,
因此取放大器的放大倍数500。
因此代入公式
。
3.4模数转换器与单片机接口电路
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择[21]。
正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。
但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。
在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能[9]。
作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为19.53mV。
如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。
但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。
ADC0832与单片机的接口电路如图3-4所示。
图34ADC0832与单片机的接口电路图
3.5显示电路与单片机接口电路
本设计采用的是LCD1602显示,LCD1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5×
7或者5×
11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。
1602LCD是指显示的内容为16×
2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
1602采用标准的16脚接口,其中1和2脚为电源正负极,3脚为对比度调整端,4脚RS为寄存器选择,5脚RW为读写信号线,6脚为使能端,7到14脚为8为双向数据端。
15和16脚为电源背光极。
LCD1602与单片机的连接如图3-5所示。
3脚VEE接一个滑动变阻器,滑动变阻器两端接电源和地。
调试欢动变阻器的值可以改变LCD的对比度。
因为LCD为共阳极,所以D0到D7有加入上拉电阻。
图35单片机与LCD1602接线图
3.6键盘电路与单片机接口电路
矩阵式键盘的结构与工作原理:
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成3×
4=12个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成16键的键盘,而直接用端口线则只能多出一键。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式键盘的按键识别方法:
确定矩阵式键盘上何键被按下介绍一种“行扫描法”。
行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。
判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的3个按键之中。
若所有列线均为高电平,则键盘中无键按下。
判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:
依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
在本系统中键盘采用矩阵式键盘并采用中断工作方式。
键盘为3×
4键盘,包括0、1、2、3、4、5、6、7、8、9、十个数字及确认和清除键。
采用中断工作方式提高了CPU的利用效率,没键按下时没有中断请求,有键按下时,向CPU提出中断请求,CPU响应后执行中断服务程序,在中断程序中才对键盘进行扫描。
下图就是键盘电路与AT89S52单片机接口电路图。
图3-6键盘电路与单片机的连接图
3.7报警电路
当电路检测到称重的物体超过仪器的测量限制时,将产生一个信号给报警电路。
使报警电路报警从而提醒工作人员注意,超限报警电路如下图所示。
图37报警电路图
它是有AT89C52的RXD口来控制的,RXD本来为低电平,当超过设置的重量时(5Kg),通过程序使RXD口值为高电平,从而使三极管导通,报警电路接通,使蜂鸣器SPEAKER发出报警声,同时使报警灯LED发光。
这一任务的实现主要靠程序来完成。
3.8电源电路
一般电网电压为交流220V,而本文设计的电子秤系统需要的电压是直流5V,显然不能满足实际要求,所以需要设计一个直流稳压电源。
直流稳压电源一般由电源变压器、整流电路、滤波电路和稳压电路组成。
基本框图如3-8所示。
图3-8直流稳压电源框图
电源变压器T将220V的交流电源变换成整流滤波电路所需要的5V交流电压。
5V交流电压通过整流电路变换成5V的脉动电压,滤波电路滤除较大的波纹成分,输出较小的波纹成分到稳压电路,稳压电路输出稳定的5V电压。
根据上述介绍,电源电路包括变压器、整流电路、滤波电路、稳压电路等模块组成,这里加入LED进行电源工作状态指示。
稳压部分用LM7805三端稳压IC来组成稳压电源,其优点是所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
具体的5V电源电路如图3-9所示。
图3-95V直流稳压电源图
4电子秤系统的软件设计
程序设计是一件复杂的工作,为了把复杂的工作条理化,就要有相应的步骤和方法。
其步骤可概括为以下三点:
首先需要分析系统控制要求,确定算法:
对复杂的问题进行具体的分析,找出合理的计算方法及适当的数据结构,从而确定编写程序的步骤。
这是能否编制出高质量程序的关键。
其次是根据算法画流程图:
画程序框图可以把算法和解题步骤逐步具体化,以减少出错的可能性。
最后就是编写程序:
根据程序框图所表示的算法和步骤,选用适当的指令排列起来,构成一个有机的整体,即程序。
程序数据的一种理想方法是结构化程序设计方法。
结构化程序设计是对利用到的控制结构类程序做适当的限制,特别是限制转向语句(或指令)的使用,从而控制了程序的复杂性,力求程序的上、下文顺序与执行流程保持一致性,使程序易读易理解,减少逻辑错误和易于修改、调试。
根据系统的控制任务,监控软件采用模块技术设计,根据系统功能,将软件分为若干个功能相对独立的模块,为每一个模块设计程序流程图。
该电子秤功能程序模块包括:
A/D转换启动及数据读取程序设计、显示子程序设计、键盘扫描子的程序设计、价格计算子程序设计、以及报警子程序设计等。
4.1主程序的设计
主程序是系统信息处理的关键,主程序模块主要完成编程芯片的初始化及按需要调用各模块(子程序),在系统初始化过程中,初始化程序将RAM的30H到5FH单元清零,RXD引脚置成低电平,防止误报警,同时将系统设置成2.5Kg量程,并写2.5Kg量程标志。
设计流程图如图5-1所示。
主程序主要完成编程芯片的初始化及按需要调用各子程序,上电启动后,系统初始化,单片机读取模数转换器的数据,然后调用显示子程序显示重量,同时扫描键盘子程序,调用价格计算子程序计算价格并显示出来。
图41电子秤系统程序设计流程图
4.2子程序的设计
主程序按需要调用各子程序。
系统子程序主要包括A/D转换启动及数据读取程序设计、显示子程序设计、键盘扫描子的程序设计、价格计算子程序设计、以及报警子程序设计等。
4.2.1模数转换子程序的设计
A/D转换启动及数据读取子程序设计主要是上电运行后,ADC0832完成初始化,把经放大的称重传感器传递过来的模拟信号转换成数字信号并传递到单片机所涉及到的程序设计设计流程图如图4-2所示。
ADC0832进行模数转换时,须现将CS是能端置于低电平并且保存低电平直到完全结束。
芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO和DI端则使用DI端输入通道功能选择的数据信号。
在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能,到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。
从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。
直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。
从第11个字节的下沉输出DATA0。
随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束[23]。
最后将CS置高电平禁用芯片。
图42A/D转换启动及数据读取程序流程图
4.2.2键盘扫描子程序的设计
键盘扫描子程序主要是扫描键盘的输入,调用显示子程序显示,输出输入的参数,计算总价是调用价格计算子程序计算总价格。
键盘电路设计成3×
4矩阵式,由键盘编码方式可以得出1、2、3、4、5、6、7、8、9、0及清零和计价各键对应的键值:
0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3d,0x30,0x2e。
在程序中可以先判断按键编码,然后根据编码将键盘代表的数值送到相应的存储单元,再进行功能选择或数据处理。
图43键盘扫描子程序流程图
4.2.3显示子程序的设计
单片机应用系统通常都需要进行人—机对话。
其中包括人对应用系统的状态干预与数据输入,应用系统必须向操作者显示状态与运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 智能 电子秤 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)