基于单片机的电子秤设计课程设计_第1页
基于单片机的电子秤设计课程设计_第2页
基于单片机的电子秤设计课程设计_第3页
基于单片机的电子秤设计课程设计_第4页
基于单片机的电子秤设计课程设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

摘要本文设计的电子秤以单片机为主要部件,用C语言进行软件设计,硬件则以半桥传感器为主,测量0~500g电子秤,随时可改变上限阈值,本课程设计的电子秤以单片机为主要部件,利用差动半桥测量原理,通过对电路输出电压和标准重量的线性关系,建立具体的数学模型,将电压量纲(V)改为重量纲(g)即成为一台原始电子秤。其中测量电路中最主要的元器件就是电阻应变式传感器。电阻应变式传感器是传感器中应用最多的一种。

芯片HX711-BF的A/D转换的作用是把模拟信号转变成数字信号,进行模数转换,然后把数字信号输送到显示电路中去,最后由显示电路显示出测量结果

。关键字:电子秤、应变片、A/D转换器,显示电路一、系统整体描述

系统由敏感元件、电桥测量电路、放大电路、模数转换电路、单片机最小系统、显示电路构成。敏感元件产生物理量变化,由测量电路将信号转换为电信号,并放大输出。通过模数转换后将信号输入单片机中,经过处理后由显示电路显示。单片机最小系统模数转换电路单片机最小系统模数转换电路电桥测量电路放大电路电桥测量电路放大电路应变片显示电路应变片显示电路系统模块设计2.1电阻应变式传感器的组成以及原理电阻应变式传感器是将被测量的力,通过它产生的金属弹性变形转换成电阻变化的元件。由电阻应变片和测量线路两部分组成。常用的电阻应变片有两种:电阻丝应变片和半导体应变片,本设计中采用的是电阻丝应变片,为获得高电阻值,电阻丝排成网状,并贴在绝缘的基片上,电阻丝两端引出导线,线栅上面粘有覆盖层,起保护作用。

电阻应变片也会有误差,产生的因素很多,所以测量时我们一定要注意,其中温度的影响最重要,环境温度影响电阻值变化的原因主要是:

A.

电阻丝温度系数引起的。

B.

电阻丝与被测元件材料的线膨胀系数的不同引起的。

对于因温度变化对桥接零点和输出,灵敏度的影响,即使采用同一批应变片,也会因应变片之间稍有温度特性之差而引起误差,所以对要求精度较高的传感器,必须进行温度补偿,解决的方法是在被粘贴的基片上采用适当温度系数的自动补偿片,并从外部对它加以适当的补偿。非线性误差是传感器特性中最重要的一点。产生非线性误差的原因很多,一般来说主要是由结构设计决定,通过线性补偿,也可得到改善。

滞后和蠕变是关于应变片及粘合剂的误差。由于粘合剂为高分子材料,其特性随温度变化较大,所以称重传感器必须在规定的温度范围内使用。图1原理应变式传感器安装示意图2.2直流差动电桥检测电路图2-4单臂电桥转换电路⑴电桥平衡条件和调零直流电桥转换电路如图2-5(a)所示。当RL=∞时,输出电压为(2-15)电桥达到平衡时,输出电压为零,令Uo=0,由式(2-15)得(2-16)式(2-16)即为直流电桥的平衡条件。图2-5直流电桥转换电路和调零电路当式(2-16)不满足时,输出电压U0不为零,此时需要调零电路完成调零。图2-5(b)是典型的直流电桥调零电路,调节电位器Rr可以补偿R1、R2、R3、R4间的不平衡。⑵电桥的电压灵敏度①单臂电桥的电压灵敏度单臂电桥是将电阻应变片接入电桥的一个桥臂,如图2-4的R1位置,其余桥臂为固定电阻,则其输出电压为(2-17)因为电桥初始状态时是平衡的,有R2/R1=R4/R3,令n=R2/R1=R4/R3为桥比。由于ΔR1/R1很小,则(2-18)定义直流电桥电路的灵敏度系数为(2-19)欲使电路的灵敏度最大,令,得(1+n)2-2n(1+n)=0(2-20)即n=1。所以,选择桥臂电阻阻值,使桥比为1,电路灵敏度达到最大。此时的输出电压为(2-21)电路的灵敏度系数为(2-22)从前面的推导得知,式(2-21)的输出电压是式(2-17)略去分母中ΔR1/R1项得到的结果,简化后的输出电压Uo与电阻相对变化ΔR1/R1之间是线性的。如果不作简化,实际输出电压为(2-23)令n=1,这一线性化引起的非线性误差为(2-24)例如,测量过程中电阻的相对变化ΔR1/R1=1%,当采用单臂电桥作为转换电路时,由式(2-24)计算后,得到的非线性误差为γL=4.8%。它表明电阻的相对变化较大时,这种简化带来的非线性误差将变得非常严重。②半桥、全桥的电压灵敏度在试件上粘贴两个工作应变片,一个为受拉应变片,一个为受压应变片,大小相等,方向相反,接入电桥相邻桥臂,将构成半桥电路,如图2-6(a)所示;在试件上粘贴四个工作应变片,两个为受拉应变片,两个为受压应变片,分别接入对边桥臂,构成全桥电路,如图2-6(b)所示。图2-6差动电桥转换电路对于图2-6(a)所示的半桥电路,输出电压为(2-25)若ΔR1=ΔR2,R1=R2=R3=R4,则(2-26)半桥电路的灵敏度系数为:(2-27)对于图4-6(b)所示的全桥电路,输出电压为(2-28)全桥电路的灵敏度系数为KU=E(2-29)考虑传感器的灵敏度和操作难度,我们选择以差动半桥电路作为本设计的检测电路2.3放大电路目前的电子称重装置大都使用电阻应变桥式传感器,其核心是由电阻应变计(应变片)构成的电桥电路,这类传感器具有成本低、精度高且温度稳定性好的特点。但其检测原理决定该类传感器输出电压低,要经过差分放大电路放大数百倍才能用于A/D转换。一般说来,传感器输出的电压值都非常小,基本上都是毫伏级甚至微伏级。在设计高精度电子秤时,需要外部放大电路来获得足够的增益。差动放大电路:原理:本次设计中,要求用一个放大电路,即差动放大电路,主要的元就是差动放大器。在许多需要用A/D转换和数字采集的单片机系统中,多数情况下,传感器输出的模拟信号都很微弱,必须通过一个模拟放大器对其进行一定倍数的放大,才能满足A/D转换器对输入信号电平的要求,在此情况下,就必须选择一种符合要求的放大器。仪表仪器放大器的选型很多,我们这里使用一种用途非常广泛的放大器,就是典型的差动放大器ina114ap。它只需高精度和几只电阻器,即可构成性能优越的仪表用放大器。广泛应用于工业自动控制、仪器仪表、电气测量等数字采集的系统中。本设计中差动放大电路结构图如下:放大倍数的推导过程:2.4A/D转换A/D转换的作用是进行模数转换,把接收到的模拟信号转换成数字信号输出。由于输入电源为直流,电桥经放大后输出电压为直流电压,为模拟信号。经过芯片HX711-BF转为数字信号,便于下一步单片机的处理和显示。HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。通道A的可编程增益为128或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道B则为固定的64增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。

2.5单片机系统使用的单片机芯片为8位HX711芯片,外部晶振频率为12MHz。

HX711-BF是一种低功耗、高性能CMOS8位微控制器,具有

8K

在系统可编程Flash

存储器。在单芯片上,拥有灵巧的8

位CPU

和在系统可编程Flash,使得HX711-BF为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM,

32

位I/O

口线,看门狗定时器,内置4KB

EEPROM,MAX810复位电路,2个16

定时器/计数器,一个6向量2级中断结构,全双工串行口。另外HX711-BF可降至0Hz

静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU

停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。单片机最小系统由晶振、复位电路和单片机芯片构成,电路如图所示。2.6总电路图三、数据处理及程序的设计

3.1数据处理及程序的设计

数据处理子程序是整个程序的核心。主要用来调整输入值系数,使输出满足量程要求。另外完成A/D的采样结果从十六进制数向十进制数形式转化。对于重量与传感器的电压之间的关系,为了确保测量的准确度,用MATLAB软件编程。Lsline指令实现了对多组测量数据的最小二乘拟合,得到了比较理想的线性关系,又运用回归函数polyfit(x,y',1)得到压力与电压的函数关系,使压力的测量的精度进一步提高。

数据采集由HX711-BF芯片来完成,主要分为启动、读取数据、延时等待转换结束、读出转换结果、存入指定内存单元、继续转换(退出)几个步骤。HX711-BF初始化后,就具有了将某一通道输入的0~5V模拟信号转换成对应的数字量00H—FFH,然后再存入8051内部RAM的指定单元中。其转换方式可以采用程序查询方式,延时等待方式和中断方式三种。本设计采用的是延时等待方式,具体程序流程图如图13所示。

图13实验数据采集流程图3.2参数整定3.2.1测量数据及误差分析在IN0输入的数最大为5V,要求的质量303g对应的是4.8V,为十六进制向十进制转换方便,将系数放大100倍。并用小数点位置的变化体现这一过程。数据处理子程序是整个程序的核心。主要用来调整输入值系数,使输出满足量程要求。另外完成A/D的采样结果从十六进制数向十进制数形式转化。在硬件调试过程中重量与电压的关系如下表所示:

重量(g)020406080100120140160180200310电压(mv)0-0.025-0.054-0.082-0.109-0.138-0.167-0.199-0.228-0.259-0.291-0.48根据实验过程的情况以及实验时所使用的器材,分析实验所带的误差原因有:

1、作为应变梁的钢尺实验时所产生的应变弯曲不一定是线性的,也就是说实验的重物每增加单位重量时,钢尺所产生的应变大小并不一样;

2、应变片所粘贴的位置并不一定对称;

3、重物所挂在应变钢尺的位置会直接影响电子秤的输出,这是由于杠杆原理的关系;

4、设计电子秤时其中需要用到的器件是模数转换元件,把输入的模拟信号转换成数字信号时所带来的量化误差也在一定程度上影响电子秤的输出;

5、测量开始时需要进行调零,调节电位器使到电桥测量电路的输出为零,再调节相关的电位器调节差动放大器的放大倍数,可能是两个电位器的调节并不理想,才使得输出发生偏差。由于测得实验电压数据太过于小,需经过放大器放大十倍后才能更准确的被A/D采集,进行数据处理。所得拟合曲线如下图所示:3.2.2曲线拟合及参数整定经MATLAB软件编程,得拟合函数为:

(其中a1=

-68.5907

a0=

3.22476)

数据处理过程是对A/D转换结果的数字量的处理,即

数据采集由芯片来完成,主要分为启动、读取数据、延时等待转换结束、读出转换结果、存入指定内存单元、继续转换(退出)几个步骤。初始化后,就具有了将某一通道输入的0~5V模拟信号转换成对应的数字量00H—FFH,然后再存入8051内部RAM的指定单元中。其转换方式可以采用程序查询方式,延时等待方式和中断方式三种。本设计采用的是延时等待方式,具体程序流程图如图14所示。加上a0乘以a1加上a0乘以a1

图14A/D接口设计流程图

3.3

显示子程序的设计

显示程序是用来实时显示所测质量值,该部分程序是将显缓单元数据进行实时显示。总结

随着集成电路和计算机技术的迅速发展,使电子仪器的整体水平发生巨大变化,传统的仪

器逐步的被智能仪器所取代。智能仪器的核心部件是单片机,因其极高的性价比得到广泛的应

用与发展,从而加快了智能仪器的发展。而传感器作为测控系统中对象信息的入口,越来越受

到人们的关注。传感器好比人体“五官”的工程模拟物,它是一种能将特定的被测量信息(物理

量、化学量、生物量等)按一定规律转换成某种可用信号输出的器件或装置本次设计中的电阻应变片电子称就是在以上仪器的基础上设计而成的。因此,只有充分了解有关智能仪器、单片机、传感器以及各部分之间的关系才能达到要求。

经过几周的努力,终于按照设计进度要求如期完成了电子秤系统的设计任务。在做课程设计的过程中,虽然碰到了不少的困难,但是在老师的指导以及共同的努力下,终于取得了一定成果。

在此次课程设计中,虽然顺利完成了电子称的设计和制作,但也存在一定的不足,如电子称的的精度不够高。同时也有很多的收获,对电阻式应变片的工作原理及性能指标有了更加直观和深入的认识。通过对数据采集的分析,

放大器及

A/D

转换器对信号的转换、传输和处理有了更深的认识。熟悉

单片机功能及工作特性,掌握其接口扩展方法。这些都为我今后学习和工作留下了积极的影响。

参考文献[1]杨新荣.《智能仪器原理、设计与发展》.中南大学出版社,2003[2]张毅刚.MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,2003[3]贾伯年,俞朴.传感器技术.南京:东南大学出版社,2000[4]徐仁贵等.《单片微型计算机应用技术》.机械工业出版社,2001[5]李道华,李玲,朱艳.传感器电路分析与设计.武汉大学出版社,2000[6]李刚,林凌,姜苇.单片机系统设计与应用技巧.北京航空航天大学出版社,2004附录1程序##include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong//#definedelayNOP();{_nop_();_nop_();_nop_();_nop_();};#defineRATIO6797/1000volatilebitFlagTest=0;intCounter;ulongidataFullScale;//满量程AD值/1000ulongAdVal;//AD采样值ulongweight;//重量值,单位gucharDotPos; //小数点标志及位置#definedata_1602P0sbitrs=P2^5; sbitrw=P2^6; sbite=P2^7; voidTimer0_Init();voidTimer0_ISR();voidINT1_Init();voidTo_Zero();voidDisplay_Weight();voidlcd_pos(ucharhang,ucharadd);voidwrite_com(ucharcom);voidwrite_data(uchardat);unsignedlongreadcount(void);voidTo_Zero(){ FullScale=readcount()/1000; }//显示重量,单位kg,两位整数,三位小数voidDisplay_Weight(){ uinti,j; ucharA1,A2; ucharB1,B2,B3; i=weight/1000;//得到整数部分 j=weight-i*1000;//得到小数部分 A1=i/10+48; A2=i%10+48; B1=j/100+48; B2=j%100/10+48; B3=j%100%10+48; //int2str(i,str1); if(i>=10) { } else { lcd_pos(2,3); write_data(''); write_data(A2); } //int2str(j,str1); if(j<10) { lcd_pos(2,5); write_data('.'); write_data('0'); write_data('0'); write_data(B3); } elseif(j<100) { lcd_pos(2,5); write_data('.'); write_data('0'); write_data(B2); write_data(B3); } else { lcd_pos(2,5); write_data('.'); write_data(B1); write_data(B2); write_data(B3); }}/**********参考驱动程序**********/sbitADDO=P1^4; sbitADSK=P1^5;unsignedlongreadcount(void){ unsignedlongcount; unsignedchari; ADDO=1; ADSK=0;//使能AD(PD_SCK置低) count=0; while(ADDO);//AD转换未结束则等待,结束则开始读取 for(i=0;i<24;i++) { ADSK=1; //PD_SCK置高(发送脉冲) count=count<<1; //下降沿来时左移一位,右侧补零 ADSK=0; if(ADDO)count++; } ADSK=1; count=count^0x800000;//第25个脉冲下降沿来时,转换数据 ADSK=0; return(count);}/***********************延时函数************************/voiddelay_uint(uintq) //q=1,延时10uS{ while(q--);}/***********************lcd1602写命令函数************************/voidwrite_com(ucharcom){ e=0; rs=0; rw=0; P0=com; delay_uint(3); e=1; delay_uint(25); e=0;}/***********************lcd1602写数据函数************************/voidwrite_data(uchardat){ e=0; rs=1; rw=0; P0=dat; delay_uint(3); e=1; delay_uint(25); e=0; }/***********************lcd1602初始化设置************************/voidinit_1602() //lcd1602初始化设置{ write_com(0x38); //显示模式设置,16X2显示,5X7点阵,8位数据并口 write_com(0x0c); //开显示,不显示光标,光标闪烁开 write_com(0x06); //读写一个字符后,指针自动加一,整屏显示不移动 //清屏指令write_com(0x01);}/************1602weizhi******************/voidlcd_pos(ucharhang,ucharadd){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add);}//定时器0初始化voidTimer0_Init(){ ET0=1;//允许定时器0中断 TMOD=1;//定时器工作方式选择 TL0=0x06; TH0=0xf8;//定时器赋予初值 TR0=1;//启动定时器}//定时器0中断voidTimer0_ISR(void)interrupt1using0{ TL0=0x06; TH0=0xf8;//定时器赋予初值 //每0.5秒钟刷新重量Counter++;if(Counter>=200){ FlagTest=1; Counter=0;}} voidmain(){ init_1602(); write_com(0x01); EA=0; Timer0_Init(); EA=1; write_com(0x01);//clearalldots To_Zero(); lcd_pos(2,10); write_data('k'); write_data('g'); while(1) { //每0.5秒称重一次 if(FlagTest==1) { //称重,得到重量值weight,单位为g AdVal=readcount(); weight=FullScale-AdVal/1000; if(weight>0x8000)weight=0; weight=10000*weight/FullScale; weight=weight*RATIO; if(weight>=10000) { } //如果不超量程 else { //显示重量值 Display_Weight(); //清测试标志 FlagTest=0; } } }}基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用HYPERLINK"

温馨提示

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

评论

0/150

提交评论