基于STM32的语音电子秤的设计.docx
基于STM32的语音电子秤的设计学生专业:测控技术与仪器学生姓名:张城照导师姓名:张福才摘要质量是测量领域中的一个非常有意义的被测参数,称重技术的开展从古至今被人们所重视,称重在日常生活中随处可见,如首饰店测量贵金属重量,工厂原料定量配比,市场上称菜,货车过地磅等。秤是最普通、最普及的计量设备。传统的机械秤体积庞大,结构繁琐,易受外界挤压、胡1变形,在长期使用中由于金属腐蚀,机械磨损会给机械腓来不可逆的损害直台致机械秤精度下降。电子秤相比机械秤拥有诸多优点,例如本钱低、响应快、稳定、高智能等。随着社会的迅猛开展,人们的需求日益多元化,多元化的电子秤将具有极其广阔的市场前景。本设计采用STM32F103作为主控芯片,夕展电桥式称重传感器和24位高精度A/D转换芯片来完成称重,以TFT液晶屏和触控芯片实现人机交互,独特的语音播报功能给本设计增添了个性特点,实时温度和实时时钟方便了使用者的日常生活。关键词质量电子秤STM32F103语音AbstractQualityisanimpoilantParametertomeasuredinthefieldofmeasurement,weighingtechnologyispaidgreatattentionbypeoplesinceancienttimes,weighingcanbeseeneverywhereinourdailylife,suchasjewelryshopmeasuringweightofpreciousmetals,quantitativeratioofrawmaterials,Weighingfbodonthemaricet,truckspassIoadometer,etc.Balanceisthemostmmon,themostpopularmeasuringequiment,Thetraditionalmechanic<dsc<leislarge,thestructureismplicated,vulnerabletoexternalextrusion,llisiondeformation,duetothemetalcorrosioninthelong-tenuse,mechanicalwearwillbringirreversibledamagetomechanicalscaledirectlyledtothedecreaseoftheprecisionofmechanicalscale.Electronicscalemechanicalscalecomparedwithmanyadvantages,suchaslowcosfastresponse,stability,highintelligence,etc.Withthempiddevelopmentofsociety,thedemandofleincreasinglydiversified,diversifiedelectronicscalewillbeextremelybroadmarketprospect.ThisdesignusesSTM32F103asthemastercontrolchip,externalbridgetypeweighingsensorsand24bithighprecisionA/Dtusfbnnationchiptocompletetheweighing,TFTLCDscreenandtouchchiptorealizehuman-machineinteraction,uniquespeechfunctionaddindividualitytothedesigncharacteristicsofreal-timetemperatureandrealtimeclockisconvenientforuser,sdailylife.KeyWOrdsQuidityElectionicscaleSTM32F103Secch目录摘要IAbstractII第1章绪论11.1 课题来源及研究的目的和意义11.2 本论文的技术要求和主要工作1第2章电子秤的怠体设计方案32.1 电子秤称重系统的整体设计方案32.2 系统根本功能及其性能指标32.3 称重传感器要求及选择42.4 质量的计算5第3章电子秤硬件电路设计63.1 A/D采集的电路设计63.2 单片机夕FTtf各第十73.2.1 STM32F103RBT6的最小系统硬件设计73.2.2 TFT液晶屏的硬件电路设计73.2.3 WT588D语音模块的硬件f邸各设计83.2.4 电源模块的硬件电路设计9第4章测量装置的软件设计及其优化104.1 单片机软件设计流程104.2 各个模块的程序设计思路及局部代码104.2.1 TFT触控液晶模块局部104.2.2 WT588D语音模块局部114.2.3 HX7Il芯片局部134.2.4 DSl8B20芯片局部144.2.5 时时钟局部174.2.6 数据计算局部184.3 提高测量精度的数字滤波软件设计19结论21致谢22参考文献23附录1:电子秤实物图24附录2:系统总体电路图25附录3:PCB电路板26CONTENTSAbstract错误!未定义。Abstract错误!未定义书签OChapter1IntroductionW!X53Eo1.1 Subjectsourcesandresearchgoalandsignificnce错误!未定义书签。1.2 TheIecliiiicdrequirementofdesignandmainwork错误!未定义招°Chapter2Theoveralldesignschemeofelectronicscale!½5<C4So2.1 TheoveralldesignschemeofelectronicweighgsystemW!未5t4c2.2 Thebasicftnctionandperformanceindexofsystem错误!未定义书签。2.3 RequirementandSeleCtionOfweighingsensorW!未½JJC5<三2.4 Thecalculationofthequalitj,错误!未定义书签。Chapter3Elect11)iichardwarecircuitdesign错误!未定义书签。3.1 ATDIicquisitioncircuitdesign错误!未定义书签。32MCU'soutsideenlargecircuitdesign错误!未定义书签©3.2.1 STM32F103RBT6,sminimumsystemhardwaredesignW!未Jt45°ThehardwarecircuitdesignoftheTFTLCDscreenWi!未定义45。3.2.3 HanjWaIECirCUitdesignoftheWT588DVOiCemOdUIeW!未½X5oPowersupplymoduleOfhardwarecircuitdesign错误!未定义书签。Chapter4Measuringsoftwaredesignanditsoptimization错误!未定义书签4.1 Microcomputersoftwa4edesignpcess错误!未定义书签。4.2 Eachmoduleprogramdesignandpartofthecode#!未定义45。TFTtouchLCDmodulepa1错误!未定义福。4.2.2 WT588Dvoicemodulepan错误!未定义书签。4.2.3 HX7lIchippart角!未近也4.2.4 DS18B20chipPart错误!未定义书签。4.2.5 Reiiltimeclockparts174.2.6 ThedataCaICuIatedpart!未5t¾c4.3 Improvethemeasurementprecisionofthedigitalfiltersoftwaredesign#i!未定义书签。Conclusions错误!未定义书签OAcknowledgementsI5iti3EoReference错误!未定义书签。Appendix 1: Electronicscalephysicalfigure34Appendix 2: Overallsjrstemcircuitdiagram35Appendix3:PCBcircuitboards36第1章绪论1.1 课题来源及研究的目的和意义电子称重技术是测控工程的重要技术之一。自60年代初期出现的机电结合式电子秤以来,经过几十年的不断改良与完善,电子秤从最初的全机械式到机电结合式再开展到现在的全电子式和数字化智能式。由于数字智能化式的电子秤具有称量准确、快速、读数方便、环境适应性强、便于与计算机结合而实现过程控制自动化等特点,在工商贸易、冶金矿山、能源交通、医药卫生、航空航天、轻工食品等部门得到广泛的应用I。最近几年来,伴随着称重传感器技术和计算机技术的迅猛开展,以及现彳怀4学技术间的相互渗透,电子称重技术有了新开展。称重#*方法从模拟测量向数字开展;称重技术从静态称重向动态开展;测量特点从单参数测量向多参数开展。快速称重和动态称重的研究与应用,已成为世界各国所关注的焦点之一。电子称重技术水平的上下已成为衡量一个国家测量控制技术水平的标志之一。电子称重技术是集电子、材料、传感器、管理为一体的综合技术,兴旺国家一直以来都很重视电子称重技术的研究,它们研究开发的重点不再是单纯的称重,而是自动控制领域和生产过程的称重系统,这使得称重计量的内涵被不断扩展,由狭义到广义,单项到系统,新型的现代称重-跃成为当代世界瞩目的技术与行业。电子秤的开展过程经历了从粗糙到精密、从单纯机械结构到机电结合再到全电子化、从功能单一到多功能化的过程。尤其是最近20年以来,各个生产工艺流程中配料的称重、药物定量、饲料配比、以及产品质量的监督把关等,都离不开能输出电信号的电子秤。电子称重信号的输出方便了自动叱制,能作为系统中的一个重要参数承当着自动控制和检验的功能,从而有力地推进贸易交往合理化、生产工艺标准化、材料配比科学化和工业生产自动化。从80年代至今,我国测控行业己经走上了按专业和产品归类的行业管理化轨道中,且己经开创了由机械向数字电子过渡的全新局面,但与兴旺工业国家相比,我国的电子称重技术的研究与应用仍然出于较低水平,有很大的进步空间,电子称重行业的总体水平还跟不上国内需求的开展步伐。1.2 本论文的技术要求和主要工作本论文设计的电子秤是以STM32单片机为主要部件,使用C语言进行软件设计,硬件那么以全桥应变片电阻传感器、WT588D语音模块和触控液晶屏模块为主。量程为O-10kg,最小分度值为1g,误差到达±2g,具有超上限值报警的功能。本设计完成的电子秤的主要优点是:人性化的人机交互界面;具有超量程报警功能;测量精度;实时显示环境温度和实时时钟;具有语音播报重量、价格、报警等功能。主要工作如下:大量收集和查阅国内外关于电子秤设计的资料,最好开发前的准备;电子秤主板硬件系统设计:电子秤的软件系统设计;通过标准质量的怯码校准电子秤;整机测试。第2章电子秤的总体设计方案2.1 电子秤称重系统的整体设计方案本设计采用STM32F103RBT6作为主控芯片,通过TFr液晶屏幕显示数据,以触控方母作电子秤,DS18B20作为温度传感器采集实时温度,播报重量、价格、商品名等语音信息使用Flash芯片存储配合语音芯片WT588D发音,采用电阻应变片桥式连接的称重传感器采集重量,以24位的HX711作为A/D转换芯片Q系统结构框图如图2-1。图2-1系统整体框架图架构为Cortex-M3的STM32F103RBT6工作频率为72MHz,16位并行连接TFT液晶屏,能实现快速刷屏,显示效果良好,通过SPl通讯方式连接触控芯片XPT2046,以触控方式操作电子秤,以单总线方式连接DS18B20采集实时温度,主控芯片以一线串口模式控制语音芯片WT588D播报重量、价格、商品名等信息,以上模块对速度都有苛刻的要求,普通的51单片机达不到要求,所以采用了工作频率为72MHz的STM32F1O3RBT6,它内部的单周期乘法和硬件除法方便了价格计算和累计,采用型号为YzC-IB的电阻应变片式电桥结构的称重传感器,以24位的电子秤专用AQ芯片HX711作为A/D转换芯片"叫2.2 系统根本功能及其性能指标本论文设计的电子秤测量系统包括重量测量、液晶屏显示、触摸控制、语音播报、实时时钟、实时温度、单价存储、自动计价、价格累计、去皮、超重报警等功能,主要技术指标如表2-1。表2-1测量装置的主要技术指标根本功能测量范围分度值测重O-IOkgIg实时时钟I秒七秒/年实时温度-55125°COrC±0.5"C计价0-999.99元0.01元02.3 称重传感器要求及选择称重传感器是将非电量(质量或重量)转换成也量的转换元件,它把重量变换成电信号或其它形式适合计量的信号以方便数字处理器处理。称重传感器一般由敏感元件、转换元件以及后续处理局部组成。按照称重传感器的结构形式不同,可分为应变式传感器(电阻应变式、声外表谐振式)和直接位移式传感器(电位计式、电容式、电感式、空腔谐振器式、振弦式等)或是利用压电、压阻和磁弹性等物理特性的传感器。考虑到本设计的产品应用在市场、工厂和户夕F环境比拟恶劣潮湿的场合,使用直接位移传感器和物理效应的传感器容易受到外界干扰,综合各方面因素选择电阻应变式传感器。本设计对称重传感器的要求主要有:输入的重量与输出的电量应该保持-对应,即具有良好的线性关系;具存校高的灵敏度;能在恶劣的条件下工作;对被称物体的状态的影响要小;具有较好的频率响应特性;具有重现性;稳定可靠。就以上要求本设计所使用的称重传感器为YZC-IB型传感器,该传感器是Iokg量程的电阻应变片式传感器,在鼓励电压为5V的条件下输出,满量程寸输出为IOmV,该称重传感器的实物如图22图2-2称重传感器实物图其结构为由电I:且应变片搭接的惠更斯全臂电桥贴于铝块载体上。应变片是蹴丝或康铜丝绕成栅状(或使用薄金属箔腐蚀成栅状)夹在两层绝缘的薄片中制成。YZC-IB称重传感器上外表镶嵌两片应变片,同时下外表也有两个同样的应变片,上下连接形成全臂电桥,当应变片不受外力时,输出的电压为零,当受外力作用时,上外表的应变片电阻变大,下外表的应变片电阻变小,使电桥不平衡,由于相同的电阻丝其电阻的变化量相同,所以输出的电压与电阻的变化量成线性关系,再经相应的测量电路把这一电阻变化转换为电压信号,此过程完成了将外力转换为电信号的过程,这样就测量出重量的大小。夕时妾的5根线分别是一根屏蔽线,两根输出线,两根供电线。当未载物时传感器内部电桥桥臂上的电阻满足这样的条件:RR=RzR,电桥平衡,输出的电压为零;载物时铝块发生微小形变,致使贴在上面的电阻应变片也发生形变,从而导致应变片电阻发生变化,破坏电桥平衡,使电桥输出微弱电压,其输出的电压与电阻的变化量(外力变化量)成近似的线性变化,线性度小,这极大地方便了后续软件根据A/D值计算处理得到重量。2.4 质量的计算由于本设计所选的YZC-IB型电阻应变片式电桥结构的称重传感器具有良好的线性度,所以为后续数据处理带来了很大方便。本设计使用线性拟合软件CUrVeEXpert1.3来拟合A/D值与实际重量之间的函数关系。主控芯片内部的单周期乘法和硬件除法为重量的快速计算提供硬件支持。随着质量的增大,称重传感器的线性度下降,再配以人工补偿,以保证精度。在校正精度时,选用了MI等级的高精度不锈钢法码以确保电子秤的精度。第3章电子秤硬件电路设计3.1 A/D采集的电路设计对于电子秤的设计,核心问题是A/D转换。只有正确的选择A/D转换芯片的类型才能才能做出高精度的电子秤。本论文设计的电子秤使用一款24位的E-A(Sigma-Delta型A/D转换芯片HX711。在电子秤的实际使用中,由于人们对重量测量速度的要求不高,所以使用这款高分辨率的慢速A/D转换芯片。Ed型的A/D芯片是由1位A/D转换器、数字源波器、积分器和比拟器等组成明在原理叨似于积分型A/D,将输入电压量变换成脉冲宽度(即时间信号)信号,经过数字滤波器的处理之后得到数字量也电路的数字局部容易做到单片化,因此极易做到高分辨率。由于输出的数字量与模拟输入量之间有较长的延时,所以这类A/D芯片适用于那些模拟信号近似直流或变化很慢的应用场合,如温度测量、流量测量和压力测量等。HX711与同类型其它A/D芯片相比,其内部集成其它同类型芯片所需要的外围电路,如内部时钟振荡器和稳压电源等,具有集成度高、抗干扰性强、响应速度较快等优点,使用该芯片设计的电子秤既能降低了整机本钱乂提高了电子秤的可靠性和抗干扰性。该芯片与封S芯片的连接电路非常简单,只有DAIA和SCLK两条线连接与主控芯片连接,两个控制信号由管脚驱动,Il无需对芯片内部的存放器编程。在输入指定的脉冲数可任意选取通道A或通道B以及增益,通道A的可编程增益为128和M,对应满额度的差分输入信号幅值分别为±40mV和±20mV,通道B那么为固定为64增益。芯片内部的稳压电源可以直接向外部传感器供电,系统板上无需另外提供电源,可以保证传感器的准确度。HX711的工作温度范围为2O+85,工作电压范围为2.6-5.5V,可同步抑制50HZ和60HZ的电源干扰,典型工作电流:1.7mA(含稳压电源电路),断电电流:lA,可见该芯片是功耗极低的,适合运用于充电的便携式设备中,较大的工作温度范围和宽电压决定了该芯片能应用在较恶劣的场合。HX711的硬件电路如图3-1。图%1HX711的硬件电路图中E+和6分别连接5V和地线,为芯片供电,S+和S-连接称重传感器的输出端。本设计使用HX711内部时钟振荡器(引脚XI接地),IOHz的输出数据速率引脚RATE接地)。芯片供电电压取用5V,片讷稳压电源电路通过片外三级管8550和滑动变阻器RII向传感器提供稳定的低噪声模拟电源图中E+和EJ在程序设计中选用通道A,所以INNA和INPA与传感器相连,通道B接地。3.2 单片机外扩电路设计3.2.1 STM32F103RBT6的最小系绸更件ISi十本设计采用STM32F103RBT6作为主控芯片。该芯片使用Cortex-M3架构,支持Thumb-2指令集,最高支持72MHz工作频率,在存储器的0等待周期访问时可达l,25DMipsMHz,而且具备单周期乘法和硬件除法。在存储器方面,该片有128K字节的闪存程序存储器和高达20K字节的SRAMu片内的带校准功能的32kHzRTC振荡器和后备供电VBAT,可为实时时钟提供精确的定时和掉电不掉时提供支持uirL2.0-3.6V的供电电压和睡0民、停机和待机模式可为电子秤的低功耗提供硬件支持。该芯片还拥有多达51个快速I/O端口,并且所有I/O口可以映像到16个外部中断,几乎所有端口均可容忍5V信号,即兼容5V数字电平l"。STM32F103RBT6的引脚图如图32图3-2STM32FIO3RBT6引脚图主控芯片夕8MHz和32.76SkHZ的石英晶振,最高工作频率达72MHz,其中,32.768kHz的晶振作为RTC的输入频率,为实时时钟提供精确的频率网。夕噌晶振的硬件电路如图3-3。图3-3夕傲晶振电路图图3-3为主控芯片的复位电路和后备电源电路。当系统上电时,电容Cl充电,此时RESET为0电位,芯片复位,Cl充满电后,电路相当于断路,RESET为高电平,进入工作状态。当按键KPl按下时,RESET接地,使RESET为0电位,产生复位,一般低电平持续20US之后,可实现有效复位ld后备电池BArl通过二极管D2连接到主控芯片的VBAr脚,实现系统“掉电不掉时"的功能,如图34。图弘复位电路和后备电源电路322TFT液晶屏的硬件电路设计TFT-LCD(ThinRlmTnmsistor-LiquidCrystalDisplay)即薄膜晶体管液晶显示器'TFTLCD与无源TN-LCD、Sm-LCD的简单矩阵不同,它在液晶显示屏的每-个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。实物如图3-5。图3-5TFT触控液晶模块本设计使用的TFT-LCD液晶屏使用的控制芯片为ILI9320,屏幕尺寸为2.8寸,320*250像素,26万真彩,通过16位并行方式连接主控芯片。该液晶刷撅速度快,显示效果能满足实际需求。该液晶模块中还整合了触控芯片XPT2046,通过SPI通讯和主控芯片连接,以实现快迹雌识别叫该液晶模块和主控芯片的硬件连接图Y。图北TFr触t液模魁接J3.2.3 WT588D语音模块的硬件电路设计本设计的语音功能采用WT588D语音模块来实现。这是带32Mbit的SPI-Rash存储器、内嵌DSP高速音频处理器、13Bit的DA转换器和12Bit的PWM输出的D1P28封装的语音模块。DSP高速音频处理器让该模块有较快的音频处理速度,12Bit的PWM输出让该快具有良好的音质,可直接驱动0.5W/8扬声器,推挽电流充分。该模块可以通过专业的上位机软件XbiceChipV-B建立语音工程,可随意组合语音块、插入IOms-25min的静音,插入的静音不占用内存的容量,一个己加载语音可重复调用到多个地址,语音工程编译之后用USB下载方式下载到模块中,支持在线下载和脱机下载,在WT588D语音芯片通电的情况下,也一样可以正常下载数据到模块中。语音块支持WAV格式的6K-22KHz采样率的音频。该模块的BUSY引脚育编出语音播放状态信号,为编程提供方便。该模块的工作电压为直流2.8V5.5V,在语音播放停止时会马上进入休自赚式,芯片转为完全停止状态,静态休眠电流小于IoUA,这些都决定了该模块是一个低功耗的模块。WT588D语音模块的结构如图3-7。图3-7WT5S8D语音模块吉构图WT588D与主控芯片的硬件连接如图3-8=图38WT588D与主控芯片的硬件连接图图中P2为0.5W/8C的扬声器,与模块的正负PWM输出连接,该模块的复位引脚连接主控芯片的10口*3,由于该模块与主控芯片为一线串口通讯模式,所以只需使用模块的P03引脚即可,这里我们连接主控芯片的PA2口。该模块的VDD供电为De2.85.5V,VCC为DC2.83.6V。MfflDC3.3V供电口寸,可以直接短接VDD足艮VCC,但考虑到使用环境声音嘈杂,故VDD供5V以提供较大的音量。BUSY连接发光二级管指示模块的工作状态,当模块发音时二极管亮,不发音时不亮。3.2.4 J原模块的硬件½粒十本设计的主控芯片和TFT触控液晶模块需要3.3V电压,WT588D语音模块、HX711芯片和蜂鸣器需要5Vffi。考虑到本设计产品的功耗较低和方便携带的问题,使用9V层积电池作为主电源供电,具体电路如图3-9。3-9系统电源邨各图如图使用9V层积电池为主电源,通过稳压芯片AMSl117-3.3得到3.3V的电压,供主控芯片和TFT触控液晶模块使ffl,通过稳压芯片LM7805得到5V的电压,供WT588D语音模块、HX711芯片和蜂鸣器使用叫第4章测量装置的软件设计及其优化对于一个测量系统来说,功能的实现除了硬件电路之外,软件处理是必不可少的。硬件是系统的肉体,软件是系统的灵魂,软件决定了产品的思想,对一个产品至关重要。4.1 单片机软件设计流程本设计的软件局部大致流程如图4-1。图41软件流程图系统h电后首先执行各个功能模块的初始化,初始化包括功能模块内部功能的设置和与主控芯片连接的IO口模式的设置,初始化完后该系统会读取A/D值然后作为零重量的A/D值(取零点),在取完零点后显示该系统固定不变的内容,如键盘,显示工程等。在做完所有准备工作之后系统进入程序死循环,在死循环中主要完成A/D值的采集,数据处理和数据显示刷新。触摸程序的处理是在中断程序中执行的4.2 各个模块的程序设计思路及局部代码4.2.1 TFT触控液晶模块局部本设计选用的TFT触控液晶模块的显示局部程序流程如图4-20图42TFr他溶品模决程序流程图TFT触控液晶屏的初始化包括主控芯片与模块相连IO口工作模式的设置和显示驱动芯片ILI9320的初始化,其具体设置如下:10口PBo-15作为液晶显示的数据口,采用16位并行方式连接。当主控芯片从模块读数据时设置为上拉输入模式,写数据时设置为上拉输出模式。其余引脚如8080并口的信号线CS、WR、RD和RS都设为推挽输出模式UL对于显示驱动芯片ILI9320的初始化,首先读取TFTLCD的控制芯片的型号,然后再根据具体型号向芯片写入一系列的特定命令,例如开启振荡器、设置纵向26万色显示、设置纵向更新GRAM等,然后启动TFTLCD的显示,整屏填充白色制。在程序工程中初始化函数为:VoidLCD-Init(void)o通过函数将字符和数字显示到TFTLCD模块上。本设计编写的各个功能函如下:显示数字的函数:voidLCD_ShowNum(u16x,ul6y,u32num,u8len,u8size,u8mode);显示一个字符串的函数:voidLCD_ShowString(u16x,ul6y,nstu8*p);显示汉字的函数:voidShOW_Str(ul6x,ul6y,u8*str,u8mode);绘制矩形的函数:VoidLCD_DrawRectangle(u16xl,ul6yl,u!6x2,u!6y2);系统显示界面如图人3。图43开机前的初始化界面图44使用时的主界面TFT触控液晶屏的触控局部程序流程如图4-5»图主5磁局部程序瀛?:图在初始化程序中主要执行TFr触控液晶模块和主控芯片连接的IO配置和中断初始化,触控芯片XPT2046与主控芯片采用模拟SPl通讯,接口MOSI、SCK、CS都设为推挽输出模式,SPl的MISo和触控标志PEN设置为上拉输入模式。此外还初始化了外部中断,当有畸动作时,触控动作产生的下降沿会触发中断,进而执行中断效劳函数11"o中断效劳函数中包括了键值扫描(根据触摸位置返回不同键值)和一些设置界面的标志位处理。在初始化完后还要进行触控点和液晶显示位置的匹配。每触摸一次屏幕,触控芯片XPT2046都会得出一个触控点坐标,液晶屏自身有像素坐标,这两个坐标之间的关系是线性的,因此计算公式如下:Xrj=X*Px+xofT:Yucb=Ytac*Py+yoff=式中的XlJeD和Ylm是液晶屏上的像素坐标;XfiC和Yfir是触摸屏上读出的触控点坐标;PX和Py分别为两坐标的比例系数;Xoff和yoflf是横向和纵向的偏移量。在程序工程中关于触控的主要功能函数如下:触控初始化函数:voidTauchJnit(Void):空点校准程序:voidConvert_Pos(void);触控键值扫描函数:u8touch_scan(Void)。4.2.2 WT588D语音模块局部在使用WT588D语音模块前需要将语音块下载到模块中,然后再通过主控芯片向WT588D芯片发送命令,WT588D调用flash的语音进而发音。本设计中使用语音合成软件合成09、十、百、千和各个商品等的读音,然后通过WiceChipV-B编译软件来建立语音工程,将各个语音块对应HaSh的固定地址,然后编译下载到WT588D语音模块中。XbiceChipV-B的语音工程如图4-60图6XbiceChipV-B建立的语音工WT588D语音模块与主控芯片之间采用一线串口通讯模式,主控芯片通过模块的DarA脚发送指令,从而控制WT588D芯片调用flash发某个音。一线串口通讯模式时序如图4-70图47WT588D时序图一线串口是只通过一条数据通信线控制时序,根据时序电平的占空比不同来代表0或L先拉低RESET复位信号5ms,然后置高电平等待大于17ms的时间,再将数据信号拉低5ms,最后发送数据。假设高电平与低电平的时间比为1:3那么彳味数据位0,3:1那么代表数据位1,且高电平在前,低电平在后,先发数据的低位再发高位。图牛7中DOD7表示一个地址或者命令数据,数据中的OOH-DBH是地址指令,F2H是循环播放命令,FEH是停止播放命令,EoHETH是音量调节命令。本设计的程序工程中WT588D模块的程序流程图如图牛8。图48WT588DS序流程图在初始化局部中设置主控芯片与WT588D模块相连接的IOU三WT588D模块的SDA、REST设置为上拉推挽输出模式,BUSY设置为上拉输入模式。当WT588D接收到指令后调用flash内的语音进行发音。程序中利用模块的BUSY信号来判断是否完成发音。根据WT588D模块的时序图编写写数据函数voidsend.dat(u8addr)(由于该模块与主控芯片的连接为单向,所以无需编写读数据函数),具体代码如下:voidSend_dat(u8addr)u8i;rst=O;delay_ms(5);复位信号保持低电平5msrst=1;delay_ms(l7);"复位信号保持低电平17mssda=O;delay_ms(5);/数据信号置于低电平5msfor(i=();i<84+)sda=l;/无论是1还是0sda都是先高电平if(addr&1)delay_us(600);/高电平比低电平为600us:200us,表示发送数据1sda=O;delay_us(200);elsedelay_us(200);/i电平比低电平为200us:600us,表示发送数据0Sda=0;delay_us(600);add>>=l;sda=l;将语音合成软件合成的语音碎片通过程序组织起来,形成语音。各函数功能如下:播报0-9999任意整数函数:voidpmnounce_num(u161):播报小数点后三位数函数:voidpronounce_point3num(u161);播报小数点后两位数函数:voidpronounce)Oint2num(u81)4.2.3 HX711芯片局部HX711是一个可编程多通道可选增益的A/D转换芯片。通过PD.SCK的脉冲个数来选择转换通道和增益,其时序如图4-9。图49HX711设置时序图其中TI为DOUT下降沿到PD_SCK脉冲上升沿的时间,最小值为0.1us;T2为PD_SCK脉冲上升沿到DOUT数据有效的时间,最大不能超过O.lus;T3为PD.SCK正脉冲电平时间,最小为0.2us;T4为PD-SCK负脉冲电平时间,最小为0.2us。HX711程序流程如图牛10。图4J0HX7U程序流程图在初始化程序中完成主控芯片与HX711芯片连接的IO口配置。HX711芯片的PD_SCK设置为推挽输入,DOUT设置为上拉输入。程序工程中HX711的初始化函数为疝dHX711Jn1(而。根据HX711芯片的时序图编写写数据函数u32Read_HX711(void)(由于该芯片只需发数据给主控芯片,所以无需编写写入数据的函数)具体函数代码如下:u32Read_HX71l(void)u32count=O;u8i;AD-Sck=O;WhiIe(AD_dout);/AD_dout为1时说明A/D转换器还未准备好for(i=0;i<24;i+)AD_sck=l;U÷沿count=count<<l;AD_sck=O;if(AD_dout)count+;AD_sck=1;count=count0x800000;AD_sck=O;returncount;4.2.4 DS18B20芯片局部DS18B20通过单总线和主控芯片连接,时序比拟复杂。DS18B2O局部的程序流程如图41L图4-11DS18B2O程序流程图在初始化中主要完成主控芯片与DS18B20相连的数据引脚的时钟的开启和复位DS18B20o在初始化完后检测DS18B20是否正常,椅测DS18B2O是否存在的时序如图4-12«图牛12DS18B20检测时序首先由主控芯片拉低总线480us960us,然后等待15us-6Ous,之后芯片自己会拉低总线,主控芯片通过检测是否有低电平来判断DS18B20是否存在,具体代码如下叫u8DS18B20_Check(void)u8retry=O;DS18B20JO-IN()SETPAOINPUTwhile(DS18B20一DQjN&&retry<200)retry+;delay_us(l);;if(retry>=200)retum1;elseretry=O;while(!DS18B20_DQ_IN&&retry<240)retry+;delay_us(l);if(retry>=240)return1;elseFetUm0;该函数返回1那么总线上没有DS18B20,返回0那么有。DS18B20的写时序如图4/3。图4I3DS18B2O写时序如果要写"0"那么主控芯片拉低总线60us120us,在开始拉低总线15us后DS18B2O会开始检测总线状态,此时会检测到低电平13L如果要写"1"那么至少拉低总线IUS后释放总线即可,之后DS18B2O会检测总线状态。写两位数据的间隔要大于1uSoDS18B20的写函数voidDS18B20_Write_Byte(u8dal)具体代码如下:voidDS18B20_Write_Byte(u8dai)u8j;u8testb;DS18B20_IO_OUT(»/SETR0OUTPUT;for(j=lj<=8j+)testb=dat&0x01;dat=dat>>l;if(testb)DS18B20_DQ_OUT=0/Write1delay_us(2);DS18B20_DQ_OUT=1;delay-us(60);elseDS18B20_DQ_OUT=0/Write0delay一us(60);DS18B20_DQ_OUT=I;delay_us(2);DS18B20的读时序如下列图414。图全14DSI8B20读时序首先主控芯片先拉低总线至少Ius,然后释放总线并检测总线状态,如果是低电平那么读到的是"0",高电平那么读到的是"1",读两个值之间间隔至少IUSu4本例中读函数u8DS18B20_Read_Bit(VOid)和u8DS18B20_Read_Byt