电子秤 - 图文

更新时间:2024-05-31 16:00:01 阅读量: 综合文库 文档下载

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

课程设计任务书

学 院: 题 目: 起止时间: 2015年10月10日至2015年11月30日 学 生 姓 名: 专 业 班 级: 指 导 教 师: 教研室主 任: 院 长:

2015年10月10日

一. 课程设计内容 课程设计内容如下: 注意:课程设计内容按照自己选择的设计题目和设计内容填写 示例4、超声波测距器的设计 1. 功能要求 2. 方案论证 3. 系统硬件电路的设计 3.1 单片机系统及显示电路 3.2超声波发射电路 3.3 超声波检测接收电路 4. 系统程序的设计 4.1超声波测距器的算法设计 4.2主程序流程图 4.3超声波发生子程序和超声波接收中断程序 5. 调试及性能分析 5.1调试 5.2性能指标 6. 源程序清单 二. 课程设计要求 1. 课程设计报告写作请参考“课程设计报告写作的内容、要求与应注意的一些问题”。所有的文档和表格必须采用Word形式,格式按照“课程设计报告写作的内容、要求与应注意的一些问题”要求。 2. 设计报告中的电原理图,PCB图、元器件布局图必须采用自己画的图。不能够抄袭别人的应用电路、程序、PCB图,必须自己完成,抄袭者和被抄袭者都不及格。 2

3. 设计资料中的有关的公式可以直接采用。设计资料中有关的曲线图可以直接采用,成文时根据需要选用(可放大300倍后裁剪到Word文档中),以图文清晰为标准。 4. 英文资料中的图可以直接采用(可放大300倍后裁剪到Word文档中),图中的英文可以采用英文(中文)方式翻译在图下或者文章中。 5. 英文资料中的一些词,如果翻译拿不准,可以采用英文(中文)方式标注。 6. 课程设计报告需要写自己的收获和体会。不能够抄袭别人的收获和体会,雷同者不及格。 7. 每个人需要交文字稿和电子稿,采用2003Word(或者更高版本)文档形式。 三. 课程设计进度(时间)安排 课程设计进度(时间)安排如下: 1. 2015年10月10日—2015年10月15日 理解课程设计题目的设计要求,查阅相关资料; 2. 2015年10月16日—2015年11月15日 完成各部分电路设计及系统调试; 3. 2015年11月16日—2015年11月22日 完成课程设计初稿; 4. 2015年11月23日—2015年11月28日完成完整的课程设计报告; 5. 2015年11月29日—2015年11月30日课程设计作品答辩。 四. 参考文献 注意:补充自己在课程设计过程中选择的参考文献 (1) 黄智伟. 凌阳单片机课程设计指导.北京:北京航空航天大学出版社,2007 (2) 周航慈.单片机程序设计基础.北京:北京航空航天大学出版社,1997 (3) 求实科技.单片机典型模块设计实例导航.北京:人民邮电出版社,2004 (4) 余永权.89系列(MCS-51)Flash单片机原理及应用. 北京:电子工业出版社,2003 (5) 王幸之.单片机应用系统电磁干扰与抗干扰技术.北京:北京航空航天大学出版社,2006 (6) 黄智伟.全国大学生电子设计竞赛技能训练.北京:北京航空航天大学出版社,2007 (7) 黄智伟.印制电路板(PCB)设计技术与实践(第二版).北京:电子工业出版社,2012 指导老师: 2015年10月10日

3

摘 要:电子秤是将检测与转换技术、计算机技术、信息处理、数字技术等技术综合一体的现代新型称重仪器。它与我们日常生活紧密结合成为一种方便、快捷、称量精确的工具,广泛应用于商业、工厂生厂、集贸市场、超市、大型商场、及零售业等公共场所的信息显示和重量计算。

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

本系统针对电子称的自动称重、数据处理等进行了设计和制作。为了阐明用单片机是如何对采样数据进行处理,对数据的采集和转换、计算问题进行了研究,讨论了单片机控制系统中关键的计算问题。本文在给出智能电子称硬件设计的基础上,详细分析了电子称的软件控制方法。单片机控制的电子称结构简单,成本低廉,深受人们的喜爱,本文将对此进行详细讨论。

关键词:电子秤;应变式压力传感器;AT89C51;HX711

4

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. It is closely integrated with our daily lives into a convenient, fast, precision weighing instrument, widely used in commercial, plant health plant, country markets, supermarkets, shopping malls, and retail and other public places, information display and weight.

Intelligent Electronics said the key to SCM as the central control unit, through the weighing sensor analog-digital conversion unit, in the accompanied keyboard, display circuit and powerful software to component. Said not only accurate measurement of the electronic, fast and convenient, more importantly, automatic weighing, statistics show that by the majority of users. Intelligent Electronics said that as easy to carry, easy to use, the impact on people's lives more and more.

This system is known for the electronic automatic weighing and data processing of research. To illustrate how to use the MCU is sampling data processing, data acquisition and conversion, computational problems studied. Discuss the key SCM system calculation. This paper presented the hardware design of intelligent electronics that, based on detailed analysis of the electronic control, said the software. As the structure of microprocessor controlled electronics that simple, low cost and very popular, this will be discussed in detail

Keywords: electronic scale;AT89C51;HX711;Load sensor

5

6

目录

引言 .......................................................... 7

第1章 系统方案设计 ........................................... 4

1. 系统总体设计方案比较与论证 .............................................................. 4

第二章 系统硬件的设计 ................................................................................. 6 2.1 传感器 ....................................................................................................... 6 2.2 系统AD转换芯片选择 .......................................................................... 7 2.3 控制单片机的选型 ................................................................................... 8 2.4 显示模块 ................................................................................................. 10

第三章 系统程序的设计 ............................................................................... 12

3.1系统软件编程环境介绍 ...................................................................... 12 3.2系统主程序流程图 .............................................................................. 12

第四章 系统的制作、安装与调试 .............................. 13

第五章 总结与体会 ......................................................................................... 15

第六章 参考文献.............................................................................................20

第七章 附录......................................................................................................21

引 言

电子秤是将检测与转换技术、计算机技术、信息处理、数字技术等技术综合一体的现代新型称重仪器。它与我们日常生活紧密结合成为一种方便、快捷、称量精确的工具,广泛应用于商业、工厂生厂、集贸市场、超市、大型商场、及零售业等公共场所的信息显示和重量计算。

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

本系统针对电子称的自动称重、数据处理等进行了设计和制作。为了阐明用单片机是如何对采样数据进行处理,对数据的采集和转换、计算问题进行了研究,讨论了单片机控制系统中关键的计算问题。本文在给出智能电子称硬件设计的基础上,详细分析了电子称的软件控制方法。单片机控制的电子称结构简单,成本低廉,深受人们的喜爱,本文将对此进行详细讨论。

2

3

第1章 系统方案设计

1.

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

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

方案一 数码管显示:

结构简图如下:

图1.1 数码管显示方案

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

方案二 在前一种方案的基础上进行扩展,增加一键盘输入装置,增加外界对单片机内部的数据设定,使电子称实现称重计价的功能。

结构简图如下图所示:

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

此方案设计的电子秤,可以实现称物计价功能,但是局限于数码管的功能,在显示时只能显示单价、购物总额以及简单的货物代码等。在显示重量时,如果数码管没有足够的位数,那么称量物体重量的精度必受到限制,所以此方案需要较多的数码管

4

接入电路中。这样在处理输入输出接口时需要另行扩展足够多的I/O接口供数码管使用,比较麻烦。

方案三 前端信号处理时,选用放大、信号转换等措施,尤其在显示方面采用具有字符图文显示功能的LCD显示器。这种方案不仅加强了人机交换的能力,而且满足设计要求,可以显示购物清单、所称量的物体信息等相关内容。

结构简图如下图所示:

图1.3 LCD显示的方案

目前单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入单片机,由单片机对测量信号进行处理并根据相应的数据关系译码显示出被测物体的重量。单片机控制适合于功能比较简单的控制系统,而且其具有成本低,功耗低,体积小算术运算功能强,技术成熟等优点。但其缺点是外围电路比较复杂,编程复杂。使用这种方案会给系统设计带来一定的难度。

虽然三种方案中第三种设计方案的产品功能最为齐全,但是鉴于本学期其他课程也有课程设计,而且还有毕业设计相关事情和找工作带来的精力分散。所以综合考虑选择了第一钟设计方案。尽管方案功能简单,但与其他方案的区别只在于是否添加更多的外接模块,其核心设计思路是共通的,因此最终选择方案是选择了方案一。

5

第二章 系统硬件的设计

2. 硬件的方案设计与论证 2.1

传感器

传感器的定义:能感受规定的被测量,并按照一定规律转换成可用输出信号的器件或装置。通常传感器由敏感元件和转换元件组成。其中敏感元件指传感器中能直接感受被测量的部分,转换部分指传感器中能将敏感元件输出量转换为适于传输和测量的电信号部分。

方案一 压电传感器

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

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

方案二 电容式传感器

电容式传感器是将被测非电量的变化转换为电容变化的一种传感器。它有结构简单、灵敏度高、动态响应好、可实现非接触测量、具有平均效应等优点。电容传感器可用来检测压力、力、位移以及振动学非电参量。

电容传感器的基本工作原理可用最普通的平行极板电容器来说明。两块相互平行的金属极板,当不考虑其边缘效应(两个极板边缘处的电力线分布不均匀引起电容量的变化)时,其电容量为 式(2.1)中

d——两极板间的距离;

??AC?ro d (2.1)

A——两平行极板相互覆盖的有效面积;

?r——介质的相对介电常数;

?o——真空中介电常数。

若被测量的变化使式中d、A、?r三个参量中任一个发生变化,都会引起电容量的变化,通过测量电路就可转换为电量输出[4]。

6

虽然电容式传感器有结构简单和良好动态特性等诸多优点,但也有不利因素: (1)小功率、高阻抗。受几何尺寸限制,电容传感器的电容量都很小,一般仅几皮法至几十皮法。因C太小,故容抗XC=1/?C很大,为高阻抗元件,负载能力差;又因其视在功率P=uo?C ,C很小,则P也很小。故易受外界干扰,信号需经放大,并采取抗干扰措施。

(2)初始电容小,电缆电容、线路的杂散电路所构成的寄生电容影响很大。 方案三 电阻应变式传感器

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

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

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

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

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

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

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

无线数据HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同

7

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

图2-3 HX711管脚定义

HX711典型应用电路如图2-4所示。

图2-4 HX711典型应用电路

2.3

控制单片机的选型

选择单片机型号的出发点有以下几个方面: 1、市场货源

系统设计者只能在市场上能够提供的单片机中选择,特别是作为产品大

批量生产的应用系统,所选的单片机型号必须有稳定、充足的货源。

8

2、单片机性能

应根据系统的功能要求和各种单片机的性能,选择最容易实现系统技术指标的型号,而且能达到较高的性能价格比。单片机性能包括片内硬件资源、运行速度、可靠性、指令系统功能、体积和封装形式等方面。影响性能价格比的因素除单片机的性能价格外,还包括硬件和软件设计的容易程度、相应的工作量大小,以及开发工具的性能价格比。

3、研制周期

在研制任务重、时间紧的情况下,还要考虑所选的单片机型号是否熟悉,是否能马上着手进行系统的设计。与研制周期有关的另一个重要因素是开发工具,性能优良的开发工具能加快系统地研制进程。

在众多的51系列单片机中,要算 ATMEL 公司的AT89C51、AT89S51更实用,因他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为 ATMEL AT89xx 做的编程器均带有这些功能。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。再着,AT89C51、AT89S51目前的售价比8031还低,市场供应也很充足。 8051系列单片机的内部结构是各种逻辑单元及其之间的互连构成的。其主要由中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、串行接口、并行I/0接口、定时/计数器、中断系统等几大单元,以及数据总线、地址总线和控制总线组成。

AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[7]。

AT89C51单片机特点能与MCS-51 兼容,有 4K字节可编程闪烁存储器,寿命能够达到1000写/擦循环,数据可以保留时间长达10年,全静态工作:0Hz-24MHz,三级程序存储器锁定,128×8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,

9

片内振荡器和时钟电路。所以AT89C51符合本次设计的主控芯片。 2.4

显示模块

LED显示

LED就是light emitting diode ,发光二极管的英文缩写,简称LED。它是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。 LED显示器结构:

基本的半导体数码管是由七个条状发光二极管芯片排列而成的。可实现0~9的显示。其具体结构有“反射罩式”、“条形七段式”及“单片集成式多位数字式”等

LED显示器与显示方式:

LED显示块是由发光二极管显示字段的显示器件。通常使用的是七段LED。这种显示块有共阴极与共阳极两种。共阴极LED显示块的发光二极管阴极共地。当某个发光二极管的阳极为高电平时,发光二极管点亮;共阳极LED显示块的发光二极管阳极并接。

在设计中使用LED显示块构成N位LED显示器。N位LED显示器有N根位选线和8*N根段选线。根据显示方式不同,位选线与段选线的连接方法不同。段选线控制字符选择,位选线控制显示位的亮、暗。

LED显示器有静态显示与动态显示两种方式。我们使用的为动态显示方式。在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由响应的I/O口线控制。其中两片74LS244分别用于段信号和位信号的驱动,74LS273用于段信号的锁存,其锁存地址为7FFFH。

10

图2.8 LED数码管显示方式

11

第三章 系统程序的设计

3.1系统软件编程环境介绍

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

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

Keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 Keil C51 可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件,然后分别有C51 及A51 编辑器编译连接生成单片机可执行的二进制文件(.HEX),然后通过单片机的烧写软件将HEX 文件烧入单片机内。软件主要三个方面:一是初始化系统;二是按键检测;三是数据采集、数据处理并进行显示。这三个方面的操作分别在主程序中来进行。程序采用模块化的结构,这样程序结构清楚,易编程和易读性好,也便于调试和修改。

3.2系统主程序流程图

系统软件部分主程序流程图如图3-1所示。

12

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

第四章 系统的制作、安装与调试

电路板实物做完以后,接下来的工作就是调试。这是理论指导实践最重要的一步。调试工作需要耐心与恒心。所以在调试过程中必须保持冷静的头脑,较强的电路分析能力。一个系统的调试需要软硬件结合调试。在软硬件结合调试的过程中所遇到的问题:(1)电子电路的设计中对各种影响因素的考虑不够完全,比如在对过电压情况的处理中未作防范措施。

(2)系统设计不够优化,有待改善。

(3)没有扩展更多电路,如温度显示功能,通讯接口电路与上位机(PC机)进行通讯,上位机显示功能从而将大量的商品数据存于上位机,然后通过串口或并口通讯与电子称相连,达到远距离控制的目的。 (4)对各种实用芯片价格了解不够,选择上任有欠缺,如所选的称重传感器价格较贵。

13

14

第五章 总结与体会

本次课程设计为基于AT89C51单片机的简易电子秤,虽然功能简单但很实用。具有性能稳定,操作简单,显示直观,便于使用,价格低廉等优点。完成本设计任务过程中应用到了传感器技术,微机技术,数字电子技术等多门专业课知识。虽然基础功能简单,但在其基础上能够通过扩展外部接口使其功能丰富化,让其更具商业价值。 下面就本次课程设计过程谈谈心得体会:在完成本次设计过程中,对于其涉及到的知识有了进一步的掌握,对利用单片机进行控制系统的设计与开发及对系统的分析和问题的解决有了切身的体会和体会。学以致用,在这个过程中我增长了知识,积累了经验,提高了解决问题的能力。由于时间仓促,经验不足,理论知识方面的储备也不足以及条件的限制,本次课程设计仍然存在着一些问题。这让我认识到了自己个人技能有待提高以及理论知识的巩固和加强。

15

6.参考文献

[1].黄智伟. 凌阳单片机课程设计指导.北京:北京航空航天大学出版社,2007 {2}.周航慈.单片机程序设计基础.北京:北京航空航天大学出版社,1997 {3}.求实科技.单片机典型模块设计实例导航.北京:人民邮电出版社,2004

{4}.余永权.89系列(MCS-51)Flash单片机原理及应用. 北京:电子工业出版社,2003 {5}.王幸之.单片机应用系统电磁干扰与抗干扰技术.北京:北京航空航天大学出版社,2006 {6}.黄智伟.全国大学生电子设计竞赛技能训练.北京:北京航空航天大学出版社,2007 {7}.黄智伟.印制电路板(PCB)设计技术与实践(第二版).北京:电子工业出版社,2012 [8].于京《51系列单片机C程序设计与应用方案》[M] 中国电力出版社 2002 [9].李广弟 《单片机基础》[M],北京航空航天大学出版社(第三版),2007

16

7.附录

源程序清单:

(1) 头文件和一些宏定义

#include #include #include #include \#include \#include \//定义量程系数

#define RATIO 2114/1623

(2) 管脚、常量、变量定义

//定义标识

volatile bit FlagTest = 0;

//定时测试标志,每0.5秒置位,测完清0

volatile bit FlagKeyPress = 0; //有键按下标志,处理完毕清0 volatile bit FlagSetPrice = 0; //价格设置状态标志,设置好为1。

//管脚定义 sbit LedA = P2^2; sbit beep = P1^0; sbit alert = P1^1;

//显示用变量 int Counter;

uchar idata str1[6] = \int i, iTemp; //称重用变量

unsigned long idata FullScale; //满量程AD值/1000 unsigned long AdVal; //AD采样值 unsigned long weight; //重量值,单位g

unsigned long idata price; //单价,长整型值,单位为分 unsigned long idata money; //总价,长整型值,单位为分 //键盘处理变量 uchar keycode; uchar DotPos;

//小数点标志及位置

(4) 各子程序

//整型转字符串的函数,转换范围0--65536 void int2str(int x, char* str)

17

{

int i=1; int tmp=10; while(x/tmp!=0) { i++; tmp*=10; } tmp=x; str[i]='\\0'; while(i>1) {

str[--i]='0'+(tmp); tmp/=10; }

str[0]=tmp+'0'; }

//重新找回零点,每次测量前调用 void To_Zero() {

FullScale=ReadCount()/1000; price=0; }

//显示重量,单位kg,两位整数,三位小数void Display_Weight() {

unsigned int i,j;

display_GB2312_string(3,60,\ \ //weight单位是g

i = weight/1000; //得到整数部分 j = weight - i*1000;//得到小数部分 int2str(i,str1); if (i>=10) {

display_GB2312_string(3,60,str1); } else {

display_GB2312_string(3,68,str1);

18

}

display_GB2312_string(3,76,\ int2str(j,str1); if (j<10) else if (j<100) {

display_GB2312_string(3,84,\ display_GB2312_string(3,92,str1);

} else {

display_GB2312_string(3,84,str1); } }

//数据初始化 void Data_Init() {

price = 0; DotPos = 0; beep = 1; alert = 1; }

//管脚配置 void Port_Init() {

}

//定时器0初始化 void Timer0_Init() { ET0 = 1; //允许定时器0中断 TMOD = 1; //定时器工作方式选择 TL0 = 0x06;

TH0 = 0xf8; //定时器赋予初值 TR0 = 1; //启动定时器 }

//定时器0中断

void Timer0_ISR (void) interrupt 1 using 0

19

{

//每0.5秒钟刷新重量 TL0 = 0x06;

TH0 = 0xf8; //定时器赋予初值

Counter ++; if (Counter >= 200) {

FlagTest = 1;

Counter = 0;

} }

//===============main program===================// void main(void) {

Rom_CS=1; initial_lcd(); EA = 0; Data_Init(); Port_Init(); Timer0_Init(); //初始化完成,开中断 EA = 1; //背光 LedA = 1;

clear_screen(); //clear all dots

display_GB2312_string(1,1,\电子秤初始化....\ To_Zero();

display_GB2312_string(1,1,\电子秤初始化成功\ display_GB2312_string(3,1,\重量: g\

while(1) {

//每0.5秒称重一次

if (FlagTest==1) {

//称重,得到重量值weight,单位为g

AdVal=ReadCount(); weight=FullScale-AdVal/1000; if (weight>0x8000) weight=0; weight=10000*weight/FullScale;

20

weight=weight*RATIO; //如果超量程,则报警 if (weight >= 10000) {

beep = 0; alert = 0;

display_GB2312_string(3,60,\display_GB2312_string(7,44,\

}

//如果不超量程 else {

beep = 1; alert = 1;

//显示重量值

Display_Weight();

//清测试标志

FlagTest = 0;

} }

//获取按键

keycode = Getkeyboard(); //有效键值0-15

if ((keycode<16)&&(FlagKeyPress==0)) {

FlagKeyPress = 1; KeyPress(keycode); FlagKeyPress = 0;

} delay(20);

} }

21

实物图:

22

23

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

Top