电子称设计 - 图文

更新时间:2024-05-14 09:23:01 阅读量: 综合文库 文档下载

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

Abstract

基于单片机的电子秤系统设计

摘要

电子秤是将检测与转换技术、计算机技术、信息处理、数字技术等技术综合一体的现代新型称重仪器。它与我们日常生活紧密结合息息相关。

电子称主要以单片机作为中心控制单元,通过称重传感器进行模数转换单元,在配以键盘、显示电路及强大软件来组成。电子称不但计量准确、快速方便,更重要的自动称重、数字显示,对人们生活的影响越来越大,广受欢迎。

本系统的设计主要从硬件电路设计,软件编程调试,实物焊接调试三部分进行详细阐述。硬件电路主要是基于单片机STC89S52为核心的控制单元实现数据的处理,采用压力传感器对数据进行采集,电子秤专用24位AD转换芯片HX711对传感器采集到的模拟量进行AD转换,转换后的数据送到单片机进行处理显示,数据显示由LCD1602液晶实现,液晶显示效果稳定无闪烁。 关键字:STC89S52单片机;电子秤;压力传感器;HX711。

1

Abstract

Electrnoic Scale Design Based on MCU

Abstract

Intelligent electronic scale is the detection and conversion technology, computer technology, information processing, digital technology, an integrated modern technology of new weighing equipment.

Ectronic scale takes SCM as its central controling unit,and achieves AD transform through weighting transducer,then adds keybord,display circuit and powerful softerwear. It is not only accurate,swift,and convenient, but also makes an important effect to people’s life by its automatic weightment and digital display, so it becomes more and more popular.

The design of this system gives its eleboration from 3 parts: Hardwear circuit design,softwear programme debugging and entity weld debugging.

Hardwear circuit reaches data processing by the controling unit which based on STC89S52,and gathers data by weighting transducer,then makes AD transform by HX711 to the data gathered, and the transformed data then transferred to STC for display prosessing, at last LCD1602 would show it out steadily without twinkling

Key words:STC89S52 SCMC;Electrnoic Scale;Load sensor; HX711

2

基于单片机的电子秤系统设计

1绪论 .............................................................. 5 2 系统硬件方案设计 ................................................. 7 2.1系统总体设计方案比较与论证 .................................... 7 2.2系统元器件选型及器件参数介绍 ................................. 10 2.2.1单片机选型 ............................................... 10 2.2.2传感器选择 ............................................... 11 2.2.3 显示器选择............................................... 13 2.2.4 AD转换芯片选择 .......................................... 14 2.2.5 时钟芯片选择............................................. 16 3系统硬件电路设计 ................................................. 18 3.1系统电源电路设计 ............................................. 18 3.2系统串口程序下载电路设计 ..................................... 19 3.3单片机控制电路设计 ........................................... 20 3.4系统显示电路设计 ............................................. 21 3.5超重报警提示电路设计 ......................................... 22 3.6按键输入电路设计 ............................................. 22 3.7系统硬件电路的绘制与PCB制作 ................................. 24 3.7.1 Protel99SE软件介绍 ...................................... 24 3.7.2系统原理图与PCB的绘制 ................................... 24 4 系统软件设计 .................................................... 27 4.1系统主程序软件流程图 ......................................... 27 4.2系统显示部分流程图 ........................................... 28 4.3系统按键检测部分流程图 ....................................... 29 5 系统整体调试 .................................................... 30 5.1硬件电路调试中遇到的问题 ..................................... 30 5.2系统实物调试效果图 ........................................... 30 5.3系统设计总结 ................................................. 31 参考文献 .......................................................... 32 附录 .............................................................. 32

3

基于单片机的电子秤系统设计

附录1系统整体电路图 ............................................ 33 附录2系统设计PCB图 ............................................ 34 附录3系统部分源程序 ............................................ 35 致 谢 ............................................................. 40

4

基于单片机的电子秤系统设计

1绪论

称重技术自古以来就被人们所重视,作为一种计量手段,广泛应用于工农业、科研、交通、内外贸易等各个领域,与人民的生活紧密相连。电子秤是电子衡器中的一种,衡器是国家法定计量器具,是国计民生、国防建设、科学研究、内外贸易不可缺少的计量设备,衡器产品技术水平的高低,将直接影响各行各业的现代化水平和社会经济效益的提高。称重装置不仅是提供重量数据的单体仪表,而且作为工业控制系统和商业管理系统的一个组成部分,推进了工业生产的自动化和管理的现代化,它起到了缩短作业时间、改善操作条件、降低能源和材料的消耗、提高产品质量以及加强企业管理、改善经营管理等多方面的作用。称重装置的应用已遍及到国民经济各领域,取得了显著的经济效益。

电子秤是称重技术中的一种新型仪表,广泛应用于各种场合。电子秤与机械秤比较有体积小、重量轻、结构简单、价格低、实用价值强、维护方便等特点,可在各种环境工作,重量信号可远传,易于实现重量显示数字化,易于与计算机联网,实现生产过程自动化,提高劳动生产率。从世界水平看,衡器技术已经经历了四个阶段,从传统的全部由机械元器件组成的机械称到用电子线路代替部分机械元器件的机电结合秤,再从集成电路式到目前的单片机系统设计的电子计价秤。我国电子衡器从最初的机电结合型发展到现在的全电子型和数字智能型。现今电子衡器制造技术及应用得到了新发展:电子称重技术从静态称重向动态称重发展;计量方法从模拟测量向数字测量发展;测量特点从单参数测量向多参数测量发展。常规的测试仪器仪表和控制装置被更先进的智能仪器所取代,使得传统的电子测量仪器在远离、功能、精度及自动化水平定方面发生了巨大变化,并相应的出现了各种各样的智能仪器控制系统,使得科学实验和应用工程的自动化程度得以显著提高。

电子称重的实现首先是通过压力传感器采集到被测物体的重量并将其转换成电压信号。输出电压信号通常很小,需要通过前端信号处理电路进行准确的线性放大。放大后的模拟电压信号经A/D转换电路转换成数字量被送入到主控电路的单片机中,再经过单片机控制译码显示器,从而显示出被测物体的重量。按照设计的基本要求,系统可分为三大模块,数据采集模块、控制器模块、人机交互液晶显示界面模块。其中数据采集模块由压力传感器、信号的前级处理和A/D转换部分组成。转换后的数字信号送给控制器处理,由控制器完成对该数字量的

5

基于单片机的电子秤系统设计

处理,驱动显示模块完成人机间的信息交换。此部分对软件的设计要求比较高,系统的大部分功能都需要软件来控制。在扩展功能上,本设计增加了一个过载报警提示功能和电子日历功能使本电子称的设计更人性化智能化。

6

基于单片机的电子秤系统设计

2 系统硬件方案设计

2.1系统总体设计方案比较与论证

在设计系统时,针对各个模块实现的功能来设计电子秤的方案有以下几种: 方案一 数码管显示:

数据采集 AD转换 单片机处理 LED显示

图1 数码管显示方案

此方案利用数码管显示物体重量,简单可行,可以采用内部带有模数转换功能的单片机。由此设计出的电子秤系统,硬件部分简单,接口电路易于实现,并且在编程时大大减少程序量,在电路结构上只有简单的输出输入关系。缺点是:硬件部分简单,虽然可以实现电子称基本的称重功能,但是不能实现外部数据的输入,无法根据实际情况灵活地设定各种控制参数。由于数码管只能实现简单的数字和英文字符的显示,不能显示汉字以及其他的复杂字符,不能达到显示购物清单的要求。又因为采用了具有模数转换功能的单片机,系统电路过于简单,系统硬件的扩展必受到限制,电子秤的功能过于单一,达不到设计的标准。 方案二 在前一种方案的基础上进行扩展,增加一键盘输入装置,增加外界对单片机内部的数据设定,使电子称实现称重计价的功能。

结构简图如图2所示: 按键处理

图2带有键盘输入的结构简图

7

数据采集 AD转换 单片机处理 LED显示 基于单片机的电子秤系统设计

此方案设计的电子秤,可以实现称物计价功能,但是局限于数码管的功能,在显示时只能显示单价、购物总额以及简单的货物代码等。在显示重量时,如果数码管没有足够的位数,那么称量物体重量的精度必受到限制,所以此方案需要较多的数码管接入电路中。这样在处理输入输出接口时需要另行扩展足够多的I/O接口供数码管使用,比较麻烦。

方案三 前端信号处理时,选用放大、信号转换等措施来增加信号采集强度但会增加相应的设计成本;显示方面采用具有字符图文显示功能的LCD显示器。这种方案不仅加强了人机交换的能力,而且满足设计要求,可以显示购物清单、所称量的物体信息等相关内容,当需要增加扩展功能时可以通过切换液晶显示界面的方式来实现。

结构简图如下图3所示:

数据采集 信号放大 AD转换 单片机处理 LCD显示 按键处理

图3带有键盘输入及液晶显示的结构简图

鉴于上述三种方案的优缺点,本系统在设计时充分考虑到系统的实用性及成本的可行性的前提下,设计完成了最终的电子称方案,最终的硬件设计方案图如图4所示,该方案增加了电子日历功能,从而使本系统的设计功能得到了很好的扩展与应用。

8

基于单片机的电子秤系统设计

时钟芯片 AD转换 单片机处理 按键处理 3系统设计硬件框图

9

LCD显示 时钟显示 计量显示 数据采集 信号放大

图 基于单片机的电子秤设计

2.2系统元器件选型及器件参数介绍 2.2.1单片机选型

单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,鉴于以上考虑本课题选择AT89S52作为整个系统的主控芯片。

AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写10000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构[1],芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52芯片具有以下特性[2]:

①指令集和芯片引脚与Intel公司的8051兼容; ②8KB片内在系统可编程Flash程序存储器; ③时钟频率为0~33MHz;

④128字节片内随机读写存储器(RAM); ⑤32个可编程输入/输出引脚; ⑥2个16位定时/计数器; ⑦6个中断源,2级优先级; ⑧全双工串行通信接口; ⑨监视定时器; ⑩2个数据指针。

AT89S52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。 AT89S52单片机引脚图如图4所示:

10

基于单片机的电子秤设计

图4 AT89S52单片机引脚图

2.2.2传感器选择

压电传感器是一种典型的有源传感器,又称自发电式传感器。其工作原理是基于某些材料受力后在其相应的特定表面产生电荷的压电效应。

压电传感器体积小、重量轻、结构简单、工作可靠,适用于动态力学量的测量,不适合测频率太低的被测量,更不能测静态量。目前多用于加速度和动态力或压力的测量。压电器件的弱点:高内阻、小功率。功率小,输出的能量微弱,电缆的分布电容及噪声干扰影响输出特性,这对外接电路要求很高。

电阻应变式传感器是一种利用电阻应变效应,将各种力学量转换为电信号的结构型传感器。电阻应变片式电阻应变式传感器的核心元件,其工作原理是基于材料的电阻应变效应,电阻应变片即可单独作为传感器使用,又能作为敏感元件结合弹性元件构成力学量传感器。

导体的电阻随着机械变形而发生变化的现象叫做电阻应变效应。电阻应变片把机械应变信号转换为△R/R后,由于应变量及相应电阻变化一般都很微小,难以直接精确测量,且不便处理。因此,要采用转换电路把应变片的△R/R变化转换成电压或电流变化。其转换电路常用测量电桥。

直流电桥的特点是信号不会受各元件和导线的分布电感及电容的影响,抗干扰能力强,但因机械应变的输出信号小,要求用高增益和高稳定性的放大器放大。

图5为一直流供电的平衡电阻电桥,Ein接直流电源E:

11

基于单片机的电子秤设计

图5 传感器内部连接图

当电桥输出端接无穷大负载电阻时,可视输出端为开路,此时直流电桥称为电压桥,即只有电压输出。

当忽略电源的内阻时,由分压原理有:

Rc Rb Rd Ra Res Bridge Eout Ein uo?uBD?uAB?uAD

?E(R1R4?)R1?R2R3?R4RR?RRE= ? 1 3 2 4 (2.1)

(R1?R2)(R3?R4)当满足条件R1R3=R2R4时,即

R1R2?R4R3(2.2)

uo=0,即电桥平衡。式(2.2)称平衡条件。

应变片测量电桥在测量前使电桥平衡,从而使测量时电桥输出电压只与应变片感受的应变所引起的电阻变化有关。

若差动工作,即R1=R-△R,R2=R+△R,R3=R-△R,R4=R+△R,按式(2.1),则电桥输出为

12

基于单片机的电子秤设计

?(R??R)2Euo??(R??R)?(R??R)??(R??R)?(R??R)??R??ER?k?E (2.3)

?(R??R)2?应变片式传感器有如下特点:

(1)应用和测量范围广,应变片可制成各种机械量传感器。 (2)分辨力和灵敏度高,精度较高。

(3)结构轻小,对试件影响小, 对复杂环境适应性强,可在高温、高压、强磁场等特殊环境中使用,频率响应好。

(4)商品化,使用方便,便于实现远距离、自动化测量[5]。

通过对压力传感器与电阻应变式传感器比较分析,最终选择了第二种方案。题目要求称重范围0~5Kg,满量程量误差不大于?0.005Kg,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重5Kg。我们选择的是电阻应变片压力传感器,量程为5Kg,精度为0.01% ,满足本系统的精度要求。 2.2.3 显示器选择

方案一 数码管显示

数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

数码管显示信息有限,当显示信息较多时需要多个数码管级联方可,这样会

13

基于单片机的电子秤设计

造成硬件连接复杂,成本增加;数码管对大部分字符不能很好的显示,动态扫描时处理不好易出现闪烁现象。

方案二 LCD字符液晶显示

采用点阵字符型 LCD 液晶显示,液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件,但采用LCD液晶显示会造成设计成本增加。

LCD1602可以显示2行 16 个字符,有 8 位数据总线 D0-D7,和 RS、R/W、 EN 三个控制端口,工作电压为 5V,并且带有字符对比度调节和背光。 具体引脚说明如表图6所示。

[4]

图6 LCD1602字符液晶引脚定义

LCD1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同 的点阵字符图形,如表 1 所示,这些字符有:阿拉伯数字、英文字母的大小写、 常用的符号、和日文假名等,每一个字符都有一个固定的代码,它的读写操作、 屏幕和光标的操作都是通过指令编程来实现的。 最后综合了多方面因素的考虑采用了方案二,选择 LCD1602 显示器作为系统的显示界面。 2.2.4 AD转换芯片选择

HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强

14

基于单片机的电子秤设计

等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A 或通道B,与其内部的低噪声可编程放大器相连。通道A 的可编程增益为128 或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道B 则为固定的64 增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D 转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。芯片管脚图如图7所示。

图7 HX711管脚定义

HX711典型应用电路如图8所示。

15

基于单片机的电子秤设计

图8 HX711典型应用电路

2.2.5 时钟芯片选择

DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。 DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。DS1302实物和管脚图分别如图9图10所示。

16

基于单片机的电子秤设计

图9 DS1302实物图

图10 DS1302管脚定义

DS1302各引脚的功能为:

VCC1:备用电源;VCC2:主电源。当VCC2>VCC1+0.2V时,由VCC2向DS1302供电,当VCC2< VCC1时,由VCC1向DS1302供电。

SCLK:串行时钟,输入; I/O:三线接口时的双向数据线;

CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。

DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式。

17

基于单片机的电子秤设计

3系统硬件电路设计

3.1系统电源电路设计

由于该系统中 51 单片机及 AD 转换芯片及液晶显示器所需供电电压均为 5V 电压,所以要保证系统稳定可靠的工作,需要设计一个可以稳定提供 5V 电压的供电系统。本设计采用双电源接口供电方式,USB 接口供电方便程序调试,也可采用外置电源作为系统的供电电源,但是需另加三端稳压器件 LM7805 作为系统电源的稳压器件以保证系统电压为稳定的直流 5V 电压,同时外置电源的输出电压要高于 5V输出,系统电源输入接口要加滤波电容以确保工作电压稳定。电源输出接口加上LED 电源指示灯,用来判定电源是否正常工作。该系统电源电路设计如图 11 所示。

图11电源接口电路

C1,C2实现对电源滤波,以滤除可能存在的高频杂波对电源的影响,C4实现对电源电压的平滑稳定作用[10],当USB接口输出电压高时C4用来储能,当后续电路负载过高USB供电不足时电解电容C4通过释放储存的电能来保证电源电压不跌落。LED0用作电源指示,其亮灭代表电源工作与否,R0用来限流,以保证LED不被烧坏[13]。

18

基于单片机的电子秤设计

3.2系统串口程序下载电路设计

由于RS-232C的接口电平与TTL兼容接口电平标准不同,所以该接口与TTL兼容电平连接时需要电平转换。MAX232 芯片是常用的转换芯片。MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电,该芯片引脚图如图12所示。

图12 MAX232引脚图

常见RS232串口通信电路连接方式如图13所示。

图13 RS232串口通信电路

19

基于单片机的电子秤设计

该电路第一部分为电荷泵电路。由1、2、3、4、5、6脚和4只电容构成,功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要;第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道,其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道,8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道,TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头,DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出;第三部分是供电。15脚GND、16脚+5V[5]。 3.3单片机控制电路设计

系统主控电路由AT89S52单片机及晶振电路和复位电路组成,该电路作为整个系统功能实现的核心单元,其连接方式如图14所示。

图14单片机主控电路

晶振全称为晶体振荡器,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。晶振一般叫做晶体谐振器,是一种机电器件,是用电损耗很小的石英晶体经精密切割磨削并镀上电极焊上引线做成。这种晶体有一个很重要的特性,如果给它通电,它就会产生机械振荡,反之,如果给它机械力,它又会产生电,这种特性叫机电效应。他

20

基于单片机的电子秤设计

们有一个很重要的特点,其振荡频率与他们的形状,材料,切割方向等密切相关。由于石英晶体化学性能非常稳定,热膨胀系数非常小,其振荡频率也非常稳定,由于控制几何尺寸可以做到很精密,因此,其谐振频率也很准确。根据石英晶体的机电效应,我们可以把它等效为一个电磁振荡回路,即谐振回路。他们的机电效应是机-电-机-电..的不断转换,由电感和电容组成的谐振回路是电场-磁场的不断转换。在电路中的应用实际上是把它当作一个高Q值的电磁谐振回路。由于石英晶体的损耗非常小,即Q值非常高,做振荡器用时,可以产生非常稳定的振荡,作滤波器用,可以获得非常稳定和陡削的带通或带阻曲线[10]。

复位电路是用来让单片机返回到初始状态的辅助电路,其作用是当单片机程序跑飞或系统出现死机状态时可以让系统从新恢复工作。本系统复位电路的设计具有上电复位和手动按键复位两种复位方式。 3.4系统显示电路设计

显示部分采用LCD1602液晶显示模块,液晶板上排列着若干 5×7或 5×10点阵的字符显示位,每个显示位可显示1个字符,从规格上分为每行 8、16、20、24、32、40位,有一行、两行及四行三类。其与单片机的连接电路如图15所示

图15系统状态显示电路图

1脚和2脚为液晶1602地和电源引脚,3脚为背光调节引脚,通过10K电位器接地,背光可通过电位器来调节亮度;4脚、5脚、6脚为液晶片选控制引脚,分别连接到单片机的P2.0、P2.1、P2,2端口,7~14脚为数据接口,与单片

21

基于单片机的电子秤设计

机的P0口相连实现数据的传输,15、16、脚为液晶的背光控制脚,分别接到电源和地[9]。

3.5超重报警提示电路设计

报警指示电路用来在称重测量超出最高值时报警提示,以免重量太高的情况下损坏传感器。报警指示电路由PNP三极管9012驱动蜂鸣器来实现,单片机IO口控制三极管的基极,当单片机的IO口输出为低电平时,三极管导通,蜂鸣器的正极与电源接通,蜂鸣器通电发出报警声,当单片机IO口输出高电平时,三极管截止,蜂鸣器停止报警。报警指示电路如图16所示。

图16报警指示电路

3.6按键输入电路设计

按键输入电路用来在电子称测量过程中输入单价值,按键输入电路采用4*4矩阵键盘实现,矩阵键盘电路如图17所示。

22

基于单片机的电子秤设计

图17按键输入电路

电子称按键功能分配如下表所示:

7 4 1 0

8 5 2 9 6 3 ? 去皮 清零 累计 计算 此电子秤是开机检测托盘重量,并将托盘重量清零(即电子秤每次开机后检测托盘重量,并程序中自动将托盘重量保存在一个变量中,称量过程中每次都将获得的重量减去托盘重量,而得到所要称量物体的真正的重量),

计算功能:在正确输入了单价之后,按下计算按键,将会计算出金额,并在液晶显示器上显示出重量、单价、总价。

电子日历时钟键盘面板:

设置

+ — 23

基于单片机的电子秤设计

对应矩阵键盘按键

S1 S2 S3 通过设置按键可以切换日期、星期、时间的设置,通过加减键来进行各个状态的调节。

3.7系统硬件电路的绘制与PCB制作 3.7.1 Protel99SE软件介绍

本文在硬件电路的设计过程中,原理图和PCB的绘制采用Protel99SE软件,Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,该软件以其简单易操作的优势一直以来备受电子工程师的喜爱,因而也成了很多高校电子相关专业EDA工具的必选课程。 3.7.2系统原理图与PCB的绘制

采用Protel99SE软件绘制原理图和PCB的主要步骤如下所述: 1. 建立系统所需原件库; 2. 加载所建原件库到工程项目中;

3. 在原理图页面中放置所需元器件并按照电气性能连接各元件; 4. 建立原件封装库并加载到工程文件中;

5. 绘制好电路后进行ERC电气检测,并生成网络表; 6. 在工程中建立PCB文件,导入生成的网络表; 7. 按照网络飞线提示绘制PCB,最后完成DRC检测[13]。

24

基于单片机的电子秤设计

按照如上步骤最终完成绘制的电路原理图如图18所示,PCB线路板图如图19所示。

图18 系统整体电路图

25

基于单片机的电子秤设计

图19 系统PCB图

26

基于单片机的电子秤设计

4 系统软件设计

本电子称设计采用C语言编程,编译环境为keil UV3。

keil c51 是美国Keil Software 公司出品的51 系列兼容单片机C 语言软件开发系统,和汇编相比,C 在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

Keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

Keil C51 可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件,然后分别有C51 及A51 编辑器编译连接生成单片机可执行的二进制文件(.HEX),然后通过单片机的烧写软件将HEX 文件烧入单片机内。软件主要三个方面:一是初始化系统;二是按键检测;三是数据采集、数据处理并进行显示。这三个方面的操作分别在主程序中来进行。程序采用模块化的结构,这样程序结构清楚,易编程和易读性好,也便于调试和修改。 4.1系统主程序软件流程图

系统软件部分主程序流程图如图20所示。

27

基于单片机的电子秤设计

图20 系统主程序流程图

4.2系统显示部分流程图

显示子程序主要是来判断是否需要显示,以及如何去显示,也是十分重要的程序之一。设计流程图如图21所示。

28

基于单片机的电子秤设计

图21 系统显示部分流程图

4.3系统按键检测部分流程图

键盘电路设计成4X4矩阵式,在程序中可以先判断按键编码,然后根据编码将键盘代表的数值送到相应的存储单元,再进行功能选择或数据处理。设计流程图如图22所示。

图22 按键检测部分流程图

29

基于单片机的电子秤设计

5 系统整体调试

5.1硬件电路调试中遇到的问题

1、电子电路的设计中对各种影响因素的考虑不够完全,比如在对过电压情况的处理中未作防范措施。

2、系统设计不够优化,有待改善。比如系统的超量程信号直接由单片机送入报警电路,没有设计保护电路再入单片机处理后送入报警电路。

3、没有扩展更多电路,如温度显示功能,通讯接口电路与上位机(PC机)进行通讯,上位机显示功能从而将大量的商品数据存于上位机,然后通过串口或并口通讯与电子称相连,达到远距离控制的目的。

4、对各种实用芯片价格了解不够,选择上任有欠缺,如所选的称重传感器价格较贵。

这些都为我今后的学习和工作留下了积极的影响。 5.2系统实物调试效果图

经过不懈的努力和导师的细心指导,实物最终得以调试成功,最终完成的实物效果图如图23、图24所示。

图23 系统实物称重界面显示效果图

30

基于单片机的电子秤设计

图24 系统实物日历界面显示效果图

5.3系统设计总结

在此毕业设计过程中,巩固了我在大学4年内学过的知识,尤其是单片机和

C语言编程方面的知识,同时通过这次毕设提高了单片机编程的能力,尤其是获得的软件调试经验,同时了解到了其它相关领域的知识,对今后的工作学习有着极大的帮助。

由于时间太仓促,经验不足,理论方面也相应的存在不足,加上条件有限,仍存在着一些设计方面的问题,个人技能也有待提高。理论知识还要巩固加强。但是宝贵的实践经验还是对自己的提高有着极大的帮助。

31

基于单片机的电子秤设计

参考文献

[1] 薛均义,张彦斌.《MCS-516系列单片微型计算机及应用》[M].西安交通大学出版社,1999

[2] 中国机械工业教育协会 组编.《单片机原理与应用》.机械工业出版社.2001 [3] 黄继昌.《传感器工作原理及应用实例》[A],人民邮电出版社,1998 [4] 郭永贞, 《数字电子技术》[M] 西安电子科技大学出版社 2000

[5] 杨金岩等.《8051单片机数据传输接口扩展技术与应用实例》[M]人民邮电出版社,2005.

[6] 张齐,杜群贵.《单片机应用系统设计技术》[M].电子工业出版社,2007 [7] 李广弟 《单片机基础》[M],北京航空航天大学出版社,2001

[8] 于京《51系列单片机C程序设计与应用方案》[M] 中国电力出版社 2002. [9] 张齐,杜群贵 《单片机应用系统设计技术》[M].电子工业出版社,2004 [10] 张洪润 《电子线路与电子技术》[M].清华大学出版社,2005 [11] 童诗白,华成英.《模拟电子技术基础》[M]. 高等教育出版社,2006 [12] 胡海学.《单片机原理及应用系统设计》[M].电子工业出版社,2005. [13] 及力,《Protel99SE原理图与PCB设计教程》[M]电子工业出版社,2004. [14] 戴佳,《51单片机C语言设计实例精讲》[M] 电子工业出版社 2006 [15] 周坚,《单片机C语言轻松入门》[M] 北京航空航天大学出版社2007

附录

32

基于单片机的电子秤设计

附录1系统整体电路图

33

基于单片机的电子秤设计

附录2系统设计PCB图

34

基于单片机的电子秤设计

附录3系统部分源程序

void shizhong_hanshu() { init(); Init_DS1302();//初始化芯片 init_1602();//初始化lcd while(1) { if(du_k2==0) dianzhicheng_hanshu(); //跳去运行电子称 tmpchange(); //温度转换 wendu_100bei=tmp(); //获得温度 show_date(); keyscan(); if((shi==clock_shi)&&(fen==clock_fen)&&(status==2)&&(miao<5)) { clock_flag=1; TR1=1; } if(status==1) //闹钟状态A解除闹钟 { clock_flag=0; clock=1; TR1=0; } } }

void get_pizhong() { uint j; ulong hx711_dat; for(j=0;j<5;j++) Delay10ms(); hx711_dat=ReadCount(); temp=(uint)(hx711_dat/100); }

void get_weight() { ulong hx711_data,a; uint get,aa; hx711_data=ReadCount();

35

基于单片机的电子秤设计

}

get=(uint)(hx711_data/100); if(get<(temp+4)) { while(1) { if(du_k1==0) shizhong_hanshu(); //跳去运行时间 weight=0; TR0=0; //不允许运行 chaozhong_flag=0; //无重物,超重标志为0; clock=1; if(leiji_flag==1) { weight_shuzhi(leiji_weight);//显示累计重量 P3=0xf0; if(P3!=0xf0) { leiji_count--; break; } //按键就提出 } else weight_shuzhi(weight);//显示重量 hx711_data=ReadCount(); get=(uint)(hx711_data/100); if(get>(temp+4))break; } }

a=ReadCount();

aa=(uint)(a/100)-temp;

weight=(uint)((float)aa/4.4+0.05); weight=weight-qi_weight; //去皮 if(weight>=0) { if(weight>5000) {chaozhong_flag=1;TR0=1;} //重量大于5000g,超重报警? else {chaozhong_flag=0;TR0=0;clock=1;} weizhi_zifu(0x00,'+'); }

else {weizhi_zifu(0x00,'-');}

36

基于单片机的电子秤设计

void press(uchar *s) { unsigned char dat; nn: P3=0xf0; //保存第一位 while(P3==0xf0) { get_weight();//得到重量 if(weight>0) {weight_shuzhi(weight);}//显示重量 else {weight_shuzhi(-weight);} }

dat=key_scan(); if(dat>=0&&dat<10) { if(leiji_flag==1) { leiji_weight=leiji_weight+weight; leiji_count++; if(leiji_count==10) leiji_count=0; weizhi_zifu(0x04,0x30+leiji_count); weight_shuzhi(leiji_weight); } *s=dat; price_shuzhi(1,dat+0x30);//显示 s++; } if(dat==16) //去皮 {qi_weight=weight+qi_weight;goto nn;} if(dat==15) //置零 { qi_weight=0; weight=0; price=0; money=0; pricetable[2]=0; pricetable[1]=0; pricetable[0]=0; leiji_flag=0; leiji_weight=0;

37

基于单片机的电子秤设计

leiji_count=0; chaozhong_flag=0; clock=1; TR0=0; write_com(0x01);//清屏; init_1602(); system(); goto nn; } if(dat==14)//累计 { leiji_flag=1; leiji_weight=leiji_weight+weight; leiji_count++; if(leiji_count==10) {leiji_count=0;} write_com(0x01);//清屏; init_1602(); system(); weizhi_zifu(0x04,0x30+leiji_count); goto nn; }

mm: P3=0xf0; //保存第二位 while(P3==0xf0) { get_weight();//得到重量 if(leiji_flag==1) {weight_shuzhi(leiji_weight);}//如果累计标志为1,显示累计重量 else { if(weight>0) {weight_shuzhi(weight);}//显示重量 else {weight_shuzhi(-weight);} } } dat=key_scan(); if(dat>=0&&dat<10) { *s=dat; price_shuzhi(2,dat+0x30);//显示 s++;

38

基于单片机的电子秤设计

}

if(dat==16) //去皮

{qi_weight=weight+qi_weight;goto mm;} if(dat==12) //清除

{s--;*s=0;price_shuzhi(1,' ');goto nn;} if(dat==15) //置零 { s--; qi_weight=0; weight=0; price=0; money=0; pricetable[2]=0; pricetable[1]=0; pricetable[0]=0; leiji_flag=0; leiji_weight=0; leiji_count=0; chaozhong_flag=0; clock=1; TR0=0; write_com(0x01); init_1602(); system(); goto nn; }

//清屏; 39

基于单片机的电子秤设计

致 谢

该电子秤控制系统的设计及论文的撰写是在我的导师 ?老师的精心指导和悉心关怀下完成的,从论文的选题、研究、撰写到定稿,都得到了?老师细心指导。他宽厚待人,对学生关怀备至,在工作上精益求精,对学生严格要求,鼓励学生学以致用,敢于实践,勇于创新,在实践中发现问题、解决问题。?老师具有丰富的科研经验与理论水平,其开明的学术思想、求实的科研作风和对科学研究及发展趋势的深刻认识给我以极大的影响、启迪和熏陶,令我受益匪浅。该设计及论文的圆满完成是和?老师的细心关怀分不开的。

在系统的设计和论文的研究工作中无不倾注着各位老师的心血和辛勤的汗水,各位老师严谨的治学态度、渊博的知识、生动而满富激情的授课方式,让我四年里学到了扎实的理论知识。从各位尊敬的老师身上,我不仅学到了扎实的专业知识和丰富的实践技能,也学到了很多做人的道理。在此,向给予我指导和帮助的各位老师致以最衷心的感谢和深深的敬意!

在这四年多的学习和研究工作中,也得到了学院的师兄弟们的关心和热心帮助,在此向他们表示由衷的感谢!

最后,衷心感谢在百忙中评阅论文和参加答辩的各位专家、教授和同学!

40

基于单片机的电子秤设计

41

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

Top