基于单片机的身高体重测量仪.doc_第1页
基于单片机的身高体重测量仪.doc_第2页
基于单片机的身高体重测量仪.doc_第3页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

河北大学工商学院2014届本科生毕业论文(设计)河北大学工商学院装订线 本科生毕业论文(设计) 题目:基于单片机的身高体重测量仪学 部 信息科学与工程学部 学科门类 工学 专 业 电子科学与技术 学 号 2010481027 姓 名 武立鑫 指导教师 2014年5月19日基于单片机的身高体重测量仪摘要本文介绍了一个基于单片机的身高体重测量仪,本设计以单片机为平台,利用金属应变片来感应人体的重量,传感器输出模拟量经 AD转换器转换成数字量传入单片机。利用超声波在介质中传播速度固定的原理可由超声波在空气中的传播时间算出传播距离,实现身高的测量。通过串口电路实现了单片机与上位机的通信。本设计硬件电路包括电源电路、单片机最小系统电路、液晶屏电路、串口通信电路、独立按键电路、蜂鸣器电路、超声波模块电路、AD转换器电路和全桥电路。软件部分包括主程序、系统初始化程序、AD转换器通信程序、按键检测程序、超声波信号发射及接收程序、液晶屏驱动程序。本设计可以同时测量人体的身高和体重,还可以将所测数据自动编号发送到上位机上显示或以文档的形式导出并保存。基于单片机身高体重测量仪制作成本低,电路设计简单,显示清楚,基本满足设计要求。装订线关键词:STC89C52;超声波;HX711;上位机Height and weight measurement instrument based on MCUABSTRACTThis paper introduces a height and weight measurement instrument based on MCU , The design use a MCU as the platform, using metal strain gauges to induction of the weight of the human body. Because the ultrasonic propagation velocity is fixed, so according to the propagation time to calculate the propagation distance, so as to get the height information. Through the serial port MCU can communicate with the PC. The hardware circuit includes power circuit, MCU minimum system circuit, LCD circuit, serial communication circuit, independent key circuit, a buzzer circuit, ultrasonic module circuit, AD converter circuit and a full bridge circuit. The software includes the main program, the system initialization program, AD converter communication program, button detection program, the ultrasonic signal emitting and receiving procedures, LCD driver program.This design can simultaneously measure the body height and weight, and can also send data to the host computer display or derived form document and save. Height and weight measurement instrument based on MCU of low cost, simple circuit design, clear display, basically meet the design requirements.Key words:STC89C52;Ultrasonic;HX711;Host computer目录1绪论12身高体重测量仪总体方案设计22.1设计方案的选定22.2身高体重测量仪的工作过程33身高体重测量仪的硬件电路设计43.1电源电路43.2单片机最小系统电路43.3串口通信电路53.4超声波模块接口电路63.5独立按键电路63.6液晶屏电路73.7蜂鸣器电路83.8HX711 AD转换器模块接口电路83.9全桥电路93.10总体硬件电路及其工作原理104软件设计114.1主函数的编写114.2系统初始化函数的编写134.3HX711 AD转换器通信函数的编写134.4按键检测函数的编写144.5超声波模块函数的编写164.6液晶屏驱动函数的编写175开发平台及调试195.1硬件的制作195.2硬件的开发平台205.3软件的调试205.4软件的开发平台215.5上位机软件226总结236.1特点236.2不足与改进23参考文献24致谢25附录26附录271绪论随着科技和社会的发展,电子产品已经渗透到了社会的各个领域,人们对个人的体质状况也越来越重视,在此背景下产生了许多用于测试人体健康标准的电子设备和器材,如血糖仪、电子体温计、身高体重测量仪等就是其中典型的例子。传统的身高体重测量仪具有不便于携带、功能单一、智能化程度低等缺点,因此进一步研究身高体重测量仪有着非常现实的意义。多功能、易携带、低功耗、智能化是未来身高体重测量仪的发展趋势。身高体重测量仪以成为人们日常生活和生产中不可缺少的物品,它在医疗应用、学校体检、家庭应用等方面都有广泛的应用。上世纪50年代中期电子技术的发展推动身高体重测量仪制造业的飞速发展,经过50余年的不断改进与完善,我国的身高体重测量仪从最初的全机械型到机电结合型再发展到现在的全电子型和数字智能型,计量方法从模拟测量向数字测量发展1。未来的身高体重测量仪将与智能化接轨,与其他测量仪器集成在一起,形成多功能的测量仪。随着科技的不断发展,身高体重测量仪将从具有单纯测量功能发展到具有数据传输功能、判断功能、记忆功能。在新的时代里,面貌一新的身高体重测量仪将发挥更大的作用。本设计制作了一个基于STC89C52RC单片机的身高体重测量仪,它可以同时测量人体的重量和高度,同时还可以将所测信息自动编号发送到上位机进行显示和保存,另外本设计还可以通过按键设置显示模式以及校准。与传统的身高体重测量仪相比具有易携带、多功能、智能化程度高等优点。2身高体重测量仪总体方案设计本课题的目标是设计一个基于单片机的身高体重测量仪,该系统所测量的身高允许范围为0.1m-2.5m,精度为1cm,体重允许范围为0kg-200kg,精度为0.5kg。测量数据能够显示在液晶屏幕上还可以通过串口传输到上位机通过电脑进行显示和数据的存储。2.1设计方案的选定(1)本次设计选用STC89C52单片机作为主控芯片,STC89C52与传统的51系列单片机相比功能更加强大,价格也更低。利用Keil软件编译程序使开发更为简单,它可以支持串口直接下载程序,不需要专门的下载器,用ISP软件将程序下载到单片机中,单片机即可执行相应的功能,开发工具简单。(2)系统所选器件均为5V供电,所以本设计电源模块选用LM2940三端稳压芯片,直流电压输入到LM2940的输入端,输出端输出5V作为整个系统的电源。(3)本设计选用ZX12864R液晶屏来显示测量信息,ZX12864R液晶屏可显示汉字及图形,内置8192 个中文汉字和128个字符。模块具有光标显示、画面移位、自定义字符、睡眠模式等功能,模块有并行和串行两种连接方法2。(4)体重的测量使用压力应变片,它可以将人体的体重转换为电压信号,模拟信号经AD转换器处理转换成数字值传入到单片机进行处理。(5)身高的测量采用超声波传感器,传感器的发射器发出的超声波以固定速度在空气中传播,到达地面时被反射返回,由接收器接收,其往返时间为t,可由单片机的定时器测量,由s=vt/2即可算出传输距离即身高3。(6)由于设计要求将测量信息发送到上位机上显示和保存,且STC89C52单片机在烧录程序时也使用串口,所以本设计中选用了MAX232芯片作为TTL电平与RS232电平转换的器件构成串口通信电路。除上述主要器件以外系统的设计还增加了蜂鸣器、按键等模块来完善系统的设计,系统设计框图如图2-1所示。图2-1系统设计框图2.2身高体重测量仪的工作过程本设计开机后液晶屏幕上会显示当前的重量以及身高信息,系统在硬件设计上留有四个独立按键,若按下电路板上的“发送”按键系统会将当前的身高和体重信息编号为一号发送到上位机进行显示,若再次按下“发送”按键则系统会将编号自动加一并再次向上位机发送最新更新的身高和体重信息。若按下电路板上的“保持”按键系统会将当前测量的值显示在液晶屏幕上并保持不变同时液晶会显示当前处于保持显示的状态,在保持状态下再次按下“保持”按键系统会取消保持状态返回实时测量的状态,同时液晶显示回到正常测量的显示界面。若在测量状态下按下“校准+”按键测量的重量值会加0.1kg,若按下“校准-”按键测量的重量值会减0.1kg,这两个按键用于人体秤的校准操作,即在没有被测物体放在称上时可将显示值调节为0kg,用以消除不确定性因素所引起的误差。3身高体重测量仪的硬件电路设计身高体重测量仪的核心器件是STC89C52单片机,硬件电路包括电源电路、单片机最小系统电路、ZX12864R液晶屏电路、串口通信电路、独立按键电路、蜂鸣器电路、超声波模块接口电路、AD转换器接口电路以及由四个应变片组成的全桥电路。3.1电源电路电源是一个系统能正常工作的基础,为系统的运行提供可靠的能源保证,因此电源模块的设计至关重要。本设计采用LM2940三端稳压芯片,LM2940是一款三端低压型稳压器,最大输出电流为1A,最大输入电压26V, 内部含静态电流降低电路、电流限制、过热保护、电池反接和反插入保护电路4,输出电压为5v。由于其电路简单且在本设计中单片机以及其他器件的工作电压均是5V,所以本设计的电源部分采用LM2940芯片作为稳压芯片,电源电路如图3-1所示。图3-1电源电路3.2单片机最小系统电路STC89C52RC单片机与传统的8051系列单片机相比具有速度高、低功耗、抗干扰能力强、开发容易等特点,且指令代码完全兼容传统8051单片机。ISP(在系统可编程)不需要专用的下载器,可以通过串口(RxD/P3.0,TxD/P3.1)下载用户编写的程序到单片机中。STC89C52RC片上集成了512字节RAM和8k字节的用户程序存储空间5,用户向其写入程序即可执行相应的功能。单片机的第18和19引脚外接晶振,构成时钟电路, C7和C8是两个30pF的瓷片电容对晶振起微调的作用。当EA端接高电平时,单片机则执行内部ROM中的指令。通用IO口P1、P2、P3是准双向口/弱上拉,P0口是漏极开路输出,在本设计中P0作为液晶的数据总线接口,所以需外加上拉电阻。VCC引脚为单片机的电源正极接5V电源电压,GND为单片机的电源地。由上拉电阻、时钟电路、电源电路构成了单片机的最小系统。单片机最小系统电路原理图如图3-2所示。图3-2单片机最小系统电路3.3串口通信电路本设计中程序的烧录以及系统要与上位机进行通信所以本设计还包含串口通信电路,其主要器件是MAX232芯片。标准的RS232电平比较高,而常用的 TTL 电平最高为5V,如果需要通信那么在硬件连接上必须进行两种电平的转换。电脑USB口输出电压为12V,如果直接与单片机相连会烧坏单片机及周围器件,所以本设计选用MAX232芯片来进行电平转换。MAX232的供电电压为5V,外围电路简单只有几个104瓷片电容。MAX232芯片的13脚(R1in)、12脚(R1out)、11脚(T1in)、14脚(T1out)构成了该芯片的第一数据通道。8脚(R2in)、9脚(R2out)、10脚(T2in)、7脚(T2out)构成第二数据通道。TTL电平数据从T1in、T2in输入经MAX232芯片转换成RS232电平数据后从T1out、T2out输出。RS232数据从R1in、R2in输入到MAX232芯片转换成TTL数据后从R1out、R2out输出6。串口通信电路原理图如图3-3所示。图3-3串口通信电路3.4超声波模块接口电路本设计使用HC-SR04超声波模块来测量人体的身高,该模块共有四个引脚,其中1脚为电源正极,其典型的工作电压为5V,4脚为电源地。第二脚Trig为控制端口用于控制超声波脉冲的发射,3脚为超声波脉冲接收端,当模块接收到超声波脉冲后该引脚的电平会发生变化7,所以这两个引脚也与单片机的普通IO口相连。超声波模块接口电路如图3-4所示。图3-4超声波模块接口电路3.5独立按键电路单片机P1、P2、P3端口是弱上拉端口,即P1、P2、P3端口内部带有上拉电阻,所以单片机复位后这几组端口输出均为高电平8。本设计的按键接口如图3-5所示,在正常情况下按键所接的引脚均为高电平,当按键按下时单片机的引脚与电源地相连即其输入变为低电平,单片机通过检测引脚上的电平变化即可以检测按键是否按下9。独立按键电路如图3-5所示。图3-5独立按键电路3.6液晶屏电路本设计采用的是ZX12864R液晶模块。ZX12864R液晶显示模块内置128个字符(8X16点阵)、8192个中文汉字(16X16点阵)及64X256点阵显示RAM(GDRAM),可以显示汉字或者图形。数据总线可选择8位或4位并行/3位串行,电源电压3.3V-5V,具有光标显示、睡眠模式、自定义字符、画面移位等功能。ZX12864R液晶屏模块的第1脚GND为模块的电源地,第2脚VCC为电源正极,两个电源引脚分别接在电源模块的5V输出上。第3脚V0为对比度调节输入参考电压,在本设计中将其接在一个电位器的滑动端,通过调节电位器可以调节其滑动端输出电压,从而达到了调节液晶对比度的目的。第4脚RS为并行的指令/数据选择信号,在串行模式下为片选信号。第5脚RW为并行的读写选择端,串行模式下为数据端口。第6脚E为并行的使能信号,在串行模式下做为同步时钟。第7到第14引脚为八位并行数据端口,在本设计中液晶的工作模式为8位并行模式,所以这八个引脚与单片机的P0口相连。第15脚PSB为并/串行接口选择,输入高电平为并行模式,输入低电平串行模式。第17脚RST为复位引脚低电平有效。第19引脚BLA和第20引脚BLK分别是液晶背光灯的正负极,在本设计中将其直接接到了电源的正负极上2。第16脚和第18引脚空接。液晶屏电路原理图如图3-6所示。 图3-6液晶屏模块电路3.7蜂鸣器电路蜂鸣器是一种电子讯响器,本设计采用蜂鸣器作为提示设备,用于在按键按下或进行其他操作时发出提示音。蜂鸣器由单片机的普通IO端口控制,驱动电路主要是一个PNP型三极管对电流进行放大来驱动蜂鸣器工作10。其电路原理图如图3-7所示。图3-7蜂鸣器电路3.8HX711 AD转换器模块接口电路本设计的AD转换器采用HX711模块,HX711 AD转换器是一款专为电子秤而设计的高精度24位AD 转换器芯片。模块内部集成了时钟电路、稳压电源等外围电路,具有抗干扰能力强、响应速度快、集成度高等特点。芯片内提供的稳压电源可以直接向外部全桥电路提供差分电压,所以系统设计上无需另外的模拟电源。两路可选择差分输入,通道 A 模拟差分输入可直接与全桥电路的差分输出端相连。由于全桥电路输出的差分电压信号比较小,HX711芯片还内置了差分信号放大电路,芯片内部有两个转换通道,A通道的可编程增益较大,可以选择128 或64。这些增益所对应的满量程差分输入电压分别是20mV 或40mV,本设计中使用的是HX711模块的A通道。串行通信管脚由SCK和DT组成,DT为数据输出引脚,SCK为时钟信号输入端11。HX711 AD转换器模块接口电路如图3-8所示。图3-8HX711模块接口电路3.9全桥电路本设计使用四个压力传感器组成全桥电路,每个传感器的内部有两个500欧姆的压力应变片。当传感器空载时每个传感器内部的两个电阻的阻值均相同,当有负载时传感器内部的两个电阻的阻值一个增大一个减小但总阻值保持不变。每个传感器的量程为50kg,所以本设计的量程为50kgx4=200kg。如图3-9-1为全桥电路实物连接图,E+ 和E- 为差分电压的输入端,接在HX711 AD转换器模块的电源输出上。A+ 和A- 为全桥电路差分信号输出端,接在HX711 AD转换器模块的A通道的差分信号输入端。当传感器空载时四个传感器内部的两个电阻阻值均相同,对应到图3-9-2全桥电路原理图中R1、R2、R3、R4的阻值均相同,所以A+ 和A- 之间的差分电压为零。若在传感器上放上负载则图3-9-1中每个传感器白色信号线与红色信号线之间的电阻和红色信号线与黑色信号线之间的电阻一个增大一个减小,对应到图3-9-2全桥电路原理图中对角线的两个电阻阻值的变化趋势相同,而相邻的两个电阻阻值变化趋势相反,从而A+ 和A- 间的差分电压输出增大,所以负载的重量与输出的差分电压为线性关系。图3-9-1全桥电路实物连接图图3-9-2全桥电路原理图3.10总体硬件电路及其工作原理整个系统由9V适配器供电经过LM2940稳压模块输出5V电源为整个系统供电,上电后电源指示灯点亮。上电开机后若四个应变片所受压力发生变化那么全桥电路中各个电阻的阻值也会随之发生变化,从而差分输出就会发生变化,且与重量呈线性关系,差分输出连接到AD转换器的A通道上,AD转换器将差分输出电压由模拟量转化成数字量并通过固定的通信协议传送到单片机。超声波传感器模块则直接与单片机相连,通过IO口控制其产生激励信号和读取返回信号。单片机将所得到的信息处理后通固定的读写时序控制液晶模块显示。通过检测单片机引脚的电平可以检测按键是否按下从而实现发送、保持、校准等功能,当按键按下时由单片机控制的蜂鸣器也会发出对应的提示音。当“发送”按键按下时单片机会通过MAX232电路将电平转换,再将数据传送到上位机上。电路的实物如图3-10所示。图3-10电路的实物图4软件设计本设计逻辑相对复杂且代码量较大不宜使用汇编语言,所以采用C语言进行编程,程序设计采用模块化结构,即将不同模块的程序封装到不同的C文件中再将其中的函数、所用到的头文件、变量等在对应的头文件中声明。软件部分包括主程序、系统的初始化程序、HX711 AD转换器通信程序、按键检测程序、超声波信号发射及接收程序、液晶屏幕驱动程序。4.1主函数的编写主程序中将各个模块初始化完成后进入循环,在主程序中主要包含了两个状态分别是正常测量的状态和保持显示的状态,当检测到“保持”按键按下后则在两个状态下相互跳转。在正常测量状态下依次检测“校准”“发送”“保持”按键是否按下,若“校准”和“发送”按键按下单片机则执行相应的操作,若“保持”按键按下则进入保持状态。在保持状态下则一直检测“保持”按键是否再次按下,若按下则返回正常测量的状态。在正常测量状态下若没有按键按下那么系统则一直测量并显示当前的重量和高度值。主程序的流程图如图4-1所示。图4-1主函数的流程图主程序:void main(void)lcdreset(); /初始化液晶屏 system_init(); /初始化串口 定时器 clrscreen(); /清屏while(1) /循环 switch(pattern) /状态查询 /正常测量模式case 1:if(Key_Scan(2)|weight4000)/人体秤校准Correct_w+;if(Key_Scan(3)Correct_w-;if(Key_Scan(1) /发送键按下beep=0; /开蜂鸣器提示 Number+; /编号加1 for(i=0;i4;i+) /发送数据到上位机 SBUF=Number_datai; while(!TI); TI=0; beep=1; /关蜂鸣器提示音if(Key_Scan(4) /”保持“按键按下pattern=2; /状态变量变为保持状态 weight = Read_Count(); /读取体重值 hzkdis(p); /显示体重值height = sonic(); /读取身高值hzkdis(p); /显示身高值break;case 2: /保持状态if(Key_Scan(4) /“保持”键按下pattern=1; /状态变量变为正常状态break;default:break;4.2系统初始化函数的编写本设计中因为超声波模块需要用定时器来测量超声波脉冲的传播时间,另外系统工作时需要向上位机发送数据,所以在程序开始时需先初始化单片机定时器和串行端口相应的寄存器12。系统的初始化程序如下:void system_init(void)SM0=0; /设置串口工作模式SM1=1;TMOD = 0x21; /设置定时器工作模式 TH1=0xfd; /设置波特率为9600TR1=1; /开定时器14.3HX711 AD转换器通信函数的编写HX711 AD转换芯片的串行通讯线由管脚SCK和DT组成,DT为数据线,SCK用于时钟信号的输入和选择输入通道和增益的大小。当HX711芯片数据输出管脚DT输出高电平时,表示AD 转换器还没有准备好输出数据,此时时钟输入信号SCK应为低电平。当DT变为低电平后,表示AD 转换器准备好输出数据,这时SCK应输入25到27个不等的时钟脉冲。第一个时钟脉冲的上升沿后可读取输出24 位数据的最高位,直至第24 个时钟脉冲完成,24位输出数据从最高位至最低位逐位输出完成。第25到27个时钟脉冲用来选择下一次转换的输入通道和增益。本设计使用AD转换器的A通道,增益为128,所以输入25个时钟脉冲11。HX711 AD转换器芯片的读写时序如图4-3所示。图4-3HX711读写时序HX711 AD转换芯片通信函数:unsigned long Read_Count(void)unsigned long Count;unsigned char i;ADSK=0; /先将时钟线拉低Count=0; /将存储转换值的中间变量清零while(ADDO); /等待HX711准备好输出数据for(i=0;i24;i+) /逐位读取24位AD转换器转换好的值ADSK=1; /时钟线拉高Count=Count1; /变量左移一位ADSK=0; /信号线拉低if(ADDO) /数据输入为高电平Count+; /最低位置一ADSK=1; /时钟线拉高Count=Count0x800000; /最高位取反ADSK=0; /信号线拉低Count=Count*0.00048; /转为实际的重量值Count=Correct_w-Count; /调零return(Count); /重量值返回4.4按键检测函数的编写在本文3.5节可知,按键的检测主要是检测单片机IO是否出现低电平。本设计中将所有按键的检测写在了一个函数中,函数的参数为要检测的按键的编号,返回值为真(1)时说明相应的按键按下,返回值为假(0)时则说明按键没有按下。在理想情况下若单片机的IO口出现低电平即可认为是对应的按键按下,但在实际情况下由于按键在闭合和断开的瞬间触点会存在抖动现象,所以按键所连接的IO口上就会出现一些杂波信号造成单片机的检测错误,如图4-4所示。另外主程序中对按键的检测是循环进行的,若按键按下的时间较长会造成单片机多次检测到按键按下的情况从而造成程序的混乱13。本设计在按键按下后以及松手后的瞬间加入了一个短时间的延时函数来滤除这段时间内的杂波信号,该滤波程序对高频杂波信号的滤除具有很好的效果,另外通过在程序中加入松手检测有效的避免了单片机多次检测的情况。图4-4按键的抖动按键检测函数:unsigned char Key_Scan(unsigned char key_num) switch(key_num) /key_num为选择要检测的按键case 1: /第一个按键if(key1=0) /第一个按键按下 delay_ms(5); /延时滤波if(key1=0) /滤波后再次检测while(!key1); /松手检测return 1; /认为按键按下 返回值为真1else return 0; /若滤波后检测没有按下判断为杂波 返回0else return 0; /若第一个按键没有按下 返回0break;default:break;4.5超声波模块函数的编写超声波模块的控制端口Trig产生一个10us以上的高电平该模块内部将自动发出8个周期频率为40KHz的超声波脉冲信号。信号发出后超声波模块将自动检测超声波回波信号,若检测到超声波回波信号超声波模块的Echo引脚变为低电平。若在超声波脉冲发射后打开单片机的定时器开始计时收到超声波回波信号后关闭定时器那么定时间即为超声波脉冲在空气中的传播时间,通过公式:测量距离=(传播时间*声速(340m/s)/2即可算出传播距离。如图4-5为超声波模块时序图。图4-5超声波模块时序图读取距离的函数:int sonic(void) unsigned int n;RX=1; /将RX(接收引脚)置为高电平TR0=0; /定时器0关闭TH0=TL0=0; /定时器清零Pulse(); /发射超神波脉冲信号TR0=1; /定时器开始计时TF0=0; /定时器溢出标志位置零for(n=0;n70;n+); /延时while( RX =1 & TF0 = 0 ); /等待收到回波信号或定时器溢出TR0=0; /关定时器停止计时if(TFO) /定时器溢出则判断为无信号返回n=999; /无信号返回时把距离值赋为999cmelse /定时器没有溢出 计算传播距离n=(TH08)+TL0; /整合定时时间 n=(unsigned int)( n*0.017);/换算为实际距离n=n-3; /减去承重板到地面距离return n; /返回高度值4.6液晶屏驱动函数的编写单片机与液晶间的通信主要有三种情况即写数据、写命令、读状态。写数据的作用是将想要显示的字符、汉字写入液晶进行显示。写命令的作用是向液晶屏幕发送各种指令如设置显示坐标、清屏、设置游标等。读状态操作的作用是查看液晶的状态,液晶屏幕在接受指令前,单片机需要先确认液晶屏幕内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令。液晶的这三种操作是由RS和RW引脚决定的。液晶的读写时序如图4-6-1和4-6-2所示。写数据:输入:RS=H,RW=L,D0-D7=数据,E=H 输出:无写命令:输入:RS=L,RW=L,D0-D7=数据,E=H 输出:无图4-6-1液晶的写操作void write_com(unsigned char cmdcode) chk_busy(); /检查是否可以接收指令RS=0; /RS为指令/数据选择信号,写命令RS=0RW=0; /RW为读写选择信号 写命令RW=0E=1; /液晶使能Lcd_Bus=cmdcode; /将命令送到数据总线delay(5); /在数据写入的时候加入适当的延时 E=0; /禁止使能delay(5); /延时 void write_data(unsigned char Dispdata) /写数据到LCD chk_busy(); /检查是否可以接收指令 RS=1; /RS为指令/数据选择信号 写数据RS=1RW=0; /RW为读写选择信号 写数据RW=0E=1; /液晶使能Lcd_Bus=Dispdata; /将数据送到数据总线delay(5); /在数据写入的时候加入适当的延时 E=0; /禁止使能delay(5); /延时读状态:输入:RS=L,RW=H,E=H 输出:DO-D7=状态字图4-6-2液晶的读操作忙位检查函数:void chk_busy(void) RS=0; /RS为指令/数据选择信号 写命令RS=0 RW=1; /RW为读写选择信号 读状态RW=1 E=1; /液晶使能 Lcd_Bus=0xff; /液晶数据总线全部拉高 while(Lcd_Bus&0x80)=0x80);/当最高位为0时表明可以接收新的指令 E=0; /禁止使能5开发平台及调试本设在计制作过程中使用了很多开发平台和实物工具,本章将详细介绍设计过程中所使用到的开发平台以及整个系统的制作过程。5.1硬件的制作在设计初期先通过查阅资料来确定系统的整体设计方案,方案确定后再进行器件的选型以及电路的设计。为确保设计电路的正确性,首先在万用板上焊接好各模块电路,上电对各模块进行分析验证,各模块电路测试无误后用Altium Designer软件将测试好的电路原理图画好,利用网络标号将各模块电路连接起来,然后对原理图进行检查。检查无误后即可导入到PCB,然后手动布线、覆铜。PCB设计完成后对其进行DRC电气规则检查,无误后即可发厂制板。PCB板做好后手工将各个元器件焊接到PCB板上,焊接完成后使用数字万用表检查电路板、元器件之间是否全部导通以及是否有短路的情况。电路板检查完成后上电烧录程序,烧录成功后即可将电路板与液晶模块、全桥电路、超声波模块相连接进行测试。电路测试无误后将电路板、承重板、伸缩杆等器件固定完成整体硬件的制作。整体实物图如图5-1所示。图5-1整体实物图5.2硬件的开发平台本设计硬件制作上的难点和重点在于电路原理图的设计和PCB的绘制。本次设计在原理图和PCB的设计上主要使用了Altium Designer软件。它是Altium公司推出的一体化的电子产品开发系统,主要运行在Windows操作系统下。该软件把原理图设计、电路仿真、PCB绘制、自动布线、信号完整性分析技术融合在一起,为电路设计者提供了全新的设计解决方案14。 Altium Designer操作界面如图5-2所示。图5-2Altium Designer操作界面5.3软件的调试本设计中所用到的可编程器件只有单片机,所以软件设计的核心在于对单片机的编程。软件调试初期首先通过查阅资料学习如何在Keil环境下建立工程和熟悉单片机的编程特点。完成上述工作后将本设计中用到的各个模块分别建立工程单独调试。液晶屏幕、HX711 AD转换器模块、超声波模块的程序的编写根据它们数据手册上的通信时序来完成,其他模块程序的设计则根据硬件连接方式和其自身工作原理。各个模块调试成功后将各模块的功能函数封装到不同的.c文件中再将其中需要主程序调用的函数、变量、头文件等在对应的.h文件中声明。完成这些工作后即可建立本设计的工程。将之前封装好的.c和.h各文件添加入到工程中,在主函数所在的.c文件中将各模块的.h文件包含进来即可在主函数中调用各个功能函数15。最后根据设计要求完成主程序的设计与调试即可完成软件部分的设计。5.4软件的开发平台本次设计的软件开发平台为Keil。使用该开发平台可完成源程序的编写、编译和链接,并最终生成HEX行文件。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起,操作简单、方便16,操作界面如图5-4-1所示。图5-4-1Keil操作界面程序的烧录则使用STC-ISP软件,它是一款单片机下载编程烧录软件,专门针对STC系列单片机而设计的,使用简便,方便,STC-ISP操作界面如图5-4-2所示。图5-4-2STC-ISP界面5.5上位机软件由于本设计需要向上位机发送测量数据且在软件调试时使用上位机软件能实时监控一些想要知道的数据,上位机的使用为软件的调试提供了很大的方便,为程序的调试节省了大量的时间。本设计使用的上位机软件是Serial Hunter。它是一款很实用的串口调试软件,支持多种显示模式、高级发码、高级收码等功能,操作简单,实用性强。Serial Hunter操作界面如图5-5所示。图5-5Serial Hunter操作界面6总结本文设计了一款基于单片机控制的身高体重测量仪,测量身高允许范围为0.1m-2.5m,精度为1cm,体重允许范围为0kg-200kg,精度为0.5kg。数据能够显示在液晶屏幕上还可以通过串口传输到上位机通过电脑进行显示和数据的处理,基本满足设计要求。本报告详细介绍了该系统的设计方案及设计思想,涉及硬件电路的设计与制作,软件的设计与调试等方面。本章将主要介绍本设计的一些特点和设计过程中发现的一些不足之处。6.1特点(1)本设计在身高测量部分采用了超声波传感器,普通身高体重测量仪在身高测量部分大多采用金属尺与滑动杆结合的方法,体积较大,不能拆卸携带不方便。本设计采用非接触式的超声波传感器测量身高,硬件可拆卸,携带方便,实现了全电子型设计。(2)本设计在测量的同时还可以将所测数据自动编号发送到上位机上,上位机可对接收数据进行显示存档,信息录入方便、快捷,适用于体检场合。6.2不足与改进本设计虽然基本满足了设计题目的要求但在制作过程中还发现了很多需要改进的地方。(1)本设计中最大的缺点在于超声波测距部分存在较大的误差同时容易受到外部环境影响。制作初期只考虑到使用超声波传感器测距是一种创新的设计思想却没有考虑到其存在的种种弊端。超声波测距利用的是超声波在空气中传播速度固定的原理,但当系统工作在不同温度、湿度、以及风速的环境下超声波的传播速度是会在一定范围内变化的。另外超声波模块的安装必须与地面垂直,稍有误差就会增加传播距离17,所以高度测量部分存在较大的误差。另外超声波还容易受到外界环境的干扰,超声波在传播时若遇到某些障碍物也可能被反射,这样就造成了系统的误判,这些问题在最后也未能得到很好的解决。(2)在本设计中液晶屏幕的背光灯直接接到了电源上,这样系统在工作时背光灯一直处于点亮的状态而不受人的控制,这样既增加了系统的功耗同时对液晶也有一定的影响。在设计时若液晶的背光灯接在一个由单片机端口控制的驱动电路上,再用按键控制背光灯的开关这样不但可以降低能耗还提升了整个系统的智能化程度。(3)电路上的独立按键是需要人频繁操作的器件,在操作过程中人体带有的静电可能通过按键接口烧毁单片机或其他器件,若在按键接口加上一个钳位电路将电位钳位在一个范围内这样可保护电路,防止电路的烧毁18。参考文献1刘亚斌.全悬浮式散科电子皮带秤研究与应用.20052百度文库./link?url=8E3npUZ1d39y8T3CmgmAM4v9B0-3OeouCnypURV Igm_bgoost0eLm2OA6CJFZrrbDvPV7S-zlCvt_h2sFDz0StfTiOmxQkOnrzfan9zjJ7K,20093王子龙超声波身高测量仪,20114百度文库./link?url=E6hfpDrIOJj39yB0YB33M4iizVkeA19rd-HL9dg Hich20FS0fQaPNFMmM0okGEF5mXXX59CLxz8zeS2D3pRfbx9tCHBwcpUsv7PuX4BO2r7,20105宋雪松,李冬明,崔长胜.手把手教你学51单片机.清华大学出版社,20146王永华.现场总线技术及应用教程.机械工业出版社,20127邹雄飞基于超声波测距的汽车泊车辅助安全系统设计,20118郭天祥.新概念51单片机C语言教程.电子工业出版社,20099边莉.51单片机基础与实例进阶.清华大学出版社,201210童诗白.模拟电

温馨提示

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

评论

0/150

提交评论