基于单片机的电子秤设计.docx

上传人:b****5 文档编号:11800452 上传时间:2023-04-02 格式:DOCX 页数:27 大小:644.36KB
下载 相关 举报
基于单片机的电子秤设计.docx_第1页
第1页 / 共27页
基于单片机的电子秤设计.docx_第2页
第2页 / 共27页
基于单片机的电子秤设计.docx_第3页
第3页 / 共27页
基于单片机的电子秤设计.docx_第4页
第4页 / 共27页
基于单片机的电子秤设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于单片机的电子秤设计.docx

《基于单片机的电子秤设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子秤设计.docx(27页珍藏版)》请在冰豆网上搜索。

基于单片机的电子秤设计.docx

基于单片机的电子秤设计

 

XXXX大学

毕业设计说明书

 

学生姓名:

学号:

学院:

专业:

题目:

基于单片机的电子秤设计

 

指导教师:

职称:

职称:

 

20**年12月5日

 

摘要

本系统采用单片机AT89S52为控制核心,实现电子秤的基本控制功能。

系统的硬件部分包括最小系统板,数据采集、人机交互界面三大部分。

最小系统部分主要是扩展了外部数据存储器,数据采集部分由压力传感器、信号的前级处理和A/D转换部分组成。

人机界面部分为键盘输入,128

64点阵式液晶显示,可以直观的显示中文,使用方便。

软件部分应用单片机C语言实现了本设计的全部控制功能,包括基本的称重功能,和发挥部分的显示购物清单的功能,可以设置日期和重新设定10种商品的单价,具有超重报警功能,由于系统资源丰富,还可以方便的扩展其应用。

关键词:

压力传感器单片机A/D转换器LED显示器

 

第一章绪论

1电子秤的工作原理

当被称物体放置在秤体的秤台上时,其重量便通过秤体传递到称重传感器,传感器随之产生力-电效应,将物体的重量转换成与被称物体重量成一定函数关系(一般成正比关系)的电信号(电压或电流等)。

此信号由放大电路进行放大、经滤波后再由模/数(A/D)器进行转换,数字信号再送到微处器的CPU处理,CPU不断扫描键盘和各种功能开关,根据键盘输入内容和各种功能开关的状态进行必要的判断、分析、由仪表的软件来控制各种运算。

运算结果送到内存贮器,需要显示时,CPU发出指令,从内存贮器中读出送到显示器显示,或送打印机打印。

一般地信号的放大、滤波、A/D转换以及信号各种运算处理都在仪表中完成。

2设计任务书

1、使用单片机为控制核心。

2、使用键盘输入数据,操作简单,方便。

3、液晶显示所称量的物品重量,同时还可显示物品的数量,单价,金额。

4、具有去皮功能和金额累加计算功能。

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

6、主要技术指标为:

称量范围0~2kg;放大电路设计(灵敏度1mV/V,输出信号为0~10mV,A/D转换输入为0-4.999V)。

由4节7号电池供电。

 

第二章系统方案论证与选型

按照本设计功能的要求,系统由6个部分组成:

控制器部分、测量部分、报警部分、数据显示部分、键盘部分、和电路电源部分,系统设计总体方案框图如图2.1所示。

图2-1设计思路框图

测量部分是利用称重传感器检测压力信号,得到微弱的电信号(本设计为电压信号),而后经处理电路(如滤波电路,差动放大电路,)处理后,送A/D转换器,将模拟量转化为数字量输出。

控制器部分接受来自A/D转换器输出的数字信号,经过复杂的运算,将数字信号转换为物体的实际重量信号,并将其存储到存储单元中。

控制器还可以通过对扩展I/O的控制,对键盘进行扫描,而后通过键盘散转程序,对整个系统进行控制。

数据显示部分根据需要实现显示功能。

 

2.1控制器部分

本设计由于要求必须使用单片机作为系统的主控制器,而且以单片机为主控制器的设计,可以容易地将计算机技术和测量控制技术结合在一起,组成新型的只需要改变软件程序就可以更新换代的“智能化测量控制系统”。

这种新型的智能仪表在测量过程自动化、测量结果的数据处理以及功能的多样化方面,都取得了巨大的进展。

再则由于系统没有其它高标准的要求,又考虑到本设计中程序部分比较大,根据总体方案设计的分析,设计这样一个简单的的系统,可以选用带EPROM的单片机,由于应用程序不大,应用程序直接存储在片内,不用在外部扩展存储器,这样电路也可简化。

INTEL公司的8051和8751都可使用,在这里选用ATMENL生产的AT89SXX系列单片机。

AT89SXX系列与MCS-51相比有两大优势:

第一,片内存储器采用闪速存储器,使程序写入更加方便;第二,提供了更小尺寸的芯片,使整个硬件电路体积更小。

此外价格低廉、性能比较稳定的MCPU,具有8K×8ROM、256×8RAM、2个16位定时计数器、4个8位I/O接口。

这些配置能够很好地实现本仪器的测量和控制要求

最后我们最终选择了AT89S52这个比较常用的单片机来实现系统的功能要求。

AT89S52内部带有8KB的程序存储器,基本上已经能够满足我们的需要。

 

2.2数据采集部分

电子秤的数据采集部分主要包括称重传感器、处理电路、A/D转换电路和键盘处理,因此对于这部分的论证主要分四方面。

2.2.1传感器的选择

在设计中,传感器是一个十分重要的元件,因此对传感器的选择也显的特别的重要,不仅要注意其量程和参数,还有考虑到与其相配置的各种电路的设计的难以程度和设计性价比等等.

平行梁微型秤称重传感器

尺寸:

长80mm宽1.27mm高1.27mm

规格:

1kg2kg5kg

额定负荷0.6,1,2,3,5,6(kg)

额定输出1.0±0.15mV/V

输入阻抗1115±10%Ω

输出阻抗1000±10%Ω

推荐工作电压5~12VDC

最大工作电压15VDC

材质铝合金

满量程电压=激励电压x灵敏度1.0mv/v

根据设计要求满量程电压为0-10mv,由上式得激励电压为10V

安装方式:

悬臂梁安装方式带线段固定其它的悬空另一边上面称量

设计要求

平行梁微型秤称重传感器

称量范围0~2kg

2KG

符合

灵敏度1mV/V

1.0±0.15mV/V

符合

输出信号0~10mV

满量程电压=激励电压10Vx灵敏度1.0mv/v=10mV

符合

电源带负载能力

输入阻抗1115±10%Ω

符合

根据设计要求,灵敏度符合要求,规格选用2KG,激励电压10V

2.2.2放大电路选择

采用专用仪表放大器,如:

INA128,INA121等。

此类芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。

INA128P,接口如下图3-2-1所示:

图3-2-1

放大器增益

,通过改变Rg的大小来改变放大器的增益。

基于以上分析,我们决定采用制作方便而且精度很好的专用仪表放大器INA128。

INA128是低功耗、高精度的通用仪表放大器。

它们通用的 3 运放(3-op amp)设计和体积小巧使其应用范围广泛。

反馈电流(Current-feedback)输入电路即使在高增益条件下(G = 100时,200kHz)也可提供较宽的带宽。

单个外部电阻可实现从1至10000的任一增益选择。

INA128提供工业标准的增益等式(gain equation)INA129 的增益等式与 AD620 兼容。

INA128用激光进行修正微调,具有非常低的偏置电压(50mV)、温度漂移(0.5

)和高共模抑制(在 G=100 时,120dB)。

其电源电压低至±2.25 且静态电流只有 700uA,是电池供电系统的理想选择。

内部输入保护能经受±40V电压而无损坏。

设计要求

INA128运算放大器

输出电压0-4.999v

5v

符合

2.2.3A/D转换器的选择

A/D转换器的选择

对传感器量程和精度的分析可知:

A/D转换器误差应在0.03%以下

8位A/D精度:

2Kg/256=7.81克

12位A/D精度:

2Kg/4096=0.49g

14位A/D精度:

2Kg/16384=0.12g

考虑到其他部分所带来的干扰,8位A/D无法满足系统精度要求。

作为一般小商品称重需求,我们只需要选择12位的A/D转换器就可以了。

考虑到本系统中对物体重量的测量和使用的场合,精度要求不是很苛刻,转换速率要求也不高,而双积分型A/D转换器精度高,具有精确的差分输入,重要的是输入阻抗高(大于

),可自动调零,有超量程信号输出,全部输出于TTL电平兼容。

且双积分型A/D转换器具有很强的抗干扰能力。

对正负对称的工频干扰信号积分为零,所以对50Hz的工频干扰抑制能力较强,对高于工频干扰(例如噪声电压)已有良好的滤波作用。

只要干扰电压的平均值为零,对输出就不产生影响。

尤其对本系统,缓慢变化的压力信号,很容易受到工频信号的影响。

根据系统的精度要求以及综合的分析其优点和缺点,本设计采用了12位A/D转换器AD574。

分辨率:

12位

非线性误差:

小于±1/2LBS或±1LBS

转换速率:

25us

模拟电压输入范围:

0—10V和0—20V,0—±5V和0—±10V两档四种

电源电压:

±15V和5V

数据输出格式:

12位/8位

要求

AD574

模拟电压输入0-4.999

0—5V

符合

转换器误差小于0.03%

1/4096=0.024%

符合

单片机接口

与AT89S52吻合

符合

取0—5V数据输出格式:

12位电源电压:

5V

 

2.2.4键盘处理部分方案论证

由于电子秤需要设置单价(十个数字键),还具有确认、删除等功能,总共需设置17个键(包括一个复位键)。

键盘的扩展有使用以下方案:

采用矩阵式键盘:

矩阵式键盘的特点是把检测线分成两组,一组为行线,一组列线,按键放在行线和列线的交叉点上。

图2.6给出了一个4×4的矩阵键盘结构的键盘接口电路,图中的每一个按键都通过不同的行线和列线与主机相连这。

4×4矩阵式键盘共可以安装16个键,但只需要8条测试线。

当键盘的数量大于8时,一般采用矩阵式键盘。

图2.4矩阵式键盘

结合本设计的实际要求,12个按键使用3×4矩阵式键盘,另外一个复位键使用独立式按键实现。

3*4矩阵键盘

 

2.3显示电路部分的选择

数据显示是电子秤的一项重要功能,是人机交换的主要组成部分,它可以将测量电路测得的数据经过微处理器处理后直观的显示出来。

数据显示部分可以有以下两种方案供选择。

LCD液晶显示器是一种极低功耗显示器,从电子表到计算器,从袖珍时仪表到便携式微型计算机以及一些文字处理机都广泛利用了液晶显示器。

1602采用标准的16脚接口,其中:

 第1脚:

VSS为电源地

 第2脚:

VDD接5V电源正极

 第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

 第4脚:

RS为寄存器选择,高电平1选择数据寄存器、低电平0时选择指令寄存器。

 第5脚:

RW为读写信号线,高电平

(1)时进行读操作,低电平(0)时进行写操作。

 第6脚:

E(或EN)端为使能(enable)端。

 第7~14脚:

D0~D7为8位双向数据端。

 第15~16脚:

背光灯电源。

15脚背光正极,16脚背光负极。

2.4超量程报警部分选择

智能仪器一般都具有报警和通讯功能,报警主要用于系统运行出错、当测量的数据超过仪表量程或者是超过用户设置的上下限时为提醒用户而设置。

在本系统中,设置报警的目的就是在超出电子秤测量范围时,发出声光报警信号,提示用户,防止损坏仪器。

超限报警电路是由单片机的I/O口来控制的,当称重物体重量超过系统设计所允许的重量时,通过程序使单片机的I/O值为高电平,从而三极管导通,使蜂鸣器SPEAKER发出报警声,同时使报警灯D1发光。

第三章硬件电路设计

3.1AT89S52的最小系统电路

3.1.1单片机芯片AT89S52介绍

AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

其芯片引脚图如上图所示。

图3.2AT89S52引脚图

3.1.2.单片机管脚说明

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

3.1.3AT89S52的最小系统电路构成

AT89S52单片机的最小系统由时钟电路、复位电路、电源电路及单片机构成。

单片机的时钟信号用来提供单片机片内各种操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。

单片机的时钟信号通常用两种电路形式得到:

内部振荡方式和外部振荡方式。

在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。

由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。

当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。

如果RST持续为高电平,单片机就处于循环复位状态。

根据应用的要求,复位操作通常有两种基本形式:

上电复位和上电或开关复位。

上电复位要求接通电源后,自动实现复位操作。

上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。

单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。

系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。

51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。

3.2电源电路设计

根据设计需要,本系统中需要设计两种不同级别的电源,即传感器需要+10V的电源,而系统其他芯片使用的是+5V电源。

考虑本次设计的实际要求,使系统稳定工作,提高产品的性价比,电源电路的设计决定采用如下方案:

6V转5V器件

 输出电压固定的低压差三端稳压器;输出电压5V;输出电流1A;输出电流1A时,最小输入输出电压差小于0.8V;最大输入电压26V;工作温度-40~+125℃;内含静态电流降低电路、电流限制、过热保护、电池反接和反插入保护电路。

LM2940引脚图LM2940典型应用

由图可见,2940的电路接发极其简单。

上图为输入电压低于正常值时,输入电压与输出电压间的关系(输出电流均保持在1A时)

5V转10V器件

名称:

(0-5V/0-10V)直流电压信号隔离(V/V)放大器:

ISO-U-P-O

●低成本,精度等级:

0.1级 0.2级 0.5级

●输入:

0-5V/0-10V等(阻抗≥1MΩ)标准电压信号

●输出:

0-10mA/0-20mA/4-20mA隔离变换的电流信号

0-5V/0-10V/1-5V等隔离变换的的电压信号

●信号输入/输出/辅助电源:

隔离电压3000VDC三隔离

●全量程内很高的线性度(非线性度<0.2%)

●小体积12Pin SIP, 符合UL94-0标准阻燃封装

●工业级宽温度范围:

-40~+85C

 

3.3数据采集部分电路设计

数据采集部分电路包括传感器输出信号放大电路、A/D转换器与单片机接口电路。

3.3.1传感器以及放大电路设计

INA128P构成的放大器及滤波电路如图3-2-2所示:

通过调节Rg的阻值来改变放大倍数,使得输出电压在A/D转换的基准电压要求范围之内。

微弱信号Vi1和Vi2被分别放大后从INA128的第6脚输出。

根据要求,A/D转换器的输入电压变化范围是0V~4.999V,传感器的输出电压信号在0~10mv,

因此取放大器的放大倍数500。

因此代入公式

3.3.2A/D转换器设计

AD574是美国AnalogDevice公司生产的12位单片A/D转换器。

它采用逐次逼近型的A/D转换器,最大转换时间为25us,转换精度为0.05%,所以适合于高精度的快速转换采样系统。

芯片内部包含微处理器借口逻辑(有三态输出缓冲器),故可直接与各种类型的8位或者16位的微处理器连接,而无需附加逻辑接口电路,切能与CMOS及TTL电路兼容。

AD574采用28脚双列直插标准封装,其引脚图如下:

图3.5AD574管脚图

我们采用单极性接法,电路接线图如下图3-4所示:

图3.6AD574与AT89S52的接线图

根据芯片管脚的原理,无论启动、转换还是结果输出,都要保证CE端为高电平,所以可以将单片机的/RD引脚和/WR端通过与非门与AD574的CE端连接起来。

转换结果分高8位、低4位与P0口相连,分两次读入,所以12/-8端接地。

同时,为了使CS、A0、R/-C在读取转换结果时保持相应的电平,可以将来自单片机的控制信号经74LS373锁存后再接入。

CPU可采用中断、查询或者程序延时等方式读取AD574的转换结果,本设计采用中断方式,则将转换结束状态STS端接到P3.2(外部中断/INT0)。

其工作过程如下:

A.当单片机执行对外部数据存储器的写指令,并使CE=1,/CS=0,R/-C=0,A0时,

进行12位A/D转换启动。

B.CPU等待STS状态信号送P3.2口,当STS由高电平变为低电平时,就表示转换结束。

转换结束后,单片机通过分两次读外部数据存储器操作,读取12位的转换结果数据。

C.当CE=1,/CS=0,R/-C=1,A0=0时,读取高8位;当CE=1,/CS=0,R/-C=1,A0=1时,读取低4位。

3.3.3测量算法

A/D转换结果D与被测量x存在以下关系:

(3-9)

式中:

S——传感器及其测量电路的灵敏度(即被测量X转换成电压U的转换系数)

K——放大器的放大倍数

——A/D转换器满量程输入电压

——A/D转换器满量程输出数字

而被测量X总是以其测量数字N和测量单位x1表示

(3-10)

将式(3-10)代入(3-9)得

(3-11)

由上式可见只要满足以下条件

(3-12)

就可以使A/D转换结果D与被测量x的数值N相等,即D=N,在这种情况下将A/D转换结果作为被测量的数值传送到显示器显示出来。

将S=5mV/Kg,K=500,U=5V,DFS=4096,X=1/2048代入

 

3.4显示电路与AT89S52单片机接口电路设计

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。

以下是1602的16进制ASCII码表地址:

读的时候,先读左边那列,再读上面那行,如:

感叹号!

的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。

3.5键盘电路与AT89S52单片机接口电路设计

矩阵式键盘的结构与工作原理:

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。

在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。

这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。

由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

矩阵式键盘的按键识别方法:

确定矩阵式键盘上何键被按下介绍一种“行扫描法”。

行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。

判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。

只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。

若所有列线均为高电平,则键盘中无键按下。

判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。

其方法是:

依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。

在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。

若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

在本系统中键盘采用矩阵式键盘并采用中断工作方式。

键盘为3X4键盘,包括0、1、2、3、4、5、6、7、8、9、十个数字及小数点和清除键。

采用中断工作方式提高了CPU的利用效率,没键按下时没有中断请求,有键按下时,向CPU提出中断请求,CPU响应后执行中断服务程序,在中断程序中才对键盘进行扫描。

下图就是键盘电路与AT89S52单片机接口电路图。

图3.8键盘电路与AT89S52单片机接口电路图

3.6报警电路的设计

图3.9报警电路图

当电路检测到称重的物体超过仪器的测量限制时,将产生一个信号给报警电路。

使报警电路报警从而提醒工作人员注意,超限报警电路如图3.9所示。

它是有89S52的P2.6口来控制的,当超过设置的重量时(5Kg),通过程序使P2.6口值为高电平,从而使三极管导通,报警电路接通,使蜂鸣器SPEAKER发出报警声,同时使报警灯LED发光。

由于持续的声音不能够引起人们的关注,所以本系统的报警电路采用间断的声音和频闪的灯光来实现。

这一任务的实现主要靠程序来完成,在此不再赘述。

 

第四章系统软件设计

4.1主程序设计

图4.1系统主程序流程图

系统上电后,初始化程序将RAM的30H~5FH内存单元清零,P2.6引脚置成低电平,防止误报警。

主程序模块主要完成编程芯片的初始化及按需要调用各模块(子程序),在系统初始化过程中,将系统设置成5Kg量程,并写5Kg量程标志。

设计流程图如图4.1所示。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1