版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要本系统以AVR系列单片机ATMEGA16为控制核心,凌阳SPCE061A为辅助控制器,实现语音电子秤功能。在设计系统时,为了更好地采用模块化设计法,分步的设计各个单元功能模块,系统可以分为数据采集、最小系统、人机交互界面、无线传输、语音播放和系统电源六大部分。该电子秤在实现基本的称重功能(称重范围为080.000公斤,重量误差不大于0.1)的同时,发挥语音播放功能,能够播放重量、总价、找零金额、身高和身体形态。本系统能够设置日期和预存十种商品的单价, 还具有自动校零、交易金额找零、数据去抖和去皮及掉电保护功能。整个系统结构简单,使用方便,功能齐全,人性化,具有一定的实用价值。关键词:电子
2、秤 ATMEGA16 仪用放大器 压力传感器 SPCE061A 语音播放1引言质量是测量领域中的一个重要参数,称重技术自古以来就被人们所重视。秤是最普遍、最普及的计量设备,电子秤取代机械秤是科学技术发展的必然规律。低成本、高智能化的电子秤无疑具有极其广阔的市场前景。本设计制的多功能电子秤在实际使用时达到以下要求:(1)能用键盘设置单价,称重后能同时显示重量、单价和总额;电子秤:最大称重为80.000公斤,重量误差不大于0.1。(2)显示重量、单价、总额等信息。a.重量显示为5位,单位为公斤,最大重量显示值为99.999公斤;b.单价金额显示为5位,单位为元,最大单价金额显示值值为999.99元
3、;c.总价金额显示为6位,单位为元,最大总价金额显示值值为9999.99元,总价金额误差不大于0.01元。2方案设计2.1设计思路为达到设计要求,本系统数据采集模块由电阻应变式称重传感器、仪用放大器、二阶低通滤波器组成。转换后的数字信号送给控制器处理,由控制器完成对该数字量的处理,驱动显示模块完成人机间的信息交换。此部分对软件的设计要求比较高,系统整体原理图见附录(1)。2.2 系统方案本设计制作的为多功能语音电子秤,以ATMEGA16单片机为主控器,凌阳SPCE061A为辅助控制器,该系统可以分为数据采集、最小系统、人机交互界面、无线传输、语音播放和系统电源六大部分。压力传感器将电压信传递到
4、差分放大电路中放大,放大后的信号进入ATMEGA16的AD输入引脚,数据经过处理后在12864上显示,再通过人机交互将数据通过24L01发送到SPCE061A上处理,SPCE061A将处理后的数据通过其语音功能播放。系统总体框图如图1所示:图1 系统总体框图2.2.1 压力传感器电阻应变式传感器是一种利用电阻应变效应,将各种力学量转换为电信号的结构型传感器。电阻应变片式电阻应变式传感器的核心元件,其工作原理是基于材料的电阻应变效应,电阻应变片即可单独作为传感器使用,又能作为敏感元件结合弹性元件构成力学量传感器。导体的电阻随着机械变形而发生变化的现象叫做电阻应变效应。电阻应变片把机械应变信号转换
5、为R/R后,由于应变量及相应电阻变化一般都很微小,难以直接精确测量,且不便处理。因此,要采用转换电路把应变片的R/R变化转换成电压或电流变化。其转换电路常用测量电桥。直流电桥的特点是信号不会受各元件和导线的分布电感及电容的影响,抗干扰能力强,但因机械应变的输出信号小,要求用高增益和高稳定性的放大器放大。电阻应变式传感器有如下特点:(1)应用和测量范围广,应变片可制成各种机械量传感器。(2)分辨力和灵敏度高,精度较高。(3)结构轻小,对试件影响小, 对复杂环境适应性强,可在高温、高压、强磁场等特殊环境中使用,频率响应好。(4)商品化,使用方便,便于实现远距离、自动化测量。 2.2.2 信号处理采
6、用运放NE5532搭建仪用放大器,被称为“运放之皇”的NE5532具有低零漂、低噪声、高共模抑制比的特性,其内部集成两个运放,是一款性价比很高的运放芯片。其结构图如图2所示:图2 NE5532内部简图据电阻应变式传感器的相关参数(见附录3),知传感器的灵敏度()为2.0mV/V。所以向传感器提供5V(Vcc)电压时其最大输出电压(Vomax)为10mV。具体计算公式如下:Vomax=Vcc*AD满额采集电压为(Vout)5V, Av=Vout/Vomax根据计算,得到Av=500。放大原理图,如下图所示:图3 仪用放大器原理图由上图可知,R1 = R2=22K,R4=R5=2K,R3=R6=2
7、0K,R7为可调电阻2K具体计算公式如下:Av=调节R7,当R7为900时,Av=500。放大后经示波器观察,纹波范围为40mV60mV。所以需要经过滤波处理,用滤波器设计软件(FilterLab_V2.0)设计以1KHz为上限频率的二阶有源低通滤波器可以有效滤除纹波。电路原理图见附录(3)。2.2.3 控制器模块ATMEGA16实现系统整体控制,SPCE061A实现语音功能。ATMEGA16是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的
8、矛盾。ATmega16 AVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。ATmega16 有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C),片内/外中断,可编程串行USA
9、RT,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。SPCE061A在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度使nSP能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以nSP为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种经济的选择。最小系统见附录(4)。2.2.4 显示模块采用LCD12864显示。128
10、64是一种图形点阵液晶显示器,它主要由行驱动器列驱动器及12864全点阵液晶显示器组成。可完成图形显示,也可以显示84个(1616点阵)汉字。通过软件进行菜单切换,这样就可以完成更多内容的显示,而且操作简便。 2.2.5 无线模块NRF24L01nRF2401是单片射频收发芯片,工作于2.42.5GHz ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。nRF2401内置地址解码器、先入先出堆栈区、解调处理器、时钟处理器、GFSK滤波器、低噪声放大器、频率合成器,功率放大器等功能模块。详见附录(5)。发射数据时,首先在ATMEGA1
11、6中将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号,若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知ATMEGA16。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且
12、CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。接收数据时,首先SPCE061A将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知SPCE061A去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。2.2.6电源模块设计的电源需提供单片机、显示器、信号处理模块所需的不同电压。设计的电源原理图如附录(6)所示,三端稳压芯片7805、7905
13、、LM317和LM337起稳压作用,2200uf电解电容、100uf和0.33uf瓷片电容起滤除纹波作用,输出为提供给各单元电路。2.2.7语音播放模块通常所说的音频是在20HZ到20KHZ的声音信号,分为波形声音、语音、和音乐三种。波形声音就是自然界中所有的声音,是声音数字化的基础,数字音频的质量取决于采样频率和量化位数这两个重要参数。*.WAV文件是音频文件的一种格式,使用三个参数来表示声音,采样位数、采用频率和声道数。凌阳音频解决方案里主要包括:A/D、编码处理、储存、解码处理以及D/A等,它有以下三种压缩编码方式:SACM-A2000、SACM-S480、SACM-S240。在凌阳的函
14、数库里已经将A/D、编码处理、储存、解码处理以及D/A做成相应的模块,每个模块都有应用程序接口API,简化了程序的编写难度并且提高语音质量。2.3 ATMEGA16系统软件设计本软件基于ATMEGA16单片机实现,主要负责AD转换和菜单显示功能,其中对AD转换部分进行了相应的数据处理,从而实现了数据去抖动、手动清零和自动校零的功能。总体流程图见下图:图4主程序流程图3设计实现3.1 数据去抖和自动校零功能的实现由于通过电路放大得到的传感器电压信号不稳定,导致采集到的重量值在屏幕上会产生抖动现象,这在实际应用中是不允许的,以上就是通过软件的方法来实现数据去抖动功能,流程图见下图5所示。另外考虑到
15、在锁定一个固定值后,如果还需要继续称量其它物品,这就需要当重物从传感器上取下,显示自动清理,这在图5所示的流程图中也已经得以说明。图5 数据去抖原理图3.2 去毛重功能的实现在实际测量过程中,我们往往想得到的是净重,所以必须将毛重去除。这种去毛重功能在本系统中得以实现,当将视为毛重的物体置于秤盘上时,通过按键,将此重量保存,同时将显示清零,然后将含毛重的物体重量减去此前保存的重量(毛重),即得到所测物体的净重。原理见图6所示:图6 去毛重原理图3.3 SPCE061A系统软件设计图7 凌阳SPCE061A程序流程图程序初始化后进入等待模式,接收到信号后进行判断播报的内容,将接收到的数据进行分割
16、组合,最终可以实现流利的报价、重量以及找零功能。如果功能键按下,系统将进入计算体型模式,将身高和性别输入进去后,CPU按照人体身高和体重的合理比例来计算当前身高和体型。通过语音播报体重、体型以及偏胖或偏瘦的公斤数。体型计算的实现是通过传感器得到的体重和键盘输入的身高进行计算,与亚洲人的体型标准作比较,将得到的体型显示并且播放。国际上常用的人的体重计算公式,以及身材比例计算(比较适合东方人)标准体重=(身高cm-100)x0.9(kg)标准体重(女)=(身高cm-100)x0.9(kg)-2.5(kg)正常体重:标准体重(多少)10。4 系统测试4.1测试条件和测试仪器设备传感器受较低或较高温度
17、变化时会产生形变,所以测试时最好在室温下进行,并要确保供电电源的稳定性,测试仪器设备如下表1所示:表1 测试使用的仪器设备序号名称、型号、规格数量备注出厂编号1Tektronix示波器1TektronixC0390702函数信号发生器 EE164281南京新联电子设备有限公司0013983数字万用表 UT58E1UNI-T30500306334.2测试方法和测试结果(1)掉电保护测试。当系统运行在某一菜单画面下时,在外界环境发生变化导致系统掉电,而后重新恢复供电,系统自动恢复到掉电前的画面,并且原先通过手动预置的单价也实时显示在菜单画面中。实现了掉电保护功能。 (2)称重范围测试。传感器参数显
18、示称重范围为080kg,选取磅秤砝码,从最小重量砝码开始,无称重,再逐个往上加,直到有称重时停止,再换小砝码细秤,测出称重下限为100g。用15kg砝码测试,计价秤能正常工作。(3)电子计价秤精度测试。分别将重量为600g,2kg,8kg,12kg的砝码放在电子秤上称重,单价预置为10元/Kg。根据公式计算出重量的秤量精度;总额用公式计算;总额的误差用公式来计算,将数据记录于下表2中。分析得出结论,传感器测量不够灵敏,A/D转换速度也是造成此结果的原因。 误差 = 总额 = 重量 单价 表2 单价为10.00元/Kg下不同砝码重量和总额的测量数据记录表序号项目1234重量实际值(Kg)0.60
19、02.0008.00012.000测量值(Kg)0.5461.9507.95611.934误差(%)-9 %-2.5%-0.55%-0.55%总额实际值(元)6.0020.0080.00120.00测量值(元)5.4619.5079.56119.34误差-9%-2.5-0.55-0.555 结论经过一段时间的努力,我们完成了多功能语音电子秤的制作,我们通过大胆想象,实现了自动校零、去皮、无线传输等功能。从中获得了较多的课外知识,知道怎样把实践与理论相结合。明白了想象力的重要性,只有敢于想象,大胆的尝试,才能获得意想不到的结果。6参考文献【1】郁有文,常健,程继红.传感器原理及工程应用(第二版)
20、.西安. 西安电子科技大学出版社.2004【2】康华光.电子技术基础模拟部分(第五版).北京.高等教育出版社.2005【3】洪志刚.传感器原理及应用.北京.高等教育出版社.2007【4】张洪润,张亚凡单片机原理及应用北京清华大学出版社2005【5】赵亮,侯国锐. 单片机C语言编程与实例,北京人民邮电出版社2003附录1:系统整体原理图附录2:应变式电阻传感器相关资料表2产品类型LS80A 系列结构特点铝合金额定载荷080Kg灵敏度2.0mV/V附录3:滤波模块原理图附录4:凌阳单片机最小系统附录5:nRF24L01应用电路附录6 :电源模块原理图附录7:秤体实物图附录8:ATMEGA16模组和
21、SPCE061A模组实物图ATMEGA16模组实物图 SPCE061A模组实物图附录9:主程序代码void main() init(); /初始化 while(1) keyzhi=keyscan(); if(keyzhi=3&keyzhi=10) fun_flag=0; EEPROM_write(now_add, fun_flag); switch(fun_flag) case 0:send_command(0x01);daytime();break; /进入时钟设置模式 case 1:send_command(0x01);nowmode();break; /进入普通模式 case 2:sen
22、d_command(0x01);yucunmode();break; /进入预存模式 case 3:send_command(0x01);now_happen();break; /进入正在显示重量,单价,总价模式 case 4:send_command(0x01);jiaoyimode();break; /进入交易模式 default :break; 附录10:语音播放程序代码/* 函数名称:PlaySnd 函数功能:播放语音函数 入口参数:播放索引号SndIndex,播放通道DAC_Channel 出口参数:无 备 注: */void PlaySnd(BYTE SndIndex,BYTE D
23、AC_Channel) SACM_A2000_Initial(1);/初始化自动播放 SACM_A2000_Play(SndIndex,DAC_Channel);/开始一段播放语音 while(SACM_A2000_Status()&0x0001)!=0)/判断是否播放完毕 SACM_A2000_ServiceLoop();/解码填充队列 *P_Watchdog_Clear=1;/清看门狗 SACM_A2000_Stop();/停止播放 *P_Watchdog_Clear=1;/* 函数名称:void Price 函数功能:总价语音提示 入口参数:无 出口参数:无 备 注: */void Pr
24、ice()Price_Num=(unsigned long int)rx_buf3*10000+(unsigned long int)rx_buf4*100+(unsigned long int)rx_buf5;if(Price_Num=0)PlaySnd(0,1);/0PlaySnd(14,1);/元else if(Price_Num/100000)!=0)PlaySnd(Price_Num/100000,1);PlaySnd(12,1); /千if(Price_Num%100000/10000)!=0)PlaySnd(Price_Num%100000/10000,1);PlaySnd(11
25、,1); /百else if(Price_Num%100000/10000=0)&(Price_Num%100000%10000/1000)!=0)/如果十位不等于0,并且百位等于0.PlaySnd(0,1);/0if(Price_Num%100000%10000/1000)!=0)PlaySnd(Price_Num%100000%10000/1000,1);PlaySnd(10,1);/十else if(Price_Num%100000%10000/1000=0)&(Price_Num%100000%10000%1000/100!=0)/如果十位=0.并且各位不等于0.PlaySnd(0,1
26、);/0if(Price_Num%100000%10000%1000/100)!=0)PlaySnd(Price_Num%100000%10000%1000/100,1);else ;PlaySnd(14,1);/元if(Price_Num%100000%10000%1000%100/10)!=0)PlaySnd(Price_Num%100000%10000%1000%100/10,1);PlaySnd(15,1);/角else ;if(Price_Num%100000%10000%1000%100%10)!=0)PlaySnd(Price_Num%100000%10000%1000%100%
27、10,1);PlaySnd(16,1);/分else ;else if(Price_Num/100000=0)&(Price_Num%100000/10000)!=0)PlaySnd(Price_Num/10000,1);PlaySnd(11,1); /百if(Price_Num%10000/1000)!=0)PlaySnd(Price_Num%10000/1000,1);PlaySnd(10,1);/十else if(Price_Num%10000/1000=0)&(Price_Num%10000%1000/100)!=0)/如果十位=0.并且各位不等于0.PlaySnd(0,1);/0if
28、(Price_Num%10000%1000/100)!=0)PlaySnd(Price_Num%10000%1000/100,1);else ;PlaySnd(14,1);/元if(Price_Num%10000%1000%100/10)!=0)PlaySnd(Price_Num%10000%1000%100/10,1);PlaySnd(15,1);/角else ;if(Price_Num%10000%1000%100%10)!=0)PlaySnd(Price_Num%10000%1000%100%10,1);PlaySnd(16,1);/分else ;else if(Price_Num/100000=0)&(Price_Num%100000/10000=0)&(Price_Num%100000%10000/1000)!=0)PlaySnd(Price_Num/1000,1);PlaySnd(10,1);/十if(Price_Num%1000/100)!=0)PlaySnd(Price_Num%1000/100,1);else ;PlaySnd(14,1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度版权分期付款授权合同
- 二零二四年数据中心建设水泥供应合同
- 二零二四年度健身器材销售代理合同
- 二零二四年度城市道路建设设计与施工合同2篇
- 地铁站务员带教合同(2篇)
- 售后回购协议书(2篇)
- 二零二四年度电子商务数据共享与交换合同3篇
- 借款合同争议上诉状写作
- 长期农产品加工购销合同
- 酒水采购协议样本
- 血液透析充分性评估标准-PPT课件
- 猜猜我有多爱你绘本 (2)
- 儿童通信知识教学(课堂PPT)
- 关于开发建设项目水土保持咨询服务费用计列的指导意见(保监[2005]22号)
- 北医三院洁净实验室施工组织设计
- 储气罐日常检查维护保养记录表
- 小学五年级上册美术课件第9课小书签赣美版(16张)ppt课件
- 递等式计算(四年级上)
- 中级按摩师培训课件
- 钢丝绳、吊索具检查表(共3页)
- 文秘专业教学标准
评论
0/150
提交评论