数字电子秤的设计与实现毕业设计 - 图文

更新时间:2023-10-11 19:26:01 阅读量: 综合文库 文档下载

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

河南工程学院论文版权使用授权书

本人完全了解河南工程学院关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交论文的印刷本和电子版本;学校有权保存论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。

论文作者签名:

年 月 日

河南工程学院毕业设计原创性声明

本人郑重声明:所呈交的论文,是本人在指导教师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。

论文作者签名: 年 月 日

河南工程学院

毕业设计任务书

题目 数字电子秤的设计与实现 专业 电气工程及其自动化 学号 201250712138 姓名 李东盼 主要内容:

电子秤以单片机为信息处理核心,外围电路主要有电源模块、信号采集模块、信号放大积分模块、数据存储模块、电压报警模块等部分组成。电源电路为系统提供+5V直流稳压电源。当被称重物体放于秤盘(压力传感器)上时,传感器产生与被测物体相对应的电压信号,信号经放大电路放大,积分电路初步数字化之后单片机接收,单片机再进行数字滤波、处理输出给LCD,显示被秤物体的质量,完成称重功能。通过键盘可以输入单价,单片机可以根据重量自行运算出总金额。

基本要求:

1.最大称重为10kg,精度为5g; 2.具有清零、去皮重、过量程报警功能; 3.能够显示价格、金额、质量。

主要参考资料:

[1]许晓彤.基于单片机的电子秤设计[J].自动化计量仪器,2012(07):69-72.

[2]张寅.一种基于单片机的电子秤模型实现[J].华中科技大学学报,2009(05):65-70. [3]杨青锋,王辉.影响称重传感器产品质量的关键环节[J].称重知识,2012(17):38-42. [4]钱刘宸.轻松学习单片机[J].西北工业大学学报,2013(02):86-87.

完 成 期 限:

指导教师签名: 专业负责人签名: 年 月 日

数字电子秤的设计与实现

目 录

摘要 ....................................................................................................................................................................... I ABSTRACT ............................................................................................................................................................ II 1 绪论................................................................................................................................................................ 1 2 设计思路 ..................................................................................................................................................... 3

2.1 设计要求 ........................................................................................................................................ 3 2.2 设计方案的确定 ........................................................................................................................ 3 2.3 电子秤的主要组成 .................................................................................................................. 5

2.3.1 电子秤的基本结构 .............................................................................................................. 5 2.3.2 电子秤的工作原理 .............................................................................................................. 6 2.3.3 电子秤的参数指标 .............................................................................................................. 6

3 元件选择及硬件电路的设计 .......................................................................................................... 8

3.1 元件选择 ........................................................................................................................................ 8

3.1.1 单片机的选择 ....................................................................................................................... 8 3.1.2 传感器的选择 ....................................................................................................................... 9 3.1.3 A/D转换器的选择 ............................................................................................................. 10 3.1.4 显示器的选择 ..................................................................................................................... 11

3.2 硬件电路的设计 ...................................................................................................................... 12

3.2.1 电源电路 .............................................................................................................................. 12 3.2.2 主控电路 .............................................................................................................................. 13 3.2.3 显示电路 .............................................................................................................................. 15 3.2.4 超重报警电路 ..................................................................................................................... 16 3.2.5 按键输入电路 ..................................................................................................................... 16 3.2.6 HX711转换电路 .................................................................................................................. 18

数字电子秤的设计与实现

3.3 硬件电路图与PCB板线路的绘制 ................................................................................. 19

3.3.1 Protel99SE软件 ............................................................................................................... 19 3.3.2 原理图与PCB板线路的绘制 .......................................................................................... 19

4 软件设计 ................................................................................................................................................... 21

4.1 软件编译环境 ........................................................................................................................... 21 4.2 主程序流程图 ........................................................................................................................... 21 4.3 按键模块流程图 ...................................................................................................................... 22 4.4 显示模块流程图 ...................................................................................................................... 23 5 实物的焊接与调试 .............................................................................................................................. 24

5.1 实物的焊接 ................................................................................................................................ 24

5.1.1 PCB板制作 ........................................................................................................................... 24 5.1.2 实物焊接 .............................................................................................................................. 25

5.2 实物的调试 ................................................................................................................................ 26 5.3 实物效果图 ................................................................................................................................ 27 6 结束语 ........................................................................................................................................................ 28 致谢 ..................................................................................................................................................................... 29 参考文献 ........................................................................................................................................................... 30 附录 ..................................................................................................................................................................... 31 附录I 原理图 .................................................................................................................................... 31 附录II 主程序 .................................................................................................................................. 32

数字电子秤的设计与实现

数字电子秤的设计与实现

摘 要

单片机作为计算机发展的重要分支,信息处理速度不仅快而且处理能力特别强,是现代绝大多数电子产品最重要的核心部分。本设计实物采用AT89S52单片机进行制作,设计成的实物将能显示称量范围内物品的重量、调节物品的价格以及显示被秤物品的金额,充分体现了单片机的优越性。

本设计主要针对传感器、放大器、A/D转换器以及LCD液晶显示器等电子秤主要硬件电路模块进行组合设计。对电子秤的信息采集处理、自动称重、信息显示等进行了简单设计和实物制作,阐明了用单片机在电子秤设计中的工作原理以及各个主要模块中的数据采集、转换等内容。在软件方面,采用更为简洁、方便、高级的C语言程序设计,修改方便且不易出现故障。

关键词 电子秤;传感器;单片机

I

数字电子秤的设计与实现

THE DESIGN AND IMPLEMENTATION OF DIGITAL

ELECTRONIC SCALE

ABSTRACT

Single-chip microcomputer as a important branch of the development of computer, information processing not only fast and particularly strong processing capacity, is the most important core part of most modern electronic products. This design objects made of AT89S52 MCU design into physical can show the weight of the weighing scale items, adjust the price of the goods, as well as shown by the amount of the balance items, fully embodies the advantages of single chip microcomputer.

This design mainly aimed at the sensor, amplifier, A/D converter, and LCD liquid crystal displays and other electronic scale combination design main hardware circuit modules. The information collection and handling of electronic scale, automatic weighing, information display and so on has carried on the simple design and real production, illustrates the working principle in design of electronic scale MCU and the main modules of data acquisition, conversion, etc. In the aspect of software, a more concise, convenient and advanced C language program design, modify convenience and not easy to fail.

KEY WORDS electronic scale;sensors;single-chip microcomputer

II

数字电子秤的设计与实现

1 绪论

物品称量是市场交易中很基本的内容,是商业领域最基本的衡具。在日常生活中,到处必须用到称,尤其是现代超市和一些其他交易市场上,称是必不可少的测重工具。随着人们生活水平的不断提高,商业行为也越来越现代化,人们对商品度量的速度和精度也提出了新的要求。从20世纪70年代开始,在世界范围内掀起了一股“电子秤热”,各先进工业国都很重视传感器技术和电子秤的研究、开发和生产。传感技术已经成为重要的现代科技领域,电子秤及其系统生产已经成为了重要的新兴行业。

数显电子秤是现今生活中常用的电子秤重衡器,在各大超市、物流配送中心、大中型商场都可以见到。数显电子秤在结构和原理上取代了传统的机械式称量衡器。与传统的称量衡器相比较,数显电子秤具有应用范围广、称量精度高、易于操作使用等优点,在工作原理、材料和结构上都是全新的计量衡器。数显电子秤的设计是通过压力传感器采集到被测物体的确切重量并将其转换成相应的电压信号。输出的电压信号通常会很小,需要相应的放大电路进行准确的线性放大。放大后的模拟电压信号经A/D转换器转换成相应的数字信号量被送入到主控电路的单片机中,再经过单片机控制译码显示器,就可以显示出被测物体的确切重量。 随着市场的需求以及技术性能的要求,电子秤的国内外发展现状和趋势主要有以下几个方面:

(1)小型化

装载体积小、重量轻、高度低。近几年来新研制的电子秤结构充分体现了小型化发展方向。对于低量程的电子平台秤,可采用将薄型的圆形传感器,直接嵌入钢板底面与称重传感器外径相同的盲孔内,形成低外形的秤体结构,钢板就是秤体的台面,称重传感器既是传感元件,又是承力的支点,这就极大地减化了秤体结构,减少了活动连接等环节,不但降低了成本,而且还提高了稳定性和可靠性。 (2)集成化

对于某些电子衡器,例如小型电子平台秤、专用秤、静动态电子轨道衡等等,都可以实现秤体与称重传感器,钢轨与称重传感器,轨道衡秤体与铁路线路一体化。如秤体与称重传感器一体化的便携式静动态电子轮轴秤,大多是用硬铝合金厚板制成。其结构原理是经过固溶热处理强化的铝合金板,或通过在4个角上钻孔和铣槽分别形成4个悬臂梁型称重传感器。这就使得秤体与称重传感器合二为一。以后者结构的8t便携式动态电子轮轴秤为例子,其尺

1

数字电子秤的设计与实现

寸为700mm×500mm×30mm,重量约为24kg。 (3)模块化

对于大型的承载器结构,比如大型的静动态电子汽车衡,已经开始采用几种长度的标准结构模块,经过分体组合,而产生新的品种和规格。这种模块化的分体式秤体结构,不仅提高了产品的通用性、可靠性和互换性,而且也提高了生产效率和产品的质量。同时还降低了成本,增强了企业的市场竞争能力。 (4)智能化

电子衡器的称重显示控制器与电子计算机组合,利用电子计算机的智能来增加称重显示控制器的功能。使电子衡器在原有功能的基础上,增加推理、判断、自诊断、自适应、自组织等一些智能功能,这就是当今市场上采用微机化称重显示控制器的电子衡器与采用智能化称重显示控制器的电子衡器的根本区别。 (5)综合性

电子称重技术的发展规律就是不断的加强基础研究并扩大相应的应用,扩展新的技术领域,向相邻学科和行业渗透,综合各种技术去解决称重计量、信息处理等问题。对某些商用电子计价秤来说,只单单具备称重、计价、显示、打印这些功能还是远远不够的,现代商业系统还要求它能提供各种销售信息,把称重与管理自动化紧密结合在一起,使称重、计价、进库、销售管理一体化,实现管理自动化。这就要求电子计价秤能与电子计算机联网,把称重系统与计算机系统组成一个完整的综合控制系统。 (6)组合性

在工业称重计量过程中,不少称重计量系统还要求具有可组合性,就是指测量范围等可以任意的设定;硬件能够依据一定的条件作某些相应的调整,硬件功能向软件方向发展;软件能按一定的程序进行修改。

现在市场上使用的称量工具,有些是结构复杂,有些是运行不可靠,成本高,精确稳定性也不好,调整的时间长,维修困难,易损件多,能源消耗大。电子秤产品的整体水平不高,部分小企业的产品质量差且技术力量薄弱,缺乏产品的开发能力,电子秤产品处在低层次。所以有针对性地开发出一套有实用价值的电子秤系统,从技术上克服上述诸多缺点,改善电子秤系统在应用中的不足之处,具有现实意义。

2

数字电子秤的设计与实现

2 设计思路

新事物的产生必然会有新科技的推动,电子秤及其各种技术发展到今天有了特别巨大的进步。一方面,各种电子元件的类型和功能有所增加;另一方面,现代社会要求测量必须达到更高的准确度、更小的误差、更快的速度、更高的可靠性。

2.1 设计要求

(1)基本要求

设计并制作一款基于单片机的数字电子秤。 (2)具体要求

本设计的内容是以AT89S52单片机为控制核心,实现电子秤的基本策略及价格计算功能。外围电路主要有电源模块、信号采集模块、信号放大积分模块、数据处理存储模块、显示模块、电压报警模块六部分组成。单片机最小系统部分主要包括AT89S52单片机、经典复位电路和晶振电路;信号采集模块由称重传感器、信号放大和A/D转换部分组成,信号放大和A/D转换部分主要由专用型高精度24位AD转换芯片HX711实现;人机交互界面为键盘输入和点阵式液晶显示,主要使用4*4矩阵键盘和1602液晶显示器,可以方便的输入数据和直观的显示重量、单价、金额。 (3)主要设计功能如下:

① 可实现电子称基本的称重功能(称重范围为0~10Kg,重量误差不大于±5g); ② 应具备显示重量、可以输入单价并能自动计算总价的功能; ③ 超出最大测量范围10Kg时应有报警指示功能(蜂鸣器报警提示)。

2.2 设计方案的确定

过查找资料和论证,结合所学知识,可通过以下方案来实现课题要求实现的指标,各方案介绍如下所述。

方案一 数码管显示。

3

数字电子秤的设计与实现

图3-1 AT89S52单片机引脚图

3.1.2 传感器的选择

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

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

电阻应变式传感器是一种利用电阻应变效应,将各种力学量转换为电信号的结构型传感器。电阻应变式传感器的核心元件,其工作原理是基于材料的电阻应变效应,电阻应变片即可单独作为传感器使用,又能作为敏感元件结合弹性元件构成力学量传感器。导体的电阻随着机械变形而发生变化的现象叫做电阻应变效应。电阻应变片把机械应变信号转换为△R/R后,由于应变量及相应电阻变化一般都很微小,难以直接精确测量,且不便处理。因此,要采用转换电路把应变片的△R/R变化转换成电压或电流变化,其转换电路常用测量电桥。 直流电桥的特点是信号不会受各元件和导线的分布电感及电容的影响,抗干扰能力强,但因机械应变的输出信号小,要求用高增益和高稳定性的放大器放大。

图3-2为一直流供电的平衡电阻电桥,Ein接直流电源E。

9

数字电子秤的设计与实现

Rd Ra Eout Rc Rb Ein

图3-2 电阻应变式传感器原理图

设各桥臂的初始电阻为Ra=Rb=Rc=Rd=R,当弹性体承受载荷产生变形时,4个桥臂电阻分别产生微小变化,输出信号电压可由下式给出:

Eout?Ein?R??Rd??R??Rb?-?R??Ra??R??Rc? ?2R??Rd??Ra??2R??Rb??Rc?上式说明电桥的输出电压Eout和四个桥臂的应变片感受应变量的关系。 应变片式传感器有如下特点:

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

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

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

3.1.3 A/D转换器的选择

无线数据HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括片内时钟振荡器、稳压电源等其它同类型芯片所需要的外围电路,具有响应速度快、集成度高、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。芯片管脚图如图3-3所示。

10

数字电子秤的设计与实现

图3-3 HX711管脚定义

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

3.1.4 显示器的选择

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

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

具体引脚说明如下表3-1所示。

11

数字电子秤的设计与实现

表3-1 LCD1602液晶显示器引脚说明

编号 1 2 3 4 5 6 7 8

符号 VSS VDD VL RS R/W E D0 D1

引脚说明 电源地 电源正极 液晶显示偏压信号 数据/命令选择端 读/写选择端 使能信号 Data I/O Data I/O

编号 9 10 11 12 13 14 15 16

符号 D2 D3 D4 D5 D6 D7 BLA BLK

引脚说明 Data I/O Data I/O Data I/O Data I/O Data I/O Data I/O 背光源正极 背光源负极

LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符

图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、日文假名等。每一个字符都有一个固定的代码,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。因此,用LCD1602能很好的满足设计要求。

3.2 硬件电路的设计

以下部分内容是本设计最主要的内容,通过这部分的设计,电子秤设计的电路原理以及怎么工作的将得到完整的呈现。

3.2.1 电源电路

由于该系统中51单片机及AD转换芯片及液晶显示器所需供电电压均为5V电压,所以要保证系统稳定可靠的工作,需要设计一个可以稳定提供5V电压的供电系统。本设计采用单电源接口供电方式,USB接口供电方便程序调试。该系统电源电路设计如图2-4所示。

图3-4 电源接口电路图

12

数字电子秤的设计与实现

3.2.2 主控电路

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

图3-5 主控电路图

复位是单片机的初始化操作,单片机系统在上电启动运行时,都需要先复位。其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作,因而,复位是一个很重要的操作方式。但单片机本身是不能自动复位的,必须配合相应的外部复位电路才能实现。本设计复位电路采用按键手动复位加上电复位来实现,K1为复位按键,复位按键按下后,复位端通过1K的小电阻与电源接通,电容迅速放电,使RST引脚为高电平;当复位按键弹起后,电源通过10KΩ的电阻对10μF的电容C1重新充电,RST引脚端出现复位正脉冲。

初始复位不改变RAM(包括工作寄存器R0-R7)的状态,复位后单片机片内各特殊功能寄存器的状态见表3-2,表中“x”为不定数。

13

数字电子秤的设计与实现

dat_tab[1]=Price_dat; dat_tab[0]=9; Price_dat=dat_tab[2]*100+dat_tab[1]*10+dat_tab[0]; } break; case 4: break; case 5:

if(check_flag==0) {

dat_tab[2]=Price_dat0/10; dat_tab[1]=Price_dat; dat_tab[0]=4; Price_dat=dat_tab[2]*100+dat_tab[1]*10+dat_tab[0]; } break; case 6:

if(check_flag==0) {

dat_tab[2]=Price_dat0/10; dat_tab[1]=Price_dat; dat_tab[0]=5; Price_dat=dat_tab[2]*100+dat_tab[1]*10+dat_tab[0]; } break; case 7:

if(check_flag==0) {

dat_tab[2]=Price_dat0/10; dat_tab[1]=Price_dat; dat_tab[0]=6; Price_dat=dat_tab[2]*100+dat_tab[1]*10+dat_tab[0]; } break; case 8: break; case 9:

if(check_flag==0) {

dat_tab[2]=Price_dat0/10; dat_tab[1]=Price_dat; dat_tab[0]=1; Price_dat=dat_tab[2]*100+dat_tab[1]*10+dat_tab[0]; }

34

数字电子秤的设计与实现

break; case 10: if(check_flag==0) { dat_tab[2]=Price_dat0/10; dat_tab[1]=Price_dat; dat_tab[0]=2; Price_dat=dat_tab[2]*100+dat_tab[1]*10+dat_tab[0]; } break; case 11: if(check_flag==0) { dat_tab[2]=Price_dat0/10; dat_tab[1]=Price_dat; dat_tab[0]=3; Price_dat=dat_tab[2]*100+dat_tab[1]*10+dat_tab[0]; } break; case 12: break; case 13: break; case 14: if(check_flag==0) { dat_tab[2]=Price_dat0/10; dat_tab[1]=Price_dat; dat_tab[0]=0; Price_dat=dat_tab[2]*100+dat_tab[1]*10+dat_tab[0]; } break; case 15: //去皮 Peel_ad=BP_DAT1; break; case 16: break; default: break; } key_num=0; }

void main() { uchar i=0;

35

数字电子秤的设计与实现

init_1602(); while(1) { display(); if(i<5) { AD_DAT+=ReadCount(); i++; } else { i=0; AdVal=AD_DAT/500; AD_DAT=0; Check(); } keyscan(); }

}

36

数字电子秤的设计与实现

表3-2 复位后单片机片内各特殊功能寄存器状态

特殊功能寄存器

ACC PC PSW SP DPTR P0-P3 IP IE PCON

初始状态 00H 0000H 00H 07H 0000H 0FFH xx000000B 0x000000B 0xxx0000B

特殊功能寄存器

TMOD TCON TL0 TH0 TL1 TH1 B SCON SBUF

初始状态 00H 00H 00H 00H 00H 00H 00H 00H 不定

复位时,ALE和PSEN成输入状态,ALE=PSEN=1,片内RAM不受复位影响。复位后,P0-P3口输出高电平且使这些双向口皆处于输入状态,并将07H写入堆栈指针SP,同时将PC和其余特殊功能寄存器清零。此时,单片机从起始地址0000H开始重新执行程序。所以,当单片机运行出错或者进入死循环时,可使其复位后重新运行。

单片机工作是在统一的时钟脉冲控制下一拍一拍地进行的,这个脉冲是由单片机控制器中的时序电路发出的。单片机的时序就是CPU在执行指令时所需控制信号的时间顺序。为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地按时序进行工作。

AT89S52内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路,本设计采用内部时钟方式,利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体振荡器,就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。C7和C10的值通常选择为30pF左右,对频率有微调作用,晶振Y1选择12MHz。为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器电容应尽可能安装得与单片机引脚XTAL1和XTAL2靠近。

单片机的31脚(EA)接+5V电源,表示允许使用片内ROM。

14

数字电子秤的设计与实现

3.2.3 显示电路

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

图3-6 显示电路图

P1的引脚1和引脚2为液晶1602地和电源引脚。3脚为背光调节引脚,通常用10K电位器接地,背光可通过电位器来调节亮度,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”现象,由于可以不调节背光亮度,本设计电路采用3K电阻代替。4脚、5脚、6脚为液晶片选控制引脚,分别连接到单片机的P2.5、P2.6、P2.7端口。RS为寄存器选择端,高电平选择数据寄存器,低电平选择指令寄存器;R/W为读写信号线,高电平时进行读操作,低电平时进行写操作;RS和R/W同为低电平时可以写入指令或者显示地址;RS为低电平,R/W为高电平时可以读入信号;RS为高电平,R/W为地电平时可以写入数据。EN为使能端,当EN由高电平跳变成低电平时,液晶模块执行命令。7-14脚为8位双向数据线接口,与单片机的P0口相连实现数据的传输;15、16脚为液晶的背光控制脚,分别接到电源和地。由于单片机P0口内部没有上拉电阻,要想液晶显示器正常稳定工作,必须给P0加一个上拉电阻,用8位排阻加入电路。

15

数字电子秤的设计与实现

3.2.4 超重报警电路

报警指示电路由一种低电压、大电流、小信号的PNP型硅三极管8550驱动蜂鸣器来实现,单片机I/O口控制三极管的基极,当单片机的I/O口输出为低电平时,三极管导通,蜂鸣器的正极与电源接通,蜂鸣器通电发出报警声;当单片机I/O口输出高电平时,三极管截止,蜂鸣器停止报警。超重报警指示电路如图3-7所示。

图3-7 超重报警电路图

3.2.5 按键输入电路

键盘是微型计算机系统中最常用的人机对话输入设备。在单片机应用系统中,为了控制系统的工作状态,以及向系统输入数据,应用系统需要单独设计专用的小键盘。在计算机系统中,键盘有两种基本类型:编码键盘和非编码键盘。编码键盘本身除了按键以外,还包括产生编码的硬件电路,使用虽然方便,但价格较高,在一般单片机应用系统中很少采用。非编码键盘靠软件来识别键盘上的闭合键,由此得出键码,在单片机应用系统中普遍采用。若每一个按键都占用一条I/O口线,当按键数目较多时,就要使用大量的I/O口线,为了减少键盘与单片机接口时所占用I/O口线的数目,通常设置两组互不连接的行线和列线,在行线与列线的交叉处设置一个按键,本次设计即是利用单片机技术,采用中断查询的方法,设计了一个4*4的键盘模块,无按键按下时,行线与列线不连接,有键按下时,行线与列线接通,并利用数液晶显示器显示相应的按键值。

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

16

数字电子秤的设计与实现

图3-8 按键输入电路图

在这种行列式无编码键盘中,对按键的识别由软件完成,通常有两种方法:一是速度较快的线反转法;二是传统的行扫描法。 (1)线反转法

这种方法通过两个步骤来实现,即:

① 先让所连接的端口高四位为高1,低四位为低0。若矩阵键盘上有按键被按下,则高四位中会有一个电平从1被翻转到0,低四位则不会改变电平状态,然后即可确定矩阵键盘上被按下的按键的所在行的具体位置。

② 所连接的端口高四位为低0,低四位为高1。若矩阵键盘上有按键被按下,则低四位中会会有一个电平1翻被转为0,高四位则不会改变电平状态,然后即可确定矩阵键盘上被按下的按键的所在列的具体位置。综合这两个步骤就可以判断出被按下的按键具体位置。 (2)行扫描法

和线反转法实现的步骤类似,同样一般也是两步来实现,即:

① 将连接的全部行线置为低电平,然后检测所有列线的电位状态。只要某一列列线电位为低电平,就表示矩阵键盘中这列有键被按下,并且在被按下的闭合的按键在低电平列线与全部根行线相交叉的4个按键之中。反之,若所有列线电位均为高电平,则表示矩阵键盘中没有按键被按下。

② 经过前一可知按键处在判断的4个按键之中,在确认了有按键被按下后,就可进入到

17

数字电子秤的设计与实现

确定具体被闭合键的操作。然后再依次将所有行线电位置为低电平,即只有一根行线为低电平,其余行线则为高电平。在确定了某根行线电位为低电平后,再逐行检测所有列线的电平状态。若某根列线的电位为低电平,则被按下的按键就处在这根列线和低电平行线的交叉处。

CPU对键盘的扫描可以采用程序控制的随机方式,CPU空闲时扫描键盘;也可以采取定时控制方式,每隔一定的时间,CPU对键盘进行一次扫描;还可以采用中断方式,没当键盘上有键闭合时,向CPU请求中断,CPU响应键盘输入中断,对键盘扫描。

3.2.6 HX711转换电路

前面元件选择中有讲,本设计采用的是一款专为高精度电子秤而设计的24位A/D转换器芯片HX711。其电路图如3-9所示。

图3-9 HX711转换电路图

如果将管脚XI接地,HX711将自动选择使用内部时钟振荡器,并自动关闭外部时钟输入

和晶振的相关电路。这种情况下,典型输出数据速率为10Hz或80Hz。如果需要准确的输出数据速率,可将外部输入时钟通过一个20pF的隔直电容连接到XI管脚上,或将晶振连接到XI和XO管脚上。这种情况下,芯片内的时钟振荡器电路会自动关闭,晶振时钟或外部输入时钟电路被采用。此时,若晶振频率为11.0592MHz,输出数据速率为准确的10Hz或80Hz。输出数据速率与晶振频率以上述关系按比例增加或减少。使用外部输入时钟时,外部时钟信号不一定需要为方波。可将MCU芯片的晶振输出管脚上的时钟信号通过20pF的隔直电容连接到XI管脚上,作为外部时钟输入。外部时钟输入信号的幅值可低至150mV。

当数据输出管脚SDA为高电平时,表明A/D转换器还未准备好输出数据,此时串口时钟输入信号SCK应为低电平。当SDA从高电平变低电平后,SCK应输入25至27个不等的时钟脉冲。其中第一个时钟脉冲的上升沿将读出输出24位数据的最高位(MSB),直至第24

18

数字电子秤的设计与实现

个时钟脉冲完成,24位输出数据从最高位至最低位逐位输出完成。第25至27个时钟脉冲用来选择下一次A/D转换的输入通道和增益,参见表3-3。

表3-3 输入通道和增益选择

SCK脉冲数

25 26 27

输入通道

A B A

增益 128 32 64

SCK的输入时钟脉冲数不应少于25或多于27,否则会造成串口通讯错误。当A/D转换器的输入通道或增益改变时,A/D转换器需要4个数据输出周期才能稳定。SDA在4个数据输出周期后才会从高电平变低电平,输出有效数据。

3.3 硬件电路图与PCB板线路的绘制

本部分内容主要对用到的软件以及原理图、PCB图绘制的过程进行了详细的介绍。

3.3.1 Protel99SE软件

本设计在硬件电路的设计过程中,原理图和PCB的绘制采用Protel99SE软件。

3.3.2 原理图与PCB板线路的绘制

采用Protel99SE绘制原理图和PCB的主要步骤如下: (1)建立系统所需元件库;

(2)加载所建元件库到工程项目中;

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

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

按照如上步骤最终完成绘制的电路图与PCB图分别如图3-10所示。

19

数字电子秤的设计与实现

图3-10 PCB图

20

数字电子秤的设计与实现

4 软件设计

硬件电路设计完成后,没有软件的运行是无法工作的。因此,必须对软件进行相应的设计和介绍。

4.1 软件编译环境

系统软件设计采用C语言编程,编译环境为Keil UV3。

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

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

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

4.2 主程序流程图

软件部分主程序(见附录II)流程图如图4-1所示。

21

数字电子秤的设计与实现

开始初始化置零键按下调零程序A/D转换数据处理显示 图4-1 主程序流程图

电源通电后,单片机开始进行初始化,清零键按下后,单片机开始进行调零程序处理,然后进行清零操作。当有被秤物体放上秤盘后,A/D转换器会把称重传感器传过来的模拟信号转换成数据信号传给单片机,单片机经过信息处理后,由液晶显示器把信息显示出来。

4.3 按键模块流程图

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

开始 LCD初始化界面字符显示N按键按下Y调用LCD显示N清零键按下

图4-2 按键模块流程图

22

数字电子秤的设计与实现

电源通电后,LCD液晶显示器上会显示有初始化状态下的单价信息,此时,会进行动态扫描。动态扫描是一直进行的,如若没有按键按下,液晶显示页面不会有变化;当有按键按下时,会启动中断服务,调用中断程序,根据中断程序的判断可以确定按下的是具体哪个按键,从而显示该按键的功能。

4.4 显示模块流程图

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

开始显示初始化页面有无按键Y显示按键功能检测重物显示总价信息返回 图4-3 显示模块流程图

电源通电后,液晶显示器页面处于初始化状态,若有按键按下,显示按键的功能,要么按下的是数字键更改单价,要么按下的是清零键使被秤物体的重量和总价信息置零。在这个过程中,单片机会一直扫描称重传感器传过来的信息,如果有被秤物体,则会在显示器上显示出物体的重量、单价、总价信息。如若没有按键按下和被秤物体,则液晶显示器上显示信息不会有变化。

23

数字电子秤的设计与实现

5 实物的焊接与调试

这部分是最后一步,但也是最关键的一步,电子秤能不能正常工作,很大部分原因与此步有关。

5.1 实物的焊接

在PCB板制作和焊接的过程中要认真、细心、有耐心。

5.1.1 PCB板制作

把系统的电路原理图设计好以后。下一步工作就是进行实物制作了,而实物制作的第一步就是对电路进行排版布线;虽然Protel99SE软件有自动布局布线的功能,但是,我还是选择了手动布线。虽然可能布的不是很漂亮,但是很多问题是只有亲自动手了,才会发现问题。PCB板制作遇到以下几个方面: (1)电路原理图的布局

在器件布局的过程中应注意以下几点:

① 一个模块及其附属的一些分离元器件应尽量放到一起;

② 不同的电路模块尽量划分清晰,使得在调试过程中多电路的检查能够一目了然; ③ 较容易发热的元器件尽量放到电路的边缘,有利于散热。 (2)布线

PCB布线的好坏对系统性能有直接的影响,在高频电路表现的尤为突出,所以,在进行电路布线时还需注意以下几点:

① 模拟地和数字地应分开接地,避免数字信号和模拟信号会相互干扰;

② 每一根走线,能短则短,不要为了盲目追求少跳线而绕远路,因为线越短电阻越小,干扰也会越小;

③ 电源线和地线尽量从电路板的边缘走线,且电源线尽量画的比一般线宽略粗一些; ④ 走线在改变方向时应该走45°角或曲线,避免直角的拐角。 (3)打印与转印

打印时要注意油纸不能折叠,打印的设置必须准确,只留下底层的走线和焊盘。而在转

24

数字电子秤的设计与实现

印时首先覆铜板要刷洗干净,以免在转印时油墨不能完全的转印;其次,转印机必须预热到机器发出提示音,这表明,转印机已经准备好转印了;第三,转印机的转印速度档位应放在“正常”档位,板子的类型应放在“印刷板”档位;第四,在转印时,注意油纸上的走线图必须能够完整的附在覆铜板上,一块板子最好转印两次,确保把油墨完全的转印到覆铜板上。 (4)腐蚀

将油纸上的电路图转印到覆铜板后,接着就要把多余的铜腐蚀掉。不过在刚转印好的时候,首先应检查是否转印完整,若有断线、走线空心的问题,必须用油墨笔将断线补起来,空心的走线填完整。确保转印工序完成后,就可以将电路板放入FeCl3溶液里进行腐蚀了,俗称“烂板”。如果有条件,可以将腐蚀液加热,再放入电路板,这样能够有效的提高腐蚀的速度。 (5)打孔

腐蚀好的板子,在洗净之后就可以打孔了,打孔时尤其要注意孔的大小不能将焊盘的铜箔完全打掉,否则焊接时,焊盘没有铜箔就无法进行焊接了。

最后,打孔完成,用砂纸将毛糙磨平,这样电路图的绘制与PCB板的制作就顺利完成了。

5.1.2 实物焊接

焊接过程中特别注意的事项有:

(1)拿到PCB裸板后首先应进行外观检查,看是否存在短路、断路等问题,然后熟悉开发板原理图,将原理图与PCB丝印层进行对照,避免原理图与PCB不符。

(2)PCB焊接所需物料准备齐全后,应将元器件分类,可按照尺寸大小将所有元器件分为几类,便于后续焊接。需要打印一份齐全的物料明细表。在焊接过程中,没焊接完一项,则用笔将相应选项划掉,这样便于后续焊接操作。

焊接之前应采取戴静电环等防静电措施,避免静电对元器件造成伤害。焊接所需设备准备齐全后,应保证烙铁头的干净整洁。初次焊接推荐选用平角的焊烙铁,在进行诸如0603式封装元器件焊接时烙铁能更好的接触焊盘,便于焊接。当然,对于高手来说,这个并不是问题。

(3)挑选元器件进行焊接时,应按照元器件由低到高、由小到大的顺序进行焊接。以免焊接好的较大元器件给较小元器件的焊接带来不便。优先焊接集成电路芯片。

(4)进行集成电路芯片的焊接之前需保证芯片放置方向的正确无误。对于芯片丝印层,

25

数字电子秤的设计与实现

一般长方形焊盘表示开始的引脚。焊接时应先固定芯片一个引脚,对元器件的位置进行微调后固定芯片对角引脚,使元器件被准确连接位置上后进行焊接。

(5)贴片陶瓷电容、稳压电路中稳压二极管无正负极之分,发光二极管、钽电容与电解电容则需区分正负极。对于电容及二极管元器件,一般有显著标识的一端应为负。在贴片式LED的封装中,沿着灯的方向为正-负方向。对于丝印标识为二极管电路图封装元器件中,有竖线一端应放置二极管负极端。

(6)对晶振而言,无源晶振一般只有两个引脚,且无正负之分。有源晶振一般有四个引脚,需注意每个引脚定义,避免焊接错误。

(7)对于插件式元器件的焊接,如电源模块相关元器件,可将器件引脚修改后再进行焊接。将元器件放置固定完毕后,一般在背面通过烙铁将焊锡融化后由焊盘融入正面。焊锡不必放太多,但首先应使元器件稳固。

(8)焊接过程中应及时记录发现的PCB设计问题,比如安装干涉、焊盘大小设计不正确、元器件封装错误等等,以备后续改进。

(9)焊接完毕后应使用放大镜查看焊点,检查是否有虚焊及短路等情况。

(10)电路板焊接工作完成后,应使用酒精等清洗剂对电路板表面进行清洗,防止电路板表面附着的铁屑使电路短路,同时也可使电路板更为清洁美观。

5.2 实物的调试

电路板实物做完以后,接下来的工作就是调试。这是理论指导实践最重要的一步,调试工作需要耐心与恒心,所以在调试过程中必须保持冷静的头脑,较强的电路分析能力。一个系统的调试需要软硬件结合调试。

在软硬件结合调试的过程中所遇到的问题:

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

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

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

26

数字电子秤的设计与实现

(4)对各种实用芯片价格了解不够,选择上有欠缺,如所选的称重传感器价格较贵。这些都为我今后的学习和工作留下了积极的影响。

5.3 实物效果图

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

图5-1 实物效果图

27

数字电子秤的设计与实现

6 结束语

完成一件事,事后肯定会相应的收获,对工作内容的总结是一种负责任认真的态度,对以后的工作会有很大的帮助。

本设计采用AT89S52单片机计的电子计重秤,无论是计量精度,还是稳定性都满足电子秤的要求,它具有较好的标定校准方法,性能稳定,操作简单,价格低廉。该电子秤集传感器技术、微计算机技术、数字显示技术于一体、其反应灵敏、准确度高、显示直观,便于使用。通过硬件的少量扩展和软件的修改,能设计出性能优越的计价秤、电子台秤等,满足各行各业对现代电子衡器的需求。另外稍加扩展,该电子秤还可与其它生产质量管理系统项连接,具有推广应用价值。

本设计软件和硬件相结合,有相当大的难度,同时也有很大的实用性。在做毕业设计的过程中,我的理论和实践水平都有了较大的提高。在本设计的设计中,我熟练掌握了单片机硬件设计和接口技术,同时对称重传感器的原理及应用有了一定的了解,掌握了各种控制电路及其相关元器件的使用。通过这次毕业设计,我不仅学会如何将所学专业知识运用到实际生活中,还学会如何克服未知的困难,解决难题的方法。

毕业设计终于结束了,这意味着我的大学生涯中最后一项任务也完成了,在此毕业设计过程中,巩固了我在大学学过的知识,尤其是单片机和C语言编程方面的知识,同时通过这次毕业设计提高了单片机编程的能力,尤其是获得的软件调试经验,同时了解到了其它相关领域的知识,对今后的工作学习有着极大的帮助。

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

28

数字电子秤的设计与实现

致 谢

通过本次毕业设计,我在王克甫老师的悉心指导和严格要求下,重温了所学的一些专业知识,特别是单片机电子方面的内容。并对当前电子领域的研究状况和发展方向有了一定的了解。本次设计运用了多门所学的专业知识,并查阅了大量的资料,从而了解到更多的专业知识。

这次设计得以顺利完成,首先我想感谢我的指导老师王老师。虽然王老师工作特别忙,但对我们每一位都非常认真的指导,从选题到开题再到设计,每一步都很认真负责,针对学生的不同情况给予指导。另外,在指导的过程中,对于我们出现的错误及时指正,并对所做出的成果给予认可和鼓励。王老师勤奋严谨的工作态度让我深深地敬佩,也值得我们每一位好好学习。

另外,与我一组的同学,在我遇到一些问题时,是他们的热心帮助让我更加有信心做好毕业设计,从而使我的设计顺利的完成。

在大学生涯即将结束之际,在此向所有关心帮助过我的老师和同学表达最诚挚的感谢。

29

数字电子秤的设计与实现

参考文献

[1] 许晓彤.基于单片机的电子秤设计[J].自动化计量仪器,2012(07):69-72. [2] 钱刘宸.轻松学习单片机[J].西北工业大学学报,2013(02):86-87. [3] 刘婷,陈莉.基于单片机的一个应用实例[J].科技信息,2006(11):458-459. [4] 江海山.仪表检测与转换技术[J].烟草科技,1993(04):19-21.

[5] 李晓林,阎高伟.单片机原理与接口技术(第二版)[M].北京:电子工业出版社,2011. [6] 刘九卿.21世纪初我国称重传感器技市肋发展与展望[J].衡器,1999(07):2-6. [7] 张寅.一种基于单片机的电子秤模型实现[J].华中科技大学学报,2009(05):65-70. [8] 杨青锋,王辉.影响称重传感器产品质量的关键环节[J].称重知识,2012(17):38-42.

[9] 冯秀彦.基于单片机的智能电子秤的设计与实现[J].石家庄职业技术学院学报,2012(09)136-136. [10] 张振宇,赵静.带语音功能的电子秤[J].吉林大学仪器科学与电气工程学院学报,2013(03):23-27. [11] 陈静.单片机应用系统中的编程语言[J].淮北职业技术学院学报,2009(02):43-44. [12] 谭浩强.C语言程序设计(第三版)[M].北京:清华大学出版社,2005.

[13] 刘智涛.电子天平与电子秤的区别与鉴定[J].计量与测试技术,2007(02):41-44. [14] 孙莉.多功能精准电子秤的设计与实现[J].德州学院机电学院报,2013(04):203-204. [15] 赵志诚.发展中的传感器技术[J].仪表技术与传感器,1995(01):5-7.

[16] Yan Piao.The Technique of EMI Control for LCD Display Transfer System [J].Changchun University of Science and Technology,2008(11):1-2.

[17] Wang Xiao-ming.Amit Patel Btech.Switching Power Supply for Low Power Experiments [J].The Chinese People's Armed Police Forces Academ 2010(06):27-27.

30

数字电子秤的设计与实现

附 录

附录I:原理图

31

数字电子秤的设计与实现

附录II:主程序

#include //头文件 #include #include\

#define uchar unsigned char //宏定义 #define uint unsigned int #define AD_Ref1 85468 #define AD_Ref2 87045 #define Wight_Ref3 50 long AdVal; //AD采样值 long AD_DAT; long BP_DAT=0; long BP_DAT1=0; long Peel_ad=0;

uint Price_dat=99; //单价 上电默认9.9元 uint Total_Sum=0; //总价 uchar data dat_tab[5]={0};

bit num_flag=0; //数字键按下标志 uchar check_flag=0; //校准标志 sbit BEEP=P2^0;

extern uchar key_num;

/*************************************************** 函数名称:延时子函数 函数功能:按键消抖

***************************************************/ void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); }

void Check() { //float Wight_K=0.0; uint dat; //Wight_K=(float)((AD_Ref2-AD_Ref1)/Wight_Ref); if(AdVal>AD_Ref1) { dat=(uint)((AdVal-AD_Ref1)/4.50); BP_DAT1=(int)(dat); } else {

32

数字电子秤的设计与实现

dat=(uint)((AD_Ref1-AdVal)/4.50); BP_DAT1=(0-(int)(dat)); } if(BP_DAT1>Peel_ad) BP_DAT=BP_DAT1-Peel_ad; else { BP_DAT=Peel_ad-BP_DAT1; BP_DAT=(0-BP_DAT); } BP_DAT=(BP_DAT/5)*5; //精度5g Total_Sum=(uint)((Price_dat*BP_DAT)/1000); if(Total_Sum>999) Total_Sum=0; }

#include \#include \.C\void keyscan() { key(); switch(key_num) { case 1: if(check_flag==0) { dat_tab[2]=Price_dat0/10; dat_tab[1]=Price_dat; dat_tab[0]=7; Price_dat=dat_tab[2]*100+dat_tab[1]*10+dat_tab[0]; } break; case 2: if(check_flag==0) { dat_tab[2]=Price_dat0/10; dat_tab[1]=Price_dat; dat_tab[0]=8; Price_dat=dat_tab[2]*100+dat_tab[1]*10+dat_tab[0]; } break; case 3: if(check_flag==0) { dat_tab[2]=Price_dat0/10;

33

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

Top