基于单片机的语音播报电子秤设计_第1页
基于单片机的语音播报电子秤设计_第2页
基于单片机的语音播报电子秤设计_第3页
基于单片机的语音播报电子秤设计_第4页
基于单片机的语音播报电子秤设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业设计说明书(论文)第5页共39页1引言在生活中我们经常需要用秤来测量物体的重量,由于秤在我们日常生活中的应用十分广泛,我们对其的设计要求就需要操作方便、易于识别。随着计量技术和电子技术的发展,传统纯机械结构的杆秤、台秤、磅秤等称量装置逐步被淘汰,电子称量装置电子秤、电子天平等以其准确、快速、方便、显示直观等诸多优点而受到人们的青睐。电子秤向提高精度和降低成本方向发展的趋势引起了对低成本、高性能模拟信号处理器件需求的增加。1.1称重技术的发展与成果电子称的发展过程经历了由简单到复杂、又粗糙到精密、由机械到机电结合再到全电子化、由单一功能到多功能的过程[1]。特别是近30年以来,工艺流程中的现场称重、配料定量称重、以及产品质量的监测等工作,都离不开能输出信号的电子衡器。近年来电子称已愈来愈多地参与到数据的处理和控制过程中。现代称重技术和数据系统已经成为工艺技术、储运技术、预包装技术、收货业务及商业销售领域中不可或缺的组成部分。随着称重传感器各项性能的不断突破[2],为电子称的发展奠定了基础,国外如美国、西欧等一些国家在20世纪60年代就出现了0.1%称量准确度的电子称,并在70年代中期约对75%的机械称进行了机电结合式改造。我国的衡器在20世纪40年代以前还全是机械式的,40年代开始发展了机电结合式的衡器,50年代开始出现了以称重传感器为主的电子衡器,80年代以来,我国通过自行研究引进消化吸收和技术改造,已由传统的机械式衡器步入集传感器、微电子技术、计算机技术与一体化的电子衡器发展阶段[3]。随着称重传感器技术以及超大规模集成电路和微处理器的进一步发展,电子称重技术及其应用范围将更进一步的发展,并被人们越来越重视。根据近些年来电子称重技术和电子衡器的发展情况及电子衡器市场的需求,电子称的发展动向为:小型化、模块化、智能化、集成化;其技术性能趋向于速率高、准确度高、可靠性高;其应用性趋向综合性、组合性[4]。1.2电子秤的组成电子秤的基本结构电子秤是利用物体的重力作用来确定物体质量(重量)的测量仪器,也可用来确定与质量相关的其它量大小、参数、或特性。不管根据什么原理制成的电了秤均由以下三部分组成[5]:a)承重、传力复位系统它是被称物体与转换元件之间的机械、传力复位系统,又称电子秤的秤体,一般包括接受被称物体载荷的承载器、秤桥结构、吊挂连接部件和限位减振机构等。b)称重传感器即由非电量(质量或重量)转换成电量的转换元件,它是把支承力变换成电的或其它形式的适合于计量求值的信号所用的一种辅助手段。按照称重传感器的结构型式不同,可以分直接位移传感器(电容式、电感式、电位计式、振弦式、空腔谐振器式等)和应变传感器(电阻应变式、卢表面谐振式)或是利用磁弹性、压电和压阻等物理效应的传感器。对称重传感器的基本要求是:输出电量与输入重量保持单值对应,并有良好的线性关系;有较高的灵敏度;对被称物体的状态的影响要小;能在较差的工作条件下工作;有较好的频响特性;稳定可靠[6]。c)测量显示和数据输出的载荷测量装置[7]即处理称重传感器信号的电子线路(包括放人器、模数转换、电流源或电压源、调节器、补尝元件、保护线路等)和指示部件(如显示、打印、数据传输和存贮器件等)。这部分习惯上称载荷测量装置或二次仪表。在数字式的测量电路中,通常包括前置放大、滤滤、运算、变换、计数、寄存、控制和驱动显示等环节[8]。电子秤的工作原理[9]当被称物体放置在秤体的秤台上时,其重量便通过秤体传递到称重传感器,传感器随之产生力—电效应,将物体的重量转换成与被称物体重量成一定函数关系(一般成正比关系)的电信号(电压或电流等)。此信号由放大电路进行放大、经滤波后再由A/D器进行转换[10],数字信号再送到微处器的CPU处理,CPU不断扫描键盘和各种功能开关,根据键盘输入内容和各种功能开关的状态进行必要的判断、分析、由仪表的软件来控制各种运算。运算结果送到内存贮器,需要显示时,CPU发出指令,从内存贮器中读出送到显示器显示,或送打印机打印。一般地信号的放大、滤波、A/D转换以及信号各种运算处理都在仪表中完成[11]。电子秤的计量性能电子秤的计量性能涉及的主要技术指标有:量程、分度值、分度数、准确度等级等。虽然电容式传感器有结构简单和良好动态特性等诸多优点,但也有不利因素:a)小功率、高阻抗。受几何尺寸限制,电容传感器的电容量都很小,一般仅几皮法至几十皮法。因C太小,故容抗很大,为高阻抗元件,负载能力差;又因其视在功率,C很小,则P也很小,故易受外界干扰,信号需经放大,并采取抗干扰措施。b)初始电容小,电缆电容、线路的杂散电路所构成的寄生电容影响很大。方案三电阻应变式传感器电阻应变式传感器是一种利用电阻应变效应,将各种力学量转换为电信号的结构型传感器。电阻应变片式电阻应变式传感器的核心元件,其工作原理是基于材料的电阻应变效应,电阻应变片即可单独作为传感器使用,又能作为敏感元件结合弹性元件构成力学量传感器。导体的电阻随着机械变形而发生变化的现象叫做电阻应变效应。电阻应变片把机械应变信号转换为△R/R后,由于应变量及相应电阻变化一般都很微小,难以直接精确测量,且不便处理。因此,要采用转换电路把应变片的△R/R变化转换成电压或电流变化,其转换电路常用测量电桥。直流电桥的特点是信号不会受各元件和导线的分布电感及电容的影响,抗干扰能力强,但因机械应变的输出信号小,要求用高增益和高稳定性的放大器放大。应变片式传感器有如下特点:a)应用和测量范围广,应变片可制成各种机械量传感器。b)分辨力和灵敏度高,精度较高。c)结构轻小,对试件影响小,对复杂环境适应性强,可在高温、高压、强磁场等特殊环境中使用,频率响应好。通过以上对压力传感器的分析与比较,综合考虑本次设计的技术指标,选择方案三。在实际工作中为确保传感器线性好、精度高,要求称重传感器的有效量程在20%~80%之间,因此购买了最大量程为10千克的电阻应变式传感器,其主要技术指标如表2.1所示。表2.1压力传感器主要技术指标精度等级(%R.0.)0.02输入电阻(Ω)410±5输出灵敏度(mV/V)2.0±0.2输出电阻(Ω)350±3零点输出(%R.0.)±2绝缘电阻(MΩ)≥5000非线性(%R.0.)±0.02推荐激励电压(V)5—12重复性(%R.0.)±0.01允许使用温度范围(℃)-20—+60滞后(%R.0.)±0.02过载能力(%R.C)150蠕变(%R.0./30min)±0.02电缆线长度(m)四芯Φ4mm×0.45零点温度漂移(%R.0./10℃0.02推荐秤盘尺寸(mm)250×250额定输出温度漂移(%R.0./10℃0.02防护等级IP65放大电路的设计[16]经由传感器或敏感元件转换后输出的信号一般电平较低,经由电桥等电路变换后的信号亦难以直接用来显示、记录、控制或进行信号转换。为此,测量电路中常设有模拟放大环节。这一环节目前主要依靠由集成运算放大器的基本元件构成具有各种特性的放大器来完成。放大器的输入信号一般是由传感器输出的。传感器的输出信号不仅电平低,内阻高,还常伴有较高的共模电压。因此,一般对放大器有如下一些要求:a)输入阻抗应远大于信号源内阻。否则,放大器的负载效应会使所测电压造成偏差。b)抗共模电压干扰能力强。c)在预定的频带宽度内有稳定准确的增益、良好的线性,输入漂移和噪声应足够小以保证要求的信噪比。从而保证放大器输出性能稳定。d)能附加一些适应特定要求的电路。如放大器增益的外接电阻调整、方便准确的量程切换、极性自动变换等。由于专用仪表放大器芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。结合学校实验室的情况,本设计采用OP07芯片来设计放大电路。采用OP07设计的基本放大电路如图2.2所示,由模电和电路知识可算出OP07输出端的电压,计算过程为:(2.2)(2.3)(2.4)由(2.2)和(2.3)代入(2.4)得(2.5)图2.2采用OP07设计的基本放大电路为满足实际情况下所需的放大倍数需要,由(2.5)可知,可以增大的值,同时也可以在OP07之后继续级联OP07进行对电压的放大。A/D转换器的选择A/D转换部分是整个设计的关键,这一部分处理不好,会使得整个设计毫无意义。目前,世界上有多种类型的ADC,有传统的并行、逐次逼近型、积分型ADC,也有近年来新发展起来的∑-Δ型和流水线型ADC,多种类型的ADC各有其优缺点并能满足不同的具体应用要求。目前,ADC集成电路主要有以下几种类型:a)并行比较A/D转换器:如ADC0808、ADC0809等。并行比较ADC是现今速度最快的模/数转换器,采样速率在1GSPS以上,通常称为“闪烁式”ADC。它由电阻分压器、比较器、缓冲器及编码器四种分组成。这种结构的ADC所有位的转换同时完成,其转换时间主取决于比较器的开关速度、编码器的传输时间延迟等。缺点是:并行比较式A/D转换的抗干扰能力差,由于工艺限制,其分辨率一般不高于8位。b)逐次逼近型A/D转换器:如:ADS7805、ADS7804等。逐次逼近型ADC是应用非常广泛的模/数转换方法,这一类型ADC的优点:高速,采样速率可达1MSPS;与其它ADC相比,功耗相当低;在分辨率低于12位时,价格较低。缺点:在高于14位分辨率情况下,价格较高;传感器产生的信号在进行模/数转换之前需要进行调理,包括增益级和滤波,这样会明显增加成本。c)积分型A/D转换器:如:ICL7135、ICL7109、ICL1549、MC14433等。积分型ADC又称为双斜率或多斜率ADC,是应用比较广泛的一类转换器。它的基本原理是通过两次积分将输入的模拟电压转换成与其平均值成正比的时间间隔。与此同时,在此时间间隔内利用计数器对时钟脉冲进行计数,从而实现A/D转换。积分型ADC两次积分的时间都是利用同一个时钟发生器和计数器来确定,因此所得到的表达式与时钟频率无关,其转换精度只取决于参考电压VR。此外,由于输入端采用了积分器,所以对交流噪声的干扰有很强的抑制能力。若把积分器定时积分的时间取为工频信号的整数倍,可把由工频噪声引起的误差减小到最小,从而有效地抑制电网的工频干扰。这类ADC主要应用于低速、精密测量等领域,如数字电压表。其优点是:分辨率高,可达22位;功耗低、成本低。缺点是:转换速率低,转换速率在12位时为100~300SPS。d)压频变换型ADC:其优点是:精度高、价格较低、功耗较低。缺点是:类似于积分型ADC,其转换速率受到限制,12位时为100~300SPS。考虑到本系统中对物体重量的测量和使用的场合,精度要求不是很苛刻,转换速率要求也不高,而双积分型A/D转换器精度高,具有精确的差分输入,且双积分型A/D转换器具有很强的抗干扰能力,因此本设计理想的A/D转换器应选择双积分型A/D转换器。但考虑到实验室只有并行比较A/D转换器(ADC0808和ADC0809)的实际情况,且本设计所选择的压力传感器灵敏度较高,所产生的电信号变化也较快,且误差要求50g,因此本设计选用并行比较A/D转换器ADC0809。2.3显示电路的选择数据显示是电子秤的一项重要功能,是人机交换的主要组成部分,它可以将测量电路测得的数据经过微处理器处理后直观的将物体质量显示出来。数据显示部分可以有以下两种方案供选择:一是LED数码管显示,二是LCD液晶显示两种选择。本设计中只要求显示物体质量,因此采用LED数码管显示即可。2.4语音播报功能的实现本设计要求语音播报功能[17],考虑到电子秤的称量结果,语音播报模块至少需要包含0~9十个数字、点和单位(千克或者公斤)这些语音量,经过查阅相关资料,本设计选择了深圳市亿矽特科技有限公司的电子称语音芯片SC1010B。

3系统硬件电路设计3.1基于AT89C51的主控电路3.1.1AT89C51芯片简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51芯片共有40个引脚,其芯片引脚图如图3.1所示。具有以下标准功能:128字节内部RAM、32个I/O口线、两个16位定时/计数器、一个5向量两级中断结构、一个全双工串行通信口、片内振荡器及时钟电路。另外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作,但RAM、定时器、计数器、串口和中断系统仍在工作。掉电保护方式下,RAM内容被保存、振荡器被冻结、单片机一切工作停止,直到下一个中断或硬件复位为止。图3.1AT89C51管脚图3.1.2单片机管脚说明a)P0~P3口引线P0:是一个8位漏级开路的双向I/O通道,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:是一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”P3口:是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”P3口也可作为AT89C51的一些特殊功能口,如表3.1所示。表3.1P3口特殊功能P3口引脚第二功能P3.0RXD(串行口输入)P3.1TXD(串行口输出)P3.2INT0(外部中断0输入)P3.3INT1(外部中断1输入)P3.4T0(定时器0外部脉冲输入)P3.5T1(定时器1外部脉冲输入)P3.6EQ\X\to(WR)(外部数据存储器写选通)P3.7EQ\X\to(RD)(外部数据存储器读选通)b)控制信号线ALE/EQ\x\to(PROG):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。EQ\X\to(PSEN):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的EQ\X\to(PSEN)信号将不出现。EQ\X\to(EA)/VPP:当EQ\X\to(EA)保持低电平时,CPU只执行片外程序存储器指令;当EQ\X\to(EA)端保持高电平时,CPU执行片内程序存储器指令。在FLASH编程期间,此引脚也用于接收12V编程电源电压(VPP)。XTAL1:作为振荡器倒相放大器的输入。使用外振荡器时,需接地。XTAL2:作为振荡器的倒相放大器的输出和内部时钟工作电路的输入。使用外振荡器时,接收外振荡器信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。单片机复位以后,P0~P3口输出高电平,SP指针重新赋值为07H,其他特殊功能寄存器和程序计数器PC被清零。3.1.3单片机最小系统电路构成单片机的最小系统由时钟电路、复位电路、电源电路及单片机构成,其电路图和实物图分别如图3.2和图3.3所示。单片机的时钟信号用来提供单片机片内各种操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。图3.2AT89C51最小系统电路图图3.3单片机最小系统实物模块3.2数据采集电路设计3.2.1传感器参数的测量与计算在本设计中,传感器是采集实际物体重量的元器件,主要把重量的变化转化为变化的电压信号,因此需要测量该压力传感器的特性曲线。根据表2.1中传感器的参数,将传感器接入电路,用万用表测得传感器的输入电阻为406Ω,输出电阻为349Ω,鉴定传感器正常,可以使用。测试传感器可以正常使用后,开始测试传感器的特性曲线,测试方法为:将传感器接入电路,放上支架,测出此时的空载组织,然后依次增加砝码测出相应的电阻阻值,每次重量的增量为50克,测出该传感器负载0~3000克时相对应的电阻值,如图3.4所示。图3.4传感器阻值与压力关系测试按照上述方法,依次测出传感器的电阻值,并将数据一一记录,待量程范围内的数据测完后,将数据输入Excel进行数据分析,描绘该压力传感器的特性曲线,从而得出该压力传感器电阻值与其所负载重量之间的关系式,从而代入放大采集电路中计算出A/D采集端口的电压值,所测数据如表3.2所示。表3.2压力传感器阻值与负载重量关系砝码质量(g)050100150200250300阻值(Ω)352.0352.3352.6352.9353.1353.3353.6砝码质量(g)350400450500550600650阻值(Ω)353.8354.1354.4354.7354.9355.2355.5砝码质量(g)7007508008509009501000阻值(Ω)355.8356.1356.4356.6356.9357.2357.5砝码质量(g)1050110011501200125013001350阻值(Ω)357.8358.0358.3358.5358.7359.0359.3砝码质量(g)1400145015001550160016501700阻值(Ω)359.6359.9360.2360.5360.8361.1361.3砝码质量(g)1750180018501900195020002050阻值(Ω)361.6361.9362.2362.4362.7363.0363.3砝码质量(g)2100215022002250230023502400阻值(Ω)363.5363.8364.1364.4364.6364.9365.2砝码质量(g)2450250025502600265027002750阻值(Ω)365.5365.7366.0366.3366.6366.8367.1砝码质量(g)28002850290029503000阻值(Ω)367.4367.7367.9368.2368.5将以上数据输入Excel中进行处理,得出其关系曲线,如图3.5所示。图3.5传感器阻值与负载重量关系图由图3.5可知,该传感器的阻值与负载质量为线性关系,这就便于放大电路的设计与计算,并且由此可知A/D采集端的电压与传感器负载重量W也成线性关系。3.2.2放大电路通过对传感器阻值特性的测试,由表3.2可知在本设计量程以及误差范围内,该传感器的阻值变化较小,因此对于放大电路的设计要求较高。在Proteus的仿真中发现电压变化为百分位级别,因此放大电路的增益应设置为放大100倍,为保证电路的稳定性,在图2.2的基础上采用级联OP07的方式进行设计放大电路,OP07的管脚图如图3.6所示,所设计的放大电路如图3.7所示。图3.6OP07管脚图图3.7放大电路由图3.7可知:(3.1)(3.2)(3.3)由计算可知,此电路可以达到放大100倍的效果,在Ptoteus中的仿真结果如图3.8所示。图3.8放大电路的仿真3.2.3A/D转换与AT89CADC0809是多通道8位A/D转换器,内置多路模拟开关及通道地址译码,能对多路模拟信号进行分是采集与转换。ADC0809的管脚图图如图3.9所示。图3.9ADC0809管脚图其中IN0~IN7为8路模拟信号输入端,D0~D7为数据输出端,ADDA、ADDB、ADDC为地址码输入端,ALE为地址锁存信号输入端,上升沿有效。ADC0809与单片机接口电路连接如图3.10所示。图3.10ADC0809与单片机接口电路由于实验室缺少或非门,因此在硬件搭设中采用或门和非门,实物中该模块如图3.11所示。图3.11ADC0809与单片机接口硬件电路3.2.4测量算法根据图3.8所示的放大电路,分别改变压力传感器的阻值,得出放大电路输出电压随压力传感器阻值R改变的相应数值,由于压力传感器阻值与其所负载的重量有关,因而可以推出与压力传感器负载的重量之间的关系,所测得的数据如表3.3所示。表3.3放大电路输出电压与负载量关系表负载量(g)050100150200250300输出电压(V)0.850.931.001.071.151.221.30负载量(g)350400450500550600650输出电压(V)1.341.391.441.521.591.661.71负载量(g)7007508008509009501000输出电压(V)1.791.861.932.012.052.132.20负载量(g)1050110011501200125013001350输出电压(V)2.272.352.392.472.542.612.69负载量(g)1400145015001550160016501700输出电压(V)2.762.832.902.973.043.113.19将以上数据输入Excel中进行处理,得出其关系曲线,如图3.12所示。图3.12负载与输出电压关系曲线图由图3.12可知压力传感器负载重量与放大电路输出电压(A/D数据输入端)成线性关系,可求出其关系式。ADC0809将采集的模拟信号转换为数字信号后送入单片机,单片机根据A/D模块采集到的电压量,经过换算可以求出压力传感器负载重量,从而本设计的得以实现。3.3显示电路的设计在2.3的显示电路论证中,采取了LED数码管显示的方法。因此本设计选用了共阳极四联数码管SM410564,其管脚图如图3.13所示。图3.13SMA410564管脚图在实际电路中,数码管显示需要ULN2003驱动,数据显示模块的实物图如图3.14所示。图3.14显示模块实物图3.4语音播报电路本设计中对于语音模块的要求是报出数码管显示的数值及单位,采用了电子称语音芯片SC1010B。SC1010B是深圳市亿矽特科技有限公司最新开发的语音电子称的新型语音芯片,采用台湾最新语音母体,真人语音报数,外围元件少,电路简单,控制方便,成本低。主要应用于语音电子秤、计重秤等语音衡器。其管脚图如图3.15所示。图3.15SC1010B管脚图引脚功能表3.4SC1010B引脚功能表脚号名称功能1RST脉冲计数复位2CNT脉冲触发信号3BUSY工作状态反馈4IONC5VSS电源负6PWM1NC7VDD电源正8PWM2/DACDAC信号输出原理图SC1010B语音芯片工作电压在2.4V~3.6V之间,静态电流Isb≤5μA,工作电流Iop为2mA,工作温度在-0℃~+70℃之间,音频输出方式为PWM(DA)综上所述,在该电路中所需电压设定为3V(两节干电池),并在输出端口需连接一个扬声器,其原理图如图3.16所示,模块实物图如图3.17所示。图3.16语音模块电路图图3.17语音模块实物图芯片语音内容在本设计中,为实现语音播报所测物体质量的功能,语音芯片应至少提供0~9十个数字的语音、“点”的语音以及质量单位的语音,SC1010B语音芯片所包含的语音内容如表3.5所示。表3.5SC1010B语音芯片语音内容地址语音内容地址语音内容0无14千2015点3116元4217角5318分6419单价7520公斤8621金额9722重量10823总计11924您好12十25谢谢13百根据表3.5所示的语音内容,确定本设计选用的单位为公斤,设定语音播报形式为“您好!X.XXX公斤”(X代表具体数值)。

4电子秤电路的软件仿真设计4.1仿真流程图本设计全部控制程序大体可分为若干模块:定时器T0启动程序、A/D采样程序、LED数码管显示程序、语音播报程序等。主要流程图如图4.1所示。图4.1主程序流程图4.2程序介绍主程序voidmain(){……SC_DATA=0;SC_RST=1;delay_us(100);//上电复位防止干扰发声芯片放音SC_RST=0;delay_us(100);sp[0]=0;sp[1]=0;sp[2]=0;sp[3]=0;sp[4]=0;sp[5]=0;sp[6]=0;//将各语音位置于0地址位while(1){if(flag){flag=0;samp();}//采样标准为1时,调用采样函数进行采样DisplaySecond(s,b);//显示数值 sp[0]=24;//“您好”地址 sp[1]=g+2;//个位地址 sp[2]=15;//“点”地址 sp[3]=s+2;//十分位地址 sp[4]=b+2;//百分位地址 sp[5]=u+2;//千分位地址 sp[6]=20;//“公斤”地址 SC_Speechs();//组合24,g+2,15,s+2,b+2,u+2,20地址段放音 delay_ms(5000);//延时放音时间5秒}}A/D采样程序voidsamp(){unsignedintc;XBYTE[0x7FF8]=0;//进行一个写操作,启动A/D转换delay();a=XBYTE[0x7FF8];//将A/D转换的结果保存为变量aresult=a*5/256;//将A/D转换结果换算成十进制数if(result<=0.85){W=0;}//进行软件调零 elseif(result>0.85){W=741.93*result-636.94;} //把电压转换为重量(单位g)c=W;g=c/1000;//显示重量的千位s=c%1000/100;//显示重量的百位b=c%100/10;//重量的十位u=c%10;//重量的个位 }数码管显示程序将A/D采集转换的量逐位显示。voidDisplaySecond(unsignedchars,b){P2=0xfe;//数码管1亮P1=Tab1[g]+0x80;//显示重量的个位和小数点delay();P2=0xff;P2=0xfD;//数码管2亮P1=Tab1[s];//显示重量的十分位delay();P2=0xff;P2=0xfb;//数码管3亮P1=Tab1[b];//显示重量的百分位delay();P2=0xff;P2=0xf7;//数码管4亮P1=Tab1[u];//显示千分位delay();P2=0xff;}语音播报程序控制地址段放音部分为:voidSC_Speech(unsignedcharcnt){unsignedchari;SC_RST=1;delay_us(100);//DAC,大于32段为15MSSC_RST=0;delay_us(100);for(i=0;i<cnt;i++){SC_DATA=1;//数据脉冲高delay_us(100);//延时100USSC_DATA=0;//数据脉冲低delay_us(100);//延时100US}}控制地址段组合放音部分为:voidSC_Speechs(void){SC_Speech(sp[0]);//播放第一位语音“您好” SC_WBusy(); SC_Speech(sp[1]);//播放第二位语音,个位 SC_WBusy(); SC_Speech(sp[2]);//播放第三位语音,“点” SC_WBusy();SC_Speech(sp[3]);//播放第四位语音,十分位 SC_WBusy(); SC_Speech(sp[4]);//播放第五位语音,百分位 SC_WBusy(); SC_Speech(sp[5]);//播放第六位语音,千分位 SC_WBusy(); SC_Speech(sp[6]);//播放第七位语音“公斤” SC_WBusy(); sp[0]=0;sp[1]=0;sp[2]=0;sp[3]=0; sp[4]=0;sp[5]=0;sp[6]=0;//播放完毕后将各位置于无语音播放的0地址位}4.3软件的编译在对系统整个软件程序的编写完成后,在KeiluVision2中进行编译调试,经过程序纠错后的编辑结果如图4.1所示。图4.1软件编译结果

5系统的整体调试5.1软件仿真实物模型制作之前电子秤系统的计算机仿真由Proteus软件完成的,通过与KeiluVision2的联调实现对系统的仿真。仿真时通过改变接入电阻的阻值来模拟负载的变化。当负载为1500g(接入电阻为360.4Ω)和2000克(接入电阻为363.0Ω)时的仿真结果分别如图5.1和图5.2所示。图5.1负载1500g时的仿真结果图5.2负载2000g时的仿真结果5.2硬件电路的调试采集放大电路的调试由于实际电路与软件仿真结果可能存在的误差,因此对于采集放大电路的调试显得十分重要,需要验证放大电路输出电压与压力传感器电阻阻值之间的关系。通过对硬件电路的调试发现输出电压与仿真结果有较大误差,因此需调节放大电路。经过调试发现,可以调整图3.7中所示放大电路中R1的阻值来完善电路,最终实际电路中R1采用阻值为2.2K的电阻。对采集电路的调试如图5.3所示,测得的结果如表5.1所示。图5.3放大电路的硬件测试表5.1实际硬件电路采集电压与负载关系表负载重量(g)06001200180024003000输出电压(V)3.5743.5953.6163.6373.6583.680将表5.1数据输入Excel进行数据分析,得出关系曲线,如图5.4所示。由此可以分析出,完善实际电路后提高了本设计的精度,将实际测得的负载重量与输出电压的关系式代替原程序中的电压质量转换函数即可完成设计。图5.4负载重量与输出电压关系曲线图语音报数模块的调试在测试语音模块时,编写了调用芯片所有地址位发音的程序进行测试,如图5.5所示,测试结果正常。图5.5语音模块测试图系统整体测试在对硬件电路分模块测试结束后,对系统整体测试。将修改后的程序重新进行编译

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论