文档库 最新最全的文档下载
当前位置:文档库 › 基于单片机的电子秤的设计与实现(毕业论文)

基于单片机的电子秤的设计与实现(毕业论文)

第一章绪论 (1)

1.1研究目的和意义 (1)

1.2电子称重系统的应用领域 (1)

1.3主要工作以及论文结构 (1)

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

2.1控制器部分 (3)

2.2数据采集部分 (4)

2.2.1 传感器的选择 (4)

2.2.2放大电路选择 (6)

2.2.3 A/D转换器的选择 (7)

2.2.4键盘处理部分方案论证 (8)

2.3显示电路部分的选择 (9)

2.4超量程报警部分选择 (9)

2.4.1 电源模块方案选型 (9)

第三章硬件电路设计 (10)

3.1AT89S52的最小系统电路 (10)

3.1.1单片机芯片AT89S52介绍 (10)

3.1.3 AT89S52的最小系统电路构成 (11)

3.2电源电路设计 (12)

3.3数据采集部分电路设计 (12)

3.6.1LED结构与原理 (14)

3.6.2动态显示LED显示器接口 (14)

3.4键盘电路与AT89S52单片机接口电路设计 (16)

键盘电路与AT89C51的接口电路设计 (16)

3.5报警电路的设计 (17)

第四章系统软件设计 (18)

4.1主程序设计 (18)

4.2子程序设计 (19)

4.2.1 A/D转换启动及数据读取程序设计 (19)

4.2.2显示子程序设计 (20)

4.2.3 键盘输入控制程序的设计 (20)

4.2.4报警子程序的设计 (21)

第五章总结 (22)

参考文献 (23)

附录1系统总图 (24)

第一章绪论

1.1 研究目的和意义

传统的机械秤有很多缺点,比如精度不高,结构复杂,易老化,成本高等。随着社会的发展,市场对秤的要求的越来越高,尤其是人体秤、厨房秤等各类便携式小型秤。电子秤与传统的机械秤相比有许多优越性,它用压力传感器取代机械秤的弹簧大大减小了秤的体积和制造难度,以LCD 或LED显示屏取代传统的刻度盘使外形更加美观,由于内部集成了单片机以及软件系统,电子秤还拥有传统机械秤无法比拟的智能性。他可以完成过载报警,总价计算,数据通信等众多功能。

目前市场上使用的称量工具,或者结构复杂,或者运行不可靠,且成本高,而且整体水平不高,部分小型企业质量差且技术薄弱,设备不全,缺乏产品的开发能力,产品质量在低水平徘徊。因此,有针对性的开发出一套具有实用价值的电子秤系统,从技术上克服上述诸多缺点,改善电子秤应用中的不足之处,具有现实意义。

1.2 电子称重系统的应用领域

电子秤是电子衡器中的一种,衡器是国家法定计量器具,是国计民生、国防建设、科学研究、内外贸易不可缺少的计量设备,衡器产品技术水平的高低,将直接影响各行各业的现代化水平和社会经济效益的提高。电子秤的应用领域主要分为工业计量和民用消费类。在工业计量应用领域有电子天平,珠宝秤,市场计价秤等;而民用秤主要有厨房秤,人体秤,便携式口袋秤等。工业计量应用对精度要求较高,而民用消费类的应用对精度的要求不高,但对秤的外观,智能性,便携性却有很高的要求。

1.3主要工作以及论文结构

本课题的主要设计思路是:利用压力传感器采集因压力变化产生的电压信号,经过电压放大电路放大,然后再经过模数转换器转换为数字信号,最后把数字信号送入单片机。单片机经过相应的处理后,得出当前所称物品的重量及总额,然后再显示出来。此外,还可通过键盘设定所称物品的价格。

在设计期间,本人努力查阅相关资料,对称重的基本原理以及各软件、硬件模块做了认真的分析、研究。根据性能成本考虑,在以下几方面做了仔细的分析研究,主要有:系统模块的划分、A/D精度的考虑、单片机与外围模块的接口电路以及电子秤应用程序的实现等。

论文的结构如下:

第二章叙述了系统的方案论证以及硬件设备的选型。

第三章详细叙述了硬件电路的设计过程,主要是各个模块的具体设计过程,以及各部分性能指标的要求和实现。

第四章叙述了该设计软件部分的设计思路,主要是主程序和各个子程序的详细设计方案。

第五章叙述了该设计仿真和调试结果。

第六章论文工作的总结。

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

按照本设计功能的要求,本设计大致可分为五个模块:数据采集模块、信号放大模块、模数转换模块、单片机控制模块、人机交换模块。(其中人机交换模块中包括:声光报警、LCD显示、键盘输入)系统设计总体方案框图如图2-1所示。

图2-1设计思路框图

测量部分是利用称重传感器检测压力信号,得到微弱的电信号(本设计为电压信号),而后经处理电路(如滤波电路,差动放大电路,)处理后,送A/D转换器,将模拟量转化为数字量输出。控制器部分接受来自A/D转换器输出的数字信号,经过复杂的运算,将数字信号转换为物体的实际重量信号,并将其存储到存储单元中。控制器还可以通过对扩展I/O的控制,对键盘进行扫描,而后通过键盘散转程序,对整个系统进行控制。数据显示部分根据需要实现显示功能。

2.1 控制器部分

本设计由于要求必须使用单片机作为系统的主控制器,而且以单片机为主控制器的设计,可以容易地将计算机技术和测量控制技术结合在一起,组成新型的只需要改变软件程序就可以更新换代的“智能化测量控制系统”。这种新型的智能仪表在测量过程自动化、测量结果的数据处理以及功能的多样化方面,都取得了巨大的进展。再则由于系统没有其它高标

准的要求,根据总体方案设计的分析,设计这样一个简单的的系统,可以选用带EPROM的单片机,由于应用程序不大,应用程序直接存储在片内,不用在外部扩展存储器,这样电路也可简化。在这里选用ATMEL生产的AT89SXX系列单片机。第一,片内存储器采用闪速存储器,使程序写入更加方便;第二,提供了更小尺寸的芯片,使整个硬件电路体积更小。此外价格低廉、性能比较稳定的MCPU,具有8K×8ROM、256×8RA M、3个16位定时计数器、4个8位I/O接口。这些配置能够很好地实现本仪器的测量和控制要求。

最后我们最终选择了AT89S52这个比较常用的单片机来实现系统的功能要求。AT89S52内部带有8KB的程序存储器,基本上已经能够满足我们的需要。

2.2 数据采集部分

电子秤的数据采集部分主要包括称重传感器、信号放大电路和A/D转换电路,因此对于这部分的论证主要分三方面。

2.2.1 传感器的选择

在设计中,传感器是一个十分重要的元件,因此对传感器的选择也显的特别的重要,不仅要注意其量程和参数,还有考虑到与其相配置的各种电路的设计的难易程度和设计性价比等等.传感器量程的选择可依据秤的最大称量值、选用传感器的个数、秤体的自重、可能产生的最大偏载及动载等因素综合评价来确定。一般来说,传感器的量程越接近分配到每个传感器的载荷,其称量的准确度就越高。但在实际使用时,由于加在传感器上的载荷除被称物体外,还存在秤体自重、皮重、偏载及振动冲击等载荷,因此选用传感器量程时,要考虑诸多方面的因素,保证传感器的安全和寿命。传感器量程的计算公式是在充分考虑到影响秤体的各个因素后,经过大量的实验而确定的。

为保证电子秤称量结果的准确度,克服传感器在低量程段线性度差的缺点。在实际工作中,要求称重传感器的有效量程在20%~80%之间,线性好,精度高。重量误差应控制在±0.01Kg,又考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以我们确定传感器的额定载荷为5Kg,允许过载为150%F.S,精度为0.05%,最大量程时误差 0.01kg。可以满足本系统的精度要求.

传感器的稳定性有定量指标,在超过使用期后,在使用前应重新进行标定,以确定传感器的性能是否发生变化。在某些要求传感器能长期使用而又不能轻易更换或标定的场合,所选用的传感器稳定性要求更严格,要能经受住长时间的考验。

使用特别注意:传感器属于精密部件,剧烈振动、自由落体、碰撞、过载、过压等等,都非常容易造成传感器永久损坏或者影响精度和线性。传感器是测量机构最重要的部件,本次设计采用电阻应变式压力传感器。

电阻应变式压力传感器主要由弹性体、电阻应变片电缆线等组成,内部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,电阻应变片(转换元件)受到拉伸或压缩应变片变形后,它的阻值将发生变化(增大或减小)从而使电桥失去平衡,产生相应的差动信号,供后续电路测量和处理。

综合考虑, 本设计要实现的电子秤的是绝对压力值,同时为了简化电路,提高稳定性和抗干扰能力,要求使用具有温度补偿能力的电阻应变式压力传感器。本设计选用CZAF-600压力传感器,其最大量程为50 Kg。CZAF-6000压力传感器的接线图如下:

图2-1 压力传感器引出线接线图

接线方式:红 E +, 黑 E -, 绿 S +,白 S -

量程: 1,2,3,,10,20, 30, 50, 60, 100, 150, 200, 300, 350, 500KG

适用于电子厨房秤,计价秤,平台秤等小台面电子秤。

外型尺寸: 80x12.5x12.7,130x22x30,150x40x35(mm) 安装螺纹孔: 8-M6深25mm

技术参数参照表:

综合误差: 0.02%F.S 绝缘电阻: ≥5000MΩ(100VDC)

灵敏度: 2±0.1mV/V激励电压: 9VDC~12VDC

非线性: 0.02%F.S温度补偿范围: -10℃~+50℃

滞后: 0.02%F.S使用温度范围: -20℃~+60℃

重要性: 0.02%F.S零点温度影响: 0.03%F.S

蠕变: 0.02%F.S灵敏度温度影响: 0.02%F.S

零点输出: ±1%F.S安全过载范围: 120%

输入阻抗: 1050,400±1Ω极限过载范围: 150%

输出阻抗: 1000,350±1Ω防护等级: IP67

2.2.2放大电路选择

称重传感器输出电压振幅范围0~2mV。而A/D转换的输入电压要求为0~2V,因此放大环节要有1000倍左右的增益。对放大环节的要求是增益可调的(700~1500倍),根据本设计的实际情况增益设为1000倍即可,零点和增益的温度漂移和时间漂移极小。按照输入电压2mV,分辨率20000码的情况,漂移要小于1μV。由于其具有极低的失调电压的温漂和时漂(±1μV),从而保证了放大环节对零点漂移的要求。残余的一点漂移依靠软件的自动零点跟踪来彻底解决。稳定的增益量可以保证其负反馈回路的稳定性,并且最好选用高阻值的电阻和多圈电位器。

由2.2.1中称重传感器的称量原理可知,电阻应变片组成的传感器是

把机械应变转换成ΔR/R,而应变电阻的变化一般都很微小,例如传感器的应变片电阻值120Ω,灵敏系数 K=2,弹性体在额定载荷作用下产生的应变为1000ε,应变电阻相对变化量为:

ΔR/R = K×ε= 2×1000×10-6 =0.002 (2-1)由式2-1可以看出电阻变化只有0.24Ω,其电阻变化率只有0.2%。这样小的电阻变化既难以直接精确测量,又不便直接处理。因此,必须采用转换电路,把应变计的ΔR/R变化转换成电压或电流变化,但是这个电压或电流信号很小,需要增加增益放大电路来把这个电压或电流信号转换成可以被A/D转换芯片接收的信号。在前级处理电路部分,基于电子秤的要求精确度不是很高,选择由普通放大器所组成的差动放大器作为本设计的信号放大电路;

差动放大器具有高输入阻抗,增益高的特点,可以利用普通运放(如LM324)做成一个差动放大器。其设计电路如下图:

图2-2利用普通运放设计的差动放大器

2.2.3 A/D转换器的选择

A/D转换部分是整个设计的关键,这一部分处理不好,会使得整个设计毫无意义。目前,世界上有多种类型的ADC,有传统的并行、逐次逼近型、积分型ADC,也有近年来新发展起来的∑-Δ型和流水线型ADC,多种类

型的ADC各有其优缺点并能满足不同的具体应用要求。

根据系统的精度要求以及综合的分析其优点和缺点,本设计采用了12位A/D转换器ADC0832。ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。ADC0832的实物图如下图2-4所示:

图2-4 ADC0832实物

2.2.4键盘处理部分方案论证

由于电子秤需要设置单价(十个数字键,一个小数点),总共需设置15个键(包括一个清零键、去皮键、单价键和一个确认键)。

本设计采用矩阵式键盘:矩阵式键盘的特点是把检测线分成两组,一组为行线,一组列线,按键放在行线和列线的交叉点上。图2-5给出了一个4×4的矩阵键盘结构的键盘接口电路,图中的每一个按键都通过不同的行线和列线与主机相连这。4×4矩阵式键盘共可以安装16个键,但只需要8条测试线。当键盘的数量大于8时,一般都采用矩阵式键盘。结合本设计的实际要求,采用4×4矩阵式键盘。

图2-5 矩阵式键盘

2.3显示电路部分的选择

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

2.4超量程报警部分选择

智能仪器一般都具有报警功能,报警主要用于系统运行出错、当测量的数据超过仪表量程或者是超过用户设置的上下限时为提醒用户而设置。在本系统中,设置报警的目的就是在超出电子秤测量范围以及总价不能正常显示时,发出声光报警信号,提示用户,防止损坏仪器。

超限报警电路是由单片机的I/O口来控制的,当称重物体重量超过系统设计所允许的重量,通过程序使单片机的I/O值为低电平,从而三极管导通,使蜂鸣器SPEAKER发出报警声,同时使连接报警灯的I/O置为低电平,则发光二极管导通,二极管发光。在设计过程中一定得注意发光二极管的极性,否则,发光二级管是不会正常发光。

2.4.1 电源模块方案选型

为了使称重仪的供电方便,这里把电源设计成用220V的交流电经过变压器后输出±9的电压,经整流滤波电路后,通过LM7805和LM7905进行DC/DC变换得到±5V供压力传感器器和系统的其他芯片使用

第三章 硬件电路设计

根据设计要求与设计思路,此电路由一块AT89S52单片机、复位电路、时钟电路、12864LCD 显示器、蜂鸣器及LED 灯报警电路、CZAF-602压力传感电路。硬件设计框图如下: 复位电路压力传感器电路

声光报警电路LCD 显示器接口

时钟电路AT89S52

单片机

图3-1硬件电路设计框图

在本系统中用于称量的主要器件是称重传感器(一次变换元件),称

重传感器在受到压力或拉力时会产生电信号,受到不同压力或拉力是产生的电信号也随着变化,而且力与电信号的关系一般为线性关系。由于传感器输出的为模拟信号,所以需要对其进行A/D 转换为数字信号以便单片机接收,因此电路中需要用进行A/D 转换。又由于本设计采用的是CZAF-602电阻应变式压力传感器,其输出电压为2mv 左右不能够使单片机和AD 转换器正常工作,因此需要设计放大电路来使ADC0832的输入电压达到2v 左右,放大电路的增益应为1000.单片机根据称重传感器输出的电信号计算出物体的重量。

在本系统中,硬件电路的构成主要有以下几部分: AT89S52的最小

系统构成、数据采集、人-机交换电路等。

3.1 AT89S52的最小系统电路

3.1.1单片机芯片AT89S52介绍

AT89S52是一种带8K 字节FLASH 存储器(FPEROM —Flash Programmable and Erasable Read Only Memory )的低电压、高性能CMOS

8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2 个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

3.1.3 AT89S52的最小系统电路构成

AT89S52单片机的最小系统由时钟电路、复位电路、电源电路及单片机构成。单片机的时钟信号用来提供单片机片内各种操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。

单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。

当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。单片机的复位操作使单片机进入

初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。

3.2电源电路设计

本时钟电源采用整流滤波电路和三端稳压电路LM7805和LM7905。LM7805CT芯片输入端电压约为9V,输出端电压为5V,LM7905芯片输入端电压约为-9V,输出端电压为-5V,输入端和输出端的压差绝对值都应大于2.5V ,否则会失去稳压能力。同时考虑到功耗问题,此压差又不易太大,太大则增加7805与7905本身的功率消耗,增加芯片的升温,不利于安全。根据变压器副边电压与经过滤波后输出电压关系可知,副边电压约为±9V,据此确定变压器原副边匝数比这样即可得到系统所需要的±5V电源,电源设计图如图3-2所示。

图3-2 电源设计图

3.3数据采集部分电路设计

数据采集部分电路包括传感器输出信号电路、A/D转换器与单片机接口电路。我们采用CZAF-602压力传感器,数据采集模块与单片机的接口连接如图3-3所示。

图3-3数据采集模块与单片机接口电路

ADC0832 是美国国家半导体公司生产的一种8位分辨率、双通道A/D 转换芯片、双通道A/D转换、输入输出电平与TTL/CMOS相兼容、5V电源供电时输入电压在0~5V之间、工作频率为250KHZ,转换时间为32μS、一般功耗仅为15mW、 8P、14P—DIP(双列直插)、PICC多种封装、商用级芯片温宽为0°C to +70°C?,工业级芯片温宽为40°C to +85°C;。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其

目前已经有很高的普及率。ADC0832的管脚如图3-4所示:

图3-4 ADC0832管脚图

芯片接口说明:

CS 片选使能,低电平芯片使能。

CH0 模拟输入通道0,或作为IN+/-使用。

CH1 模拟输入通道1,或作为IN+/-使用。

GND 芯片参考0 电位(地)。

DI 数据信号输入,选择通道控制。

DO 数据信号输出,转换数据输出。

CLK 芯片时钟输入。

Vcc/REF 电源输入及参考电压输入(复用)。

出。

3.6.1 LED 结构与原理

发光二极管显示器是单片机应用产品中常用的廉价输出设备。它是由若干个发光二极管组成显示的字段。当二极管导通时相应的一个点或一个笔划发光,就能显示出各种字符,常用的八段 LED显示器的结构如图 3-11 所示。

图3-11八段数码显示图3-12共阴极接法

图3-13 共阳极接法

LED 数码显示器有两种结构:将所有发光二极管的阳极连在一起,称为共阳接法如图3-13所示,公共端 comm 接高电平,当某个字段的阴极接低电平时,对应的字段就点亮;而将有发光二极管的阴极连在一起如图3-12所示,称为共阴接法,公共端 comm 接低电平,当某个字段的阳极接高电平时,对应的字段就点亮。每段所需电流一般为 5~15mA,实际电流视具体的 LED 数码显示器而定。

3.6.2 动态显示 LED 显示器接口

所谓的动态显示就是一位一位地轮流点亮各位显示器,对每一位显示器而言,每隔一段时间点亮一次。显示器的亮度跟导通的电流有关,也和点亮的时间与间隔的比例有关。

显示部分采用4个八段共阴数码管,采用动态显示,利用驱动器74LS244驱动数码管显示数据,达到控制八段码的目的。可以用图3-14来形象说明动态显示原理。段驱动器和位驱动器同时发出有效信号才能点亮对应段,否则就呈现不亮状态。由单片机来控制点亮的时间,第一位点亮后依次点亮后面各位。

图3-15为设计选用的显示部分电路图驱动器74LS244控制4位数码管的段选,反向驱动器74LS04控制位选,最后由单片机发出采集到的信号指令来决定各个数码管的明灭状态和时间长短。DS1-DS4四位LED分别显示的是称重结果的千位、百位、十位、个位,单位为克,显示精度为1/5000,符合系统设计的要求。

图3-14 多位LED动态显示电路

图3-15 系统显示部分接线图

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

键盘电路与AT89C51的接口电路设计

在单片机应用系统中,为了控制其运行状态,需要向系统输入一些命令或数据,因此应用系统中应设有键盘,这些键包括数字键,功能键和组合控制键等。这些按键或键盘都是以开关状态来设置控制功能或输入数据的。但是这些开关绝不仅仅是简单的电平输入。

在本系统中键盘采用矩阵式键盘并采用中断扫描工作方式。键盘为4 X 4键盘,包括0、1、2、3、4、5、6、7、8、9、十个数字及确认,功能,清零,存储和删除键。采用中断工作方式提高了CPU的利用效率,没键按下时没有中断请求,有键按下时,向CPU提出中断请求,CPU响应后执行中断服务程序,在中断程序中才对键盘进行扫描。

矩阵式键盘的结构与工作原理:在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于

键盘多出了一倍,而且线数越多,区别越明显。

基于单片机的电子秤的设计与实现 1

S1

2S23

S34S45

S5

6S67S78S89

S9

10S1011S11删除S12

功能

S13

清零S14存储S15确认S16

P1.0

P1.1

P1.2P1.3

P1.4

P1.5

P1.6

P1.789C51

图3.6 单片机与键盘接口电路

3.5报警电路的设计

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

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

图3-7报警电路图

它是由AT89S52的P3.0口来控制的,当超过设置的重量时(4.5Kg

时,通过程序使P3.0口置为低电平,从而使三极管导通,报警电路接通,使蜂鸣器SPEAKER 发出报警声,同时使报警灯LED 发光。由于持续的声音不能够引起人们的关注,所以本系统的报警电路采用间断的声音和频闪的灯光来实现。这一任务的实现主要靠软件来实现,在此不再赘述。

第四章系统软件设计

程序设计是一件复杂的工作,为了把复杂的工作条理化,就要有相应的步骤和方法。其步骤可概括为以下三点:

⑴分析系统控制要求,确定算法:对复杂的问题进行具体的分析,找出合理的计算方法及适当的数据结构,从而确定编写程序的步骤。这是能否编制出高质量程序的关键。

⑵根据算法画流程图:画程序框图可以把算法和解题步骤逐步具体化,以减少出错的可能性。

⑶编写程序:根据程序框图所表示的算法和步骤,选用适当的指令排列起来,构成一个有机的整体,即程序。

程序数据的一种理想方法是结构化程序设计方法。结构化程序设计是对利用到的控制结构类程序做适当的限制,特别是限制转向语句(或指令)的使用,从而控制了程序的复杂性,力求程序的上、下文顺序与执行流程保持一致性,使程序易读易理解,减少逻辑错误和易于修改、调试。根据系统的控制任务,本系统的软件设计主要由主程序、初始化程序、显示子程序、数据采集子程序和延时程序等组成。

4.1 主程序设计

软件主要三个方面:一是初始化系统;二是按键检测;三是数据采集、数据处理并进行显示。这三个方面的操作分别在主程序中来进行。程序采用模块化的结构,这样程序结构清楚,易编程和易读性好,也便于调试和修改。系统上电后,初始化程序将 RAM 的30H~5FH内存单元清零,P3.0引脚置成高电平,防止误报警。

主程序模块主要完成编程芯片的初始化及按需要调用各模块(子程序),程序设计流程图如图4-1所示。

开始

LCD 初始化

重量数据显示

总价计算

LCD 清屏

报警

AD 转换

重量数据处理

是否超过上限

按键判断

Y N Y N

图4-1 系统主程序流程图

4.2 子程序设计

系统子程序主要包括A/D 转换启动及数据读取程序设计、显示程序设

计、键盘输入控制程序设计以及报警子程序的设计等。

4.2.1 A/D 转换启动及数据读取程序设计

A/D 转换子程序主要是指在系统开始运行时,把称重传感器传递过来

的模拟信号转换成数字信号并传递到单片机所涉及到的程序设计。设计流程图如图4-2所示。

相关文档
相关文档 最新文档