智能电子称设计-毕业论文 - 图文

更新时间:2024-05-03 02:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

智能电子称的设计 郑州轻院轻工职业学院

专科毕业设计(论文)

题 目:电子称的设计 学生姓名:水若冰

专业班级:电子工艺与管理1班 学 号:10111041 系 别:机电工程系

指导老师(职称):刘金桂(讲师) 完成时间:2013年3月9号

1

智能电子秤设计

智能电子秤设计

摘要

本设计系统以单片机AT89S52为控制核心,实现电子秤的基本控制功能。在设计系统时,为了更好地采用模块化设计法,分步设计了各个单元功能模块。

系统的硬件部分包括最小系统部分、数据采集部分、人机交互界面和系统电源四大部分。最小系统部分主要包括AT89S52和扩展的外部数据存储器;数据采集部分由称重传感器,信号的前期处理和A/D转换部分组成,包括运算放大器AD620和A/D转换器ICL7135;人机界面部分为键盘输入,四位LED数码显示器,可以直观的显示重量的具体数字以及方便的输入数据,使用方便;系统电源以LM317和LM337为核心设计电路以提供系统正常工作电源。

系统的软件部分应用单片机C语言进行编程,实现了该设计的全部控制功能。该电子秤可以实现基本的称重功能(称重范围为0~9.999Kg,重量误差不大于±0.005Kg),并发挥部分的显示购物清单的功能,可以设置日期和设定十种商品的单价, 还具有超量程和欠量程的报警功能。

本系统设计结构简单,使用方便,功能齐全,精度高,具有一定的开发价值。

关键词 单片机 数据采集 A/D转换器 人机界面

2

智能电子称的设计

INTELLIGENT ELECTRONIC DESING

ABSTRACT

The design of the system with the monolithic integrated circuit AT89S52 as the core to realize the basic electronic control functions. In the design of the system, in order to better the modularized design method, the unit step function module design. The system includes hardware, data acquisition system minimum, man-machine interface and the system of power. The minimum system parts including AT89S52 and the expansion of external data storage, Data collected by weighing transducer, signal processing and the A/D conversion parts, including the amplifier AD620 and A/D converter ICL7135, For the man-machine interface partial keyboard input, four LED digital display, can show the specific weight and figure of input data, use convenient, In LM317 LM337 and power system as the core circuit design to provide normal work of the system.

The application of SCM system software part C language program, the design of all control function. It can realize the basic electronic weighing function (weighing the range of 0-9.999 Kg, weight error is not more than ± 0.005 Kg), and play a part of the show shopping list of function, can set the date and set the price of goods, and ten has super range and less range alarm function.

The system design is simple in structure, easy to use, complete function, high precision, has certain value.

Key words:microcontroller, data collection, A/D converter, human-machine interface

3

智能电子秤设计

目 录

第一章 绪论 ............................... 1

1 电子秤概述 .......................................1

1.2 选题背景与意义 ..................................1 1.3 电子衡器的发展动态 ..............................2

第二章 系统方案设计 ...................... 3

2.1 电子秤的组成结构 ....................................... 3

2.1.1 电子秤的基本结构

2.1.2 电子秤的工作原理 ...................................... 3

2.2 电子秤设计的要求及基本思路 ............................ 4

2.2.1 电子秤设计的要求 ....................................... 4 2.2.2 电子秤设计的基本思路 .................................. 4

2.3 单片机的选型 ............................................ 4 2.4 数据采集模块 ............................................ 5

2.4.1 传感器 ................................................ 5 2.4.2 前级放大器 ............................................ 7

2.5 人机交互界面模块 ...................................... 10

2.5.1 键盘输入 ............................................. 10 2.5.2 输出显示 ............................................. 10

第三章 电子秤硬件的设计与制作 ......... 11

3.1 AT89S52的主控电路 ..................................... 11

3.1.1 AT89S52芯片 ......................................... 11 3.1.2 主控电路的设计 ....................................... 12

3.2 电子秤的信号处理流程 .................................. 13

3.2.1 称重数据处理 ......................................... 13 3.2.2 信号处理电路 ......................................... 14

4

智能电子称的设计 3.3 人机交互界面模块设计 .................................. 17

3.3.1 键盘输入控制电路 ..................................... 17

3.3.2 LCD显示电路 ......................................... 19

3.4 报警电路的设计 ......................................... 21

第四章 电子秤的软件设计 ................ 22

4.1 软件流程图及程序设计 .................................. 22

4.1.1 初始化程序设计流程图 ................................. 22 4.1.2 主程序设计流程图 ..................................... 23

4.2 主程序设计及其相关程序设计 ........................... 24

4.2.1 主程序设计 ........................................... 24 4.2.2 信号采样与A/D转换子程序的设计 ....................... 28 4.2.3 键盘/显示子程序设计 .................................. 30

第五章 总结与展望 ........................ 32

5.1 设计总结与感想 ......................................... 32 5.2 本设计存在的不足及工作展望 ........................... 33

致 谢 ................................... 33 参 考 文 献 ............................. 33 附录A:原理图 ........................... 34 附录B:元器件清单 ....................... 35

5

智能电子称的设计 第一章 绪论

1.1 电子秤概述

称重技术自古以来就被人们所重视,作为一种计量手段,广泛应用于工农业、科研、交通、内外贸易等各个领域,与人民的生活紧密相连。电子秤是电子衡器中的一种,衡器是国家法定计量器具,是国计民生、国防建设、科学研究、内外贸易不可缺少的计量设备,衡器产品技术水平的高低,将直接影响各行各业的现代化水平和社会经济效益的提高。因此,称重技术的研究和衡器工业的发展各国都非常重视。

我国电子衡器从最初的机电结合型发展到现在的全电子型和数字智能型。我国电子衡器的技术装备和检测试验手段基本达到国际水平。电子衡器制造技术及应用得到了新发展。电子称重技术从静态称重向动态称重发展;计量方法从模拟测量向数字测量发展;测量特点从单参数测量向多参数测量发展,特别是对快速称重和动态称重的研究与应用。

电子秤属于电子衡器的一种,它的发展也遵循这一趋势。随着时代科技的迅猛发展,微电子学和计算机等现代电子技术的成就给传统的电子测量与仪器带来了巨大的冲击和革命性的影响。常规的测试仪器仪表和控制装置被更先进的智能仪器所取代,使得传统的电子测量仪器在远距离、功能、精度及自动化水平定方面发生了巨大变化,并相应的出现了各种各样的智能仪器控制系统,使得科学实验和应用工程的自动化程度得以显著提高。

做为重量测量仪器,智能电子秤在各行各业开始显现其测量准确,测量速度快,易于实时测量和监控的巨大优点,并开始逐渐取代传统型的机械杠杆测量称,成为测量领域的主流产品。

接下来让大家了解更多有关于智能电子秤的相关知识。

1.2 选题背景与意义

随着第二次世界大战后的经济繁荣,为了把称重技术引入生产工艺过程中去,对称重技术提出了新的要求,希望称重过程自动化,为此电子技术不断渗入衡器制造业。在1960年开发出了与衡器相联的专门称重值打印机。当时的带电子装置的衡器其称量工作是机械式的,但与称量有关的显示、记录、远传式控制器等功能是电子方式的。

电子秤的发展过程与其它事物一样,也经历了由简单到复杂、由粗糙到精密、由机械到机电结合再到全电子化、由单一功能到多功能的过程。近年来,电子秤已愈来愈多地参与到数据处理和过程控制中。现代称重技术和数据系统已经成为工艺技术、储运技术、预包装技术、收货业务及商业销售领域中不可缺少的组成部分。随着称重传感器各项性能的不断突破,为电子秤的发展奠定了其础,国外如美国、西欧等一些国家在20世纪60年代就出现了0 .1 %称量准确度的电子秤,并在70年代中期约对75 %的机械秤进行了机电结合式的电子化改造。

随着生活水平的提高,商品的种类和样式越来越来多,我们出门买东西无论是在超市还是在市场都经常会用到电子称,电子称在我们的日常生活中已经成为必不可少的工具,因此,有针对性地开发出一套有实用价值的电子秤系统,从技术上克服上述诸多缺点,改善电子秤系统在应用中的不足之处,具有现实意义。

1

智能电子秤设计

1.3 电子衡器的发展动态

电子衡器产品量大面广、种类繁多,从通用的各种规格的电子秤到大型的电子称重系统,从单纯的称重、计价到生产过程检测系统的一个测量控制单元,其应用领域在不断地扩大。根据近年来电子称重技术和电子衡器的发展情况及电子衡器市场的需求,电子衡器总的发展动向为:小型化、模块化、智能化、集成化;其技术性能趋向于速率高、准确度高、稳定性高、可靠性高;其应用性趋向于综合性、组合性。

小型化:体积小、高度低、重量轻,即小薄轻。为使电子衡器的承载器达到小、薄、轻,开始采用重量轻且刚度大的空心波纹铜板和方形闭合截面的薄壁型材。

模块化:电子衡器的承载器采用模块式一体组合或分体组合,产生新的品种和规格。这种模块化组合不但提高了产品的通用性和可靠性,而且也大大提高了生产效率,降低了成本。

智能化:与电子计算机组合或开发称重用计算机,利用计算机的智能来增加称重显示控制的功能,使其在原有功能的基础上增加推理、判断、自诊断、自适应、自组织等功能。

集成化:对于某些品种和结构的电子衡器,可以实现承载器与称重传感器一体化或承载器、称重传感器与称重显示控制器一体化。

综合性:电子称重技术和电子衡器产品的应用范围不断扩大,它已渗透到一些学科和工业自动控制领域。对某些商用电子计价秤而言,只具备称重、计价、显示、打印功能还远远不够,现代商业系统还要求它能提供各种销售信息,把称重与管理自动化紧密结合,使称重、计价、进库、销售管理一体化,实现管理自动化。这就要求电子计价秤能与电子 计算机联网,把称重系统与计算机系统组成一个完整的综合控制系统。

组合性:在工业生产过程或工艺流程中,不少称重系统还应具有可组合性,即:测量范围可以任意设定;硬件能够依据不定的程序进行修改和扩展;输入输出数据与指令可使用不同的语言,并能与外部的控制和数据处理设备进行通信。

1.4 本文结构

全文共分为六章,各章的主要内容如下:

第一章简单介绍了电子秤及其概念、特点与相关背景等。

第二章电子秤原理的阐述以及描述了系统方案的设计思路与流程。 第三章对系统硬件设计进行了描述,给出了单片机的的控制方案。 第四章讲述了系统软件流程。 第五章本次设计的总结及感想。 第六章本文相关的参考文献。

2

智能电子称的设计 第二章 系统方案设计

2.1 电子秤的组成结构

2.1.1 电子秤的基本结构

电子秤是利用物体的重力作用来确定物体质量(重量)的测量仪器,也可用来确定与质量相关的其它量大小、参数、或特性。不管根据什么原理制成的电子秤均由以下三部分组成:

(1)承重、传力复位系统

它是被称物体与转换元件之间的机械、传力复位系统,又称电子秤的秤体,一般包括接受被称物体载荷的承载器、秤桥结构、吊挂连接部件和限位减振机构等。

(2)称重传感器

即由非电量(质量或重量)转换成电量的转换元件,它是把支承力变换成电的或其它形式的适合于计量求值的信号所用的一种辅助手段。

按照称重传感器的结构型式不同,可以分直接位移传感器(电容式、电感式、电位计式、振弦式、空腔谐振器式等)和应变传感器(电阻应变式、声表面谐振式)或是利用磁弹性、压电和压阻等物理效应的传感器。

对称重传感器的基本要求是:输出电量与输入重量保持单值对应,并有良好的线性关系;有较高的灵敏度;对被称物体的状态的影响要小;能在较差的工作条件下工作;有较好的频响特性;稳定可靠。

(3)测量显示和数据输出的载荷测量装置

即处理称重传感器信号的电子线路(包括放大器、模数转换、电流源或电压源、调节器、补尝元件、保护线路等)和指示部件(如显示、打印、数据传输和存贮器件等)。这部分习惯上称载荷测量装置或二次仪表。在数字式的测量电路中,通常包括前置放大、滤滤、运算、变换、计数、寄存、控制和驱动显示等环节。

2.1.2 电子秤的工作原理

当被称物体放置在秤体的秤台上时,其重量便通过秤体传递到称重传感器,传感器随之产生力-电效应,将物体的重量转换成与被称物体重量成一定函数关系(一般成正比关系)的电信号(电压或电流等)。此信号由放大电路进行放大、经滤波后再由模/数(A/D)器进行转换,数字信号再送到微处器的CPU处理,CPU不断扫描键盘和各种功能开关,根据键盘输入内容和各种功能开关的状态进行必要的判断、分析、由仪表的软件来控制各种运算。运算结果送到内存贮器,需要显示时,CPU发出指令,从内存贮器中读出送到显示器显示,或送打印机打印。一般地信号的放大、滤波、A/D转换以及信号各种运算处理都在仪表中完成。

3

智能电子秤设计

2.2 电子秤设计的要求及基本思路

2.2.1 电子秤设计的要求

1) 称重范围:不超过9.999Kg 2) 测量精度:≤ 0.005Kg

3) 显示方式:LCD显示所称量的物品重量,同时还可显示物品的名称,数

量,单价,金额和所有物品的总金额。 4) 使用操作:键盘输入数据,操作简单方便。

5) 特殊功能:具有去皮功能以及能将金额累加计算;当物品重量超过电子

秤量程,即过载情况或者是物品重量小于A/D转换器所能转换的最小精度,即欠量程的时候,具有超重报警功能。

2.2.2 电子秤设计的基本思路

将电子秤大致能划分为三大部分,数据采集模块、控制器模块和人机交互界面模块。其中数据采集模块由压力传感器、信号的前级处理和A/D转换部分组成。转换后的数字信号送给控制器处理,由控制器完成对该数字量的处理,驱动显示模块完成人机间的信息交换。此外添加了一个过载、欠量报警提示的特殊功能。

如图2-1(上图为本系统的设计图)

2.3 单片机的选型

AT89S52单片机是AT89S系列中的增强型高档机产品,它片内存储器容量是AT89S51的一倍,即片内8KB的Flash程序存储器和256B的RAM。另外,它还增加了一个功能极强的、具有独特应用的16位定时/计数器2等多种功能。在工程应用中AT89S52有一显著的优势:不需要烧写器,只借助PC 机的并口输出和极为简单的下载电路,便可将程序通过串行方式写入单片机。并且下载电路可设计在系统中,可以随时修改单片机的软件而不对硬件做任何改动。

由此,通过对目前主流型号的比较,我们最终选择了AT89S52通用的普通单片机来实现系统设计。AT89S52是一种兼容MCS51微控制器,工作电压4.0V到5.5V,全静态时钟0 Hz 到33 MHz,三级程序加密,32个可编程I/O口,2/3个

4

智能电子称的设计 16位定时/计数器,6/8个中断源,全双工串行通讯口,低功耗支持Idle和Power-down模式,Power down模式支持中断唤醒, 看门狗定时器,双数据指针,上电复位标志。另外在外扩展了32K数据存储器,以满足系统要求。

2.4 数据采集模块

2.4.1 传感器

传感器下的定义是:“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。其中敏感元件指传感器中能直接感受被测量的部分,转换元件指传感器中能将敏感元件输出量转换为适于传输和测量的电信号部分。此外传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。

称重传感器在电子秤中占有十分重要的位置,被喻为电子秤的心脏部件,它的性能好坏很大程度上决定了电子秤的精确度和稳定性。通常称重传感器产生的误差约占电子秤整机误差的50%~70%。若在环境恶劣的条件下(如高低温、湿热),传感器所占的误差比例就更大,因此,在人们设计电子秤时,正确地选用称重传感器非常重要。

称重传感器的种类很多,根据工作原理来分常用的有以下几种: 电阻应变式、电容式、压磁式、压电式、谐振式等。(本设计采用的是电阻应变式)

电阻应变式称重传感器包括两个主要部分,一个是弹性敏感元件:利用它将被测的重量转换为弹性体的应变值;另一个是电阻应变计:它作为传感元件将弹性体的应变,同步地转换为电阻值的变化。电阻应变片所感受的机械应变量一般为10 - 6~10 - 2,随之而产生的电阻变化率也大约在10 - 6~10 - 2数量级之间。这样小的电阻变化用一般测量电阻的仪表很难测出,必须采用一定形式的测量电路将微小的电阻变化率转变成电压或电流的变化,才能用二次仪表显示出来。在电阻应变式称重传感器中通过桥式电路将电阻的变化转换为电压变化。电阻应变式称重传感器工作原理框图如图2-1所示:

载荷P 应变? 电阻变化?R 输出电压 敏感元件 应变片 测量电桥

如图2-2电阻应变式称重传感器工作原理框图

当传感器不受载荷时,弹性敏感元件不产生应变,粘贴在其上的应变片不发生变形,阻值不变,电桥平衡,输出电压为零;当传感器受力时,即弹性敏感元件受载荷P时,应变片就会发生变形,阻值发生变化,电桥失去平衡,有输出电压。

5

智能电子秤设计

如图2-3 桥式测量电路

R1、R2、R3、R4为4个应变片电阻,组成了桥式测量电路,Rm为温度补偿电阻,e为激励电压,V为输出电压。

若不考虑Rm,在应变片电阻变化以前,电桥的输出电压为:

R4??R1 V=???e (2-1)

?R1?R2R3?R4? 由于桥臂的起始电阻全等,即R1 = R2 = R3 = R4 = R,所以V=0 。

当应变片的电阻R1、R2、R3、R4变成R+△R1、R+△R2、R+△R3、R+△R4时,电桥的输出电压变为:

R??R1R??R4?? V=? ??e (2-2)

?R??R1?R??R2R??R3?R??R4?通过化简,上式则变为: V=

e??R1?R2?R3?R4? ????? (2-3)

4?RRRR?也就是说,电桥输出电压的变化与各臂电阻变化率的代数和成正比。

?R如果四个桥臂应变片的灵敏系数相同,且 = Kε,则上式又可写成:

ReK(ε1 - ε2 + ε3 - ε4 ) (2-4) V=4式中K为应变片灵敏系数,ε为应变量。

上式表明,电桥的输出电压和四个轿臂的应变片所感受的应变量的代数和成正比。在电阻应变式称重传感器中,4个应变片分别贴在弹性梁的4个敏感部位,传感器受力作用后发生变形。在力的作用下,R1、R3被拉伸,阻值增大,△R1、△R3正值,R2、R4被压缩,阻值减小,△R2、△R4为负值。再加之应变片阻值变化的绝对值相同,即

△R1 = △R3 = + △R或ε1 = ε3 = +ε (2-5) △R2 = △R4= - △R或ε2 = ε4 = - ε (2-6)

eK因此,V=×4ε = e Kε。若考虑 Rm,则电桥的输出电压变成:

4R?R??RR??R???V=?????e

2R2RR?2Rm????=

R?RRe = K εe

R?2RmRR?2Rm6

智能电子称的设计 VR ,则SU = K ε (2-7)

R?2RmeSU称为传感器系数或传感器输出灵敏度。 对于一个高精度的应变传感器来说,仅仅靠4个应变片组成桥式测量电路还是远远不够的。由于弹性梁材料金相组织的不均匀性及热处理工艺、应变片性能及粘贴工艺、温度变化等因素的影响,传感器势必产生一定的误差。为了减少传感器随温度变化产生的误差,提高其精度和稳定性,需要在桥路两端和桥臂中串入一些补偿元件。如:初始不平衡值的补偿、零载输出温度补偿、输出灵敏度温度补偿等。

令SU =

2.4.2 前级放大器

由传感器或敏感元件转换后输出的信号一般电平较低而由电桥等电路变换后的信号亦难以直接用来显示、记录、控制或进行A/D转换。为此,测量电路中常设有模拟放大环节。这一环节目前主要依靠由集成运算放大器的基本元件构成具有各种特性的放大器来完成。

放大器的输入信号一般是由传感器输出的。传感器的输出信号不仅电平低,内阻高,还常伴有较高的共模电压。因此,一般对放大器有如下一些要求: 1) 输入阻抗应远大于信号源内阻。否则,放大器的负载效应会使所测电压造成

偏差。

2) 抗共模电压干扰能力强。

3) 在预定的频带宽度内有稳定准确的增益、良好的线性,输入漂移和噪声应足

够小以保证要求的信噪比。从而保证放大器输出性能稳定。

4) 能附加一些适应特定要求的电路。如放大器增益的外接电阻调整、方便准确

的量程切换、极性自动变换等。 基于以上分析,我们最终决定采用制作方便而且精度很好的专用仪表放大器AD620。

AD620具有体积小、功耗低、精度高、噪声低和输入偏置电流低的特点。其最大输入偏置电流为20nA,这一参数反映了它的高输入阻抗。AD620在外接电阻Rg时,可实现1~1000范围内的任意增益;工作电源范围为±2.3~±18V;最大电源电流为1.3mA;最大输入失调电压为125 V;频带宽度为120kHz(在G=100时)。AD620的内部结构如下图所示:

7

智能电子秤设计

如图2-4 AD620的内部等效图

AD620的接口如下图所示:

如图2-5 AD620的接口图

电路的工作原理:A1、A2工作在负反馈状态,其反向输入端的电压与同相输入端的电压相等。即Rg两端的电压分别为Vin+、Vin-。因此

V?Vin?

iG?in? Rg设图(2-4)中电阻R1=R2=R,则A1、A2两输出端的电压差U12为

U12?iG(R1?R2?Rg)

2R (2-8) ?(Vin??Vin?)(1?)Rg

将上式代入第一个式子得 2RV??U??(1?)(Vin??Vin?)O12 (2-9) Rg放大器的增益Av为

UOAV?

(Vin??Vin?)

2R??(1?) (2-10) Rg

8

智能电子称的设计 可见,仅需调整一个电阻Rg,就能方便的调整放大器的增益。由于整个电路对称,调整时不会造成共模抑制比的降低。

在接口图(2-5)中,通过改变可变电阻R3的阻值大小来改变放大器的增益,放大器增益计算公式如下: G?49.4K??1 (2-11) R3

2.4.3 A/D转换器

A/D转换器是一种能把输入模拟电压或电流-成与它成正比的数字量,也就是说能把被控对象的各种模拟信息变成计算机可以识别的数字信息。A/D转换器种类较多,从原理上可分为四种:双积分式A/D转换器,逐次逼近式A/D转换器、并行A/D转换器、计数器式A/D转换器及△-∑型A/D转换器。在电子秤的设计中用的比较多的是双积分式A/D转换器和△-∑型A/D转换器。

双积分ADC的基本原理是对输入模拟电压和参考电压分别进行两次积分,将输入电压平均值变成与之成正比的时间间隔,然后利用时钟脉冲和计数器测出此时间间隔,进而得到相应的数字量输出。如图2-6所示是电子秤中常用的双积分式A/D转换电路,它由积分器、比较器、模拟电子开关,积分电阻、积分电容、自动回零电阻、电容组成。其中VG是模拟地,VFR是基准电压(相对于VG为负值),VX是检测电压。

如图2-6 双积分A/D转换电路

其次双积分型A/D转换器具有很强的抗干扰能力。对正负对称的工频干扰信号积分为零,所以对50HZ的工频干扰抑制能力特强,对高于工频干扰(例如噪声电压)也具有良好的滤波作用。只要干扰电压的平均值为零,对输出就不产生影响。尤其对本系统,缓慢变化的压力信号,很容易受到工频信号的影响。故而采用双积分型A/D转换器可大大降低对滤波电路的要求。

作为电子秤,系统对AD的转换速度要求并不高,精度上14位的AD足以满

9

智能电子秤设计

足要求。另外双积分型A/D转换器较强的抗干扰能力,和精确的差分输入,低廉的价格。最终选择了精度为10Kg/ ?20000= ?0.5g的ICL7135。

2.5 人机交互界面模块

2.5.1 键盘输入

键盘输入是人机交互界面中重要的组成部分,它是系统接受用户指令的直接途径。键盘是由若干个按键开关组成,键的多少根据单片机应用系统的用途而定。键盘由许多键组成,每一个键相当于一个机械开关触点,当键按下时,触点闭合,当键松开时,触点断开。单片机接收到按键的触点信号后作相应的功能处理。因此,相对于单片机系统来说键盘接口信号是输入信号。

ZLG7289是周立功单片机公司设计的串行输入输出可编程键盘显示芯片,有强大的键盘显示功能,支持64键控制,可以比较方便地扩展系统。另外ZLG7289内部有译码电路,大大简化了程序。最终选择ZLG7289作为键盘扫描显示芯片。

2.5.2 输出显示

采用可以设置显示单价,金额,中文,购物日期等的LCD,它具有低功耗、可视面大、画面友好及抗干扰能力强等功能,其显示技术已得到广泛应用。 LCD 显示器的工作原理:液晶显示器的主要材料是液态晶体。它在特定的温度范围内,既具有液体的流动性,又具有晶体的某些光学特性,其透明度和颜色随电场、磁场、光照度等外界条件变化而变化。因此,用液晶做成显示器件,就可以把上诉外界条件的变化反映出来从而形成现实的效果。

虽然ZLG7289具有控制数码管显示的功能,但考虑到本题目要求中文显示,数码管无法满足,只能考虑用带有中文字库的液晶显示器。由于可以分页显示,无需太大屏幕,最终选择点阵式128×64型LCD—OCM4x8C。

10

智能电子称的设计

第三章 电子秤硬件的设计与制作

3.1 AT89S52的主控电路

3.1.1 AT89S52芯片

AT89S52单片机是ATMEL公司新近推出的高档型AT89S系列单片机中的增强型产品。ATMEL公司是美国20世纪80年代中期成立并发展起来的半导体公司。该公司的技术优势在于推出Flash存储器技术和高质量、高可靠性的生产技术,它率先将独特的Flash存储技术注入于单片机产品中。其推出的AT89系列单片机,在世界电子技术行业中引起了极大的反响,在国内也受到广大用户欢迎。 AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器。器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,3个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

此外,AT89S52设计和配置了振荡频率可为0Hz,并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器、串行口、外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

如表3-1 AT89S52功能主要功能特性见下表: · 兼容MCS-51指令系统 · 32个双向I/O口 · 3个16位可编程定时/计数器 · 全双工UART串行中断口线 · 2个外部中断源 · 中断唤醒省电模式 · 看门狗(WDT)电路 · 灵活的ISP字节和分页编程 · 8k可反复擦写(>1000次)ISP Flash ROM · 4.5-5.5V工作电压 · 时钟频率0-33MHz · 256x8bit内部RAM · 低功耗空闲和省电模式 · 3级加密位 · 软件设置空闲和省电功能 · 双数据寄存器指针

11

智能电子秤设计

引脚封装如下图所示:

如图3-1 AT89S52的引脚图

3.1.2 主控电路的设计

P1口和P2.0~P2.6口作为地址总线,其中P1口作为低地址线和数据总线复用,P2.0~P2.6口做高地址线。P2.7作为62256的片选控制总线,ALE接锁存器74LS373的使能端。P3.6和P3.7作为外部数据存储器写/读选通信号输出端分别接62256的/WE和/OE端。 主控电路图如下:

12

智能电子称的设计

如图3-2 主控电路设计图

3.2 电子秤的信号处理流程

3.2.1 称重数据处理

测量精度和可靠性是电子秤设计的关键,引入软件数据处理技术,可以克服或弥补包括传感器在内的各测量环节硬件本身的缺陷或弱点,使原来靠硬件电路难以实现的信号处理可以得到解决,提高电子秤的综合性能。在电子称重系统中,主要的数据处理技术有:无效物理量的消除、零漂处理、标度变换技术、非线性补偿技术、数字滤波技术等。

(1)无效物理量的消除

在称重系统中,称重传感器输出的信号是秤台、支架和被测物之和的转换信号,实际所要测的是被测物的重量,因此,秤台、支架等是无效的物理量,在信号处理过程中要用软件方法来消除。

(2)零漂处理

零位稳定是影响电子秤精度非常重要的因素,因受温度或其它因素影响将引起零位不稳定,这种现象称为零漂。由于零漂的影响,零输入信号时,输出可能不为零,为消除这个零位漂移值,采用零位补偿技术,零位补偿就是把这个零位漂移值储存起来,每一数据采集时减去这个数值,得到的数值就是消除零漂的有效信号。

(3)标度变换

在实际测量中,被测模拟信号被检测出来并转换成数字量后,需要转换成操作人员所熟悉的工程量。因为,被测对象经传感器、A/D转换后得到的数字量是一系列的数码,这些数码值并不等于原来带有量纲的参数值,它仅仅对应于参数的大小,因此,必须把它转换成带有量纲的数值后才能显示或打印输出,这种转换就是工程量变换,又称标度变换。

对一般的线性系统,其标度变换公式如下:

Ax = A0 +(Am —A0)(Nx — N0)/(Nm —N0 ) (3-1)

A0 :测量范围最小值 A m:测量范围最大值 N0:A0所对应的数字量 Nm:Am所对应的数字量 Nx:Ax所对应的数字量

其中,A0 、Am 、N0 和Nm对于某一固定的被测参数来说它们是常数,不同的参数有着不同的值。

对于测重系统而言,标度变换实质是建立重量W与A/D转换数据N关系的

13

智能电子秤设计

数学模型。

假设秤台和支架重量为W0 相应的A/D为N0 ,称量物体时,物体、秤台和支架总重为W,相应的A/D为N,最大量程范围为Wm,相应的A/D为Nm,物体净重为Wc = W- W0 ,它们之间的数学关系如下: Wc = W- W0 =(N - N0)(Wm - W0 )/(Nm - N0 ) (3-2)

上式标度变换中,只考虑了净重与A/D转换之间的数学量的关系,还没考虑仪器仪表的精确度等级和分辨率问题。在实际的称重系统中,根据国家计量法规要求,系统的分辨率、精确度等级都有明确要求,在硬件配置条件满足的情况下,分辨率、精确度等级通常通过软件设置分度值d、分度数n来解决。它们与上式的关系为:

Wm - W0 = n d =(Nm - N0 )K d n=(Nm - N0 )K

K = n /(Nm - N0) (3-3)

K称为标准系数(倍率),在软件设计中通常通过一个调校子程序来确定,然后存放在一个能长期保存的存储器中。

测量时物体的净重

Wc = W- W0 =(N - N0)K d (3-4)

(4)非线性补偿

在检测中,由于检测传感器的输入输出特性往往只在一定范围内近似呈线性,而在某些范围内则明显呈非线性,同时,传感器具有离散性,还可能有温漂、滞后等。在信号处理过程中也常用软件处理方法来补偿和校正以上误差。常用的非线性补偿处理的方法有三种:分段线性插值法、曲线拟合法、查表法。对于不太弯曲的输入输出曲线,可采用线性插值法,对于很弯曲的输入输出曲线,可采用二次抛物线插值法,对于不规则的输入输出曲线,可采用分段曲线拟合法。对于用应变称重传感器的称重系统来说,由于其非线性度不是很大,所以常采用分段线性插值法。 (5)数字滤波技术

实际测量中,由于被测对象的环境比较恶劣,干扰源比较多,各种电子秤在称量过程中,来自传感器的有用信号往往混杂有各种频率的干扰信号。为了抑制某些干扰信号,通常在称重仪表的信号入口处采用RC低通滤波器,该种滤波器能抵制高频干扰信号,但对低频干扰信号的滤波效果差,而数字滤波却可以对极低频率的干扰信号进行滤波。数字滤波就是在软件设计时采用一定的计算方法对输入的信号进行数学处理,减少干扰信号在有用信号中的比重,提高信号的真实性,它不需要增加硬件,只需根据预定的滤波算法编制相应的程序,即可达到信号滤波的目的。数字滤波可以对各种干扰信号进行滤波,其稳定性高,滤波参数修改方便,一种滤波程序可供多个通道共用。在称重系统中常用的数滤波技术有:程序判断滤波法、平滑滤波法、中位值滤波法等。实际应用中可根据情况选择其中一种或几种滤波方法的组合,对采集信号实现数字滤波。

3.2.2 信号处理电路

以下为滤波放大电路图:

14

智能电子称的设计

如图3-3 信号滤波放大图

上图中电容C5、C6用来滤除采样信号电压中的高频噪声,选用0.1uF的普通独石电容;电容C7、C84用来滤除采样信号电压中的低频噪声,选用22uF的普通独石电容。电阻R3、R4选用较小的阻值,因为采样信号电压值只有毫伏级,所以其阻值不宜太大,否则导致放大器由于输入电流太小而放大效果不明显。 微弱信号Vi1和Vi2被分别放大后从AD620的第6脚输出。A/D转换器ICL7135的输入电压变化范围是-2V~+2V,传感器的输出电压信号在0~20mv左右,因此放大器的放大倍数在200~300左右,可将R9接成1K的滑动变阻器。由于ICL7135对高频干扰不敏感,所以滤波电路主要针对工频及其低次谐波引入的干扰。因为压力信号变化十分缓慢,所以滤波电路可以把频率做得很低。

图中的LM741的输出端与AD620的地端相连,LM741的2脚与6脚相连构成电压跟随器,R15与正负电源相接,通过改变R15的阻值可使VO与 RET之间的压差变化,从而实现调零、去皮的功能。 ICL7135与单片机的接口

在读取A/D转换后的结果时,选用数据选择器作为数据读取的控制器,这样简化了ICL7135与单片机的接口电路,便于硬件设计与软件编程的实现。

在ICL7135进行A/D转换结束后输出的/STRB负脉冲引起AT89S52中断。同时在第一个/STB负脉冲时由软件将P1.7口置0,因而使S=0,使74LS157的Y (1Y,2Y,3Y,4Y)=A(4A,3A,2A,1A)。AT89S52读P1.0~P1.3口便读得BCD码,此时D5=1。此后, D4,D3,D2,D1轮流为“1”,即可读得千位、百位、十位和个位的BCD码。

前端信号处理电路设计如下图:

15

智能电子秤设计

如图3-4 信号数模转换图

ICL7135的输出时序图:

如图3-5 输出时序图

在A/D转换结束后立即更新输出锁存器并不断地扫描输出BCD码。在A/D转换期间BUSY为低电平,转换完毕后BUSY变为高电平。A/D转换结束后立刻顺序并连续不断地输出位驱动信号D5、D4、D3、D2、D1(均为正脉冲)。当D5为高电平时,B8、B4、B2、B1是万位BCD码。同样当D4为高电平时,B8、B4、B2、B1是千位BCD码。同理D3、D2、D1 为正脉冲时各对应百、十、个位的BCD码。在A/D转换完毕后,还连续输出5个/STB负脉冲,它们分别位于D5、D4、D3、D2、D1正脉冲的中间,脉冲宽度为T/2。

在设计时,还考虑过使用另一种接口电路,它巧妙地运用了ICL7135 地“Busy”端功能,只要一个I/O口和单片机内部的一个定时器就可把ICL7135的数据送人单片机,可以节省大量的单片机资源,减小系统的体积。原理如下:

“Busy”输出端(ICL7135的21脚)高电平的宽度等于积分和反积分时间之和。ICL7135内部规定积分时间固定为10001个时钟脉冲时间,反积分时间长度与被测电压的大小成比例。如果利用单片机内部的计数器对ICL7135的时钟脉冲计数,利用\作为计数器门控信号,控制计数器只要在Busy为高电平时计数,将这段Busy高电平时间内计数器计的内容减去10001,其余数等于被测电压的数值。

16

智能电子称的设计

3.3 人机交互界面模块设计

3.3.1 键盘输入控制电路

如表3-2 ZLG7289引脚说明 引 脚 号 1,2 3,5 4 6 7 8 名 称 VDD NC VSS /CS CLK DATA 说 明 正电源 悬空 接地 片选输入端此引脚为低电平时可向芯片发送指令及读取键盘数据 同步时钟输入端向芯片发送数据及读取键盘数据时此引脚电平上升沿表示数据有效 串行数据输入/输出端当芯片接收指令时此引脚为输入端当读取键盘数据时此引脚在读指令最后一个时钟的下降沿变为输出端 按键有效输出端平时为高电平当检测到有效按键时此引脚变为低电平 段g~段a 驱动输出 小数点驱动输出 数字0 数字7 驱动输出 振荡器输出端 振荡器输入端 复位端低电平有效 9 10~16 17 18~25 26 27 28 /KEY SG~SA DP DIG0~DIG7 OSC2 OSC1 /RESET

SPI串行接口工作方式介绍:

ZLG7289 采用串行方式与微处理器通讯,串行数据从DATA 引脚送入芯片,并由CLK 端同步。当片选信号变为低电平后,DATA 引脚上的数据在CLK 引脚的上升沿被写入ZLG7289 的缓冲寄存器。

ZLG7289 的指令结构有三种类型:

1、不带数据的纯指令,指令的宽度为8 个BIT 即微处理器需发送8个CLK 脉冲;

17

智能电子秤设计

如图3-6 纯指令时序图

2、带有数据的指令宽度为16 个BIT 即微处理器需发送16 个CLK 脉冲;

如图3-7 带数据指令时序图

3、读取键盘数据指令宽度为16个BIT,前8个为微处理器发送到ZLG7289的指令,后8 个BIT为ZLG7289返回的键盘代码,执行此指令时ZLG7289的DATA端在第9个CLK 脉冲的上升沿变为输出状态并与第16个脉冲的下降沿恢复为输入状态,等待接收下一个指令。

图3-8 读键盘指令时序图

下图为电路图:

18

智能电子称的设计

图3-9 键盘接口图

图中P1.5口接/CS;P1.6口接CLK;P1.0口接DIO;P3.2口接/KEY,利用中断0通知AT89S52读数。

键盘控制芯片ZLG7289 控制键盘的扫描,当监测到有键按下后ZLG7289 的9脚便产生一个低电平通知单片机,单片机可以采用查询或者中断方式将数据通过P3.0口以串行方式读入。因为查询方式会浪费大量的时间,所以本系统采用的是中断方式。

2、 参数选择参考如下

8只下拉电阻和8 只键盘连接位选线DIG0~DIG7 的8 只位选电阻应遵从一定的比例关系,下拉电阻应大于位选电阻的5 倍而小于其50 倍,典型值为10 倍,下拉电阻的取值范围是10K~100K, 位选电阻的取值范围是1K~10K。所以取上拉电阻为10K,下拉电阻为100K。

ZLG7289需要一外接晶体振荡电路供系统工作,其典型值分别为F=16MHz C=15pF。实际使用时取F=12MHz,C=15pF。 3.3.2 LCD显示电路

OCM4x8C是具有串/并接口,其内部含有中文字库的图形点阵液晶显示模块。该模块的控制/驱动器采用台湾矽创电子公司的ST7920,因而具有较强的控制显示功能。OCM4x8C的液晶显示屏为128×64点阵,可显示4行、每行8个汉字。为了便于简单、方便地显示汉字,该模块具2Mb的中文字型CGROM,该字型ROM中含有8192个16×16点阵中文字库;同时,为了便于英文和其它常用字符的显示,具有16Kb的16×8点阵的ASCII字符库;为便于构造用户图形,提供了一个64×256点阵的GDRAM绘图区域,且为了便于构造用户所需字型,提供了4组16×16点阵的造字空间。利用上述功能,OCM4x8C可实现汉字、ASCII码、点阵图形、自造字体的同屏显示。为便于和多种微处理器、单片机接口,模块提供了4位并行、8位并行、2线串行、3线串行多种接口方式。

该模块具有2.7V~5.5V的宽工作电压范围,且具有睡眠、正常及低功耗工作模式,可满足系统各种工作电压及便携式仪器低功耗的要求。液晶模块显示负电压,

19

智能电子秤设计

也由模块提供,从而简化了系统电源设计。模块同时还提供LED背光显示功能。除此之外,模块还提供了画面清除、游标显示/隐藏、游标归位、显示打开/关闭、显示字符闪烁、游标移位、显示移位、垂直画面旋转、反白显示、液晶睡眠/唤醒、关闭显示等操作指令。

如表3-3引脚功能说明

引 脚 号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 名 称 VSS VDD V0 RS(CS) R/W(SID) E(SCLK) DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 PSB NC RST NC LEDA LEDK 说 明 GND(0V) 逻辑电源(+5V) LCD电源(悬空) H:数据,L:指令 H:读,L:写 使能 数据0 数据1 数据2 数据3 数据4 数据5 数据6 数据7 H:并行,L:串行 空脚 复位(低电平有效) 空脚 背光源正极(LED+5V) 背光源负极(LED-0V) 电路图中PSB接低电平,进入串行接口模式;串行数据线SID接P3.1口;串行时钟线SCLK接P1.6;RS固定接高电平。此为典型二线串行模式。

字符显示RAM地址与字符显示位置关系: 如表3-4 RAM地址与字符显示位置关系 80H 90H 88H 98H 81H 91H 89H 99H 82H 92H 83H 93H 84H 94H 85H 95H 86H 96H 87H 97H 8AH 8BH 8CH 9AH 9BH 9CH 8DH 8EH 8FH 9DH 9EH 9FH 2/3线串行接口方式:

当模块的PSB脚接低电平时,模块即进入串行接口模式。串行模式使用串行数据线SID与串行时钟线SCLK来传送数据,即构成2线串行模式。

OCM4x8C还允许同时接入多个液晶显示模块以完成多路信息显示功能。此时,要利用片选端“CS”构成3线串行接口方式,当“CS”接高电位时,模块可正常接收并显示数据,否则模块显示将被禁止。通常情况下,当系统仅使用一个液晶显示模块时,“CS”可连接固定的高电平。

20

智能电子称的设计 模块2线串行工作操作时序如下图所示:

如图3-10 2线串行时序图

由图3.12可以看出,单片机与液晶模块之间传送1字节的数据共需24个时钟脉冲。首先,单片机要给出数据传输起始位,这里是以5个连续的“1”作数据起始位,如模块接收到连续的5个“1”,则内部传输被重置并且串行传输将被同步。紧接着,“RW”位用于选择数据的传输方向(读或写),“RS”位用于选择内部数据寄存器或指令寄存器,最后的第8位固定为“0”。在接收到起始位及“RW”和“RW”的第1个字节后,下一个字节的数据或指令将被分为2个字节来串行传送或接收。数据或指令的高4位,被放在第2个字节串行数据的高4位,其低4位则置为“0”;数据或指令的低4位被放在第3个字节的高4位,其低4位也置为“0”,如此完成一个字节指令或数据的传送。需要注意的是,当有多个数据或指令要传送时,必须要等到一个指令完成执行完毕后再传送下一个指令或数据,否则,会造成指令或数据的丢失。这是因为液晶模块内部没有发送/接收缓冲区。

3.4 报警电路的设计

下图为系统报警电路原理图,用于超载和欠量程提示。系统设计了两个发光二极管作为超载和欠量程指示灯,使系统更加完善。当系统判断为超载或欠量程时,ICL7135给输出一个高电平信号OR(超载)或UR(欠量程),经非门后形成低电平从而驱动发光二极管发光提示。

如图3-11 报警电路原理图

21

智能电子秤设计

第四章 电子秤的软件设计

4.1 软件流程图及程序设计

为了方便程序调试和提高可靠性,程序设计采用自上而下、模块化、结构化的程序设计方法,把总的编程过程逐步细分,分解成一个个功能模块,每个功能模块相互独立,每个模块都能完成一个明确的任务,实现某个具体的功能。本设计按任务模块划分的程序主要有初始化程序、主程序, A/D转换子程序、显示子程序、键盘处理子程序。

4.1.1 初始化程序设计流程图

单片机系统上电后,进入初始化程序,完成单片机片内各模块的设置和A/D转换器的功能设置初始化,然后进入主程序。

如图 4-1 初始化程序设计流程图

22

智能电子称的设计

4.1.2 主程序设计流程图

单片机完成初始化程序后进入主程序,主程序主要完成对存储参数的读取,对检测到的数据进行数据处理,键处理,显示处理等。

如图4-2 主程序设计流程图

23

智能电子秤设计

4.2 主程序设计及其相关程序设计

4.2.1 主程序设计

uint max_weight;//最大称量 uchar dsel;//分度值 uchar dp;//小数点

float beilv;//倍率

ulong zero_save;//传感器零位值 }bdf;

uint code num_ten[4]={1,10,100,1000};

uchar code adcount2[4]={2,4,5};//数据处理进平均次数

uchar code tab_dsel[4]={1,2,5,10};//分度值表

//0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9

uchar code tab[]={0xB7,0x03,0xD6,0xC7,0x63,0xE5,0xF5,0x83,0xF7,0xE7,

//A , b , C , d , E , F , 暗, - , t , P 0xF3,0x75,0xB4,0x57,0xF4,0xF0,0x00,0x40,0x74,0xF2,

//H , L , o , J , r , n , U, =, - i

0x73,0x34,0x55,0x07,0x50,0x51,0x37,0x44,0x04,0x01}; //显示位码表

//0, 1, 2, 3, 4, 5, 6

uchar code digit[]={0xfe,0xdf,0xef,0xfd,0xfb,0xbf,0xF7};//显示位码表

sbit P_OE =P2^1;//显示控制 sbit P_LE =P2^0;

sbit buz0 =P3^6;//蜂鸣器 sbit buz1 =P3^7;

/******************************************************/ bit b_follow;//启动零位跟踪标记 bit b_serial;//串口发送完标记

bit b_followdelay;//第一次不进行零位跟踪 bit b_steady;//稳定标记

/******************************************************/

void (* data task)(void);//函数指针变量,接受下一步要做的任务

24

智能电子称的设计 uint idata fendushu;//分度数

uchar weight_led[6] ;//重量窗显示缓存 uchar idata temp_var;

uchar weight_dp;//小数点位数 uchar fu_number;//负号显示位置 uchar wdcount;//稳定计数

uchar adup_count;//异常值计数 uchar addcount3;//累加次数

/******************************************************/ extern void key_scan(void);//按键扫描

extern void weight_disp(void);//重量计算,超载报警 extern void start_set(void);//单片机初始化设置 extern void adc (void);//读取AD值

extern void ad_processor(void);//AD数据滤波处理 extern void fun_weight(void);//正常称重状态 extern void bd_start(void);//重量或电压标定选择 extern void dy_disp(void);//电压显示

extern void led_disp(ulong temp,uchar num);

extern uchar get_jiaoyan(uchar *address,uchar num);//计算校验字 extern void neima(void);

void delay60ms(uchar time);//40ms延时 void fendu_val(void);//分度数运算

void check_canshu(void);//读参数,并校验是否正确 void ver_disp(void);//显示版本号 void seg_check(void);//笔画检测

/******************************************/ void main (void) {

start_set(); //单片机初始化 beep_time=3; //开机鸣叫 flash_num=6; //没有闪烁位 spi_sys(); //ad芯片初始化

check_canshu(); //读参数,并校验是否正确 if(bdf.shuduval>2) //若是异常值,用默认值 bdf.shuduval=1; addcount3=4;

bdf_dp_temp=bdf.dp; //保存小数点(标定修改参数时用)单片机初始化 开机鸣叫 没有闪烁位 ad芯片初始化

读参数,并校验是否正

25

智能电子秤设计

保存小数点(标定修改参数 时用)

bdf_dsel_temp=bdf.dsel;// 用)

bdf_dsel_temp=bdf.dsel;//保存分度值(标定修改参数时用) key_scan(); //标定按键扫描

switch(key_temp) //功能键处理函数 {

case 0xc0:b_biaoding=1;task=bd_start ; break;//

default: bdf.dp=0;

ver_disp();//显示版本号 seg_check();//笔画检测 fendu_val();//分度数运算

zero_current=ad_steady;//保存当前零位值 task=fun_weight; break; } do

{ //主循环程序

adc(); //A/D采样 ad_processor();//数据处理 zero_follow(); //零位跟踪程序 neima(); //内码计算 weight_disp(); //重量显示 key_scan(); //按键扫描 (* task)(); //单片机初始化 开机鸣叫 没有闪烁 ad芯片初始

读参数,并校验是否正确 若是异常值,用默认值

保存小数点(标定修改参数时用)单片机初始 开机鸣叫 没有闪烁位 ad芯片初始化

读参数,并校验是否正 保存小数点(标定修改参数 时用)

26

智能电子称的设计 保存分度值(标定修改参数时用) 标定按键扫描 功能键处理函数 显示版本号 分度数运算 笔画检测

保存当前零位值 /主循环程序 A/D采样 数据处理

零位跟踪程序 内码计算 重量显示 按键扫描

(* task)(); //任 务切换函数 任务切换函数 }

while(1); }

/*****************************************************************/ void fendu_val(void)//分度数运算

{ uchar i; ulong temp;

temp=(ulong)bdf.max_weight*num_ten[bdf_dp_temp]; fendushu=temp/bdf.dsel;

i=fendushu/3000; if (i==0) i=1;

half_sel_bound=5/bdf.beilv;//半个分度的原始码

follow_bound=i*half_sel_bound;//计算零位跟踪时的原始码,按3000分度 time_weight=200; }

/*****************************************************************/ void ver_disp(void)//显示版本号及最大量程 {

27

智能电子秤设计

weight_led[0]=7;// 7 weight_led[1]=1;// 1 weight_led[2]=2;// 2 weight_led[3]=17;// - weight_led[4]=0;// 0 weight_led[5]=5;// 5 fun_led=0xff;

delay60ms(15);//40ms延时 beep_time=3;

led_disp(bdf.max_weight,5);//显示最大量程 weight_led[0]=15;// F delay60ms(20);//40ms延时

4.2.2 信号采样与A/D转换子程序的设计

A/D数据处理(采用数组平均值法)产生新的A/D值与上一次值累加累加次数到n否Y取平均值递推放入数组中N新值与上一次稳定值比较表示是上升过程N是否接近稳定Y表示是上升(或下降)A/D值变化不大累加次数n增加提高精度重量送显示返回

28

智能电子称的设计

如图 4-3 信号采样与A/D转换子程序的设计

extern uchar code adcount2[3];

extern bit bAd;//extern bit b_warnled; extern bit b_steady; extern bit b_up_last;

extern uchar adup_count;

extern ulong idata ad_steady;//extern uchar add_count;//extern ulong idata add_val;// 已产生AD值 AD数据处理后的稳定值 AD累加计数器 AD累加值

AD异常值计数 AD芯片采样值

extern ulong idata lvbo[6];

extern uchar wdcount;

extern uchar adup_count;// extern uchar addcount3; extern ulong idata up_val; extern ulong idata adval;//

extern uchar idata follow_time;//零位跟踪时间

extern uchar idata time_weight;//重量为0时,消隐时间 void time(void);

ulong buf_left(ulong temp);

/*******************************************/ //

void ad_processor(void) { ulong temp1; ulong temp2; uchar i; bit b_up; if(bAd) {

bAd=0;

time();//时间计数器自减

//-------------------------------------------------------- adval=adval>>4;

add_val=add_val+adval;//传感器累加滤波 add_count++;

if(add_count

29

智能电子秤设计

return;

temp1=add_val/addcount3; //累加n次平均 add_count=0;

add_val=0;//传感器累加清零 i=(uchar)(temp1>>16)+1;

4.2.3 键盘/显示子程序设计

重量显示流程A/D值乘以标定系数计算出实际重量是否超载报警是否有皮重显示皮重标记显示毛重显示净重返回

如图 4-4 键盘/显示子程序设计

30

智能电子称的设计 是否有键按下行列扫描读键码返回

如图 4-5 按键扫描流程图

程序清单

extern bit b_keyok;//有按键产生标记 extern bit b_longdown;//长按下标记 extern uchar key_num;//键值

extern uchar key_temp;//临时键值 extern uchar key_count;//键长按计数 extern uchar key_dly;//键去抖动延时 extern uchar beep_time;//蜂鸣时间

void key_scan1();////按键松开或没有按下处理

/****************************************************/ oid disp_t1(void) interrupt 3 using 1//显示中断程序 {

uchar temp; TR1 =0;

P_OE=1;//高阻态,禁止输出

if((disp_number==(5-bdf.dp))&(bdf.dp!=0))//这一位是否有小数点 temp=0x08;//小数点段码 else temp=0;

if(disp_number==6)//指示灯显示不用查表 P0=fun_led;// else {

if((disp_number==fu_number)&&b_fuhao) temp=temp|0x40;

if((disp_number==flash_num)&b_flash)//是否有闪烁位 P0=0x0; else

P0=tab[weight_led[disp_number]]|temp;//查表取段码 }

P_LE=1;

31

智能电子秤设计

P_LE=0;//573锁存段码

P0=digit[disp_number];//送位码 P_OE=0;//573输出有效 disp_number++;

if(disp_number==7)//是否显示最后一位 {

disp_number=0;

if(beep_time)//是否要鸣叫 {

if(!TR0)

{buz0=~buz1;TR0 =1;} beep_time--; } else

{TR0=0;buz0=1;buz1=1;}//不鸣叫时置高,减小电流 if(key_dly)//按键去抖动延时 key_dly--;

if(flash_num<6) {

if(flash_time)//闪烁计时 flash_time--; else

{ b_flash=!b_flash;flash_time=20;}//时间到,置闪烁标记 } }

TH1 =0xf8; TL1 =0x18; TR1 =1 ; }

第五章 总结与展望

5.1 设计总结与感想

短短为期一个多月的毕业设计就这样结束了,整个设计过程当中,经历很多的挫折和失败,但为了最终获得成功。一直在不懈努力,到最后收获真的很大,在深刻地认识到自己在学习上的薄弱环节的同时,通过查阅资料和在老师和同学的帮助下以及理论分析与实践的反复进行和论证后许多问题都基本能迎刃而解,最终基本达到了设计目的。实践巩固了理论知识的学习,提高了实际应用所学知识的能力,还积累了许多宝贵的经验。特别是老师严谨冶普的态度给我启发不小。在这次的设计实践过程中,我认识到不管做什么事,尤其是科学实践,都需要大胆假设,小心求证。任何一个方案都要经过详细周全的论证后才能着手去做,否则即使很快做出来,但经不起推敲和考验。对于那些要求能够扩展功能的课题更是如此。本次设计我熟悉了AT89S52芯片的功能及工作特性,掌握其接口扩展方

32

智能电子称的设计 法。通过对数据采集的分析了解了各种传感器、放大器及A/D转换器,对信号的转换、传输有了更深的认识。以及对键盘和显示器进行选型比较,得出各种型号的优劣比。

5.2 本设计存在的不足及工作展望

电子电路的设计中对各种影响因素的考虑不够完全,比如在对过电压情况的处理中未作防范措施。系统设计不够优化,有待改善。例如系统的超量程和欠量程信号直接由A/D转换器送入报警电路,没有先送入单片机处理后再送入报警电路。可扩展更多电路,如日历时钟电路、通讯接口电路等。日历时钟电路可以显示购货日期,通讯接口电路可以与上位机(PC机)进行通讯,从而将大量的商品数据存于上位机,然后通过串口或并口通讯与电子称相连,达到远距离控制的目的。由于本身的动手能力不强,电子秤的实物没能最终实现。这些都是我以后需要继续努力的地方。

致 谢

历时数日,从论文选题到搜集资料,从开题报告、写初稿到反复修改,期间经历了喜悦、聒噪、痛苦和彷徨,在写作论文的过程中心情是如此复杂。如今,伴随着这篇毕业论文的最终成稿,复杂的心情烟消云散,自己甚至还有一点成就感。在此要感谢的人实在太多,首先感谢老师的精心指导,其次是我的朋友们,我永远也不能忘记你们,你们的支持与情感,是我永远的财富。

参 考 文 献

1、 马心凯.基于FPGA的实用电子秤[J],低压电器,2006

2、 康华光.电子技术基础[M].模拟部分.高等教育出版社,1998 3、 于敬芬.基于AT89S52和TLC0834的数据采集系统[J].中国水运(学术版),2006 4、 王幸之.AT89系列单片机原理及接口技术[M].北京航天航空出版社,2006 5、 康华光.电子技术基础[M].数字部分.高等教育出版社,1998 6、 王素珍,郑淑芬,周梅.称重配料系统传感器电源及放大电路[J].传感器技术,2006 7、 周立功.单片机ZLG7289B串行接口LED数码管及键盘管理器件数据手册 8、 胡汉才.单片机原理及系统设计[M].清华大学出版社,2002 9、 王福瑞.集成电路器件大全[M].北京航天航空出版社,1999 10、夏路易.电路原理图与电路板设计教程Protel99se[M].北京希望电子出版社,2002

11、Theodore Wildi.Electrical machine,and power system[M],2002

33

智能电子秤设计

附录1:原理图

34

本文来源:https://www.bwwdw.com/article/nimg.html

Top