智能电子秤课程设计报告_第1页
智能电子秤课程设计报告_第2页
智能电子秤课程设计报告_第3页
智能电子秤课程设计报告_第4页
智能电子秤课程设计报告_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程〔设计〕〔设计目〕题:智能电子秤学院:明德学院专业:机械设计制造及其自动化班级:机电12151学号:学生姓名:指导教师:2015年6月20日贵州大学单片机课程〔设计〕诚信责任书本人郑重声明:本人所呈交的课程设计,是在指导老师的指导下独立进行研究所完成。在文本设计中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。特此声明。课程〔设计〕作者签名:日期:智能电子称摘要现代社会随着人们生活水平的提高,人们对自己的身体健康越来越关注,而体重又是衡量身体健康与否的一个重要标准,因此用一台体重计定期测量自己的体重是很必要的。传统的体重秤是仪表形式的,不仅测量的误差比拟大,而且读数很不方便,体积上会占用更多的空间。因此一款便携,易操作,测量精度高的体重秤就很能满足人们的需求。本文以松翰SN8P1937单片机为核心,基于Auto-Run功能,当待测重量到达体重秤的开机重量时便开始称重,不像以前的体重秤要用脚踩脚踏开关才能开始称重。该单片机内部集成了16位的AD转换功能,可编程增益放大器,液晶驱动等丰富的片内资源。该系统只有在称重的时候在正常模式工作,此时会翻开硬件资源,其他时间都工作在绿色模式,绿色模式芯片的电流只有几个微安,因此,该款体重秤非常省电,有很好的实用性和环保性。该设计分为硬件设计和软件设计两大局部。硬件设计局部分为:LCD显示局部,压力信号采集与转变,EEPROM,低电压检测模块和局部按键。由于压力传感器的输出信号是非线性的,所以如果利用线性的处理方法有很大误差,使测量结果不准。因此采用分段线性的方法完成AD转换局部和放大电路局部的设计。软件局部先完成各个模块的底层驱动,然后完成应用层的设计,最终使系统到达预期的结果。关键词:体重秤,SN8P1937,Auto-Run功能,压力传感器IntelligentelectronicAbstractModernsociety,aspeople'slivingstandardsimproved,peoplebecomeincreasinglyconcernedabouttheirhealth,asweightisanimportantfactorwhetherhealthyornot.Itisimportantforpeopletouseascalestomeasuretheirweight.Thetraditionalformofinstrumentscalesarenotonlyrelativelylargemeasurementerrors,butalsonoteasyreading,andvolumeofthescaleswilltakeupmorespace.Soaportable,easyoperating,highprecisionscales,clearlymeettheneedsofthepeople.Inthispaper,SonixSN8P1937MCUcore,basedonAuto-Runfeature,itworkswhenweighttestedreachestheminimumoftheweighingscales,unlikethepreviousofweighingscalesusefootpedaltobegincounting.TheMCUintegratesa16-bitADconversion,programmablegainamplifiers,LCDdriverrichon-chipresourcesandsoon.Thesystemonlyweighingwheninnormalmode,openthehardwareresources,theothertimeworkinginthegreenmode,greenmodeonlycostafewmicroampsofcurrent,sothiskindofweighingscalesisverypowersavingsandhaveagoodpracticalandenvironmentalprotection.Thedesignisdividedintotwoparts,hardwaredesignandsoftwaredesign.Thepartofhardwaredesignisdividedinto:LCDdisplaypart,thepressuresignalacquisitionandchange,EEPROM,lowvoltagedetectionmoduleandsomebuttons.Asthepressuresensoroutputsignalisnonlinear,soifthelinearapproachwillcauseerror.ThemethodusedpiecewiselineartocompletethepartofADconversionpartandthedesignofamplifiercircuit.Atfirst,softwarepartcompletethebottomdriverofeachmodule,andthencompletethedesignofapplicationlayer,eventuallythesystemtoachievethedesiredresults.KEYWORDS:WeighingScale,SN8P1973,Auto-RunFunction,PressureSensor目录诚信责任书II摘要IIIAbstractIV1绪论11.1引言11.2称重技术和衡器的现状和开展趋势21.3体重秤的研究现状和开展趋势31.4课题提出的背景和意义41.5课题的主要工作及论文结构安排42体重秤功能与操作方法62.1体重秤的功能62.1.1称重62.1.2零点校正62.1.3分段校正72.1.4增益设置72.1.5AD采样速率设置72.1.6AD参考电压设置72.1.7LCD参数设置72.2体重秤的操作72.3本章小结83系统总体设计93.1系统方案选择93.2单片机选择113.3传感器选择15显示器件选择18本章小结184系统硬件设计194.1单片机外围硬件电路设计194.2传感器电路204.3液晶驱动电路设计214.4键盘电路设计234.5EEPROM外围电路设计244.6通道转换和自动增益电路264.7电池低电压检测电路274.8AD外围电路设计294.9系统总体电路图31315系统软件设计325.1系统软件总体架构设计325.1.1底层驱动层325.1.2介面层335.1.3应用层335.2单片机模式切换335.3系统主程序设计345.4LCD驱动子程序的设计35365.6AD子程序的设计375.7键盘扫描子程序的设计385.8数据处理子程序设计395.9初始化找平衡程序414343466总结47致谢48参考文献49附录总体硬件电路图501绪论随着时代科技的迅猛开展,微电子学和计算机等现代电子技术的成就给传统的电子测量与仪器带来了巨大的冲击和革命性的影响。常规的测试仪器仪表和控制装置被更先进的智能仪器所取代,使得传统的电子测量仪器在远离、功能、精度及自动化水平定方面发生了巨大变化,并相应的出现了各种各样的智能仪器控制系统,使得科学实验和应用工程的自动化程度得以显著提高。作为体重测量仪器,电子体重秤以其测量的准确性和高速性开始逐渐取代传统的仪表体重秤,成为测量体重领域的主流产品。1.1引言重量是测量领域中的一个重要参数,称重技术自古以来就被人们所重视。公元前,人们为了对货物交换量进行估计,起初采用木材或陶土制作的容器对交换货物进行计量。以后,又采用简单的秤来测定质量。据考证,世界上最古老的计量器具出土于中东和埃及,最古老的衡器和砝码出自于埃及。秤是最普遍、最普及的计量设备,电子秤取代机械秤是科学技术开展的必然规律。低本钱、高智能化的电子秤无疑具有极其广阔的市场前景。现在能源危机越来越严重,节能问题越来越被别人关注,功耗越低就越受欢送。现在电子产品越来也多,给人们的生活提供很多方便,体重秤作为电子秤的一个分支在人们的日常生活中扮演着越来越不可或缺的角色。体积小,易操作,易读数,测量精度高,耗电低的体重秤肯定会更加受到人们的青睐。本设计就是满足上面需求的一种体重秤,采用16位的AD转换,使得测量精度更高;整个秤体积很小,方便携带;采用液晶显示方便使用者读数;通过按键可以切换单位;系统上电后就运行在绿色模式下,内部的高速时钟关闭,所有的硬件资源也关闭,这样电流只有5uA左右,非常省电。系统每隔1s从绿色模式唤醒一次,当系统检测到重物的重量到达开机重量后便开始进入正常工作模式工作,这样不仅很省电而且其自动开机功能让操作简化。1.2称重技术和衡器的现状和开展趋势衡器是通过作用于被测量物体的重力来确定该物体质量的计量器具。在整个衡器的开展过程中,先后主要出现了六种类型的衡器:架盘天平、不等臂平台秤、吊车秤、倾斜象限杆秤、弹簧秤和自动秤。其中,不等臂平台秤〔“十进秤”〕是当今动态轨道衡的鼻祖,至今它仍是最通用的一种秤。50年代中期电子技术的渗入推动了衡器制造业的开展。60年代初期出现机电结合式电子衡器以来,经过40多年的不断改良与完善,我国电子衡器从最初的机电结合型开展到现在的全电子型和数字智能型。我国电子衡器的技术装备和检测试验手段根本到达国际90年代中期的水平。电子衡器制造技术及应用得到了新开展。电子称重技术从静态称重向动态称重开展:计量方法从模拟测量向数字测量开展;测量特点从单参数测量向多参数测量开展,特别是对快速称重和动态称重的研究与应用。但就总体而言,我国电子衡器产品的数量和质量与工业兴旺国家相比还有较大差距,其主要差距是技术与工艺不够先进、工艺装备与测试仪表老化、开发能力缺乏、产品的品种规格较少、功能不全、稳定性和可靠性较差等。通过分析近年来电子衡器产品的开展情况及国内外市场的需求,电子衡器总的开展趋势是小型化、模块化、集成化、智能化;其技术性能趋向是速率高、准确度高、稳定性高、可靠性高;其功能趋向是称重计量的控制信息和非控制信息并重的“智能化”功能;其应用性能趋向于综合性和组合性。我国的电子衡器要打入国际市场。参与国际竞争。就必须执行国际法制计量组织制定的国际建议并要有国际水平的技术与装备、有国际水平的质量。这就要求企业以技术为先导、以质量为中心、以管理为根底,努力提高制造技术与制造工艺水平,稳定产品质量。增强国际市场竞争能力。1.3体重秤的研究现状和开展趋势体重是人体健康的一个重要指标,所以人们对体重秤的要求也越来越高,从传统的杠杆式到现在的高精度,易操作体重秤,体重秤正在随着人们的需求不断更新。现在我们可以见到的体重秤有指针式的,和用LCD显示的。随着人们对精度和测量速度的要求,电子体重秤有广阔的前景。目前市面上的体重秤做到了占用空间少,操作方便,测量精度高等根本的测量功能,但是集多功能为一体的体重秤将会是未来开展的一个趋势。智能化和多功能化是体重秤开展的主要方向。各种新技术、新器件、新理论的出现和计算机网络的飞速开展,必将给体重秤的开展和应用提供广阔的天地。目前应用比拟广泛、技术比拟成熟的智能化电子秤已经得到了广泛应用,该系统已经能够集体重测量,身高测量,与PC机通信及数据分析等功能于一体。随着今后技术的开展,智能化的普及以及系统复杂程度不断增加,体重秤一定会有越来越广泛的开展前景。可以通过更多的传感器测量人体的血压,脂肪,体重,身高等。并通过串口通信与PC机进行通信,通过PC机将接收到得数据进行分析和比拟,然后结合一些医学常识可以做一个专家系统。将你自身的数据进行分析,经过专家系统分析后反响给用户他自身的状况,提醒他应该注意的事项。这样就可以自己在家里对自己的身体进行实施监控。随时关注自己身体健康。特别是对有老人的家庭,这样的系统更是必不可少。在我国,集多能于一体的体重秤还并没大量普及。可以预见,多功能,智能化体重秤技术必将随着我国相关技术的开展而逐步完善和成熟,广泛地使用在家庭生活中,将会为提高我国的人民的身体素质及延长平均寿命做出巨大奉献。[1]1.4课题提出的背景和意义在欧洲国家,人们很注意自己的健康状况,体重秤成了每家必备的工具,人们可以搭配自己的饮食结构,使其更加的合理。随着我国经济的开展,人民生活水平的提高,人们也开始注意自己的饮食结构和生活质量,我国市场对各种各样的电子秤的需求也越来越旺盛,但是我国体重秤产品的数量和质量与工业兴旺国家相比还有较大差距,产品的品种规格较少、功能不全、稳定性和可靠性较差等问题一直困扰着我们,针对如此强大的市场需求,对体重秤的深入研究成了一种开展趋势。而目前市场上的体重秤采用的是指针式的显示方式,测量不准确,精度不够高,只能给出模糊的测量结果,系统的稳定性和抗干扰性能也很差而且系统的功耗高,不利于节能环保。当然也有一些高档的体重秤,采用LCD显示,转换精度也很高,系统的各项性能和功能也很优越,但是价格又很高,所以就需要设计一款高精度低本钱,高性价比的体重秤,本文就是基于此目的,以普通称重系统为例,设计出了一款最大称重150KG,最小起秤重量2KG,低功耗,高可靠性的体重秤。1.5课题的主要工作及论文结构安排体重秤主要从系统的整体设计、方案选择和各模块的软硬件实现来说明。在系统的整体设计和方案选择中对系统选用的各种芯片进行了说明,主控芯片选用的是SONIX公司的SN8P1937芯片,该芯片带有一个内部的16bitAD转换器、一个可编程增益放大器、一个多路开关、内置的温度检测电路和低电压检测电路,所以硬件的设计变的非常的简单,EEPROM选用的是ATMEL公司的AT24C02。在各个模块电路的实现中,软件设计是本次设计的重点。论文结构安排如下:第一章为绪论,主要介绍课题的背景,分析了体重秤的意义和需求,体重秤的开展现状,并依此总结了提出本课题的必要性和以后的工作安排。第二章对体重秤功能进行讲解,主要对它具有的功能和它的操作过程进行了详细的描述。第三章为系统总体方案的设计,它主要从系统方案选择,单片机选择以及传感器的选择对系统的设计方案进行确定。第四章为系统的硬件设计局部,首先讲述了SN8P1937的外部电路,由于SN8P1937具有强大的片内外设,所以在硬件设计的时候只需要按着该芯片的外部电路的要求进行设计即可,其次对各外设电路进行了设计,如键盘电路、EEPROM电路。第五章为系统的软件设计局部,这局部是整个系统的重点,由于主控芯片SN8P1937的选择使得整个系统的硬件电路变的简单同时它的软件设计就变的复杂,这局部主要分为LCD驱动程序的设计、键盘子程序的设计、AD子程序的设计、电池低压检测子程序的设计、校机子程序,初始化找平衡子程序和数据处理子程序的设计。第六章为总结。对全文做了总结,讲述了该系统最终实现的功能。2体重秤功能描述与操作方法2.1体重秤的功能本系统是基于松翰1937单片机设计的,该单片机有丰富的片内资源,在下一章中将会详细介绍。该单片机有四种工作模式:正常模式,绿色模式,低速模式,睡眠模式。绿色模式是一个低功耗模式。在绿色模式下,只有定时器可以继续工作,其他的硬件资源都已经停止工作,外部高速/内部低速振荡器仍在工作,芯片工作电流降低至5uA〔3V〕,可通过设定T0来确定系统的唤醒时间,也可以由P0/P1的电平触发信号立即唤醒。在本系统中,采用T0来唤醒,唤醒的时间间隔为1s。系统上电之后便工作在绿色模式下,每1s唤醒一次,进入正常工作模式,检测待测重物的重量是否到达开机重量〔5kg〕,如果没有到那么继续进入绿色模式。当重物的重量到达5kg的时候,系统进入到正常工作模式,此时硬件资源可以正常工作。该体重秤系统具有自动开机功能,而且功耗低很低。可测量的最大重量为150kg,最小测量重量为2kg。当电池电压低于单片机工作电压或待测物体重量超量程的时候系统会报警,提醒用户。在本次设计中,体重秤的性能可以从以下几局部说明。称重体重秤在检测到有压力信号的时候自动开机,在应变片上将重物产生的压力转换成电压信号,送到AD转换器进行转换,最后将人体的体重显示在液晶屏上。零点校正体重秤在每次开机的时候,会读取当前状态的AD转换的值,并同时将该值记录为零点的AD值,本次开机的测量均是以此为基准。分段校正由于传感器的传输曲线不是线性的,而是呈现出抛物线的特性,为了保证称重的精度要求,就需要对该传输曲线进行分段线性,使其与传感器的传输曲线到达更好的拟合。增益设置在称重的过程中可以根据待测物的重量,改变可编程增益放大器的放大倍数。来到达准确测量。2.1.5AD采样速率设置根据采样定理,为了消除混叠干扰,采样速率最小为2倍的信号的速率,以不同的速率采样信号,可以滤除不同频率的杂波,所以可以根据实际应用的情况选择适当的采样速率,使信号更加准确的被转换。2.1.6AD参考电压设置不同的传感器需要不同的参考电压,为了增强系统的可扩展性,使系统适应不同的传感器,可以设置AD的参考电压的值。LCD参数设置LCD的偏压选择、驱动的输出时钟速率和时钟源也是可以控制的,对不同的LCD可以选择相应的偏压和驱动时钟速率,使得系统可以适应不同的LCD屏,增强了系统的可扩展性。2.2体重秤的操作以上介绍了体重秤的根本功能,下面介绍体重秤的操作过程,为以后的软件提供参考:(a)当有负载时体重秤会自动开机,开机即可称重。(b)当称重数据稳定后,重量会闪烁3次后锁定,此时数据为有效读数。(c)称重稳定后不会自动解锁,重量保持显示6秒后关机,要重复称重必须在约6秒内离秤后在继续,每次称重结束会抓取零点。(d)系统上电显示零点的内码值。(e)切换单位的I/O口,电平变化,抓取稳定的零点,然后进入50KG校正点。显示50KG闪烁。(f)当内码较零点内码超出3000后,那么显示由50KG闪烁切换到内码显示。稳定后进入100KG校正点。显示100KG闪烁。(g)当内码较50KG稳定点的内码超出3000后,那么显示由100KG闪烁切换到内码显示。稳定后进入150KG校正点。显示150KG闪烁。(h)当内码较100KG稳定点的内码超出3000后,那么显示由150KG闪烁切换到内码显示。稳定后写入EEPROM,然后提示PASS后进入正常称重模式。2.3本章小结本章主要介绍了体重秤的功能和操作方法,软件操作将上述功能通过软件的方式描述出来,再加上一些外围电路便可以实现上述功能。3系统总体设计3.1系统方案选择体重秤的应用系统是由硬件和软件所组成,硬件是指单片机、扩展的存储器、输入输出设备等;软件局部是各种工作程序的总称。硬件和软件只有紧密结合、协调一致才能提高系统的性能价格比。设计硬件的时候应该考虑软件的设计方法,而软件的设计方法是根据硬件原理和系统的功能要求进行的。按照设计的根本要求,系统可分为三大模块:数据采集模块,控制器模块,人机交互界面模块。数据采集模块由压力传感器、信号的前级处理和AD转换局部组成。转换后的数字信号送给控制器处理,由控制器完成对数字量的处理。驱动显示模块和键盘完成人机间的信息交换。在系统设计时,针对各个模块的功能来设计体重秤的方案有以下几种:方案一:此方案是最简单的设计方案,将压力传感器的压力信号通过模数转换送入单片机,单片机对信号处理后送去显示。结构原理图为:图3-1方案一的结构原理图此方案就是最根本的数据采集,简单可行。可以利用单片机内部自带的AD转换功能进行数据的转换。该方案的硬件简单,软件在编写上也不复杂。但是功能单一,只能显示,没有输入接口。该系统的电路可扩展性不好,体重秤的功能过于单一,采集到的信号的抗干扰能力不强,所以达不到设计的标准。方案二:由于上一个方案存在没有输入,信号的抗干扰能力不强的缺点,所以本方案中在前一个方案的根底上增加了键盘输入装置,并在电路的前段加上信号调理电路。结构原理图为:图3-2方案二的结构原理图此方案的优点是可以通过按键进行单位的转换,由于使用习惯的不同人们习惯用的测量单位,这样的设计就更加人性化。因为采集到的信号一般都很微弱,如果在遇到干扰的时候可能会导致测量结果的错误,因此采集到电信号后,对电信号进行放大,滤波。增强系统的抗干扰能力,系统的稳定性会有所提高,让显示的数据也更加准确。此方案的缺点是电路较复杂,系统的硬件本钱会增加。方案三:第二种方案已经实现了体重秤的根本功能,但是仍然有一些缺乏,例如当电池用完时应该提示用户及时更换电池,保存体重秤系统自身的一些信息等。这样就需要一个低电池检测电路和EEPROM模块。结构原理图为:图3-3方案三的结构原理图此方案的优点是功能完善,而且操作方案,在上一个方案的根底上增加了一些更加人性化的设计,当电池的电量低于目以设定的值时,系统会报警提醒用户更换电池。此外,加上EEPROM后系统的可扩展性大大提高。此方案的缺点是硬件电路复杂,硬件本钱较高。但是该系统在可靠性,扩展性等方面做得很好,因此该方案可以到达设计的要求。3.2单片机选择当前市场上的单片机有51系列,PIC的单片机,考虑到设计要求,就需要找到一款内部带高精度的AD转换器,最好还有可编程增益放大器,电源电压是有电池提供的,所以这款单片机最好还要有电池低压检测功能,显示的时候一般用的都是液晶显示,也希望将液晶显示的驱动也带有,而这些功能全部是集成在芯片内部的,这样整个系统的稳定性和可靠选择性将大大的提高,同时系统的整个设计的规模也将大大减少。基于以上考虑,我选择了SONIX公司的SN8P1937作为主控芯片,该芯片能够在低电压下以超低功耗状态工作;其控制器具有丰富的片内外设,图3-3给出了该单片机的引脚图,该单片机的特点如下:(a)存储器配置OTPROM:2K*16bits、RAM:128*8bits(bank0)、8层堆栈缓存器LCDRAM:4*12bits。(b)I/O引脚配置单向输入引脚:P0;双向输入输出引脚:P1、P2、P5;具有唤醒功能的引脚:P0、P1;内置上拉电阻:P0、P1、P2、P5;外部中断:P0。(c)功能强大的指令集一个指令周期为4个时钟周期、所有的指令均为一个字长、大局部指令只有一个周期、指令的最长周期为2个指令周期、JMP指令可在整个ROM区执行、查表功能〔MOVC〕可寻址整个ROM区。(d)可编程增益放大器增益可选选项:1x/16x/32x/64x/128x(e)16-bitDelta-SigmaADC,具有14位精度 ADC的增益可选项:1x/2x/4x2个ADC信道配置:1个全差分通道、2个单端输入通道。(f)两个中断源两个内部中断:T0、TC0,一个外部中断:INT0。—5.5V。(h)内置看门狗定时器(i)regulator(k)LCD驱动:1/3或1/2偏压、4common*12segment。(l)双重时钟提供4种操作模式外部高速时钟:晶体,最大8MHz内部高速时钟:16MRC正常模式:上下速时钟均可运行低速模式:仅低速时钟运行睡眠模式:上下速时钟均停止运行。MCU的内部结构图,如图3-4所示:图3-4SN8P1937的总体架构由图3-4可以看出,SN8P1937包括CPU、RAM、ROM、Chargrpump、Regulator、PGIA、16bit的ADC等各种片内外设。CPU即为中央处理单元,是整个单片机的中枢。它由算术逻辑单元(ALU)、控制单元和装用存放器组3局部组成。算术逻辑单元ALU是一个极强的运算器,不但可以进行简单的算术运算和逻辑运算,还具有数据传送、移位、判断和程序转移等功能。它为用户提供了精简的指令系统和极快的指令执行速度,大局部指令执行只需要1个时钟周期。控制单元起着控制器的作用,由时序发生器、指令存放器和振荡器等电路组成。指令存放器用于存放从程序存放器中取出的指令码,经过定时控制逻辑进行译码,并在时钟脉冲的配合下产生执行指令的时序脉冲,以完成相应的指令的执行。时钟发生器是控制器的心脏,能为控制器提供时钟脉冲。在SN8P1937芯片中,时钟可以有两种产生方式:一种是片内RC电路产生;另一种是外接晶振或RC振荡器。振荡脉冲经过分频后,产生时钟脉冲。其频率是单片机的重要指标之一,时钟频率越高,单片机的速度也就越快,同时单片机的稳定性也就越差。专用存放器组是与CPU密切相关的一组存放器,主要用来指示要执行的指令的内存地址、存放操作数和指示指令执行后的状态等。图3-5SN8P1937的引脚图引脚说明如表3-1表3-1SN8P1937引脚说明引脚名称类型说明VDD,VSS,AVSSP数字/模拟电路电源输入端VLCDPLCD电源输入端V2,V3PLCD偏置电压V1PLCD偏置电流激活/无效控制端AVDDRPRegulator电源输出引脚,V=2.4V,AVE+P传感器的Regulator输出=1.5V,最大输出电流为10mAACMPR+AIADC参考源输入的正极R-AIADC参考源输入的负极X+AIX-AIADC差分输入的负极AI+AI模拟输入通道的正极AI-AI模拟输入通道的负极CL+Achargepumpregulator电极电容的正极CL-Achargepumpregulator电极电容的负极VPP/RSTP,IOTPROM编程引脚系统复位输入端,施密特结构,低电平有效,通常保持高电平XIN/LXIN/P20I,O外部高速时钟振荡器引脚(4M)/外部低速时钟32768HZ晶振引脚/与P20共用IO口XOUT/LXOUT/P21I,O外部高速时钟振荡器引脚(4M)/外部低速时钟32768HZ晶振引脚/与P21共用IO口IP0.0和INT0引脚共用〔施密特结构〕/内置上拉电阻P1[3:0]I/OP2[1:0]I/OP5[2:0]OP5.0~P5.2单向输出引脚LBTIN1/2ICOM[3:0]OCOM0~COM3LCD驱动COM端SEG0~SEG11OLCD驱动segment引脚由SN8P1937的特点可以看出,它丰富的片内外设将大大简化我的设计,所以基于SN8P1937单片机的体重秤的结构框图,就可以简化为图3-6。图3-6基于SN8P1937单片机的体重秤的结构框图3.3传感器选择传感器是指能感受规定的被测量,并按照一定规律转换成可用输出信号的器件或装置。通常传感器有敏感元件很热转换元件组成。其中敏感元件指传感器中能直接感受被测量的局部,转换局部指传感器中能将敏感元件输出量转换为适用于传出和测量的电信号局部。对于体重秤系统来说,传感器的选择尤为重要。可供选择的方案有:方案一:压电传感器压电传感器是一种典型的有源传感器,又称自发电传感器。其工作原理是基于默写材料受理后在其相应的特定外表产生电荷的压电效应。压电传感器体积小、重量轻、结构简单、工作可靠,适用于动态力学亮的测量,不适合测量频率太低的被测量,更不能测静态量。目前多用于加速度和动态力或压力的测量。压电器件的弱点是:高内阻、小功率。功率小,输出的能量微弱,电缆的分布电容及噪声干扰影像输出特性,这对电路要求很高。方案二:电容式传感器电容式传感器是将被测非电量的变化转换为电容变化的一种传感器。它有结构简单、灵敏度高、动态响应好、可实现非接触测量、具有平均效应等优点。电容传感器可用来检测压力、力、位移以及振动学非电参量。电容传感器的根本工作员立刻用最普通的平行极板电容来说明。两块相互平行的金属极板,当不考虑器件边缘效应〔两个极板边缘处的电力线分布不均匀引起电容量变化〕时,其电容量为C=ε1ε2A/d (3-1)在式〔3.1〕中:d两极板间的距离;A两平行极板相互覆盖的有效面积;ε1介质的相对介电常数;ε2真空中的介电常数。虽然电容式传感器有结构简单和良好的动态特性等诸多优点,但也有不利因素:(a)功率小,阻抗高。受几何尺寸限制,电容传感器的电容量都很小,一般为几皮法至几十皮法。因为C太小,故容抗很大,为高阻抗元件,负载能力差。由于C很小,功率也很小,因此容易受外界干扰,信号须经放大,并采取抗干扰措施。(b)初始电容很小,电缆电容、线路的杂散电路所构成的寄生电容影响很大。方案三:电阻应变式传感器电阻应变式传感器是一种利用电阻应变效应,将各种力学量转化为电信号的结构性传感器。电阻应变片是电阻应变式传感器的核心元件,其工作原理是基于材料的电阻应变效应,电阻应变片既可单独作为传感器使用后,又能作为敏感元件结合弹性元件构成力学量传感器。导体的电阻随着机械形变而发生变化的现象叫做电阻应变效应。电阻应变片把机械应变先转换为△R/R后,由于应变量及相应电阻变化一般都很微小,难以直接精确测量,且不便处理。因此,要采用转换电路吧应变片的△R/R变化转换成电压或电流变化,其转换电路常用测量电桥。 直流电桥的特点是信号不会受各元件和导线的分布电感及电容的影响,抗干扰能力强,但因机械应变的输出信号小,要求采用高增益和高稳定性的放大器放大。 应变片式传感器有如下特点:应用和测量范围广,应变片可制成各种机械量传感器。(b)分辨力和灵敏度高,精度较高。(c)结构轻小,对试件影响小,对复杂环境适应性强,可在高温、高压、强磁场等特殊环境中使用,频率响应好。(d)商品化,使用方便,便于实现远距离,自动化测量。通过以上对传感器的比拟分析,最终选择了第三种方案。考虑到要测量的体重的量程,精度和防止超重损坏传感器等因素。传感器的量程必须大于体重秤的额定量程。电阻应变式传感器完全满足本系统的精度要求。3.4显示器件选择方案一:数码管显示数码管显示直观易懂,但是只能显示数据,不能显示文字或图像。数码管比拟廉价,驱动电路简单,寿命较长,且不易出现故障,但在背景光较强的时候显示不清晰,耗电比拟高。不符合本系统低功耗的设计原那么。方案二:液晶显示液晶显示显示功能比拟强大,除可以显示数字外,还可以显示文字和图像。液晶显示的价格也不贵,但是功耗很低,抗干扰能力强,并且所选芯片自带液晶驱动能力,因此,本设计中采用液晶显示。液晶的显示是由于在显示象素上施加了电场,这个电场由显示像素前后两电极上的电位信号合成产生。在显示像素上建立直流电场相对容易,单相的直流电场会导致液晶材料的化学反响以及电极老化,降低液晶的显示寿命,因此必须建立交流驱动电场。一般地,由于采用了数字电路驱动,这种交流电场是通过脉冲电压信号来建立的。3.5本章小结本章对系统的方案进行了论证,对系统的主控制器芯片、传感器的类型及显示器件进行了选择,最终确立以SONIX公司的SN8P1937作为主控制芯片,以电阻应变式传感器为信号采集的器件,以液晶作为显示器件,设计出了系统的结构框图,这对以后的各模块化的设计指明了方向。4系统硬件设计上一章中对系统的整体方案进行了阐述,本章将详细说明各个模块电路的原理及设计方法。系统的自动开机功能是在指将系统从绿色模式唤醒后,在正常模式下进行重量的测量和显示。绿色模式是通过存放器设置的,具体将会在软件局部介绍。4.1单片机外围硬件电路设计单片机的外围电路包括复位电路和振荡电路两局部。典型的外部复位电路有一下几种:(a)根本RC复位电路 (b)二极管&RC复位电路图4-1典型的外部复位电路图4-1中(a)图为一个根本的由电阻R1和电容C1组成的RC复位电路,它在系统上电的过程中能够为复位引脚提供一个缓慢上升的复位信号。这个复位信号的上升速度低于VDD的上电速度,为系统提供合理的复位时间,当复位引脚到达高电平时,系统复位结束,进入正常工作状态。图4-1中(b)图R1和C1同样是为复位引脚提供输入信号。二极管的作用是当电源掉电的时候,电容上的电荷可以通过电阻R快速放电,从而保证系统再次上电时的正常复位。对于不同应用需求,选择适当的分压电阻。MCU复位引脚上电压的变化与VDD电压变化之间的差值为0.7V。如果VDD跌落并低于复位引脚复位检测值,那么系统将被复位。如果希望提升电路复位电平,可将分压电阻设置为R2>R1,并选择VDD与集电极C之间的结电压高于0.7V。分压电阻R1和R2的电流稳定,在功耗电路如直流电源系统中,此处的功耗必须计入整个系统的功耗中。本系统的复位电路较为简单,采用普通的电阻电容式电路即可,复位电路的电路图为:图4-2复位电路SN8P1937是一个双时钟系统:高速时钟和低速时钟。高速时钟由外部振荡电路或内置16MHz高速RC振荡电路产生。低速时钟那么由内置低速RC振荡电路产生,上下速时钟都可以作为系统时钟,当系统工作在低速模式下时,时钟信号4分频之后作为系统指令周期Fcpu。本设计中采用内部时钟提供振荡。正常模式下是内部高速时钟提供振荡,绿色模式下是由内部低速时钟提供振荡的。4.2传感器电路电阻应变式传感器由弹性敏感元件、电阻应变计、补偿电阻和外壳组成,可根据具体测量要求设计成多种结构形式。弹性敏感元件受到所测量的力而产生变形,并使附着其上的电阻应变计一起变形。电阻应变计再将变形转换为电阻值的变化,从而可以测量力、压力、扭矩、位移、加速度和温度等多种物理量。常用的电阻应变式传感器有应变式测力传感器、应变式压力传感器、应变式扭矩传感器〔转矩传感器〕、应变式位移传感器〔位移传感器〕、应变式加速度传感器〔加速度计〕和测温应变计等。电阻应变式传感器的优点是精度高,测量范围广,寿命长,结构简单,频响特性好,能在恶劣条件下工作,易于实现小型化、整体化和品种多样化等。它的缺点是对于大应变有较大的非线性、输出信号较弱,但可采取一定的补偿措施。因此它广泛应用于自动测试和控制技术中。图4-3传感器接口电路4.3液晶驱动电路设计SN8P1937作为一种新型的8位微控制器,其内置4*12〔48点〕LCD驱动器,可直接驱动段位式液晶显示屏,而不用添加专用芯片,接口电路简单。本系统使用SN8P1937内部的LCD驱动器来驱动面板上的液晶显示屏,硬件电路将在本节中详细介绍。由于SN8P1937有内置的LCD驱动器,驱动包括4个common引脚和12个segment引脚,LCD扫描的时序占用1/4占空比,1/2或者1/3偏压,共有48点驱动。相关存放器只有LCDM1存放器。如表4-1所示:表4-1LCD存放器089HBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0LCDM1--LCDBNK-LCDENBLCDBIASLCDRATELCDCLK--R/W-R/WR/WR/WR/W复位后--0-0011Bit5:LCDBNK:LCD显示控制位0=正常显示1=关闭LCD.Bit3:LCDENB:LCD驱动使能存放器0=禁止1=使能Bit2:LCDBIAS:LCD偏压选择位0=LCD的偏压是1/3 1=LCD的偏压是1/2Bit1:LCDRATE:LCD时钟速率控制位〔LCDCLK=1〕0=LCD时钟=内部RC/641=LCD时钟=内部RC/32Bit0:LCDCLK:LCD时钟源选择控制位.0=LCD时钟=外部时钟/2^14,帧比率=LCD时钟/41=LCD时钟=内部RC/32〔LCDRATE=1〕或者内部RC=64(LCDRATE=0) 根据硬件需求设置相应的功能,显示局部对应的原理图为:图4-4液晶显示接口电路4.4键盘电路设计键盘是单片机应用系统中是一个关键的部件,它能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。键盘分两大类:编码键盘和非编码键盘。编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生一个选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘易于使用,但硬件比拟复杂,对于主机任务繁重的情况,采用可编程键盘管理接口芯片构成编码式键盘系统。非编码键盘:只简单地提供键盘的行列与矩阵,其他操作例如键的识别,决定按键的读数等仅靠软件完成,故硬件较为简单,但占用CPU较多时间。常见的有:独立式按键结构、矩阵式按键结构。非编码式键盘可分独立式键盘和行列式键盘两种:独立式键盘中,每个键占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其它I/O口线上的状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,I/O口线浪费较大,且电路结构显得繁杂。故这种形式适用于按键数量较少的场合;行列式键盘又称矩阵式键盘,设计4行4列16个键,只占用8根I/O口线,所以键数目较多时,可节省I/O口线。这种结构的软件较繁琐。由于本次设计中需要的按键操作很少,MCU的资源很丰富,所以在设计中用了独立式按键,S1接在了P11口,用于单位转换。接口电路如图4-5所示:图4-5按键电路图4.5EEPROM外围电路设计EEPROM作为片外数据存储设备,在整个系统中的作用就是将系统中一些比拟重要的数据在掉电的情况下存储起来,例如线性校正的数据。下面对系统中用到的AT24C02〔Atmel〕作为分析对象,其他型号类似。24C02容量为128*8Bit,由于系统需要存储的数据很少,这个正好满足系统的要求。施密特触发输入,允许页写入,功能性地址线不允许连接到同一条总线上,通常标准的是引脚〔PDIP、SOIC、TSSOP〕封装。以PDIP/SOIC封装为例,各引脚功能如下列图所述:图4-6AT24C02引脚图A0、A1、A2:器件选择输入脚,局部器件可扩展,这三个引脚配置可寻址同一串行总线上的8个EEPROM,如24XX32/64/128/256/512;某些24XX器件是不能扩展的,如24XX00/01/02/04/08/16的这三个引脚无效。Vss:接地。SDA:双向引脚,用以串行数据输入/输出,漏极开路,需接上拉电阻〔通常频率为100kHz时,阻值为10K,频率为400kHz和1MHz时,阻值为2K〕。SCL:串行时钟,用以数据传输同步。WP:写保护输入脚。连接到Vss,写操作使能;连接到Vcc,写操作禁止。Vcc:电源输入。很明显,从上面引脚我们可以看出SCL和SDA就是I2C(TM)协议中对应的那两条信号线,数据传输的系列动作:起始、数据确认、数据改变、停止条件如下:起始条件:起始操作必须先于所有命令产生。在SCL高电平期间,SDA由高电平变为低电平,表示要开始传输数据了。传输条件:起始条件之后,在SCL高电平期间,SDA保持稳定的高电平〔或低电平〕,要改变SDA的状态,必须在SCL低电平时。一个数据位对应一个时钟脉冲。停止条件:所有操作以停止条件为结束。在SCL高电平期间,SDA由低电平变为高电平,表示停止条件发生。EEPROM的接口电路如图4-7所示:图4-7EEPROM接口电路4.6通道转换和自动增益电路如图4-10所示AI+和AI-输入的模拟信号,经过一个多路开关进入PGIA〔可编程增益放大器〕,将信号放大一定的倍数,然后再经过一个RC的滤波电路,滤除信号中的杂信,最后进入AD转换器的内部,这些局部全部是在MCU内部集成的,不需要进行专门的设计,只是设置相关存放器即可。表4-1是PGIA的相关存放器,各位的功能如下所示:表4-2PGIA相关存放器090HBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0AMPM-BGRENBFDS1FDS0GS2GS1GS0AMPENBR/W-R/WR/WR/WR/WR/WR/WR/W复位后00001110Bit0:AMPENB:PGIA功能允许控制位0=禁止PGIA功能1=使能PGIA功能Bit[3:1]:GS[2:0]:PGIA增益选择控制位,增益如图4-2所示表4-3增益控制存放器GS[2:0]PGIA增益000160013201064011128100,101,110保存1111PGIA的时钟选择存放器如下列图所示:表4-4PGIA时钟选择存放器092HBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0AMPCKSAMPCKS2AMPCKS1AMPCKS0R/WWWW复位后000Bit[2:0]AMPCKS[2:0]存放器设置PGIAChopper的工作时钟,建议Chopper的时钟选择为:31.25KHZ@4MHZ。PGIA时钟=Fcpu/32/(2^AMPCKS)在不同的Fosc频率下,AMPCKS[2:0]存放器的值参阅下表:表4-5时钟频率参考AMPCKS2AMPCKS1AMPCKS0高速时钟2M4M/IHRC8M0000010100K011100967HZ0K101488HZ874HZ976HZ110244HZ437HZ488HZ976HZ111122HZ218HZ244HZ488HZ4.7电池低电压检测电路SN8P1937提供2种方式检测电源电压:一种是通过16bit的ADC,这种方法比拟精确但是比拟费时且比拟复杂;另外一种是通过内置的电压比拟器,电源电压经过外局部压电路连接到P5.2,与ACM〔1.2V〕进行比拟,比拟结果在LBTO位。下列图是LBT应用的两种电路连接方式:一种使用P5.2和P5.1,这样在睡眠模式下不会产生漏电流,图4-8中的(a)图;另外一种只使用P5.2,这种方式会在省电模式下产生一些漏电流,但是可以把P5.1作为输入口用,图4-8中的(b)图。在本电路中采用的是第一种接法,P5.1的功能是低电压检测,不能再作为IO口。(a)P5.1为LBT功能,在睡眠模式无漏电流 (b)P5.1为输入模式,在睡眠模式有漏电流图4-8电池低压检测内部电路图低电压检测功能相关存放器功能为:表4-6低压检测存放器09AHBit7Bit6BIt5Bit4Bit3Bit2Bit1Bit0LBTMLBTOP51IOLBTENBR/WRR/WR/W复位后000Bit0:LBTENB:电池低电压检测模式控制位0=禁止电池低电压检测功能1=允许电池低电压检查功能Bit1:P51IO:P5.1输入/LBT功能控制位0=P51为输入口1=P51为LBT功能Bit2:LBTO:电池低电压检测输出位0=P5.2/LBT电压高于ACM(1.2V)1=P5.2/LBT电压低于ACM(1.2V)表4-7中的电阻值对应的是在不同的检测电压。表4-7低压检测电阻对应表电池低电压R1R2LBT0=11M1M图4-9是本次设计中的实际电路图,有图中参数可以看出,检测的电池低电压为2.4V,所以当电池电压低于2.4V时,系统就会报警,这也是SN8P1937的最低工作电压。图4-9电池低电压检测电路4.8AD外围电路设计AD转换局部是体重秤的核心局部,压力传感器选用的是桥式的,当没有压力的时候桥臂是平衡的,一旦有压力两边的桥臂会产生压力差,传感器将压力信号变成电流信号通过芯片的AI+,AI-脚输入。输入的信号经过放大,滤波后进入AD转换。X+,X-之间的电感和芯片内部的电阻组成了RC滤波电路,PGIA是对电信号进行放大的。为了保证转换过程的基准电压一致,所以AD转换与压力传感器接在同一个电压上,这样也可以减少由于两者电压不一致所带来的误差。AD转换的模块电路图为:图4-10ADC模块的结构原理图AD转换采用的是16位的精度,转换结果的高八位保存在存放器ADCDH中,低八位保存在存放器ADCDL中。相关存放器如下:表4-8ADC高八位数据存放器098HBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0ADCDLADCB7ADCB6ADCB5ADCB4ADCB3ADCB2ADCB1ADCB0RRRRRRRR复位后00000000表4-9ADC低八位数据存放器099HBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0ADCDHADCB15ADCB14ADCB13ADCB12ADCB11ADCB10ADCB9ADCB8RRRRRRRR复位后00000000ADCDL[7:0]:输出ADC数据的低字节。ADCDH[7:0]:输出ADC数据的高字节。ADCB15位是ADC数据的符号位。ADCB15=0表示数据为正值,ADCB15=1表示数据为负值。表4-10ADC输出控制存放器097HBit7Bit6BIt5Bit4Bit3Bit2Bit1Bit0DFMWRS0-DRDYBit0:DRDY:ADC数据就绪位1=ADC输出新的转换数据到ADCDH和ADCDL0=ADCDH和ADCDL的转换数据还未就绪Bit2:WRS0:ADC输出频率选择位图4-11是在设计中的实际的电路图。图4-11ADC外围电路设计4.9系统总体电路图以上分别介绍了系统的各个模块电路组成,整体电路图见附图。本章从传感器、液晶显示、键盘功能、EEPROM、AD外围电路、低电压检测电路等几个模块对系统的硬件设计进行了详细的阐述,并给出了各个模块的硬件电路图。对SN8P1937单片机的工作电路和它的外围电路(相关模块)以及整体电路进行了说明。5系统软件设计5.1系统软件总体架构设计在系统软件的设计中,按照层次化的软件设计方法,整个系统软件可划分为三层,即:应用层,界面层,底层驱动层。图5-1中给出了高精度体重秤系统软件的层次结构图。图5-1系统软件层次结构图底层驱动层底层驱动层主要包含直接和硬件相关的驱动程序,对于体重秤而言,主要包括LCD刷新程序mn_lcd、按键扫描程序mn_key、EEPROM读写子程序、AD转换子程序等这些程序主要是面向硬件的,作为硬件驱动程序,它们处于最底层。这些程序编写的质量直接关系到整个系统的性能,也对整个系统的软件上层各局部的设计的便利性也有很大的影响。原那么上应该保持底层的各个模块间的独立性,尽量降低它们之间的耦合度,不产生直接的数据交互,也不允许它们之间的相互调用,底层也不直接访问应用层,如果需要与应用程序或者其它模块之间通信,都要通过界面层进行数据交互,并接受应用层的调度。介面层介面层主要是由各种存放器、标志位和缓冲区组成的,它的功能是用于提供数据交互,可以看出各个底层模块都有自己相应的变量及标志,这些变量是底层与应用层或是底层与其它底层模块对话的接口,也可以将它们理解为程序模块间通讯的管道。应用层应用层主要完成体重秤具体功能的实现,通过对界面层各个变量及标志位的操作控制底层驱动层各模块来完成所需功能,而并不越过介面层直接访问底层驱动层。关于应用层的具体编写方法将在后面的系统应用层软件设计中详细介绍。[5]5.2单片机模式切换松翰1937单片机有四种工作模式:绿色模式,正常模式,低速模式,睡眠模式。四种模式之间的转换关系如下:图5-2主程序流程图当设置系统模式存放器OSCM中的CPUM0位清零,CPUM1位置一,系统就进入到绿色模式了,绿色模式下系统会将所有的硬件资源关闭,只有定时器可以计数,其他资源都不可以运行。P0口和P1口有外部唤醒功能,当P0或P1有电平变化时,系统会从绿色模式唤醒,T0定时器也有唤醒功能,当T0定时器溢出的时候系统也会从绿色模式唤醒,唤醒之后进入正常模式。由于在绿色模式下,系统的所有硬件资源全部都关闭,所以整个系统非常省电。本系统中用到了绿色模式和正常模式两种,系统上电后便进入绿色模式,每隔一秒被唤醒一次,唤醒后进入正常模式,系统启动快速称重,检测是否到达开机重量,如果没有到那么进入到绿色模式,如果到达开机重量体重秤系统时钟从低速模式转换到高速时钟,翻开硬件资源,进入正常称重。5.3系统主程序设计系统主程序主要实现各个模块化程序的组合,是整个程序设计中最主要的局部,总体流程图如下所示:绿色模式下正常模式下图5-3主程序流程图由主程序的电路图可以看出底层驱动程序分为键盘扫描程序,显示程序,低电压检测程序,时间处理程序,AD转换程序,快速称重子程序,校准子程序。5.4LCD驱动子程序的设计根据前面硬件电路接口设计局部中SN8P1937与段位式LCD的电路连接方法,其显示内容为6位。因为每一个LCDRAM空间只有低4位是有效的,为了减少表格占用的空间,所以将两bit的数据存放在一个表格中的位置,在查表的过程中,读出显示数据的高位和地位分别送到对应的显示缓冲区中,同时将刷新标志置高,在刷新程序通过检测刷新标志来决定是否进行刷新操作,如果有刷新标志那么将显示缓冲区的数据转换成显示码,并送入LCDRAM中,否那么直接退出刷新程序。刷新子程序应置于主程序中并定时调用,当显示缓冲区内容改变时必须置刷新请求标志,以保证显示内容的及时更新。图5-4为刷新子程序的流程图。图5-4LCD子程序流程图在体重秤正常工作的过程中,需要对电池的电压进行检测,防止由于电池电压过低而造成的测量数据不准确,而SN8P1937系列单片机带有低压检测功能,如4.7节中介绍的只要开启低压检测功能,然后再判断LBTO位即可。程序如下:bat_test: xb0bts1 flbto jmp bat_test20 b0bts0 F_vcc_low jmp bat_test90 incms R_low_count mov a,R_low_count cmprs a,#C_LOW_TIME jmp bat_test90 b0bset F_vcc_low mov a,#15 //lo b0mov dis_mode_buf,a b0mov dis_mode_back,a b0bset f_update_disp mov a,#AUTO_SLEEP_2S ;2s mov auto_off_cnt,a CLR time_1s_cntbat_test20: clr R_low_countbat_test90: ret5.6AD子程序的设计在AD转换的程序中,每次只要检测DRDY位,判断ADC数据是否准备就绪,准备就绪后,在ADCDL,ADCDH中读取AD转换的数据即可,输出的AD的数据是有正负之分的,为了减少在程序中对有符号数的操作的难度,在读到AD转换的数据后,全部将它转换为正数进行处理,AD程序的流程图如图5-5所示:图5-5AD转换子程序流程图5.7键盘扫描子程序的设计体重秤的控制面板中有1个独立式按键,在按键扫描的过程中,为了增强系统的实时性,减少按键的误判,在键的消抖动的过程中不是采用原来的delay的做法,而是采用了debounce的处理方法。但按键按下的时候就开始计时消抖,消抖完成以后表示按键真的按下,然后判断是哪个按键按下,对相应的按键进行处理。程序流程图如下所示:图5-6按键程序流程图5.8数据处理子程序设计在微机控制系统的模拟输入信号中,一般均含有各种噪声和干扰,他们来自被测信号源本身、传感器、外界干扰等。为了进行准确测量和控制,必须消除被测信号中的噪声和干扰。噪声有2大类:一类为周期性的,其典型代表为50Hz的工频干扰,对于这类信号,采用积分时间等于20ms整倍数的双积分A/D转换器,可有效地消除其影响;另一类为非周期的不规那么随机信号,对于随机干扰,可以用数字滤波方法予以削弱或滤除。所谓数字滤波,就是通过一定的计算或判断程序减少干扰信号在有用信号中的比重,因此他实际上是一个程序滤波。数字滤波器克服了模拟滤波器的许多缺乏,他与模拟滤波器相比有以下优点:(a)数字滤波器是用软件实现的,不需要增加硬设备,因而可靠性高、稳定性好,不存在阻抗匹配问题。(b)模拟滤波器通常是各通道专用,而数字滤波器那么可多通道共享,从而降低了本钱。(c)数字滤波器可以对频率很低(如0.01Hz)的信号进行滤波,而模拟滤波器由于受电容容量的限制,频率不可能太低。(d)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点。在本设计中用到了算术平均值滤波,算术平均值滤波是要寻找一个Y,使该值与各采样值X(K)(K=1~N)之间误差的平方和为最小,即:(5-1)由一元函数求极限原理得:(5-2)这时,可满足式(5-3)。式(5-4)便是算术平均值滤波的算法。设第二次测量的测量值包含信号成分Si和噪声成分Ci,那么进行N次测量的信号成分之和为:(5-3)噪声的强度是用均方根来衡量的,当噪声为随机信号时,进行N次测量的噪声强度之和为:(5-4)式(5-3)和式(5-4)中,S、C分别表示进行N次测量后信号和噪声的平均幅度。这样对N次测量进行算术平均后的信噪比为:(5-5)其中,S/C是求算术平均值前的信噪比。因此采用算术平均值后,使信噪比提高了倍。算术平均值法适用于对一般具有随机干扰的信号进行滤波,这种信号的特点是有一个平均值,信号在某一数值范围附近作上下波动,此时仅取一个采样值作依据显然是不准确的,如压力、流量、液平面等信号的测量。但对脉冲性干扰的平滑作用尚不理想,因此他不适用于脉冲性干扰比拟严重的场合。算术平均值法对信号的平滑滤波程度完全取决于N。当N较大时,平滑度高,但灵敏度低,即外界信号的变化对测量计算结果Y的影响小;当N较小时,平滑度低,但灵敏度高。应视具体情况选取N,以便既少占用计算时间,又到达最好的效果,如对一般流量测量,可取N=8~16,对压力等测量,可取N=4。图5-7滤波子程序流程图5.9初始化找平衡程序在系统开机的时候,传感器在无重物的情况下,AD采样出来的数据可能不是0,这个时候就需要对数据进行调整,在屡次读取AD数据后发现AD的值保持在一个很小的范围内,这个时候就可以认为传感器处于零点位置,此时的AD的值就可以作为校正后的零点的值。其实这也是一个动态找平衡的过程。程序如下:seek_zero10: @RSTWDT call read_adc_data b0bts1 f_adcend jmp seek_zero10 b0bclr f_adcend call adc_data_avg ;output:wk03,wk02 b0mov autoon_span0_h,wk03 b0mov autoon_span0_l,wk02 b0mov wk01,raw_data_h b0mov wk00,raw_data_l call sub_hex2b ;(FC)(wk01wk00)=(wk03wk02)-(wk01wk00)1:POS0:NEG HEX2B_CJBEwk01,wk00,#00,#08,seek_zero11 b0mov raw_data_h,autoon_span0_h b0mov ra

温馨提示

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

评论

0/150

提交评论