【《简易体重计结构设计》11000字(论文)】_第1页
【《简易体重计结构设计》11000字(论文)】_第2页
【《简易体重计结构设计》11000字(论文)】_第3页
【《简易体重计结构设计》11000字(论文)】_第4页
【《简易体重计结构设计》11000字(论文)】_第5页
已阅读5页,还剩31页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

(3.1)式中:——电阻丝的电阻率;——电阻丝的长度;——电阻丝的面积。电阻丝在外力的作用下,将引起电阻变化,且由公式(3.2): (3.2)令电阻丝的轴向效应为,由材料力学公式(3.3)可知: (3.3)为电阻丝材料的泊松系数,经整理可得公式(3.4): (3.4)通常把单位应变所引起的电阻相对变化称作电阻线的灵敏系数,由公式(3.5)其表达式为: (3.5)从上式可以明显看出,电阻丝灵敏系数由两部分组成:表示受力后由材料的几何尺寸变化引起的;表示由材料电阻变化所引起的。对于金属材料,项的阻值要比小得多,可以忽略,故=。大量实验证明,在电阻丝拉伸比例极限内,电阻的相对变化与应变成正比,即=1.7~3.6。上式可写成。3.3.3应变片式电阻传感器技术指标图综合量程0.05额定温度输出漂移≤0.15灵敏度1±0.1零点输出±0.1非线性度0.05输入电阻1000±50重复性0.05输出电阻1000±50滞后0.05绝缘电阻≥2000蠕变0.05激励电源3~12零点漂移0.05工作温度范围-10~+50零点温度漂移0.2过载能力150图3.7液晶显示电路3.4LCD显示模块LCD1602也称为1602字符LCD。这是一个点矩阵LCD模块,专门用于显示字母,数字,符号等。它由多个5*7或5*11点矩阵字符位组成,每个点矩阵字符的每个位可以代表一个字符。每一位之间有一个点距,每行之间有一些间隙,它们用作字符间距和行间距。1602LCD指示显示内容为16x2。即可以显示两行。每行是一个16个字符的LCD模块(显示字母和数字)。当前市场上的大多数字符LCD均基于HD44780LCD芯片,并且控制原理完全相同。因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶[10]。LCD1602外围电路简单微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。因此,在本设计中作者选用了该显示模块,其连接结构如图3.7所示:图3.8液晶显示电路3.5语音播报电路SC1010B是最新开发的语音电子称的新型语音芯片,采用台湾最新语音母体,真人语音报数,外围元件少,电路简单,控制方便,成本低。主要应用于语音电子秤、计重秤等语音衡器,语音播报电路如下图3.8所示.图3.8语音播报模块3.6蜂鸣器报警电路有源蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。本系统所采用的报警模块为5V有源蜂鸣器模块,电路中采用三极管9012来驱动,只要单片机控制引脚为低电平,蜂鸣器就会鸣叫报警,反之则不鸣叫,可以通过控制单片机引脚方波输出形式控制蜂鸣器的鸣叫方式。电阻为限流电阻,保护作用。图3.9蜂鸣器报警电路3.7按键电路本次设计采用4个按键,按键引脚分别与单片机的P3.1,P3.2,P3.3,P3.4连接,按键的另一端与与地连接,当按键按下,相应的I/O口和GND连接,因此对应的I/O口为低电平,单片机I/O上电默认输出为高电平,因此通过检测I/O口电平变化,即可判断是否有按键被按下,如果按键被按下,则对应的I/O口从高低平变为低电平,则表明按键被按下,当按键松开后,对应的I/O口又从低电平变为高电平,程序中通过判断这个过程即可实现按键的检测,检测按键是否被按下,按键电路设计原理图如下图3.10所示,四个按键分别代表去皮,语音播报,校准加,校准减,语音播报按键实现对称重者体重信息进行播报,校准加按键对电桥校准值进行加,校准减按键实现对电桥校准减。图3.10按键电路第4章系统软件设计本次系统软件设计采用了模块化设计,主要包括有和体重秤系统主函数、毫秒级延时子函数、A/D数据采集子函数、软件滤波子程序以及LCD显示子函数。4.1主函数流程在系统通电后,主程序首先完成系统初始化,其中包括系统变量定义和给系统变量赋初值等,然后调用A/D采集函数,将A/D采集模块输出的24位二进制串行数据转化为十进制,接着进行调零和定标,最后分离出6位十进制数据的千位、百位、十位和个位,调用液晶显示函数,将对应的数值送到对应的地址上进行显示,同时进行语音播报,系统主函数流程图如图4.1所示。4.1系统主函数流程图4.2中断程序流程单片机的定时中断系统是通过对定时器设置初值,当计数值达到最大值时,产生定时器中断。定时器具体工作过程如下:定时器内部有一个寄存器[13],每经过一个机器周期,寄存器值加1,如果采用16定时器,即最大计数为两个字节,最大值是65535,定时器将产生中断,如果系统晶振选用12MHz,最长定时时间为,因此,若系统需要1基准定时,需要在定时器中断中进行多次累加操作,才能获得1时长定时。单片机时钟周期与单片机晶振频率有关,在本次设计中,选择12MHz晶振,因此时钟周期为,机器周期是12倍的时钟周期,因此一个机器周期的时间长度为。系统采用12M晶振,一个机器周期为1,定时器采用模式1[14],即THn和TLn组成一个16位定时器,计数范围为0~65535,若系统定时为50,即经过个机器周期,定时器达到溢出,则初值为,对应16进制为0x3CB0,中断函数如下所示。//定时器0中断voidTimer0_ISR(void)interrupt1{ucharCounter;TL0=0xb0;TH0=0x3c;//定时器赋予初值//每0.5秒钟刷新重量Counter++;if(Counter>=10){FlagTest=1;Counter=0;}}4.3LCD1602液晶显示流程LCD1602液晶的内部自带80字节RAM,用于数据存储,内部RAM结构如下图4.2所示,第一行地址为,其中对应于第一行16个字符显示位置,第二行地址为,其中对应于第二行16个字符显示位置,如需要在某一位置显示一个字符,首先通过写命令,将地址写入,然后再将数据写入,则完成一次显示。4.2LCD1602液晶内部RAM结构图 4.3LCD1602显示流程图4.4按键扫描流程当对按键进行检测时,并非检测与按键相连I/O口电平值,而是通过检测I/O电平变化的情况,当按键按下或者按键弹起的瞬间,电平值发生变化,只要检测到其发生变化,则表明按键产生了新的动作。由于按键开关都是机械弹性开关,当按键按下或者弹起的瞬间,由于机械触点的弹性作用,按键并非会立刻闭合或者断开,在按键按下的一瞬间,按键并非会立刻闭合,同理,当按键弹起的一瞬间,按键也并非会立刻断开,而是伴随着一系列的抖动,为了确保程序判断的准确性,一般要对按键检测进行消抖处理,常用的消抖方法有两种:硬件消抖与软件消抖。硬件消抖一般采用在按键两端并联一个电容,利用电容的充放电对按键进行消抖操作,软件消抖则采用通过通过延时函数的方式,当检测到I/O电平发生变化时,利用延时函数延时一段时间,然后进行第二次检测,若两次检测按键状态相同,则表明按键已经按下或者弹开,若两次检测按键状态不同,则表明是按键机械抖动,按键并未发生变化。在实际应用中,一般采用软件消抖方式进行按键消抖,相比硬件消抖,软件消抖效果更好,同时也节约成本。按键扫描如下图4.3所示。4.3矩阵按键扫描流程图一般都需要对按键进行消抖,当检测到I/O口状态发生变化时,并不会立刻响应按键操作,而是等到按键断开或者闭合稳定后再进行处理。软件消抖的方法采用当检测到按键按下,等待10ms左右的延时时间,等到机械抖动消失后,再进行一次检测,如果当两次检测结果一致,则确认按键已经产生稳定的动作。系统采用4个按键,按键功能说明如下所示:去皮,播报,校准加,校准减第5章实物制作与调试5.1实物布置方案本次设计的体重秤系统可分为单片机控制电路、A/D转换电路、复位电路、时钟电路、LCD液晶显示电路、矩阵键电路、语音播报电路和蜂鸣器报警电路组成。系统通过传感器将压力信号转换为电信号,即传感器感测到压力后电阻发生变化,电阻的微小变化通过全桥测量电路转化为电压的微小变化,并调整到A/D采集范围,然后进行A/D采集转换,由单片机对采集到的24位高低电平进行处理。数字信号经单片机处理后传输到显示电路,测量结果由显示电路输出,通过语音模块进行播报,当超过当前量程时,蜂鸣器进行报警。5.2线性度确定5.2.1未定标输出值在本次体重秤系统的软件设计中,如果没有加入清零程序,并没有砝码放在传感器上时,液晶屏显示初值为0.5(kg)。接着依次放上砝码为10(kg),20(kg),40(kg),50(kg)……,记录下此时液晶显示的示数,绘制出未定标时的显示值表如表格5.2所示。根据所记录下的液晶显示的各个数值,通过MATLAB进行绘图,得出数码管的显示值和砝码值呈线性关系。绘制出未定标时的线性测试曲线如图5.3所示。砝码质量(kg)0102030405060708090显示值(kg)11121324353647485965.2未定标的显示值表5.3未定标时的线性测试曲线图5.3.2定标后输出值此时测量所使用的统计方法是运用最小二乘法对数据进行拟合,接着在软件设计中加入清零程序,定标过程就完成了。定标后的显示值如表5.4所示。定标后的校验曲线如图5.5所示.砝码质量(kg)0102030405060708090显示值(kg)0.540.250.360.370.480.590.65.4定标后的显示值表5.3定标后的线性测试曲线图5.3实物调试系统硬件调试比较细致的工作,首先需要检查电路的焊接是否正确,用万用表来检测电路板是否存在短路或者断路,确保硬件电路的正确性。经检测之后再接上电源,用万用表测量电源部分的各个输出电压值,经调试正常后方可接到各部分电路。先按下单片机复位键将系统复位,调用液晶显示子函数,测试液晶是否正常,接上传感器和由24位串行A/D转换芯片构成的电路和A/D转换电路,将全部的程序烧到芯片中,观察液晶上是否显示0000,如果没有显示,则可进一步进行软件调零的工作,待软件调零完成之后,用手给传感器慢慢施加压力,看液晶上的数值是否也跟随增大,当放手后,观察液晶的数值是否回到0000附近。总结在设计制作高精度体重秤的过程中,我深切体会到理论与实践相结合的重要性。本系统的制作主要应用到了模拟电子技术、数字电子技术、单片机控制技术、电子工艺和C程序设计等多方面的知识,所设计的基于MCS-51单片机程序控制的高精度数字体重秤,达到了设计要求,同时也使我的动手能力和电子设计能力得到了极大锻炼。特别是在线性度的确定过程中,实验测试数据用MATLAB绘图,可以得出真值和砝码值的关系接近为一条直线,所以就可以得出它们之间的线性关系。接着用最小二乘法对实验测试数据进行拟合,最终完成定标。这一过程很好地将理论与实践结合起来了。同时通过多次测量数据,得出的值更接近真实值。这样利用实验数据进行分析,使设计更有说服力,也增强了本设计体重秤的准确性和精确性。进一步肯定了设计的正确性。本次论文设计展示了自己的能力,更体会到了电子技术与设计的趣味,以及其强大深远的实用性。也使我深切认识到自身知识能力尚存在许多不足。设计中还存在一些不尽完美的地方,硬件电路部分的焊接没有做到最简单方便,布局还可以更合理,软件设计部分还需要进一步的完善。今后,我将更加努力学习,不断完善自己的专业知识,提高专业技能。

参考文献[1]陈梓城《实用电子电路设计与调试》中国电力出版社2006[2]李秉荣《自动称重系统的设计与实现》电子器件,2010,(02).[3]张宁《称重模块在称重系统中的应用》石油化工自动化2003,(06)[4]童家务《电子称重系统受压力影响的解决方法探讨》2010年12期[5]曹薇《单片机原理及应用》中国实力水电出版社2004.8[6]高吉祥《全国大学生电子设计大赛培训教程》电子工业出版社2007.5[7]陈杰《传感器与检测技术》高等教育出版社2009.7[8]74LS148datasheet/[9]TLC5617,PROGRAMMABLEDUAL10-BITDIGITAL-TO-ANALOGCONVERTERS

附录一:原理图附录二:实物元件清单CommentDescriptionDesignatorFootprintLibRefQuantity16021SIP16LCM16021100uFElectrolyticCapacitorC1ELECTRO1110uFElectrolyticCapacitorC2CD4ELECTRO1130PCapacitorC3,C4CB1CAP20.1uFC5,C6CAP0.1uF2LEDD1LED5LED1BellFMQ1LB2BELL1CON2J1SIP2CON214PinHeaderJP1SIP44HEADER1DCP1DC2.1POWER19012PNPTransistorQ1TO92CPNP110KR1,R31/4WRES221KR2,R61/4WRES224.7KR4,R51/4WRES222.2KR71/4WRES2110kRT1SIP9HEADER91S1,S14SW2SW-PB21S2SW2SW-PB12S3SW2SW-PB13S4SW2SW-PB1AS5SW2SW-PB14S6SW2SW-PB15S7SW2SW-PB16S8SW2SW-PB1BS9SW2SW-PB17S10SW2SW-PB18S11SW2SW-PB19S12SW2SW-PB1CS13SW2SW-PB10S15SW2SW-PB1#S16SW2SW-PB1DS17SW2SW-PB1SWITCHSWITCHSZ1SW6SWITCH1HX711U1HX711HX7111STC89C52U2DIP40AT89C511YUYINU3DIP8YUYIN112MCrystalY1JZCRYSTAL1附件三:程序#include<reg52.h>#include<intrins.h>#include<string.h>bitbdataflag_key;#include"main.h"#include"LCD1602.h"#include"HX711.h"#include"keyboard.h"#include"eeprom52.h"#include"wannianli.h"#include"yyxp.h"#defineucharunsignedchar#defineuintunsignedintunsignedlongHX711_Buffer=0;unsignedlongWeight_Maopi=0;unsignedlongWeight_Maopi_0=0;intqupi=0;longWeight_Shiwu=0;//键盘处理变量unsignedcharkeycode;unsignedcharDotPos; //小数点标志及位置uintGapValue,GapValue1;//定义标识volatilebitFlagTest=0; //定时测试标志,每0.5秒置位,测完清0volatilebitFlagKeyPress=0;//有键按下标志,处理完毕清0//校准参数//因为不同的传感器特性曲线不是很一致,因此,每一个传感器需要矫正这里这个参数才能使测量值很准确。//当发现测试出来的重量偏大时,增加该数值。//如果测试出来的重量偏小时,减小改数值。//该值可以为小数//#defineGapValue349sbitLED=P3^6;sbitK1=P3^0; //计算总价并语言播报//sbitK3=P2^3;volatilebitClearWeighFlag=0;//传感器调零标志位,清除0漂/******************把数据保存到单片机内部eeprom中******************/voidwrite_eeprom(){ SectorErase(0x2000); GapValue1=GapValue&0x00ff; byte_write(0x2000,GapValue1); GapValue1=(GapValue&0xff00)>>8; byte_write(0x2001,GapValue1); byte_write(0x2060,a_a); }/******************把数据从单片机内部eeprom中读出来*****************/voidread_eeprom(){ GapValue=byte_read(0x2001); GapValue=(GapValue<<8)|byte_read(0x2000); a_a=byte_read(0x2060);}/**************开机自检eeprom初始化*****************/voidinit_eeprom(){ read_eeprom(); //先读 if(a_a!=1) //新的单片机初始单片机内问eeprom { GapValue=1000; a_a=1; write_eeprom(); //保存数据 } }//显示重量,单位kg,两位整数,三位小数voidDisplay_Weight(){ LCD1602_write_com(0x80); LCD1602_write_word("WE");LCD1602_write_com(0x82); LCD1602_write_data(':'); LCD1602_write_data(Weight_Shiwu%10000/1000+0x30); LCD1602_write_data('.'); LCD1602_write_data(Weight_Shiwu%1000/100+0x30); LCD1602_write_data(Weight_Shiwu%100/10+0x30); //LCD1602_write_data(Weight_Shiwu%10+0x30); LCD1602_write_data(''); LCD1602_write_data('');}//数据初始化voidData_Init(){price=0;DotPos=0;}//定时器0初始化voidTimer0_Init(){ ET0=1;//允许定时器0中断 TMOD=1;//定时器工作方式选择 TL0=0xb0; TH0=0x3c;//定时器赋予初值 TR0=1;//启动定时器}//定时器0中断voidTimer0_ISR(void)interrupt1using0{ucharCounter; TL0=0xb0; TH0=0x3c;//定时器赋予初值 //每0.5秒钟刷新重量Counter++;if(Counter>=10){FlagTest=1; Counter=0;}}//按键响应程序,参数是键值//返回键值://78910(清0)//45611(删除)//12312(未定义)//14(未定义)015(.)13(确定价格)voidKeyPress(ucharkeycode){ switch(keycode) { case0: case1: case2: case3: case4: case5: case6: case7: case8: case9: //目前在设置整数位,要注意price是整型,存储单位为分 if(DotPos==0) { //最多只能设置到千位 if(price<100) { price=price*10+keycode*10; } }//目前在设置小数位 elseif(DotPos==1)//小数点后第一位 { price=price+keycode; DotPos=2; } Display_Price(); break; case10://清零键 speak(41); if(qupi==0) qupi=Weight_Shiwu; else qupi=0; Display_Price(); // FlagSetPrice=0; DotPos=0; break; case11: //删除键,按一次删除最右一个数字 price=0; DotPos=0; Display_Price(); break; case12: //加 if(GapValue<10000) GapValue++; break; case13://减 if(GapValue>1) GapValue--; break; case14:count_danjia++; if(count_danjia>7) count_danjia=0; price=danjia[count_danjia]; Display_Price(); break; case15://小数点按下 DotPos=1;//小数点后第一位 break;}}//****************************************************//主函数//****************************************************voidmain(){ yyxp_rest=1; yyxp_data=1; init_eeprom();//开始初始化保存的数据 Init_LCD1602(); //初始化LCD1602 EA=0; Data_Init(); Timer0_Init(); EA=1; LCD1602_write_com(0x80); //指针设置 LCD1602_write_word("WelcomeToUse"); // LCD1602_write_com(0x80+0x40); //指针设置 LCD1602_write_word("ElectronicScale"); Delay_ms(2000); Get_Maopi(); LCD1602_write_com(0x80); //指针设置 LCD1602_write_word("WEIGHT:"); LCD1602_write_com(0x80+0x40); //指针设置 Display_Price(); while(1) {//每0.5秒称重一次 if(FlagTest==1&&keynum==0) { Get_Weight(); } if(Weight_Shiwu<10) { keyscan(); if(keynum==0) display(); if(key2==0) { Delay_ms(5); if(key2==0) { speak(41); if(qupi==0) qupi=Weight_Shiwu; else qupi=0; while(key2==0); }} } else { keycode=Getkeyboard(); if(key3==0) { Delay_ms(5); if(key3==0) { total_money=0; Display_Money(); bofang(2,price); bofang_zhongliang(Weight_Shiwu); bofang(1,money); while(key3==0); }} } //有效键值0-15 if(keycode<16) { KeyPress(keycode);// Buzzer=0; Delay_ms(100);// Buzzer=1; while(keycode<16) { if(keycode==12||keycode==13) {// Buzzer=0; Delay_ms(10);// Buzzer=1; KeyPress(keycode); // Get_Weight(); flag_key=1; } keycode=Getkeyboard(); } write_eeprom(); //保存数据 } }}//****************************************************//称重//****************************************************voidGet_Weight(){ Weight_Shi

温馨提示

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

评论

0/150

提交评论