基于C51的智能健康称重系统设计.docx
《基于C51的智能健康称重系统设计.docx》由会员分享,可在线阅读,更多相关《基于C51的智能健康称重系统设计.docx(22页珍藏版)》请在冰豆网上搜索。
基于C51的智能健康称重系统设计
摘要
本文介绍了一种基于微处理器与传感器等技术基础上设计的智能健康称重的电子秤。
现代信息技术的三大基础是信息的采集、传输和处理技术,即传感技术、通信技术和计算机技术,它们分别构成了信息技术系统的“感官”、“神经”和“大脑”。
信息采集系统的首要部件是传感器,且置于系统的最前端。
在一个现代自动检测系统中,如果没有传感器.就无法监测与控制表征生产过程中各个环节的各种参量,也就无法实现自动控制。
在现代技术中,传感器实际上是现代测试技术和自动化技术的基础
科学技术的飞速发展,由称重传感器制作的电子衡器也已广泛地应用到各行各业。
特别是随着微处理机的出现,工业生产过程自动化程度化的不断提高,称重传感器已成为过程控制中的一种必需的装置。
为了提高我们对数据采集及数据处理方面知识的处理能力,并且考虑到作品的实用性和个人兴趣等因数,我们设计了一台基于51单片机的智能电子秤。
本系统通过称重传感器采样,A/D转换后输入单片机,通过按键设置单价后,经过单片机主控制器件的处理后,液晶上就会显示:
体重和距离健康的标准。
关键词:
智能称重;传感器;微处理器;测试技术
摘要III
第1章引言1
第2章系统方案设计1
2.1设计任务及要求1
2.1.1任务1
2.1.2设计说明2
2.1.3智能秤的工作原理2
2.2智能秤设计的要求及思路2
2.2.1智能秤设计的基本要求2
2.2.2智能秤设计的基本思路2
第3章智能秤的设计与制作4
3.1智能秤的各个模块4
3.1.1传感器4
3.1.2测身高部分6
3.1.3A/D转换模块——ADC08088
3.1.4微处理器模块——AT89C519
3.1.5输出显示模块——LCD10
3.1.6电源模块11
第4章智能秤的软件设计12
4.1总体方案设计12
4.2称重部分软件设计13
4.3测量身高部分软件设计14
4.4A/D转换部分程序流图16
4.5LCD显示部分程序16
第五章总结18
第1章引言
目前,随着社会的发展、生活水平不断提高,人们越来越关注自己的身体健康。
许多人由于工作的压力和不良的饮食习惯,使得身体健康每况愈下,疾病也随之而来,而在这些人群中,患有肥胖和营养不良的病人居多。
为方便人们及时了解自己的体重是否超出或低于标准的体重,在许多公共场合都摆放了人体秤,商场、药店、马路旁等随处可见,给那些由于工作紧张没有时间到医院做定期体验的人们带来了方便。
人体秤已不再是医院的专用医疗器械,已成为人们生活中不可缺少的一部分。
普通人体秤测量身高和体重的结果都是直接用眼睛观看指针读取的,由于读数的方法各不相同、读数时光线有明有暗等多种原因,使得读取数据的误差过大。
由于人体秤的使用非常普遍,解决这一问题显得尤为重要。
近年来,随着科技不断进步,计算机已渗透到各个领域,单片机已逐渐成为科学技术现代化的重要工具,正在不断地走向深入。
单片机的应用已深入到人类的生活、生产等各种领域。
在此基础上发展起来的由单片机控制的人体称,比普通人体称在耐用性、适用环境、读数的准确度等方面有了很大的提高。
智能人体秤经济、实用,适合在广大工薪阶层推广。
因此,以单片机为控制核心的人体秤,不但提高了读数的精确度,给人们以直观的效果,将身材标准与否一并显示,与普通人体秤的价格相差无几,逐渐取代传统的人体秤。
同时单片机的可编程性使得称重还可具有一定的趣味性拓展,如加入健康指标。
第2章系统方案设计
2.1设计任务及要求
2.1.1任务
设计一个人体智能秤,能够显示人的体重,并通过算法给出健康与否的评价显示在LCD上。
2.1.2设计说明
电子秤是利用物体的重力作用来确定物体质量(重量)的测量仪器,也可用来确定与质量相关的其它量大小、参数、或特性。
不管根据什么原理制成的电子秤均由以下三部分组成:
承重与传力复位系统、称重传感器(重力传感器)测量显示与数据输出模块。
承重与传力复位系统是被称物体与转换元件之间的机械、传力复位系统,又称电子秤的秤体,称重传感器是将由非电量(质量或重量)转换成电量的转换元件,测量显示与数据输出模块为核心的数据处理与显示功能的模块。
2.1.3智能秤的工作原理
当被称物体放置在秤体的秤台上时,其重量便通过秤体传递到称重传感器,传感器随之产生力-电效应,将物体的重量转换成与被称物体重量成一定函数关系(一般成正比关系)的电信号(电压或电流等)。
此信号模/数(A/D)器进行转换,数字信号再送到微处器的CPU处理,CPU不断扫描键盘和各种功能开关,根据键盘输入内容和各种功能开关的状态进行必要的判断、分析、由仪表的软件来控制各种运算。
运算结果送到内存贮器,需要显示时,CPU发出指令,从内存贮器中读出送到显示器显示。
2.2智能秤设计的要求及思路
2.2.1智能秤设计的基本要求
通过传感器测量体重、身高,通过单片机的程序进行计算,和测量体重比较,输出胖瘦的判断。
2.2.2智能秤设计的基本思路
将电子秤大致能划分为三大部分,数据采集模块、控制器模块和人机交互界面模块。
其中数据采集模块由压力传感器、信号的前级处理和A/D转换部分组成。
转换后的数字信号送给控制器处理,由控制器完成对该数字量的处理,驱动显示模块完成人机间的信息交换。
本系统主要采用称重传感器模块、滤波放大电路模块、模数转换电路模快、显示模块、按键模块等部分组成。
人体的体重信息由称重传感器转换成电信号,由单片机控制A/D转换器完成数据采集,并由单片机完成运算、输出,有LCD将结果显示。
图2.1
第3章智能秤的设计与制作
3.1智能秤的各个模块
3.1.1传感器
称重传感器实际上是一种将质量信号转变为可测量的电信号输出的装置。
用传感器茵先要考虑传感器所处的实际工作环境,这点对正确选用称重传感器至关重要,它关系到传感器能否正常工作以及它的安全和使用寿命,乃至整个衡器的可靠性和安全性。
在称重传感器主要技术指标的基本概念和评价方法上,新旧国标有质的差异。
电阻应变式称重传感器是基于这样一个原理:
弹性体(弹性元件,敏感梁)在外力作用下产生弹性变形,使粘贴在他表面的电阻应变片(转换元件)也随同产生变形,电阻应变片变形后,它的阻值将发生变化(增大或减小),再经相应的测量电路把这一电阻变化转换为电信号(电压或电流),从而完成了将外力变换为电信号的过程。
称重传感器主要由弹性体、电阻应变片电缆线等组成内部线路采用惠更斯电桥当弹性体承受载荷产生变形时输出信号电压可由式3.1给出。
电阻应变式称重传感器包括两个主要部分,一个是弹性敏感元件:
利用它将被测的重量转换为弹性体的应变值;另一个是电阻应变计:
它作为传感元件将弹性体的应变,同步地转换为电阻值的变化。
电阻应变片所感受的机械应变量一般为10-6~10-2,随之而产生的电阻变化率也大约在10-6~10-2数量级之间。
这样小的电阻变化用一般测量电阻的仪表很难测出,必须采用一定形式的测量电路将微小的电阻变化率转变成电压或电流的变化,才能用二次仪表显示出来。
在电阻应变式称重传感器中通过桥式电路将电阻的变化转换为电压变化。
电桥电路
图3.1电桥电路
称重传感器主要由弹性体、电阻应变片电缆线等组成内部线路采用惠更斯电桥当弹性体承受载荷产生变形时输出信号电压。
R1、R2、R3、R4为4个应变片电阻,组成了桥式测量电路,Rm为温度补偿电阻,e为激励电压,V为输出电压。
若不考虑Rm,在应变片电阻变化以前,电桥的输出电压为:
(3.1)
由于桥臂的起始电阻全等,即R1=R2=R3=R4=R,所以V=0。
当应变片的电阻R1、R2、R3、R4变成R+△R1、R+△R2、R+△R3、R+△R4时,电桥的输出电压变式子3.2为:
V=
(3.2)
通过化简,上式则变式子(3.3)为:
V=
(3.3)
也就是说,电桥输出电压的变化与各臂电阻变化率的代数和成正比。
如果四个桥臂应变片的灵敏系数相同,且
=Kε,则上式又可写式3.4成:
V=
ε1-ε2+ε3-ε4)(3.4)
式中K为应变片灵敏系数,ε为应变量。
上式表明,电桥的输出电压和四个轿臂的应变片所感受的应变量的代数和成正比。
在电阻应变式称重传感器中,4个应变片分别贴在弹性梁的4个敏感部位,传感器受力作用后发生变形。
在力的作用下,R1、R3被拉伸,阻值增大,△R1、△R3正值,R2、R4被压缩,阻值减小,△R2、△R4为负值。
再加之应变片阻值变化的绝对值相同,即
△R1=△R3=+△R或ε1=ε3=+ε
△R2=△R4=-△R或ε2=ε4=-ε
因此,V=
×4ε=eKε。
若考虑Rm,则电桥的输出电压变成式(3.5):
V=
=
=
Kεe(3.5)
令SU=
,则SU=
Kε
SU称为传感器系数或传感器输出灵敏度。
对于一个高精度的应变传感器来说,仅仅靠4个应变片组成桥式测量电路还是远远不够的。
由于弹性梁材料金相组织的不均匀性及热处理工艺、应变片性能及粘贴工艺、温度变化等因素的影响,传感器势必产生一定的误差。
为了减少传感器随温度变化产生的误差,提高其精度和稳定性,需要在桥路两端和桥臂中串入一些补偿元件。
如:
初始不平衡值的补偿、零载输出温度补偿、输出灵敏度温度补偿等。
3.1.2测身高部分
超声波测距原理:
超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场,例如:
液位、井深、管道长度等场合。
它是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距离S=Ct/2,式中的C为超声波波速。
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:
s=340t/2 。
超声波测身高距系统的硬件电路设计
本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时,单片机选用AT89S52,经济易用。
电路原理图如图8所示。
图3.2超声波测身高示意图
(1)40kHz脉冲的产生与超声波发射
测距系统中的超声波传感器采用UCM40的压电陶瓷传感器,它的工作电压是40kHz的脉冲信号,这由单片机执行下面程序来产生
DSH:
MOV14H,#12H;超声波发射持续200ms
HERE:
CPLP1.0;输出40kHz方波
NOP ;
NOP ;
NOP ;
DJNZ 14H,HERE;
RET
电路的输入端接单片机P1.0端口,单片机执行上面的程序后,在P1.0端口输出一个40kHz的脉冲信号,经过三极管T放大,驱动超声波发射头UCM40T,发出40kHz的脉冲超声波,且持续发射200ms。
(2)超声波的接收与处理
接收头采用与发射头配对的UCM40R,将超声波调制脉冲变为交变电压信号,经运算放大器IC1A和IC1B两极放大后加至IC2。
IC2是带有锁定环的音频译码集成块LM567,内部的压控振荡器的中心频率f0=1/1.1R8C3,电容C9决定其锁定带宽。
调节Rp1在发射的载频上,则LM567输入信号大于25mV,输出端8脚由高电平跃变为低电平,身高数据通过8脚送至单片机进行数据处理。
电路的输出端接单片机INT0端口,中断优先级最高。
(3)计算超声波传播时间
在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。
当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。
3.1.3A/D转换模块——ADC0808
AD转换就是模数转换,顾名思义,就是把模拟信号转换成数字信号。
再此我们用ADC0808实现模数转换。
下图为ADC0808芯片及各个管脚。
图3.3ADC0808
ADC0808各脚功能如下:
D7-D0:
8位数字量输出引脚。
IN0-IN7:
8位模拟量输入引脚。
VCC:
+5V工作电压。
GND:
地。
REF(+):
参考电压正端。
REF(-):
参考电压负端。
START:
A/D转换启动信号输入端。
ALE:
地址锁存允许信号输入端。
(以上两种信号用于启动A/D转换).
EOC:
转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。
OE:
输出允许控制端,用以打开三态数据输出锁存器。
CLK:
时钟信号输入端(一般为500KHz)。
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
3.1.4微处理器模块——AT89C51
AT89C51具有如下特点:
40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,3个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
图3.4AT89C51
单片机的P1口接A/D转换后的输入信号,二P2.3,P2.4和P2.5接A,B,C三条地址线来选择输入信号。
3.1.5输出显示模块——LCD
LCD是利用晶体材料的电光效应制作的一种被动式显示器。
液晶本身并不发光,依靠电信号的控制使周围环境光在显示部位反射或透射而得以显示。
液晶显示器是一种体积小、重量轻、功耗低、被广泛应用的显示设备。
在本系统中用LCD来显示体重、身高和健康结果。
LCD复位信号通过反相器接到单片机的RESET上,上电或手动复位时将随单片机同时复位。
由于复位后并行口输出高电平,LCD处于选中状态,此时LCD将输出内部状态字,将会影响数据总线上的数据传输。
图3.5LCD显示模块
3.1.6电源模块
图3.6电源供电部分
如图3.7所示电源供电部分采用变压器降压、桥式整流、电容器滤波、三端稳压器7805稳压后供电,电源用220V的家庭用电经变压器降至9V交流电,然后经四个整流二极管(D1~D4)组成的桥式整流成直流电压。
图3.7电源供电部分
桥式整流器是利用二极管的单向导通性进行整流的最常用电路,常用来将交流转变成为直流电。
桥式整流是对二极管半波整流的一种改进。
半波整流利用二极管单向导通特性,在输入标准正弦波的情况下,输了获得正弦波正半部分,负半部分则损失掉。
桥式整流器利用四个二极管,两两对接,输入正弦波的正半部分是两只管导通,得到正的输出,输入正弦波的负半部分时,另两只管导通,由于这两只管是反接的,所以输出还是得到正弦波的正半部分。
桥式整流器对输入正弦波的利用率比半波整流高一倍。
桥式整流是交流转换成直流电的第一步。
桥式整流也叫整流桥堆。
桥式整流器是多只整流二极管作桥式连接,外用绝缘塑料封装而成,大功率整流器在绝缘层外添加金属壳包封,增强散热。
桥式整流器品种多,性能优良,整效率高,稳定性好,最大整流电流从0.5A到50A,最高反射峰值电压从50V到1000V。
第4章智能秤的软件设计
4.1总体方案设计
本设计采用C语言编程,编译环境是KeiluVision3。
Keil是德国Keil公司开发的单片机编译器,是目前最好的51单片机开发工具之一。
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。
KeilC51单片机软件开发系统的整体结构可以完成编辑、编译、连接、调试、仿真等整个开发流程,该集成系统可以编译C源程序。
单片机C语言和一般的C语言的语法结构基本相同,也是采用函数结构,大部分函数也相同。
但是单片机的RAM相比计算机少很多,所以单片机C语言有自动覆盖技术而且有优化技术,可以最大限度减少代码长度。
软件设计由系统初始化、数据采集、数据处理、按键检测控制显示三个部分组成。
软件组成图如图13所示:
图4.1软件组成图
BMI系统软件工作流程:
首先对单片机和LCD进行初始化,其次A/D转换子程序中读取获得的体重值,再对体重值进行判断。
若体重值为0,则写LCD子程序显示字符,即各个值显示为0;若体重值大于98,则写LCD各个值显示字符为“--”或“---”;若体重值在于0和98之间,则写显示体重值,读取身高值,显示身高。
之后计算BMI值,再由BMI值判断身体质量指数的检测结果并显示。
4.2称重部分软件设计
称重部分主要由称重传感器、放大电路、显示四部分组成,模拟信号通过称重传感器输入,然后经过放大电路放大后通过数模转换器转换存放到控制单元,再由控制部分和显示电路驱动显示。
放大电路的设计要考虑到抗干扰设计。
称重主流程图如图11所示。
图4.2主程序流程图图4.3称重主程序流程图
4.3测量身高部分软件设计
测量身高采用超声波测量,单片机的P2.7口为超声波的发射提供计数脉冲,使产生200ms的40KHZ的方波脉冲,当时间到达后假如仍没有收到反射回来的超声波,则重新发射超声波,直到收到反射波为止。
在这里有一点值得注意,在开机的时候先不要急于测量,让机器先测量超声波源于人要所站的平面地的距离,并存入单片机的内存单元50H和51H,当有人测量时,测出的距离为波源于人头顶的距离,并存入内存单元30H和31H,这时,通过单片机软件设计将50H和51H单元的内容减去30H和31H的内容即得出人的身高,这样可以保证测量的准确性。
身高数据传入单片机是通过INT0口的中断,一旦数据传入将直接处理显示,它可能会中断体重测量的数据处理和显示,但不会影响数据的准确性,它与体重测量结果的显示不存在先后问题。
测量身高的主程序流程图如图12,定时服务子程序及中断子程序流程图分别如图13((a)、(b))。
图12测量身高的主程序流程图
(a)定时子程序(b)中断子程序
图4.4服务子程序
4.4A/D转换部分程序流图
首先写单片机初始化,单片机信号通道设置和数据转换模数式子程序,读取数据通道入口由主程序定,A/D转换子程序返回转换后的二进制结果。
主程序对获取的二进制结果数据进行处理转换为体重值。
如图14所示A/D转换部分程序流图:
图4.5A/D转换部分程序流图
4.5LCD显示部分程序
显示部分包括字符串显示和单字符显示。
无论是字符串显示还是单字符显示在LCD写数据指令前后都应有延时程序,否则第一个字符会丢失或是显示会不正常,因为程序处理需要时间没有延时,数据读取太快,就好使得显示不正常。
获取到的数值需要单字符显示需要写入循环指令中标志需要显示的值的字符应写也外部。
对于读取的体重值要根据传感器量程写报警程序和显示程序。
也需要对于在没有体重输入的情况下写显示程序。
BMI值和身体质量指数测试结果的显示需要根据BMI标准,对获得的值进行判断用户是否正常,BMID的计算公式如公式5所示,成人的BMI数值标准如表2所示:
(BMI)=体重(kg)/身高(m)^2(4-1)
表1成人的BMI数值标准
体重指数(最理想的体重指数:
22)
\
男性
女性
过轻
低于20
低于19
适中
20-25
19-24
过重
25-30
24-29
肥胖
30-35
29-34
非常肥胖
高于35
高于34
由于LCD本身存在缺陷——不可显示中文字符,也为了减少设计成本故而本设计根基标准BMI值的范围设定了五个健康质量测试结果result输出范围:
A,B,C,D,E(以女性的参考范围定义)如表3成人的BMI测试结果所示:
表2成人的BMI测试结果
BMI(以女性的BMI值为标准)
Result
22
A
19-22,22-24
B
24-29,<19
C
29-34
D
>34
E
软件流程图如图15所示:
图15LCD程序流图
第五章总结
学贵以致用,通过几天的智能秤设计过程,将从书本上学到的知识应用于实践,学会了初步的电子电路仿真设计,虽然过程中遇到了一些困难,但是在解决这些问题的过程无疑也是对自己自身专业知识的一种提高。
当最终调试成功的时候也是对自己的一种肯定。
此次的设计作业不仅增强了自己在专业设计方面的信心,鼓舞了自己,更是一次兴趣的培养,为自己以后的学习方向的明确了重点。
另外在这次实验中我们遇到了不少的问题针对不同的问题我们采取不同的解决方法,遇到不懂的问题时,利用网上的资源,搜索查找得到需要的信息。
最终一一解决设计中遇到的问题。
通过错误排除最终确认是传感器的问题。
我觉得我们能够顺利完成此设计的关键是团队合作,当然知识储备也不能忽略。
教师评语
成绩