智能电子秤的设计Word下载.docx
《智能电子秤的设计Word下载.docx》由会员分享,可在线阅读,更多相关《智能电子秤的设计Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
当商品放到秤盘上时,秤盘下的重量电阻应变式传感器产生一电信号,信号的强弱随商品重量的大小而变,该电信号经放大电路放大后,送入A/D转换芯片进行模数转换,转换后的数字量与物重成正比,再进入89C52单片机经过数据处理,89C52单片机产生一组满足显示要求的数据,送至显示电路显示出实际重量。
另一方面,商品单价通过键盘扫描电路送入89C52单片机,经过数据处理,送至显示电路显示出商品单价。
物重与单价经过运算产生总价,也在显示电路上同时显示出来。
2.3基本结构
该系统采用应变片式传感器进行测量,得出模拟信号;
再进行放大和模数转换,然后送入单片机行处理。
由A/D接口模块、主机接口模块、键盘与显示模块组成。
(如图2-1所示)
图2-1系统框图
信号采集部分:
利用称重传感器获取外部重量信息;
信号放大部分;
模数转换部分:
利用A/D转换器把输入的模拟信号转换成数字信号以送到单片机进行处理;
单片机控制部分:
单片机是中央控制系统,它接受外部送进的各种数据和控制信息,通过运算和处理,然后送到外部以实现显示等需要;
人机接口部分:
人机联系部件有键盘、显示器等,这些部件同主机电路的连接是由人机接口电路来完成的。
人机接口技术是智能仪表和操作者进行联系并得到实际应用的关键之一。
三、智能电子秤的硬件设计
3.1信号采集电路
(1)要达到设计的性能要求,传感器[1]的精度起着决定性作用。
本设计选用应用于称重系统90%以上的高精度电阻应变式传感器。
电阻应变传感器是将被测量的力通过它所产生的金属弹性变形转换成电阻变化的敏感元件。
题目要求称重X围10Kg,重量误差不大于+0.005Kg,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重即10KG。
我们选择的是L-PSIII型传感器,量程20Kg,精度为0.01%,满量程时误差0.002Kg。
可以满足本系统的精度要求。
本设计的测量电路采用最常见的桥式测量电路(见图3-1),用到的是电阻应变传感器半桥式测量电路[2]。
它的两只应变片和两只电阻贴在弹性梁上,测量电阻随重力变化导致弹性梁应变而产生的变化。
电阻的变化使桥式测量电路的输出电压发生变化。
即输出电压的变化反映出重力的变化。
电桥的输出电压可由下式表示:
上式说明电桥的输出电压V和四个桥臂的应变片感受的应变量的代数和成正比。
图3-1桥式测量电路
(2)压力传感器输出的电压信号为毫伏级,所以对运算放大器要求很高。
我们考虑可以采用专用仪表放大器INA128此芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。
放大器增益
,通过改变Rg的大小来改变放大器的增益。
INA128构成的放大器及滤波电路如图3-2示:
图3-2INA128构成的放大器及滤波电路
通过调节Rg的阻值来改变放大倍数。
微弱信号Vi1和Vi2被分别放大后从INA128的第6脚输出。
A/D转换器ICL7109的输入电压变化X围是-10V~+10V,传感器的输出电压信号在0~20mv左右,因此放大器的放大倍数在500~600左右。
由于ICL7109对高频干扰不敏感,所以滤波电路主要针对工频及其低次谐波引入的干扰。
因为压力信号变化十分缓慢,所以滤波电路可以把频率做得很低。
(3)经过放大电路的信号是模拟信号即模拟量,需要把它变成数字量才能送入单片机控制系统受理,所以需要有A/D转换电路。
由对传感器量程和精度的分析可知,A/D转换器误差应在0.03%以下:
8位A/D精度:
10Kg/256=39.06克
12位A/D精度:
10Kg/4096=2.44g
14位A/D精度:
10Kg/16384=0.61g
考虑到其他部分所带来的干扰,8位A/D无法满足系统精度要求。
作为一般小商品称重需求,我们只需要选择12位的A/D转换器就可以了。
双积分型A/D转换器具有很强的抗干扰能力。
对正负对称的工频干扰信号积分为零,所以对50HZ的工频干扰抑制能力较强,对高于工频干扰(例如噪声电压)已有良好的滤波作用。
只要干扰电压的平均值为零,对输出就不产生影响。
尤其对本系统,缓慢变化的压力信号,很容易受到工频信号的影响。
故而采用双积分型A/D转换器可大大降低对滤波电路的要求。
作为电子秤,系统对AD的转换速度要求并不高,精度上12位的AD足以满足要求。
另外双积分型A/D转换器较强的抗干扰能力,和精确的差分输入,低廉的价格。
综合的分析其优点和缺点,我们最终选择了ICL7109[3]。
ICL7109输出12位二进制码,且与微处理器有较好的兼容性,可与89C52直接相连,接口原理图见图3-3。
图3-3接口原理图
图中MODE端接地,7109工作于直接输出工作方式。
RUN/HOLD接+5V,以使7109连续转换。
STATUS作为中断请求信号与单片机的中断输入端相连。
由于采用了3.58MHz的晶振并经58分频,故7109完成一次转换所需的时间为T=8192(脉冲周期)×
58/3.58=132.72ms,即转换速率为7.5次/秒。
7109输出的12位数据及极性、过量程标志分别由HBEN和LBEN控制,分两次送入单片机。
3.2单片机控制系统
该智能电子秤采用ATM公司的AT89C52[4]作为CPU,它是一种低功耗高性能的八位CMOS微控制器,与MCS-51微控制器件兼容本设计的控制电路。
以单片机89C52为控制中心,负责接收数据和外接设备的信号,再处理数据,发出控制信号,以达到所需的要求。
单片机[5]的P0口与A/D转换器的数据线、控制线直接相连。
键盘、显示器通过8279与单片机相接,单片机的P1口与8279的数据口相接,键盘的行线接8279的RL0—RL3,SL0—SL3经74LS138译码输出,连接键盘的列线,SL0—SL3又由74LS154译码输出,经7407驱动后到显示器LED的各个位的公共阴极。
输出线OUTB0—OUTB3、OUTA0—OUTA3作为一个8位段选码数据输出端口,在连接32键以内的简单键盘时,TL、SHIFT输入端可接地。
74LS07芯片是8279作为LED数码管显示器的段选码输出端口的同相驱动芯片。
3.3键盘显示接口电路
本设计系统除了前面所述的四个结构外,还需要用到人机联系部件以便接收各种命令和数据,即价格,重量的数据输入,清零、去皮重、净/毛转换、分度数设定、
最大称量设定、分度值设定、零点自动跟踪、零中心指示、过载显示、自动累计、欠电压指示等命令的输入。
集成芯片8279就是如上所述的一种功能较完善的键盘接口电路,它还具备显示接口的功能。
8279芯片作为通用接口电路,一方面接受来自键盘的输入数据并进行预处理,另一方面实现对显示数据的管理和对数码显示器的控制。
本系统中有14位LED显示器,4×
4键盘和8279的接口电路。
图中键盘的行线接8279的RL0—RL3,8279选用外部译码方式,SL0—SL3经74LS138译码输出,连接键盘的列线,因显示位数比较多,所以要用到4线-16线译码器74LS154,SL0—SL3又由74LS154译码输出,经7407驱动后到显示器LED的各个位的公共阴极。
输出线OUTB0—OUTB3、OUTA0—OUTA3作为一个8位段选码数据输出端口,控制LED显示器每一位数码管显示的内容,当从一位LED数码管向下一位切换时,由消隐输出线BD输出低电平,74LS154译码产生低电平,使74LS138输出全为高电平。
此时,在8位段数据输出端口输出下一个LED显示位的显示内容。
74LS138译码循环产生低电平,8位段数据输出端口也依次把公共阴极为低电平位的显示位中的显示内容分别显示出来,当这一过程很快显示时,人们就会在几个LED中看到了显示出来的不同内容。
在连接32键以内的简单键盘时,TL、SHIFT输入端可接地。
四、智能电子秤的软件设计
智能电子秤软件系统设计的基本思想是充分利用微机丰富的软件功能,实现称重过程一系列要求,提高系统可靠性,使得系统性能价格比达到最优。
智能电子秤作为一种实时性要求不是很高系统,用软件代替部分硬件功能很合算。
4.1主程序设计
电子秤软件设计的总体思想是:
根据预先编制的程序对测量进行控制,完成自动诊断、自动清零、自动逻辑判断、自动存取数据完成重量的测试;
搜集和处理测得数据,并通过对重量的测试,按各种参数之间关系,经计算后自动求出一系列有关未知参数,如重量、单价和总价。
4.1.1主程序工作原理
软件程[6]序包括主程序、显示程序、键盘处理程序、A/D转换程序、数据转换处理程序。
控制器中AT89C52的INT1为A/D中断请求输入线,INT0为键盘中断服务程序。
A/D中断服务程序完成采样数据的存储;
键盘中断服务程序完成扫描,判断数字键或功能键,若为数字将其数据送入数据缓冲区和显示缓冲区。
若是功能键进入相应功能键处理程序。
键盘上有数字键0~9和五个功能键,数字键用于输入商品单价、物体重量,功能键有去皮、清零、净/毛转换等功能、小数点。
(1)AT89C52输入输出端口定义如下:
P0口——A/D转换数据采集
P1口——芯片8279与单片机的接口
P2.0、P2.1——采样值高低字节的读取
P2.7——8279的片选端
P3口——8279与7109的控制端
(2)外部中断INT0用于A/D转换服务程序
外部中断INT0完成A/D转换中断请求,包括数据采集及处理,当采集完一次申请中断,总共采集8次。
(3)外部中断INT1用于键盘中断服务程
单片机外部中断INT1完成对键盘显示接口功能芯片8279的按键和数据状态显示的控制,并可输入单价,各种命令处理,显示价格、重量等参数。
(4)定时中断T0用于A/D转换中断延时
电子秤作为一种称重仪器,对所称精确度要求颇高,所以必须通过数值滤波求的有效采样值,通过定时来完成这一系列的操作。
我们定时0.5S,即定时为50ms,分10次来累计结果。
(5)定时中断T2用于键盘中断延时
T2设为定时器状态,定时时间为13ms。
在中断服务中首先扫描键盘,判断有无键按下。
若有,则执行键识别程序。
然后返回主程序进行其他操作。
(6)初始化程序完成所有系统设置
系统初始化程序完成对键盘接口功能芯片8279初始化设置,完成片内RAM
划分,堆栈指针的设置。
完成对各种功能程序段运行开关的设置,中断优先级的确定。
4.1.3主程序流程框图
开机后,机器自检,检查称重显示是否为零。
若称重显示不为零,则显示为错误标志,并进行微调,使之显示为零;
若称重显示为零,进行整机初始化,然后启动0.5S延时程序,并判断标志位是否到0.5S;
如果到了,则进行称重及数据运算处理,否则直接将显示数据送显示缓冲区,接下来判别有无键按下,若有则进入键功能处理程序,若没有键按下,则返回主程序。
4.2A/D转换结果处理程序
在智能电子秤控制系统中,除了控制单元和执行单元外,还必须有反馈环节。
在反馈环节中,最重要的就是对数据的采集[10]。
本文以AT89C52单片机为核心,设计一个基于单片机的数据采集系统,通过模拟电压形式输入系统,经双积分A/D转换器ICL7109可以采集12路模拟量,精度为12位,并经多次采样,通过滤波,取得更精确的重量值。
4.2.1A/D转换过程
智能电子秤作为称重工具,其对数据的精度要求非常高,A/D转换器位数的确定与整个测量控制系统所需测量的X围和精度有关,本设计选择双计分型A/D转ICL7109,它模拟量采集精度达到12位,在实际应用中,可以对电压信号进行直接采集,为了使所采样值更精确,我们要将采样值进行数字滤波。
其转换过程如下4-3所示:
4.2.2程序
程序如下:
(1.)主程序
INT1:
MOVR0,#30H;
R0作地址指针,指向拟以存放数据的片RAM的地址
MOVR7,#08H;
R7作计数器,拟存采样次数
SETBEA;
总开中断
SETBEX1;
外部中断1
CLRF0;
清采样完成标志
SJMPNEXT;
采样标志未建起,仍转NEXT
ELSE:
采样已完成,继续执行主程序
(2.)读取采样值:
ORG0013H
LJMPTRANS;
外部中断1服务程序
TRANS:
MOVDPTR,#0FFFFH
MOVXA,DPTR;
读低字节
MOVR0,A;
存低字
INCR0
MOVDPTR,#0FFFFH
MOVXA,DPTR;
读高字节
MOVR0,A;
存高字节
DJNZR7,TRANS;
采样次数未到,转TRANS
SJMPDONE;
采样次数已到,转DONE
DONE:
SETBF0
RETI
(3)采样值滤波
入口条件:
数据块的首址在DPTR中,双字节数据个数在R7中。
出口信息:
平均在R4、R5中
影响资源:
PSW、A、R2~R6堆栈需求:
4字节
DPTREQU30H
MOVR7,#08H
DDM2:
MOVA,R7;
保存数据个数
MOVR2,A;
初始化数据指针
PUSHDPL;
保存首址
PUSHDPH
CLRA;
初始化累加和
MOVR3,A
MOVR4,A
MOVR5,A
DM20:
MOVXA,DPTR;
读取一个数据的高字节
MOVB,A
INCDPTR
MOVXA,DPTR;
读取一个数据的低字节
ADDA,R5;
累加到累加和中
MOVR5,A
MOVA,B
ADDCA,R4
MOVR4,A
JNCDM21
INCR3
DM21:
DJNZR2,DM20;
累加完全部数据
POPDPH;
恢复首址
POPDPL
LJMPDV31;
求平均值
DV31功能:
三字节二进制无符号数除以单字节二进制数
被除数在R3、R4、R5中,除数在R7中。
OV=0时,双字节商在R4、R5中,OV=1时溢出。
PSW、A、B、R2~R7堆栈需求:
2字节
DV31:
CLRC
MOVA,R3
SUBBA,R7
JCDV30
SETBOV;
商溢出
RET
DV30:
MOVR2,#10H;
求R3R4R5/R7-→R4R5
DM23:
MOVA,R5
RLCA
MOVR5,A
MOVA,R4
RLCA
MOVR4,A
MOVR3,A
MOVF0,C
CLRC
ANLC,/F0
JCDM24MOVR3,A
INCR5
DM24:
DJNZR2,DM23
MOVA,R3;
四舍五入
ADDA,R3
JCDM25
JCDM26
DM25:
INCR5
MOVA,R5
JNZDM26
INCR4
DM26:
CLROV
RET;
商在R4R5中
4.3键盘与显示处理程序
我们知道键盘和显示是人与微机系统打交道的主要设备。
在本系统中我们采用8279可编程键盘/显示管理接口。
利用8279可实现对键盘/显示器的自动扫描,以减轻CPU负担,并具有显示稳定、程序简单、不会出现误动作等特点。
4.3.1程序原理
1.主程序:
首先将8279初始化,对8279写入相应的命令字,使其按要求工作,然后开始不断扫描键盘,判断是否有键按下,当没有键盘按下时则继续扫描键盘;
当有键盘有键按下时就取出键值,并判断是功能键还是数字键,且转到相应的子程序处理。
主程序流程图如图所示。
2.键扫描子程序:
主要判断有无键按下,利用8279的状态字节可判断FIFORAM中已键入数据的个数或没有输入字符。
当状态字节的低四位全为0时,便可判断无键按下,其程序流程图如下所示
3.当判断有键按下后,就转向取键值子程序。
首先取出行、列号进行拼装,得到所需的键号。
然后与数OAH相比较,从而判断出是功能键还是数字键。
若是功能键就转到功能键处理子程序;
若是数字键就调用显示子程序进行显示。
4.显示子程序。
首先置显示缓冲区首址和计数长度,然后取显示数据转换为段选码,送到LED上显示。
4.3.2键盘模块
本系统中键盘控制采用中断方式实现,利用外部中断1端口来实现。
采用4*4的16键,分为数字键:
0~9,和5个命令键:
去皮、置零、小数点、净/毛转换。
数字键和小数点键:
用于输入单价;
去皮键:
用于去除皮重;
清单价:
用于输入的单价错误的时候,重新输入。
当输入为字符时,执行相应的子程序。
键盘输入为一个字符时,代表一种命令。
按输入的命令字符去执行对应的处理程序。
在本程序中,A、B、C、D、E、F对应程序入口去皮、净/毛转换、价格计算、清单价、置零,标号分别为XA、XB、XC、XD、XE、XF。
设命令字符在A中,
LTB5:
MOVDPTR,#TAB5
MOVB,A
LOP5:
CLRA
MOVCA,A+DPTR
JZLEDN
INCDPTR
CJNEA,B,LNF5
CLRA
MOVCA,A+DPTR
MOVB,A
MOVCA,A+DPTR
MOVDPL,A
MOVDPH,B
JMPA,DPTR
LNF5:
SJMPLOP5
LEND:
TAB:
DB’A’
DWXA
DB‘B’
DWXB
DB’C’
DWC
DB‘D’
DWXD
DB‘E’
DWXE
DB‘F’
DWF
4.3.3显示模块
操作者是从显示设备上获取微机系统的信息,因此,操作者每操作一下,显示设备上都应该有一定的反应。
这说明,显示模块与操作有关,即监控程序需要调用显示模块。
显示模块可以由命令键来驱动或者自动执行模块来驱动。
通常,自动执行模块调用时,只让一处调用显示模块,其他各处不得直接调用显示模块,此时要设置一个显示申请标志,当某模块需要显示时,将申请标志置位,同时设定有关显示内容,将显示模块安排在一个重复执行的循环中。
图4-7电路原理总图
图4-8程序图
结论
智能电子秤以具有良好的可靠性、准确性、技术先进性和结构简单等特点,受到广大用户的青睐。
在商业活动中用途越来越广,给人们的经济生活带来了便利。
采用AT89C52单片机设计的电子计重秤,无论是计量精度,还是稳定性都满足国家对À
级电子秤的要求,它具有较好的标定校准方法,性能稳定,操作简单,价格低廉。
同时通过硬件的少量扩展和软件的修改,能设计出性能优越的计价秤、电子台秤等,满足各行各业对现