称重传感器的原理及应用._第1页
称重传感器的原理及应用._第2页
称重传感器的原理及应用._第3页
称重传感器的原理及应用._第4页
称重传感器的原理及应用._第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、称重传感器的原理及应用随着技术的进步,由称重传感器制作的电子衡器已广泛地应用到各行各业,实现了对物料的快速、准确的称量,特别是随着微处理机的出现,工业生产过程自动化程度化的不断提高,称重传感器已成为过程控制中的一种必需的装置,从以前不能称重的大型罐、料斗等重量计测以及吊车秤、汽车秤等计测控制,到混合分配多种原料的配料系统、生产工艺中的自动检测和粉粒体进料量控制等,都应用了称重传感器,目前,称重传感器几乎运用到了所有的称重领域。1高速定量分装系统本系统由微机控制称重传感器的称重和比较,并输出控制信号,执行定值称量,控制外部给料系统的运转,实行自动称量和快速分装的任务。系统采用MCS-51单片机和

2、V/F电压频率变换器等电子器件,其硬件电路框图如图1所示,用8031作为中央处理器,BCD拔码盘作为定值设定输入器,物料装在料斗里,其重量使传感器弹性体发生变形,输出与重量成正比的电信号,传感器输出信号经放大器放大后,输入V/F转换器进行A/D转换,转换成的频率信号直接送入8031微处理器中,其数字量由微机进行处理。微机一方面把物重的瞬时数字量送入显示电路,显示出瞬时物重,另一方面则进行称重比较,开启和关闭加料口、放料于箱中等一系列的称重定值控制。 图1 原理框图在整个定值分装控制系统中,称重传感器是影响电子秤测量精度的关键部件,选用GYL-3应变式称重测力传感器。四片电阻应变片构成全桥桥路,

3、在所加桥压U不变的情况下,传感器输出信号与作用在传感器上的重力和供桥桥压成正比,而且,供桥桥压U的变化直接影响电子称的测量精度,所以要求桥压很稳定。毫伏级的传感器输出经放大后,变成了0-10V的电压信号输出,送入V/F变换器进行A/D转换,其输出端输出的频率信号加到单片机8031定时器1的计数、输入端T1上。在微机内部由定时器0作计数定时,定时器0的定时时间由要求的A/D转换分辩率设定。定时器1的计数值反映了测量电压大小即物料的重量。在显示的同时,计算机还根据设定值与测量值进行定值判断。测量值与给定值进行比较,取差值提供PID运算,当重量不足,则继续送料和显示测量值。一旦重量相等或大于给定值,

4、控制接口输出控制信号,控制外部给料设备停止送料,显示测量终值,然后发出回答令,表示该袋装料结束,可进行下袋的装料称重。图2所示为自动称重和装料装置。每个装料的箱子或袋子沿传送带运动,直到装有料的电子称下面,传送带停止运动,电磁线圈2通电,电子称料斗翻转,使料全部倒入箱子或袋子中,当料倒完,传送带马达再次通电,将装满料的箱子或袋子移出,并保护传送带继续运行,直到下一次空袋或空箱切断光电传感器的光源,与此同时,电子称料箱复位,电磁线圈1通电,漏斗给电子秤自动加料,重量由微机控制,当电子秤中的料与给定值相等时,电磁线圈1断电,弹簧力使漏斗门关上。装料系统开始下一个装料的循环。当漏斗中的料和传送带上的

5、箱子足够多时,这个过程可以持续不断地进行下去。必要时,*作人员可以随时停止传送带,通过拔码盘输入不同的给定值,然后再启动,即可改变箱或袋中的重量。图2 自动称重和装料装置本系统选用不同的传感器,改变称重范围,则可以用到水泥、食糖、面粉加工等行业的自动包装中。2传感器在商用电子秤中的应用目前,商用电子计价秤的使用非常普及,逐渐会取代传统的杆称和机械案秤。电子计价秤在秤台结构上有一个显著的特点:一个相当大的秤台,只在中间装置一个专门设计的传感器来承担物料的全部重图3 计价秤内部结构示意图量,如图3所示。常用的电子计价秤传感器的结构如图4所示,其中图4(a)为双连椭圆孔弹性体,秤盘用悬臂梁端部上平面

6、的两个螺孔紧固;图4(b)为梅花型四连孔弹性体,秤盘用悬臂梁端部侧面的三个螺孔坚固,中间支杆上粘贴补偿用的应变片。这两种形式的传感器,在计价秤中用得最多。图4(c)为三梁式弯曲弹性体,采样弯曲应力,对重量反应敏感,宜用来制作小称量计价秤。图4(d)为三梁式剪切弹性体,采样中间敏感梁的剪切应力,宜用来制作几百公斤称量范围计价秤。图4 计价秤用弹性体结构用这些复梁型高精度传感器来支承一个大的称重平台,被称重物又可能放置在任何称台的任意位置上,必然会产生四角示值误差,对图4(a),(b)两种结构形式的传感器,可通过锉磨的形式进行角差修正。对图4(c),(d),它有上下两根局部削弱的柔性辅助梁,使传感

7、器对侧向力、横向力和扭转力矩具有很强的抵抗能力,可以通过锉磨辅助梁的柔性部位来调整传感器的灵敏系数和四角误差。图5为一种商用电子计价秤的电路框图。传感器采用的是图4(b)所示的梅花型四连孔结构,该秤具有置零、自动清除单价、零位自动跟踪、自动去皮、次数累计和金额累计、打印输出等功能,7段绿色荧光数码管显示,使用十分方便。图5 电子计价秤的电路框图图6是采用CHBL3型号S型双连孔弹性体称重传感器制作的便携式家用电子手提秤的原理图,由称重传感器、放大电路、A/D转换和液晶显示四部分组成。图中,E为9V的叠层电池,R1-R4是称重传感器的4个电阻应变片,R5、R6与W1组成零点调整电路。当载荷为零时

8、,调节RW1使液晶显示屏显示为零。A1,A2为双运放集成电路LM358中的两个单元电路,组成了一个对称的同相放大器,A/D转换器采用ICL7106双积分型A/D转换器,液晶显示采用3 1/2液晶显示片。该电子秤精度高,简单实用,携带方便。称重传感器是一种高精度的传感器,必须按规定的规格使用。若不按规定的规格使用,不仅不能发挥称重的作用,而且容易损坏,尤其是绝对不准超过负荷安全值使用。图6 手提秤的电路框图对于因温度变化对桥接零点和输出,灵敏度的影响,即使采用同一批应变片,也会因应变片之间稍有温度特性之差而引起误差,所以对要求精度较高的传感器,必须进行温度补偿,解决的方法是在被粘贴的基片上采用适

9、当温度系数的自动补偿片,并从外部对它加以适当的补偿。非线性误差是传感器特性中最重要的一点。产生非线性误差的原因很多,一般来说主要是由结构设计决定,通过线性补偿,也可得到改善。滞后和蠕变是关于应变片及粘合剂的误差。由于粘合剂为高分子材料,其特性随温度变化较大,所以称重传感器必须在规定的温度范围内使用。在露天下使用传感器,还应考虑阳光直射产生的温度影响和风压的影响。AD7705在电子秤中的应用作者:屈新芬摘 要:本文结合AD7705在电子秤称重系统中的应用,详细介绍了AD7705在51系列单片机系统应用中的硬件设计和软件编程;重点介绍了软件设计中应主要关注的4个方面;详细给出了主程序流程图及程序,

10、实现读、写模式下通信的一种方法的流程图及程序。 关键词:精度、时序、中断、AD转换、有效分辨率、滤波Abstract:Incorporating with the application of AD7705 in the electronic balances,this article introduces the hardware and software design of the AD7705 applied in the 51 series SCM system. Four aspects of software design are highlighted. The main and

11、 the communication flowcharts and programs are given .Keywords:precision、Timing、Interrupt、AD conversion、Peak-to-peak resolution、filter 1 引言国家三级秤标准要求:称重数据与重物的绝对精度小于1/10001/5000,因此,经AD转换后输出数据的有效位应在13位以上。AD公司推出的由缓冲器和增益可编程放大器(PGA)、调节器、可编程数字滤波器等组成的16位AD7705/06能直接将传感器检测到的微小信号进行A/D转换,其具有高分辨率、宽动态范围、自校准、优良的抗

12、噪声性能以及低电压低功耗等特点,适合于称重系统中下微机信号处理的需要。设计中,我们确定AD7705的相应参数取:输出数据更新速率:50Hz;系统增益:64;有效分辨率:15位。2 硬件设计要满足前面确定的AD7705参数,设计中AD7705的主时钟取:fCLK =2.4576MHz。AD7705的串行数据接口包括5个:片选输入口 ,串行施密特逻辑输入时钟SCLK,数据输入口DIN,转换数据输出口DOUT,指示数据准备就绪的状态信号输出口 。其中当 为低电平时,转换数据可读取;否则不可读取。设计中 可由AT89C51选中实现,也可接地;本设计中将 接地。SCLK有两种基本的接线方式:SCLK接A

13、T89C51的P2口中未用的管脚(比如接P2.2),数据输入、输出端DIN、DOUT一同接P2口中未用的另一管脚(比如:P2.3)。在该种连接方式下,只能用手工编程模拟AD7705的通信时序以实现对AD7705的操作。SCLK接AT89C51的同步脉冲输出端TXD,AD7705的数据输入、输出端DIN、DOUT一同接AT89C51的串行数据输入、输出端RXD。在该种连接方式下,对AD7705的数据的读取可按51系列单片机串行口的工作方式0完成,也可按中的读写方式完成。本设计中按中介绍的方式接线。可接普通P1、P2口中未用的管脚,通过程序查询该管脚是否为低电平,从而实现对AD7705中寄存器数据

14、的读取。也可接AT89C51的外部中断1或中断0管脚,通过中断方式或中断查询方式实现对AD7705中寄存器数据的读取。本设计中接外部中断1管脚。图1 称重传感器信号处理电路图AD7705在称重系统中的连接方式见图1。当在此传感器上施加满标度重量5吨重物时,传感器在5V工作电压下取得30 mV的满标度输出电压。5V工作电压经分压后为AD7705提供基准电压,因此工作电压的变化不会产生系统误差。分压电阻为24k和15k,产生的基准电压为1.92V。当器件的可编程增益为64时,对应的满标度输入电压即为 30 mV。3 软件设计软件设计需主要考虑以下四个方面:AT89C51的初始化:硬件设计中如果用到

15、中断,则需对单片机的中断系统进行初始化;软件设计中如果用到串口,则需对单片机的串口进行初始化。AD7705与51系列单片机的数据交换顺序:在读写操作模式下,51系列单片机的数据要求LSB在前,而AD7705希望MSB在前,所以对AD7705寄存器进行配置之前必须将命令字重新排列方可写入,同样要将从AD7705数据寄存器中读取到缓冲器后的数据进行重新排列方可使用。对AD7705寄存器进行操作的时序:AD7705通讯必须严格按图2、图3时序操作。对AD7705进行通信的子程序流程见图4、图5。当然,还可以考虑用串行口通信方式0的工作方式来实现。AD7705的初始化和配置:AD7705的配置与设计的

16、硬件紧密相关,只有在正确配置的情况下硬件才能正常工作。同时,对AD7705内每一个寄存器的配置都必须从写通信寄存器开始,通过写通信寄存器完成通道的选择和设置下一次操作的寄存器的选择。图6所示为此称重传感器数据采集主流程图。其程序清单见附录。图2 读周期时序图 图3 写周期时序图4 结束语AD7705以其本身的低价格、高精度、可编程增益、自校准、小信号的转换不需附加另外的器件而使得其在数据检测领域具有很大的应用前景。其在电子秤中的应用也是显而易见的。我们应用AD7705设计的电子信号处理线路,其性能指标达到预期的效果。参考文献1.Analog Devices.Preliminary techni

17、calInformation,AD7705/062.胡志高,AD7705/06及其应用,电子产品世界,2000.10附录:程序清单ORG 0000HAJMP MAINORG 0013HAJMP ADINTORG 0030HMAIN: ;对AT89C51初始化MOV IP,#04H;定义INT1为优先级MOV TCON,#00H ;INT1采用低电平图4 写周期时序流程图图5读周期时序流程图;触发MOV IE,#84H;允许外部中断1;对AD7705进行初始化MOV SCON,#00000000B;禁用SCONMOV A,#20HACALL WRITEMOV SCON,#00000000BMOV

18、 A,#05HACALL WRITEMOV SCON,#00000000BMOV A,#010HACALL WRITEMOV SCON,#00000000BMOV A,#70HACALL WRITE MOV SCON,#00000000BA2: JNB 00H,A2 ;等待INT1中断MOV A,#38HACALL WRITERDATADPROCESSAJMP A2 图6 主程序流程图WRITE:NOPMOV R0,#08HACALL NU1RETNU1: RLC AJNC NU2CLR 0B1HSETB 0B0HSETB 0B1HSJMP NU3NU2: CLR 0B1HCLR 0B0HSE

19、TB 0B1HNU3: DEC R0DJNZ R0,NU1RETRDATA:MOV R2,#02HMOV R3,#08HMOV R4,#20HCLR CMOV A,#00HRD1: CLR 0B1HMOV C,0B0HSETB 0B1HRLC ADJNZ R3,RD1MOV R4,AINC R4DJNZ R2,RD1RETDPROCESS:RETADINT:SETB 00HRETIEND 作者简介:屈新芬(1971-),四川邻水人,硕士,工程师,现从事引信方面的工作。如何用24位-模数转换器CS1240设计电子秤   CS1240是一款中国本土开发的精密模数转换(ADC)芯

20、片,分辨率为24位,有效精度高达21位,可以广泛应用于工业过程控制、电子秤、气体/液体检测仪和血液计等各种应用。本文描述了该芯片的主要特点,并以普通和高精度电子秤为例,讨论了CS1240的典型应用电路。 芯海科技有限公司自主研发的CS1240是一款24位高精度、低功耗-模数转换芯片,其分辨率为24位,有效精度高达21位,可以在2.7V-5.5V电源电压条件下工作。 CS1240具有8个模拟输入端、8个数字输入输出通道, 可以选择输入通道模拟缓冲器或者直接将信号输入模数转换器,模拟缓冲器可以有效提高芯片的输入阻抗。芯片提供内部测试电流(2微安),可以检测输入端开路或短路情况。

21、集成的8位数模转换器(DAC)可以通过寄存器控制来调节输入信号的偏置电压,有效扩大输入信号的范围,最大可以调整满幅度(FS)的50%。 图1:CS1240芯片功能结构图。  CS1240/1241带有片内1128倍可编程增益放大器(PGA),在128倍时,有效分辨率可达19位。调制器是一个二阶-调制器,芯片的FIR滤波器提供50Hz和60Hz陷波滤波,有效提高芯片的抗干扰性能。 CS1240/1241提供兼容串行外围接口(SPI)的串行接口总线,并且可以通过配置使用多达8个数字I/O,只需要少量的外围元件就可以构成多种多样的应用电路。CS1240的功能结

22、构图如图1所示。 典型应用电路 电子秤是目前常用的计量仪器,广泛应用在人们的日常生活中,图2示出了电子秤的基本原理图。由于CS1240丰富的功能,并且带有SPI接口可以方便的与MCU进行通讯,因此只需极少量的外围元件就可以构成多种应用方案,特别适合应用在电子秤中。例如,由于片内自带PGA,因此就可以不需要外部的放大电路,这样可减小系统的噪声,降低成本。芯片带有自纠正电路和系统纠正电路,可以纠正芯片及系统的增益误差和失调误差,进一步提高了精度。CS1240的参考电压输入可以直接用电源电压,这样就不需要额外的参考源,可以简化电路设计、降低成本。 图2:电子秤系统的基本

23、组成。  1普通电子秤设计方案 图3是采用CS1240实现的普通电子秤电路原理图。传感器出来的信号经过外部的无源滤波器滤波后,送入到CS1240中。滤波器包括两个部分:第一部分是由电感和电容组成的EMI滤波器,用来减小外部环境对于电路的影响;第二部分是由电阻和电容组成的RC滤波器,用来限制输入信号的带宽,降低输入信号的噪声。 由于CS1240内部自带有PGA电路,所以图2中所示的放大部分在本电路中不需要。PGA的增益一般设置为64或者128。参考电压输入可以直接接在电源和地上,因此不需要额外的参考电压。为了减小参考源的噪声,需要在参考源的输入端加入10uF的滤波电

24、容,这个电容越靠近芯片越好。在电路正常工作以前,可以通过自纠正和系统纠正来纠正芯片和系统的增益误差以及失调误差来提高整个系统的精度。 图3:普通电子秤电路电气原理图。  CS1240通过SPI接口与MCU进行通讯。SPI接口为标准的四线SPI接口,包括片选信号CS、串行时钟SCLK、串行输入SDI和串行输出SDO。通过SPI接口,可以读写CS1240内的各个控制寄存器和数据寄存器。可以看出,整个电路只需极少量的外围元件(主要是一些起滤波作用的电容、电感以及电阻等无源器件),实现起来非常简单。在设计电路时需要注意的是,因为CS1240是数模混合芯片,为了防止数字部分的噪声对模

25、拟电路造成影响,最好使用单独的数字电源和模拟电源,在电容的输入端要加入旁路电容来减少电源噪声对于电路的影响。在制作PCB板时,数字地和模拟地要分开,最后通过单点接触连接起来。2高精度电子秤设计方案一般说来,传感器输出的电压值都非常小,基本上都是毫伏级甚至微伏级。在设计高精度电子秤时,需要外部放大电路来获得足够的增益。图4给出了高精度电子秤的电路原理图。与图3显示的方案相比,这个电路主要是增加了由两个运算放大器(简称运放)及电阻RG和RF组成的放大电路。这个放大电路的增益为: 图4:高精度电子秤电气原理图。 通过调节RG和RF的值,就可以获得所需要的增益,配合CS1240提供的最大128倍增益,

26、可以将输入信号放大到所需要的幅度。选择运放时要注意,由于输入信号的幅度很小,因此对运放的噪声性能和失调电压要求非常高,应选择低噪声、低失调的运算放大器。本文小结目前,电子秤正朝着小型化、高精度、智能化方向发展。CS1240采用外形为10.2×5.3mm的SSOP28脚封装,尺寸很小,所需的外围器件也很少,满足了电子秤小型化的需求;它还提供了24位无失码,21位有效精度的高性能,满足了电子秤高精度的需求;其内置各种控制寄存器和数据寄存器,并且可以通过SPI接口方便地控制和读取这些寄存器,满足了电子秤智能化的需求。因此CS1240是电子秤中模数转换器的理想选择。作者:万巍,深圳市芯海科技

27、有限公司山东省电子设计大赛 ( 2004 年)  参赛学校: 山东大学 指导教师: 万 鹏 姚福安 设计者: 刘永胜 杜 辉 杨媛媛 2004 年 9 月 13 号  摘 要 本系统采用单片机 AT89S52 为控制核心,实现电子秤的基本控制功能。系统的硬件部分包括最小系统板,数据采集、人机交互界面三大部分。最小系统部分主要是扩展了外部数据存储器,数据采集部分由压力传感器、信号的前级处理和 A/D 转换部分组成。人机界面部分为键盘输入 , 128 64 点阵式液晶显示,可以直观的显示中文,使用方便。 软件部分应用单片机 C 语言实现了本设计的全部控制功能,包括基本的称重功能

28、,和发挥部分的显示购物清单的功能,可以设置日期和重新设定 10 种商品的单价,具有超重报警功能,由于系统资源丰富,还可以方便的扩展其应用 第一部分: 方案论证与比较 一、控制器部分 本系统基于 51系列单片机来实现,因为系统需要大量的控制液晶显示和键盘。不宜采用大规模可编程逻辑器件:CPLD、FPGA来实现。(因为大规模可编程逻辑器件一般是使用状态机方式来实现,即所解决的问题都是规则的有限状态转换问题。本系统状态较多,难度较大。)另外系统没有其它高标准的要求,我们最终选择了AT89S52通用的比较普通单片机来实现系统设计。内部带有8KB的程序存储器,在外面扩展了32K数据存储器,以满足系统要求

29、。 二、数据采集部分 ( 1 )、传感器 题目要求称重范围 9.999Kg ,重量误差不大于 Kg ,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重 。我们选择的是 L-PSIII 型传感器,量程 20Kg ,精度为 ,满量程时误差 0.002Kg 。可以满足本系统的精度要求。其原理如下图所示: 称重传感器主要由弹性体、电阻应变片电缆线等组成,内部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,输出信号电压可由下式给出: ( 2 )、前级放大器部分 压力传感器输出的电压信号为毫伏级,所以对运算放大器要求很高。 我们考虑可以采用以下几种方案可以采用: 方案

30、 一 、利用普通低温漂运算放大器构成多级放大器。 普通低温漂运算放大器构成多级放大器会引入大量噪声。由于 A/D 转换器需要很高的精度,所以几毫伏的干扰信号就会直接影响最后的测量精度。所以,此中方案不宜采用。 方案二、由高精度低漂移运算放大器构成差动放大器。 差动放大器具有高输入阻抗,增益高的特点,可以利用普通运放 ( 如 OP07) 做成一个差动放大器。 电阻 R1 、 R2 电容 C1 、 C2 、 C3 、 C4 用于滤除前级的噪声, C1 、 C2 为普通小电容,可以滤除高频干扰, C3 、 C4 为大的电解电容,主要用于滤除低频噪声。 优点:输入级加入射随放大器,增大了输入阻抗,中间

31、级为差动放大电路,滑动变阻器 R6 可以调节输出零点,最后一级可以用于微调放大倍数,使输出满足满量程要求。输出级为反向放大器,所以输出电阻不是很大,比较符合应用要求。 缺点:此电路要求 R3 、 R4 相等,误差将会影响输出精度,难度较大。实际测量,每一级运放都会引入较大噪声。对精度影响较大。 方案 三 :采用专用仪表放大器,如: INA126,INA121等。 此类芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。 以 INA126为例,接口如下图所示: 放大器增益 ,通过改变 的大小来改变放大器的增益。 基于以上分析,我们决定采用制作方便而且精度很好

32、的专用仪表放大器 INA126 。 ( 3 )、 A/D 转换器 由上面对传感器量程和精度的分析可知: A/D 转换器误差应在 以下 12 位 A/D 精度: 10Kg/4096=2.44g 14 位 A/D 精度: 10Kg/16384=0.61g 考虑到其他部分所带来的干扰 ,12 位 A/D 无法满足系统精度要求。 所以我们需要选择 14位或者精度更高的A/D。 方案一、逐次逼近型 A/D转换器,如:ADS7805、ADS7804等。 逐次逼近型 A/D转换,一般具有采样/保持功能。采样频率高, 功耗比较低,是理想的高速、高精度、省电型 A/D 转换器件。 高精度逐次逼近型 A/D转换器

33、一般都带有内部基准源和内部时钟,基于89C52构成的系统设计时仅需要外接几个电阻、电容。 但考虑到所转换的信号为一慢变信号,逐次逼近型 A/D转换器的快速的优点不能很好的发挥,且根据系统的要求,14位AD足以满足精度要求,太高的精度就反而浪费了系统资源。所以此方案并不是理想的选择。 方案二、双积分型 A/D转换器:如:ICL7135、ICL7109等。 双积分型 A/D转换器精度高,但速度较慢(如:ICL7135),具有精确的差分输入,输入阻抗高(大于 ),可自动调零,超量程信号,全部输出于TTL电平兼容。 双积分型 A/D转换器具有很强的抗干扰能力。对正负对称的工频干扰信号积分为零,所以对5

34、0HZ的工频干扰抑制能力较强,对高于工频干扰(例如噪声电压)已有良好的滤波作用。只要干扰电压的平均值为零,对输出就不产生影响。尤其对本系统,缓慢变化的压力信号,很容易受到工频信号的影响。故而采用双积分型A/D转换器可大大降低对滤波电路的要求。 作为电子秤,系统对 AD的转换速度要求并不高,精度上14位的AD足以满足要求。另外双积分型A/D转换器较强的抗干扰能力,和精确的差分输入,低廉的价格。综合的分析其优点和缺点,我们最终选择了ICL7135。 三、人机交互界面 ( 1 )、键盘输入 键盘输入是人机交互界面中最重要的组成部分,它是系统接受用户指令的直接途径。 我们采用了专用的键盘显示芯片 ZL

35、G 7289。 Intel8279 是一种比较成熟的可编程键盘 / 显示芯片,可以满足小系统的要求。 ZLG7289 是周立功单片机公司设计的串行输入输出可编程键盘 / 显示芯片有强大的键盘显示功能,支持 64 键控制。可以比较方便的扩展系统。另外 ZLG7289 内部有译码电路,大大简化了程序。 我们选择功能更好的 ZLG7289 作为键盘扫描显示芯片 ( 2 )、显示输出 虽然 ZLG7289 具有控制数码管显示的功能,但考虑到本题目要求中文显示,数码管无法满足,只能考虑用带有中文字库的液晶显示器。由于可以分页显示,无需太大屏幕,我们选择了点阵式 128 × 64 型 LCD O

36、CM4X8C 。第二部分:具体实现方案 一、硬件组成: (一)、硬件结构框图如下: ( 二)、各部分硬件电路实现 (1)、基于AT89S52的主控电路图 主控电路以 89C52为核心扩展32K RAM;单片机使用6M晶振,P0口外接上拉电阻,增大了带负载能力;A12A15接74LS138译码器,输出作外部片选信号。 扩展了几个接口用于其它部分于单片机的通信 ( 2)前端信号处理 INA126构成的放大器及滤波电路: 通过调节 的阻值来改变放大倍数。微弱信号Vi1和Vi2被分别放大后从INA126的第6脚输出。A/D转换器ICL7135的输入电压变化范围是-2V+2V,传感器的输出电压信号在02

37、0mv左右,因此放大器的放大倍数在200300左右,可将 接成 的滑动变阻器。 由于 ICL7135对高频干扰不敏感,所以滤波电路主要针对工频及其低次谐波引入的干扰。因为压力信号变化十分缓慢,所以滤波电路可以把频率做得很低。 ( 3)A/D转换器 基于 ICL7135的A/D转换器实现电路: 基准源选用芯片 MC1403 2.5V分压得到: 由于 ICL7135内部没有振荡器,所以需要外接。但A/D转换器精度与时钟频率的漂移无关。正向积分时间T1和反向积分时间T2按相同比例增加并不影响测量的结果。ICL7135的时钟频率典型值为200kHz最高允许为1200kHz,时钟频率越高,转换速度越快。

38、每输出一位BCD码的时间为200个时钟周期,选通脉冲位于数据脉冲的中部,如果时钟频率太高,则数据的接受程序还没有接受完毕,数据就已经消失了。考虑到此系统频率要求不是太高,且单片机的工作频率也不是很高,因此我们取时钟频率的典型值:200kHz。由于频率比较低,对时钟漂移要求不高,我们采用阻容方式实现了基本的振荡电路。如下: 振荡频率约为 160kHz。 此外 ICL7135外部还需要外接积分电阻、积分电容,但A/D转换器精度与外接的积分电阻、积分电容的精度无关,故可以降低对元件质量的要求。不过积分电容和积分电容的介质损耗会影响到A/D转换器的精度,所以应采用介质损耗较小的聚丙乙烯电容 ICL71

39、35还需要外接基准电源,这是因为芯片内部的基准源一般容易受到温度的影响,而基准电源的变化会直接影响转换精度。所以当精度要求较高时,应采用外接基准源。一般接其典型值1V。 (4) 、人机交互界面 (a) 、键盘接口图: 键盘控制芯片 ZLG7289 控制键盘的扫描,当监测到有键按下后 ZLG7289 的 9 脚便产生一个低电平通知单片机,单片机可以采用查询或者中断方式将数据通过 P1.5 以串行方式读入。因为查询方式会浪费大量的时间 , 所以本系统采用的是中断方式。 (b) 、 LCD 显示接口电路 . LCD 复位信号通过反相器接到单片机的 RESET 上,上电或手动复位时将随单片机同时复位。

40、由于复位后并行口输出高电平, LCD 处于选中状态,此时 LCD 将输出内部状态字,将会影响数据总线上的数据传输。所以外接一个反相器。 二、软件组成: (一)、流程图  主程序流程如图所示: 中断服务程序流程图如下:  ( 2)、软件说明 由于涉及到大量数据的运算,程序不宜采用汇编语言, C语言大大缩短了开发时间,且程序可读性非常好。 程序中对 AD采入的数据进行了数字滤波,进一步减小AD读入数据的误差。 7289键盘控制采用中断方式,加快了程序的执行效率。 详细的操作过程见使用说明。第三部分:测试及结果分析   测试结果及误差分析: 砝码重量( g ) 实际显示

41、重量 1 ( g ) 实际显示重量 2 ( g ) 实际显示重量 3 ( g ) 100 99 99 98 150 148 147 149 200 195 197 198 250 244 246 244 300 295 296 294 350 342 344 343 400 393 395 396 450 443 443 444 500 493 494 495 550 552 551 553 600 590 593 594 650 641 641 642 700 689 692 693 750 740 740 741 800 790 791 790 850 839 840 842 900 88

42、7 888 888 950 938 938 938 1000 986 987 987 注:由于传感器和其他器件本身并非理想线性,程序中对实测数据进行了线性补偿。 误差分析:经校准,非线性补偿后,误差已基本达到要求。 所用测量仪器:总重 1Kg的砝码,万用表,示波器 第四部分:使用操作说明 本系统采用 32键键盘来实现,分为数字键:0-9,商品1-商品10,6个控制键。 本系统开机显示公司名称,后提示输入收银员编号和当前日期。正确输入后,进入称重显示。 数字键和小数点键:用于输入单价; 累加键:相当于确认,可以将当然信息保存至购物清单;并且将金额累加,得到所购买商品的总金额。 去皮键:用于去除皮

43、重; 清单价:用于输入的单价错误的时候,重新输入; 购物清单键:当需要显示当前顾客的总的购物清单时,可以连续按下购物清单键,分页显示所购买的商品信息,并且若以达到最后一页,则显示总计金额,收银员编号,和公司名称,当然日期。 运行中如果顾客购买已存入的 10种商品,只需按下相应的商品键,既可以将商品的名称和单价以中文的形式显示,同样累加键保存此商品的信息,包括其重量,金额和当前累计金额。 另外,已存入的 10种商品的单价均可重新设置,直接输入其单价即可,方便实用。如果所称重物超过了系统最大量程10Kg,则蜂明器发出报警声音。 第五部分:附录 电子秤的信号采集、处理、显示的程序 . #includ

44、e <reg52.h> #include<absacc.h> /ad 控制线 #define ad_244 XBYTE0xbfff; sbit ad_stb=P33; sbit ad_start=P11; /lcd 控制线 sbit lcd_di=P17; sbit lcd_rw=P12; sbit lcd_e=P10; /7289 控制线 sbit cs7289=P13; sbit clk7289=P14; sbit dio7289=P15; /sbit key7289=P16; /7289 查询方式 sbit key7289=P32; /7289 中断方式 sbit

45、 baoj=P35; /7289 子程序 void ini_7289(void); void send7289(short); short receive(void); void keyin(void); /lcd 子程序 void ini_lcd(void); void lcdd_send(short); void lcdi_send(short); void chk_busy(void); /ad 子程序 void ad(void); void baojing(void); void d_change(long); / 初始化,编号,日期 void ini(); void error1(v

46、oid); void nop1() void change(s) int dealy; / 全局变量 short sh=0; / 商品号 short dot=0; / 小数点标志 bit list=0; short qb=0; char xdata shuju7="" short xdata bcd5; char xdata s116=" 单价 : 元 " char xdata s216=" 重量 : Kg" char xdata s316=" 金额 : 元 " char xdata s416=" 累计

47、: 元 " char code message0=" 信息学院 山东大学 " char code message1=" 输入收银员代号 :" char code message2=" 输入日期 :" char code message316=" - 山东大学 - " char code message516=" 垃圾公司欢迎您 !" char xdata bianhao16=" 收银员: " char xdata riqi16=" - - " l

48、ong int xdata zongjia=0,jine=0,jine1=0; int xdata shizhong=0,pizhong=0,zhongliang=0; long int xdata qingdan204; char code shangpin114=" 单价 "," 苹果 "," 梨 "," 花生 "," 大米 ", " 桃子 "," 塑料 "," 瓜子 "," 桔子 "," 香蕉 &qu

49、ot;," 玉米 " long int xdata danjia11= 0,2000,3635,5502,6660,3320,5502,660,3210,6600,5600; char xdata jiage6=0x0,0x0,0x0,0xfe,0x0,0x0; / 0.00 short xdata xiuzheng=0,2,5,6,7,8,9,12,13; char s16; s6=shuju0; s7=shuju1; s8=shuju2; s9=shuju3; s10=shuju4; s11=shuju5; s12=shuju6; /* void main() shor

50、t i,j; long int x,z; int y; int xdata duilie3=0; P1=0xff; ini_lcd(); / 初始化 LCD lcdi_send(0x8a); while(message0i) lcdd_send(message0i+); ini_7289(); / 初始化 7289 pizhong=ad1(); lcdi_send(0x1); / 总清 屏 ini(); / 初始页面 , 收银员编号,日期 lcdi_send(0x1); / 总清 屏 EA=1;EX0=1; / 中断 /EX1=1; /ad_start=1; while(1) if(list)

51、lcdi_send(0x80); / 显示单位名称 for(i=0;i<16;i+) lcdd_send(message3i); x=qingdan00; / 商品名 单价 for(i=0;i<4;i+) s1i=shangpinxi; x=qingdan01; d_change(x); change(s1); lcdi_send(0x90); for(i=0;i<16;i+) lcdd_send(s1i); x=qingdan02; / 显示重量 d_change(x); change(s2); s210=s29;s29='.' if(s28=32) s28

52、=0x30; lcdi_send(0x88); for(i=0;i<16;i+) lcdd_send(s2i); x=qingdan03; d_change(x); change(s3); lcdi_send(0x98); for(i=0;i<16;i+) lcdd_send(s3i); / 以上为第一页 EA=0;EX0=0; / 关键盘中断 for(j=1;j<qb;j+) while(key7289); x=qingdanj2; d_change(x); change(s2); / 显示数据 s210=s29; s29='.' if(s28=32) s2

53、8=0x30; lcdi_send(0x90); for(i=0;i<16;i+) lcdd_send(s2i); x=qingdanj1; d_change(x); change(s1); x=qingdanj0; for(i=0;i<4;i+) s1i=shangpinxi; lcdi_send(0x80); for(i=0;i<16;i+) lcdd_send(s1i); x=qingdanj3; d_change(x); change(s3); lcdi_send(0x88); for(i=0;i<16;i+) lcdd_send(s3i); lcdi_send

54、(0x98); for(i=0;i<16;i+) lcdd_send(0x20); lcdi_send(0x98); while(key7289=0); while(key7289); d_change(zongjia); change(s4); lcdi_send(0x80); for(i=0;i<16;i+) lcdd_send(s4i); lcdi_send(0x90); for(i=0;i<16;i+) lcdd_send(bianhaoi); lcdi_send(0x88); for(i=0;i<16;i+) lcdd_send(message5i); lcd

55、i_send(0x98); for(i=0;i<16;i+) lcdd_send(riqii); list=0; while(key7289=0); while(key7289=1); while(key7289=0); EA=1;EX0=1; else y=0; /* duilie2=duilie1; / 数字滤波 duilie1=duilie0; y=ad1(); duilie0=y>>1; x=duilie0; x=x<<1; x=x+duilie1+duilie2; */ zhongliang=ad1(); shizhong=zhongliang-pizhong; / 数据转换 x=danjiash; jine1=shizhong*x; jine=jine1/1000; d_change(shizhong); change(s2); / 显示数据 s210=s29; s29='.' if(s28=32) s28=0x30; lcdi_send(0x90); for(i=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论