




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生毕业论文 设计 题目 基于单片机的身高体重测量仪基于单片机的身高体重测量仪 学 部 信息科学与工程学部 学科门类 工学 专 业 电子科学与技术 学 号 姓 名 武立鑫 指导教师 2014 年 5 月 19 日 装 订 线 河北大学工商学院 河北大学工商学院 2014 届本科生毕业论文 设计 基于单片机的身高体重测量仪 摘 要 本文介绍了一个基于单片机的身高体重测量仪 本设计以单片机为平台 利用金属 应变片来感应人体的重量 传感器输出模拟量经 AD 转换器转换成数字量传入单片机 利 用超声波在介质中传播速度固定的原理可由超声波在空气中的传播时间算出传播距离 实现身高的测量 通过串口电路实现了单片机与上位机的通信 本设计硬件电路包括电 源电路 单片机最小系统电路 液晶屏电路 串口通信电路 独立按键电路 蜂鸣器电 路 超声波模块电路 AD 转换器电路和全桥电路 软件部分包括主程序 系统初始化程 序 AD 转换器通信程序 按键检测程序 超声波信号发射及接收程序 液晶屏驱动程序 本设计可以同时测量人体的身高和体重 还可以将所测数据自动编号发送到上位机 上显示或以文档的形式导出并保存 基于单片机身高体重测量仪制作成本低 电路设计 简单 显示清楚 基本满足设计要求 关键词 STC89C52 超声波 HX711 上位机 装 订 线 河北大学工商学院 2014 届本科生毕业论文 设计 Height and weight measurement instrument based on MCU ABSTRACT This 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 河北大学工商学院 2014 届本科生毕业论文 设计 目 录 1 绪论 1 2 身高体重测量仪总体方案设计 2 2 1 设计方案的选定 2 2 2 身高体重测量仪的工作过程 3 3 身高体重测量仪的硬件电路设计 4 3 1 电源电路 4 3 2 单片机最小系统电路 4 3 3 串口通信电路 5 3 4 超声波模块接口电路 6 3 5 独立按键电路 6 3 6 液晶屏电路 7 3 7 蜂鸣器电路 8 3 8 HX711 AD 转换器模块接口电路 8 3 9 全桥电路 9 3 10 总体硬件电路及其工作原理 10 4 软件设计 11 4 1 主函数的编写 11 河北大学工商学院 2014 届本科生毕业论文 设计 4 2 系统初始化函数的编写 13 4 3 HX711 AD 转换器通信函数的编写 13 4 4 按键检测函数的编写 14 4 5 超声波模块函数的编写 16 4 6 液晶屏驱动函数的编写 17 5 开发平台及调试 19 5 1 硬件的制作 19 5 2 硬件的开发平台 20 5 3 软件的调试 20 5 4 软件的开发平台 21 5 5 上位机软件 22 6 总结 23 6 1 特点 23 6 2 不足与改进 23 参考文献 24 致谢 25 附录 26 附录 27 河北大学工商学院 2014 届本科生毕业论文 设计 1 1 绪论 随着科技和社会的发展 电子产品已经渗透到了社会的各个领域 人们对个人的体 质状况也越来越重视 在此背景下产生了许多用于测试人体健康标准的电子设备和器材 如血糖仪 电子体温计 身高体重测量仪等就是其中典型的例子 传统的身高体重测量 仪具有不便于携带 功能单一 智能化程度低等缺点 因此进一步研究身高体重测量仪 有着非常现实的意义 多功能 易携带 低功耗 智能化是未来身高体重测量仪的发展 趋势 身高体重测量仪以成为人们日常生活和生产中不可缺少的物品 它在医疗应用 学校体检 家庭应用等方面都有广泛的应用 上世纪 50 年代中期电子技术的发展推动身高体重测量仪制造业的飞速发展 经过 50 余年的不断改进与完善 我国的身高体重测量仪从最初的全机械型到机电结合型再发展 到现在的全电子型和数字智能型 计量方法从模拟测量向数字测量发展 1 未来的身高体 重测量仪将与智能化接轨 与其他测量仪器集成在一起 形成多功能的测量仪 随着科 技的不断发展 身高体重测量仪将从具有单纯测量功能发展到具有数据传输功能 判断 功能 记忆功能 在新的时代里 面貌一新的身高体重测量仪将发挥更大的作用 本设计制作了一个基于 STC89C52RC 单片机的身高体重测量仪 它可以同时测量人体 的重量和高度 同时还可以将所测信息自动编号发送到上位机进行显示和保存 另外本 设计还可以通过按键设置显示模式以及校准 与传统的身高体重测量仪相比具有易携带 多功能 智能化程度高等优点 河北大学工商学院 2014 届本科生毕业论文 设计 2 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 所示 MCS 51单片机 三端稳压电源 超声波模块 AD转换器 独立按键 液晶屏模块 串口通信模块 9V直流电压 上位机 蜂鸣器模块 压力传感器 河北大学工商学院 2014 届本科生毕业论文 设计 3 图 2 1 系统设计框图 2 2 身高体重测量仪的工作过程 本设计开机后液晶屏幕上会显示当前的重量以及身高信息 系统在硬件设计上留有 四个独立按键 若按下电路板上的 发送 按键系统会将当前的身高和体重信息编号为 一号发送到上位机进行显示 若再次按下 发送 按键则系统会将编号自动加一并再次 向上位机发送最新更新的身高和体重信息 若按下电路板上的 保持 按键系统会将当 前测量的值显示在液晶屏幕上并保持不变同时液晶会显示当前处于保持显示的状态 在 保持状态下再次按下 保持 按键系统会取消保持状态返回实时测量的状态 同时液晶 显示回到正常测量的显示界面 若在测量状态下按下 校准 按键测量的重量值会加 0 1kg 若按下 校准 按键测量的重量值会减 0 1kg 这两个按键用于人体秤的校准操 作 即在没有被测物体放在称上时可将显示值调节为 0kg 用以消除不确定性因素所引起 的误差 河北大学工商学院 2014 届本科生毕业论文 设计 4 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 为单片机的电源地 由上拉电阻 时钟电路 电源电路构成了单片机的最小系统 单片 河北大学工商学院 2014 届本科生毕业论文 设计 5 机最小系统电路原理图如图 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 所示 河北大学工商学院 2014 届本科生毕业论文 设计 6 图 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 所示 河北大学工商学院 2014 届本科生毕业论文 设计 7 图 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 所示 河北大学工商学院 2014 届本科生毕业论文 设计 8 图 3 6 液晶屏模块电路 3 7 蜂鸣器电路 蜂鸣器是一种电子讯响器 本设计采用蜂鸣器作为提示设备 用于在按键按下或进 行其他操作时发出提示音 蜂鸣器由单片机的普通 IO 端口控制 驱动电路主要是一个 PNP 型三极管对电流进行放大来驱动蜂鸣器工作 10 其电路原理图如图 3 7 所示 图 3 7 蜂鸣器电路 河北大学工商学院 2014 届本科生毕业论文 设计 9 3 8 HX711 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 8 HX711 模块接口电路 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 间的差分电压输出增大 所以负载的重量与输出的差 分电压为线性关系 河北大学工商学院 2014 届本科生毕业论文 设计 10 图 3 9 1 全桥电路实物连接图 图 3 9 2 全桥电路原理图 3 10 总体硬件电路及其工作原理 整个系统由 9V 适配器供电经过 LM2940 稳压模块输出 5V 电源为整个系统供电 上电 后电源指示灯点亮 上电开机后若四个应变片所受压力发生变化那么全桥电路中各个电 阻的阻值也会随之发生变化 从而差分输出就会发生变化 且与重量呈线性关系 差分 河北大学工商学院 2014 届本科生毕业论文 设计 11 输出连接到 AD 转换器的 A 通道上 AD 转换器将差分输出电压由模拟量转化成数字量并通 过固定的通信协议传送到单片机 超声波传感器模块则直接与单片机相连 通过 IO 口控 制其产生激励信号和读取返回信号 单片机将所得到的信息处理后通固定的读写时序控 制液晶模块显示 通过检测单片机引脚的电平可以检测按键是否按下从而实现发送 保 持 校准等功能 当按键按下时由单片机控制的蜂鸣器也会发出对应的提示音 当 发 送 按键按下时单片机会通过 MAX232 电路将电平转换 再将数据传送到上位机上 电路 的实物如图 3 10 所示 图 3 10 电路的实物图 4 软件设计 本设计逻辑相对复杂且代码量较大不宜使用汇编语言 所以采用 C 语言进行编程 程序设计采用模块化结构 即将不同模块的程序封装到不同的 C 文件中再将其中的函数 所用到的头文件 变量等在对应的头文件中声明 软件部分包括主程序 系统的初始化 程序 HX711 AD 转换器通信程序 按键检测程序 超声波信号发射及接收程序 液晶屏 幕驱动程序 4 1 主函数的编写 主程序中将各个模块初始化完成后进入循环 在主程序中主要包含了两个状态分别 是正常测量的状态和保持显示的状态 当检测到 保持 按键按下后则在两个状态下相 互跳转 在正常测量状态下依次检测 校准 发送 保持 按键是否按下 若 校准 和 发送 按键按下单片机则执行相应的操作 若 保持 按键按下则进入保持状态 在保持状态下则一直检测 保持 按键是否再次按下 若按下则返回正常测量的状态 在正常测量状态下若没有按键按下那么系统则一直测量并显示当前的重量和高度值 主 河北大学工商学院 2014 届本科生毕业论文 设计 12 程序的流程图如图 4 1 所示 开始 初始化液晶 串口 定时器 校准键检测 保持键检测 读取重量 和高度并显示 保持键检测 电子称校准 发送信息 到上位机 保持模式 发送键检测 否 否 否 是 是 是 否 是 图 4 1 主函数的流程图 主程序 void main void lcdreset 初始化液晶屏 system init 初始化串口 定时器 clrscreen 清屏 while 1 循环 switch pattern 状态查询 正常测量模式 case 1 if Key Scan 2 weight 4000 人体秤校准 Correct w if Key Scan 3 Correct w if Key Scan 1 发送键按下 河北大学工商学院 2014 届本科生毕业论文 设计 13 beep 0 开蜂鸣器提示 Number 编号加 1 for i 0 i 4 i 发送数据到上位机 SBUF Number data i 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 0 x21 设置定时器工作模式 TH1 0 xfd 设置波特率为 9600 TR1 1 开定时器 1 4 3 HX711 AD 转换器通信函数的编写 HX711 AD 转换芯片的串行通讯线由管脚 SCK 和 DT 组成 DT 为数据线 SCK 用于时钟 河北大学工商学院 2014 届本科生毕业论文 设计 14 信号的输入和选择输入通道和增益的大小 当 HX711 芯片数据输出管脚 DT 输出高电平时 表示 AD 转换器还没有准备好输出数据 此时时钟输入信号 SCK 应为低电平 当 DT 变为 低电平后 表示 AD 转换器准备好输出数据 这时 SCK 应输入 25 到 27 个不等的时钟脉冲 第一个时钟脉冲的上升沿后可读取输出 24 位数据的最高位 直至第 24 个时钟脉冲完成 24 位输出数据从最高位至最低位逐位输出完成 第 25 到 27 个时钟脉冲用来选择下一次 转换的输入通道和增益 本设计使用 AD 转换器的 A 通道 增益为 128 所以输入 25 个时 钟脉冲 11 HX711 AD 转换器芯片的读写时序如图 4 3 所示 图 4 3 HX711 读写时序 HX711 AD 转换芯片通信函数 unsigned long Read Count void unsigned long Count unsigned char i ADSK 0 先将时钟线拉低 Count 0 将存储转换值的中间变量清零 while ADDO 等待 HX711 准备好输出数据 for i 0 i 24 i 逐位读取 24 位 AD 转换器转换好的值 ADSK 1 时钟线拉高 Count Count 1 变量左移一位 ADSK 0 信号线拉低 if ADDO 数据输入为高电平 Count 最低位置一 河北大学工商学院 2014 届本科生毕业论文 设计 15 ADSK 1 时钟线拉高 Count Count 0 x 最高位取反 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 第一个按键 河北大学工商学院 2014 届本科生毕业论文 设计 16 if key1 0 第一个按键按下 delay ms 5 延时滤波 if key1 0 滤波后再次检测 while key1 松手检测 return 1 认为按键按下 返回值为真 1 else return 0 若滤波后检测没有按下判断为杂波 返回 0 else return 0 若第一个按键没有按下 返回 0 break default break 4 5 超声波模块函数的编写 超声波模块的控制端口 Trig 产生一个 10us 以上的高电平该模块内部将自动发出 8 个周期频率为 40KHz 的超声波脉冲信号 信号发出后超声波模块将自动检测超声波回波 信号 若检测到超声波回波信号超声波模块的 Echo 引脚变为低电平 若在超声波脉冲发 射后打开单片机的定时器开始计时收到超声波回波信号后关闭定时器那么定时间即为超 声波脉冲在空气中的传播时间 通过公式 测量距离 传播时间 声速 340m s 2 即可 算出传播距离 如图 4 5 为超声波模块时序图 河北大学工商学院 2014 届本科生毕业论文 设计 17 图 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 n 70 n 延时 while RX 1 等待收到回波信号或定时器溢出 TR0 0 关定时器停止计时 if TFO 定时器溢出则判断为无信号返回 n 999 无信号返回时把距离值赋为 999cm else 定时器没有溢出 计算传播距离 n TH0 8 TL0 整合定时时间 n unsigned int n 0 017 换算为实际距离 n n 3 减去承重板到地面距离 return n 返回高度值 4 6 液晶屏驱动函数的编写 单片机与液晶间的通信主要有三种情况即写数据 写命令 读状态 写数据的作用 是将想要显示的字符 汉字写入液晶进行显示 写命令的作用是向液晶屏幕发送各种指 河北大学工商学院 2014 届本科生毕业论文 设计 18 令如设置显示坐标 清屏 设置游标等 读状态操作的作用是查看液晶的状态 液晶屏 幕在接受指令前 单片机需要先确认液晶屏幕内部处于非忙碌状态 即读取 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 0 RW 0 RW 为读写选择信号 写命令 RW 0 E 1 液晶使能 Lcd Bus cmdcode 将命令送到数据总线 delay 5 在数据写入的时候加入适当的延时 E 0 禁止使能 delay 5 延时 void write data unsigned char Dispdata 写数据到 LCD chk busy 检查是否可以接收指令 RS 1 RS 为指令 数据选择信号 写数据 RS 1 RW 0 RW 为读写选择信号 写数据 RW 0 E 1 液晶使能 Lcd Bus Dispdata 将数据送到数据总线 delay 5 在数据写入的时候加入适当的延时 E 0 禁止使能 delay 5 延时 河北大学工商学院 2014 届本科生毕业论文 设计 19 读状态 输入 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 0 xff 液晶数据总线全部拉高 while Lcd Bus 当最高位为 0 时表明可以接收新的指令 E 0 禁止使能 5 开发平台及调试 本设在计制作过程中使用了很多开发平台和实物工具 本章将详细介绍设计过程中 所使用到的开发平台以及整个系统的制作过程 5 1 硬件的制作 在设计初期先通过查阅资料来确定系统的整体设计方案 方案确定后再进行器件的 选型以及电路的设计 为确保设计电路的正确性 首先在万用板上焊接好各模块电路 上电对各模块进行分析验证 各模块电路测试无误后用 Altium Designer 软件将测试好 的电路原理图画好 利用网络标号将各模块电路连接起来 然后对原理图进行检查 检 河北大学工商学院 2014 届本科生毕业论文 设计 20 查无误后即可导入到 PCB 然后手动布线 覆铜 PCB 设计完成后对其进行 DRC 电气规则 检查 无误后即可发厂制板 PCB 板做好后手工将各个元器件焊接到 PCB 板上 焊接完成 后使用数字万用表检查电路板 元器件之间是否全部导通以及是否有短路的情况 电路 板检查完成后上电烧录程序 烧录成功后即可将电路板与液晶模块 全桥电路 超声波 模块相连接进行测试 电路测试无误后将电路板 承重板 伸缩杆等器件固定完成整体 硬件的制作 整体实物图如图 5 1 所示 图 5 1 整体实物图 5 2 硬件的开发平台 本设计硬件制作上的难点和重点在于电路原理图的设计和 PCB 的绘制 本次设计在 原理图和 PCB 的设计上主要使用了 Altium Designer 软件 它是 Altium 公司推出的一体 化的电子产品开发系统 主要运行在 Windows 操作系统下 该软件把原理图设计 电路 仿真 PCB 绘制 自动布线 信号完整性分析技术融合在一起 为电路设计者提供了全新 的设计解决方案 14 Altium Designer 操作界面如图 5 2 所示 河北大学工商学院 2014 届本科生毕业论文 设计 21 图 5 2 Altium Designer 操作界面 5 3 软件的调试 本设计中所用到的可编程器件只有单片机 所以软件设计的核心在于对单片机的编 程 软件调试初期首先通过查阅资料学习如何在 Keil 环境下建立工程和熟悉单片机的编 程特点 完成上述工作后将本设计中用到的各个模块分别建立工程单独调试 液晶屏幕 HX711 AD 转换器模块 超声波模块的程序的编写根据它们数据手册上的通信时序来完成 其他模块程序的设计则根据硬件连接方式和其自身工作原理 各个模块调试成功后将各 模块的功能函数封装到不同的 c 文件中再将其中需要主程序调用的函数 变量 头文件 等在对应的 h 文件中声明 完成这些工作后即可建立本设计的工程 将之前封装好的 c 和 h 各文件添加入到工程中 在主函数所在的 c 文件中将各模块的 h 文件包含进来即可 在主函数中调用各个功能函数 15 最后根据设计要求完成主程序的设计与调试即可完成 软件部分的设计 5 4 软件的开发平台 本次设计的软件开发平台为 Keil 使用该开发平台可完成源程序的编写 编译和链 接 并最终生成 HEX 行文件 Keil 提供了包括 C 编译器 宏汇编 连接器 库管理和一 个功能强大的仿真调试器等在内的完整开发方案 通过一个集成开发环境将这些部分组 合在一起 操作简单 方便 16 操作界面如图 5 4 1 所示 河北大学工商学院 2014 届本科生毕业论文 设计 22 图 5 4 1 Keil 操作界面 程序的烧录则使用 STC ISP 软件 它是一款单片机下载编程烧录软件 专门针对 STC 系列单片机而设计的 使用简便 方便 STC ISP 操作界面如图 5 4 2 所示 图 5 4 2 STC ISP 界面 5 5 上位机软件 由于本设计需要向上位机发送测量数据且在软件调试时使用上位机软件能实时监控 一些想要知道的数据 上位机的使用为软件的调试提供了很大的方便 为程序的调试节 省了大量的时间 本设计使用的上位机软件是 Serial Hunter 它是一款很实用的串口调 试软件 支持多种显示模式 高级发码 高级收码等功能 操作简单 实用性强 Serial Hunter 操作界面如图 5 5 所示 河北大学工商学院 2014 届本科生毕业论文 设计 23 图 5 5 Serial Hunter 操作界面 6 总结 本文设计了一款基于单片机控制的身高体重测量仪 测量身高允许范围为 0 1m 2 5m 精度为 1cm 体重允许范围为 0kg 200kg 精度为 0 5kg 数据能够显示在液晶 屏幕上还可以通过串口传输到上位机通过电脑进行显示和数据的处理 基本满足设计要 求 本报告详细介绍了该系统的设计方案及设计思想 涉及硬件电路的设计与制作 软 河北大学工商学院 2014 届本科生毕业论文 设计 24 件的设计与调试等方面 本章将主要介绍本设计的一些特点和设计过程中发现的一些不 足之处 6 1 特点 1 本设计在身高测量部分采用了超声波传感器 普通身高体重测量仪在身高测量 部分大多采用金属尺与滑动杆结合的方法 体积较大 不能拆卸携带不方便 本设计采 用非接触式的超声波传感器测量身高 硬件可拆卸 携带方便 实现了全电子型设计 2 本设计在测量的同时还可以将所测数据自动编号发送到上位机上 上位机可对 接收数据进行显示存档 信息录入方便 快捷 适用于体检场合 6 2 不足与改进 本设计虽然基本满足了设计题目的要求但在制作过程中还发现了很多需要改进的地 方 1 本设计中最大的缺点在于超声波测距部分存在较大的误差同时容易受到外部环 境影响 制作初期只考虑到使用超声波传感器测距是一种创新的设计思想却没有考虑到 其存在的种种弊端 超声波测距利用的是超声波在空气中传播速度固定的原理 但当系 统工作在不同温度 湿度 以及风速的环境下超声波的传播速度是会在一定范围内变化 的 另外超声波模块的安装必须与地面垂直 稍有误差就会增加传播距离 17 所以高度 测量部分存在较大的误差 另外超声波还容易受到外界环境的干扰 超声波在传播时若 遇到某些障碍物也可能被反射 这样就造成了系统的误判 这些问题在最后也未能得到 很好的解决 2 在本设计中液晶屏幕的背光灯直接接到了电源上 这样系统在工作时背光灯一 直处于点亮的状态而不受人的控制 这样既增加了系统的功耗同时对液晶也有一定的影 响 在设计时若液晶的背光灯接在一个由单片机端口控制的驱动电路上 再用按键控制 背光灯的开关这样不但可以降低能耗还提升了整个系统的智能化程度 3 电路上的独立按键是需要人频繁操作的器件 在操作过程中人体带有的静电可 能通过按键接口烧毁单片机或其他器件 若在按键接口加上一个钳位电路将电位钳位在 一个范围内这样可保护电路 防止电路的烧毁 18 参考文献 1 刘亚斌 全悬浮式散科电子皮带秤研究与应用 2005 2 百度文库 Igm bgoost0eLm2OA6CJFZrrbDvPV7S zlCvt h2sFDz0StfTiOmxQkOnrzfan9zjJ7K 2009 3 王子龙 超声波身高测量仪 2011 河北大学工商学院 2014 届本科生毕业论文 设计 25 4 百度文库 Hich20FS0fQaPNFMmM0okGEF5mXXX59CLxz8zeS2D3pRfbx9tCHBwcpUsv7PuX4BO2r7 2010 5 宋雪松 李冬明 崔长胜 手把手教你学 51 单片机 清华大学出版社 2014 6 王永华 现场总线技术及应用教程 机械工业出版社 2012 7 邹雄飞 基于超声波测距的汽车泊车辅助安全系统设计 2011 8 郭天祥 新概念 51 单片机 C 语言教程 电子工业出版社 2009 9 边莉 51 单片机基础与实例进阶 清华大学出版社 2012 10 童诗白 模拟电子技术基础 高等教育出版社 2009 11 百度文库 n1 E65aSSJfd9HgPF7NDrsy7T q1OUnBulA1db4oVdpyjFnWC8XhEOxHKnCcsIDdM9l6Cixl1vwrV3CqfuwLDN2UW1wtTC3 2011 12 陈忠平 51 单片机 C 语言程序设计经典实例 电子工业出版社 2012 13 郑锋 51 单片机典型应用开发范例大全 中国铁道出版社 2011 14 高海宾 Altium Designer 10 从入门到精通 机械工业出版社 2012 15 谭浩强 C 程序设计 第三版 清华大学出版社 2005 16 徐爱钧 徐阳 Keil C51 单片机高级语言应用编程与实践 电子工业出版社 2013 17 Alessio Carullo Ultrasonic Distance Measurement in Automive Applications IEEE SENSORS JOURNAL 2001 18 周志敏 纪爱华 高效功率器件驱动与保护电路设计应用实例 人民邮电出版社 2009 致 谢 在制作本设计的过程中 我遇到过很多问题 从最初的器件选型与方案确定 到后 来的软硬件调试 在解决一个个问题之后 我发现在不断学习知识的同时 我的思想也 河北大学工商学院 2014 届本科生毕业论文 设计 26 不断成熟 而在这过程中 离不开学校 老师和同学的帮助与支持 在这里首先要特别 感谢我的指导教师孙雪老师一直以来对我的悉心指导 老师渊博的学识 丰富的经验 以及严谨的态度和高尚的人格都深深的影响着我 并将永远激励我在以后的学习生活中 不断奋斗 其次 对四年来我有机会聆听教诲的各位老师表示由衷的敬意 是你们的教 导使我在知识上 思想上得到了很大的提升与进步 最后感谢四年来一起陪伴我学习生 活的同学们 谢谢你们四年来的关照与帮助 在此对他们表示衷心的感谢 本报告参考 了大量文献资料 最后 向学术界的各位前辈们致敬 附 录 电路图 河北大学工商学院 2014 届本科生毕业论文 设计 27 附 录 main c 文件 include 单片机头文件 include lcd 12864 h 液晶的头文件 河北大学工商学院 2014 届本科生毕业论文 设计 28 include HX711 h HX711 AD 转换器芯片的头文件 include ultrasonic h 超声波模块的头文件 include init h 系统初始化的头文件 include key h 按键头文件 sbit beep P3 2 对蜂鸣器控制端口的定义 unsigned long weight 重量值 int height 高度值 unsigned char height data 6 存放高度值的字符串用于在液晶上显示 unsigned char weight data 8 存放重量值的字符串用于在液晶上显示 extern unsigned long Correct w 电子称校准用 char p 液晶显示用的地址指针 extern unsigned char code BMP 开机图像 unsigned char pattern 1 状态变量 unsigned int Number 0 上位机发送数据编号值 unsigned int i unsigned char Number data 4 存放编号值的字符串 用于显示 void main void 主函数 PSB 0 液晶 PSB 引脚置零 delay 300 延时 PSB 1 液晶 PSB 引脚置 1 选择并行模式 RW 0 RW 引脚置零 写液晶 lcdreset 初始化液晶 delay 5 延时 clrscreen 清屏 Disp Img BMP 显示开机图画 system init 初始化串口 定时器 clrscreen 清屏 write com 0 x90 发送显示坐
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五年级语文基础练习题
- 数字化转型战略与实施路径解析
- 苏教版七年级数学全等三角形知识梳理
- 2025-2030医疗美容光电设备技术迭代与渠道变革趋势研究报告
- 2025-2030动态隔热智能玻璃在热带地区商业化推广策略研究
- 企业内部审计流程及报告写作指南
- 2025-2030动力锂电池硅碳负极膨胀抑制技术与快充性能平衡研究
- 2025-2030动力电池隔膜材料技术迭代方向与专利布局分析
- 2025-2030动力电池负极材料技术革新与产能扩张节奏预测
- 2025-2030动力电池系统集成技术演进与CTP方案优劣比较
- 混凝土路面裂缝修补施工方案
- 教室、宿舍消毒制度
- 超星尔雅学习通《军事理论(中北大学)》2025章节测试附答案
- 浙江首考2025年1月普通高等学校招生全国统考英语试题及答案
- 纳豆红曲胶囊
- 《全新观光车操作与安全培训课件》
- 中南15ZJ001建筑构造用料做法图集(标准图集)
- 移动学习资源开发-洞察分析
- 学校反恐防恐工作领导小组及职责
- 骨科手术铺巾
- 新质生产力助推乡村振兴 (修正版)
评论
0/150
提交评论