基于单片机的称重控制系统设计.doc

上传人:xin****828 文档编号:6701454 上传时间:2020-03-02 格式:DOC 页数:45 大小:1.20MB
返回 下载 相关 举报
基于单片机的称重控制系统设计.doc_第1页
第1页 / 共45页
基于单片机的称重控制系统设计.doc_第2页
第2页 / 共45页
基于单片机的称重控制系统设计.doc_第3页
第3页 / 共45页
点击查看更多>>
资源描述
届毕业生 毕业设 计 说 明 书 题 目 基于单片机的称重控制系统设计 院系名称 专业班级 学生姓名 学 号 指导教师 教师职称 摘要 由于称重器具在商业贸易中的重要作用 称重技术的发展一直都受到人们的关注 本文设计实现了一种新型的多功能电子称重系统 该系统采用了最为常见的 C51 系列单 片机 STC89C52 作为主控芯片 系统可以准确称量待测物的质量 使用者设置好单价后 系统还能自动地计算总价并可以把测量结果直观地显示在液晶屏幕上 同时本系统还具 有超量程自动报警功能 另外本系统还扩展了电子万年历和电子温度计的功能 使得系 统更加实用 本文论述了课题提出的背景 系统方案确定的依据以及系统具体硬件电路 的设计方案和软件编程的基本思路 最后针对系统的测试结果进行了分析 关键词 电子称重系统 单片机 称重传感器 A D 转换 时间和温度 人机交互 Title Design of weighing control System Based On MCU ABSTRACT Due to the important role of weighing apparatus in the trade development of weighing technology has been paid close attention to by people This paper presents a new type of multifunctional electronic weighing system This design is based on the most common C51 series microcontroller STC89C52 as a control core it realized the basic functions of electronic scales This design can acquisition quality accurately display test data intuitively set the price for diffident things and automatic alarm when it is over range At the same time the system also extends the function of electronic calendar and the thermometer making the system more intelligent and practical This paper discusses the background of the subject how the system scheme is determined design of the hardware circuit system and software programming At the end of the paper the system test results were analyzed Key Words Electronic scale single chip microcomputer sensor A D conversion human computer interaction time and temperature 目录 摘要 I ABSTRACT II 第 1 章 前言 1 1 1 选择课题的背景和意义 1 1 2 电子秤的现状及未来的发展趋势 1 1 3 设计的主要任务 2 第 2 章 系统方案设计 3 2 1 系统总体构想及其工作原理 3 2 2 系统方案的确定 4 2 3 各个模块选型的分析 5 第 3 章 系统硬件电路的设计 16 3 1 MCU 的最小系统电路设计 16 3 2 称重传感器和 A D 转换芯片 HX711 的电路设计 16 3 3 数据输入模块的电路设计 17 3 4 液晶显示模块的电路设计 17 3 5 报警模块的电路设计 18 3 6 时钟模块和温度模块的电路设计 18 第 4 章 系统软件部分的设计 19 4 1 编程语言和开发工具的选择 19 4 1 1 编程语言的选择 19 4 1 2 软件开发环境的选择 19 4 2 程序设计的总体思路 19 4 3 各个模块程序设计说明 21 4 3 1 键盘扫描程序 21 4 3 2 A D 转换程序设计 21 4 3 3 LCD 显示程序设计 22 4 3 4 报警模块程序设计 23 4 3 5 时钟模块程序设计 23 4 3 6 温度模块程序设计 23 4 4 小结 24 第 5 章 系统整体校调 25 5 1 调试方法和步骤 25 5 2 调试过程中出现的问题及其解决方法 26 5 3 调试结果 26 第 6 章 讨论 与展望 28 6 1 结论 28 6 2 系统需改进的地方 28 致 谢 29 参考文献 30 附录 部分源程序 29 第 1 章 前言 1 1 选择课题的背景和意义 称重技术自古历来都受到人们的特别重视 早在我国父系氏族社会的末期就出现了所谓 度 量 衡 的说法 其中的 衡 也就是指测量物体轻重的工具 是以今天我们还把称 重工具称作 衡器 在贸易中对货物交换量的准确确定必须要用到称重器具 最初人们采用 木制或陶制的容器作为交换货物粗略的计量 后来出现的秤可以相对精确地测定物品的质量 因此自从人类文明诞生之日起 称重技术就和人类的经济社会生活密切相关 同时随着社会 的发展和技术的进步也在不断地革新 随着现代发贸易对称重器具要求的不断提高 传统机 械式称重器具缺点也日渐显露 比如精度不高 工作效率低 不能自动计价等 尤其是容易 被无良商家利用充当其作弊的工具 虽然这些秤几经改进 但是仍然不能同时确保准确性和 可靠性 这种状况直到电子秤的出现才发生了改变 电子秤由于大大减少了纯机械部件的应 用 有效地避免了机械材料个体性差异带来的测量误差 同时电子秤又大量地运用现代电子 技术 可以实现丰富的功能 另外科学友好的用户操作界面又兼顾了设备的易用性 上述诸 多优点是以往任何一种传统的机械式称重器具所不具备的 因此电子型的称重器具得到了很 好的发展 迅速得到了普及 目前已经占据了衡器市场的大部分份额 电子称重技术虽然已经得到了非常好的发展 但是目前的电子称重器具依然有很大的提 升空间 另外人们对电子秤各项性能的要求也在不断地提高 由此可见 现今对于电子称重 技术的研究还是很有必要的 现实也要求我们进一步提升电子称重工具的性能 以便于更好 地服务于现代的经济贸易活动 据此可以判断本课题不仅有一定的理论研究价值 同时又关 乎人们日常的生活 也具有很强的实用价值 1 2 电子秤的现状及未来的发展趋势 电子秤从简单到复杂 由简陋到精密一直在发展 电子称重工具由开始的机械式发展到 了机电结合式 最终实现了完全的电子化 同时也由单一功能发展到了多种功能 上世纪 70 年代中期电阻应变式称重传感器在技术上取得了重大的突破 中国的电子秤工业也随之 迎来了空前的大发展 国民生产的各个部门出现了各种各样的电子秤 极大地促进了我国工 商业的发展 轻纺工业 煤炭能源工业 冶金工业 仓储货运部门以及食品生产工业的生产 过程 中都要用到各式各样的电子称重仪器 此外诸如商业贸易领域的称重和计价 电子元件生产 的计数称量也同样不能缺少电子称重装置的 以上实例也仅仅是电子秤技术在国民经济中使 用领域的冰山一角罢了 因为电子秤在生产和生活中应用的例子实在是不胜枚举 从以上这 些例子说明电子称重技术是非常重要的 其应用范围也是十分广泛的 总之 电子称重技术 在国民经济发展和社会进步中发挥着重要的作用 已经越来越受到人们的重视 改革开放以来 伴随着国家经济体制改革的进程 电子称重工业的行业规模 技术能力 以及在我国经济中的作用 已经发生了变化的巨大 远非昔日可比 国家也投入了大量的资 金和人力对电子秤行业予以了大力的支持 据有关方面的不完全统计 到 七五 末期 国家 对电子秤行业的累计投资已经达到了 3 亿多人民币 并动用了一千多万美元的外汇 纵观历 史 近代以来随着科技的爆炸式发展 秤这种古老的计量工具也发生了翻天覆地的巨变 几 千年来中国人眼中的 秤 便是指木杆秤 虽然直至今日这种秤还依然发挥着作用 但是使 用的范围已经越来越窄 现在的人都普通习惯使用更加方便和精确的电子称重工具 在二十一世纪的今天 人们希望电子秤可以使用更加方便 更加智能化 这也就给电子 秤工业提出了更高的要求 现代电子称重仪器往往需要和电子计算机相组合 电子计算机的 引入 大大扩展了电子称重仪器的功能 进一步扩大了其使用范围 未来的电子称重工具将 会向智能化和多样化的方向继续发展 通过分析近些年来电子衡器类产品的发展现状及国内外用户的使用需求 电子衡器总的 发展将会趋向于是模块化 小型化 多样化和智能化 可以预见未来电子称重器具的应用范 围还将继续扩大 1 3 设计的主要 任务 STC89C52 单片机是本系统的控制核心 除了实现电子秤的称重以及计价功能外 系统 还将实现电子万年历 电子时钟 电子温度计等功能 此外还具有单价输入 金额自动计算 超量程自动报警等功能 此外本设计还具有友好的人机交互界面 大大提高了设备的易用性 和实用性 4 4 薄膜型矩阵键盘可以供用户方便地输入单价信息 还可以用于快速准确地校 准电子万年历的日期和时间 LCD1286 点阵式液晶屏 可以直观地显示中文和西文字符 进 一步拓展了系统的功能 在称重模式下可以清晰地显示待测物体的质量 单价和总价 在万 年历模式下也可以清晰地显示年 月 日 星期的日期信息和时 分以及秒 温度等其他信 息 本课题提出了一种基于单片机控制的智能化电子称重系统 具有很多传统电子秤所没有 的新功能 精确度同样可以做到很高 本设计方案实现了一个功能非常强大同时又简单易用 的电子称重系统 第 2 章 系统方案设计 2 1 系统总体构想及其工作原理 本系统的控制核心选用的 STC89C52RC 单片机 本设计完成了电子秤的各项功能 此外系 统还扩展了电子万年历以及电子温度计的功能 系统主要由单片机最小系统 称重传感器及 其信号处理模块 数据输入及结果显示界面 时钟和温度模块以及电源模块等部分组成 最 小系统主要由 STC89C52 及其它必要的外围电路组成 数据采集模块包括称重传感器 信号放 大和 A D 模块 其中的信号放大和 A D 转换选取了海芯科技的高精度 24 位 A D 转换芯片 HX711 这种芯片是专为电子秤量身打造的 4 4 薄膜型矩阵键盘和 LCD12864 液晶组成人机 交互界面 可以快捷地输入数据和显示数据 时钟模块选用的是常用的时钟芯片 DS1302 温 度采集模块此处选择的是集成数字型温度传感器 DS18B20 本系统结构简单 功能多 易于 使用 系统有一定的理论研究价值和实际应用价值 系统设计的总体框图如图 2 1 所示 图 2 1 2 2 系统方案的确定 本系统基本的设计思路是 STC89C52 单片机作为整个系统的控制器 以电阻应变片式的平 行梁式压力传感器为最基本的信号采集器件 配合 AD 转换模块 时钟模块和温度传感器 薄 膜键盘 液晶显示屏等外围器件 实现系统方案要求的各项功能 其中核心的控制系统是 51 系列的 STC89C52 单片机 考虑到系统需要单片机去控制大量的 外围元器件 因此不宜采用 CPLD 或 FPGA 等大规模可编程逻辑器件 大规模可编程逻辑器件 状态机的工作方式不太适合本系统规律性不强的多状态转换环境 本设计状态较多 实现难 度较大 另外本系统除要求实现基本功能外 没有提出其它特殊的要求 所以最终选择了 STC89C52 这种非常常用且廉价的单片机来实现系统设计 称重传感部分选用的是电阻应变式平行梁压力传感器 它的内部核心部分是电桥 待测物 的重力作用会使弹性体产生一定范围内可恢复的弹性形变 不同的电阻应变片 机械信号和 电信号的转换元件 会受到拉伸或压缩也随之产生形变 它们的阻值也会发生相应的变化 从而使原本处于平衡状态的惠更斯电桥进入非平衡状态 在传感器的输出端将会有差动信号 平行梁式称重传感器 STC89C52RC 单片机 主控芯片 单片机 控制模块 数据采集 部分 点阵式 12864 型的 LCD O 4 4 矩阵键盘 人机交互界面 电子称专用高精度高增益 24 位 A D 转 换芯片 HX711 时钟模块 DS1302 芯片 扩展的时钟 模块 声光 报警模块 温度模块 DS18B20 芯片 输出 经过后级电路的处理 可以到得待测物的实际质量 传感器的示意图如图 2 2 所示 图 2 2 传感器的示意图 当垂直于传感器受力面的正向压力 P 作用于梁上时 梁将产生形变 随之电阻应变片 R1 R2 受到压力拉伸 阻值相应增加 R3 R4 受到压缩 阻值相应减小 电桥随之进入不平 衡状态 电桥将会输出相应的电压 电压的大小与作用与传感器上的重力成正比关系 从而 将非电量转化成了电信号输出 A D 转换以及信号处理部分此处选用了海芯科技的 HX711 专用芯片 HX711 是一款专门为 高精度电子秤而量身打造的 24 位 A D HX711 内部已经集成了时钟振荡器 稳压电源 因此 采用此芯片将会减少很多外围电路的设计工作 该芯片具有非常高的集成度 抗干扰性能也 非常强 该芯片的选用降低了电子秤的整机成本 同时也大大简化了数据处理电路部分的设 计 提高了整机的性能 增强了可靠性 单片机对该芯片的编程也非常简单 芯片内部的寄 存器是不需要进行编程的 数据和控制信号直接通过芯片引脚驱动 模拟信号的输入有通道 A 和通道 B 两个通道都有对应的可编程信号放大器 其中 A 通道的增益可以通过编程在 128 和 64 之间方便地切换 128 增益时最大的输入信号幅值为 20mV 64 增益时最大输入信号电 压幅值为 40mV B 通道的增益值是固定的为 64 一般可以利用 B 通道进行系统检测 由于 芯片内部集成了优质的电源模块 因此称重传感器以及芯片内部的 A D 可以从芯片直接获取 电源 因此系统电路板上无需额外的模拟电源供电 非常地方便 另外片内集成了稳定的时 钟振荡电路 芯片外部不需要再接任何器件 当系统通电时 HX711 芯片会完成复位的过程 不需要额外的初始化程序 人机交互界面采用 4 4 薄膜型矩阵键盘来实现数据的输入和相关功能的切换 显示模块选 取的是 12864 液晶 该液晶具有中英文显示的能力 显示重量 单价 总价 以及时间和温 度 显示效果清晰醒目 该液晶是晶讯联公司产的 128 64 汉字液晶屏 该液晶既可以当普通 的图像型液晶显示模块使用 同时内置中文字库 IC 编程者可以从字库 IC 中直接读取内部 字库的字形数据 然后再写入到 12864 的驱动 IC 中 汉字就可以显示出来了 辅助功能模块部分 时钟模块选择了现在非常流行常用的 DS1302 温度检测模块是高精 度数字温度传感器 DS18B20 至此本系统的主要设计方案就已经介绍完了 系统的设计总体上优先采用了目前比较成熟 和常见的方案 这样系统就可以具有很高的稳定性和可靠性 同时也可以有效地降低系统的 实现成本 2 3 各个模块选型的分析 系统要求单片机控制称重传感器的数据采集 以及控制 A D 转换的时序 同时还需要控 制扩展功能的时钟 温度和液晶等模块的工作时序 据此分析 51 单片机 AVR 单片机 MSP430 系列单片机 PIC 单片机以及 ARM 单片机均符合系统的设计要求 但是考虑到系统对 单片机的处理速度和系统资源都没有特别高的要求 因此系统从开发难度和周期以及实现成 本考虑宜于采用成本低廉且技术成熟的单片机 综合考虑决定选用 51 单片机 51 系列单片 机是目前是应用最为广泛的单片机之一 技术比较成熟 开发难度适中 51 系列单片机是由最初的 Intel8031 单片机发展而来的一系列单片机 刚开始的 51 单片 机程序烧写非常麻烦 之后闪存技术发展迅速发展 Flash 的引入使 51 单片机开始快速发展 逐渐成为非常经典的 8 位机 其应用范围非常之广 其中 ATMEL 公司的 AT89 系列 51 单片机 最具代表性 曾经一度十分地风靡 之后许多公司纷纷推出自己的 51 内核单片机 其中国内 的佼佼者便是宏晶科技 他们生产的增强型 51 单片机以其强大的性能和低廉的价格深受开发 者的喜爱和追捧 本系统选用的单片机便是出自宏晶公司 可以预见今后很长一段时间 51 单 片机仍将占有大量市场 本系统之所以最终选择了 STC89C52 是因为 STC89C52 是一种经典的低功耗 高性能的 8 位 单片机 目前使用范围非常广 STC89C52 内置 8K 字节的在系统可编程的 flash rom STC89C52 采用传统 51 内核的同时又有非常多项有益的改进 可谓是旧瓶装新酒 使得 STC89C52 成为一款真正的增强型单片机 使其成为嵌入式控制应用首选的单片机之一 STC89C52RC 单片机的特性 属于增强型的 8051 系列单片机 其指令系统与经典的 51 单片机完全兼容 宽工作电压 分为 3V 单片机和 5V 单片机 正常工作频率最高可达 48MHZ 同工作频率下代码执行效率大约为传统 8051 的两倍 用户应用程序存储空间为 8K 字节 片内经常高达 512Byte 的用户数据存储空间 P0 到 P3 总四组 32 个通用 I O 口 四组 I O 口均是准双向口 其中 P0 口由于内部无上 拉电阻 因此作为普通 I O 口使用 需要外部加上拉电阻 当 P0 口为总线用时 无需上拉 电阻 开发者可以直接通过 P3 0 和 P3 1 实现串口下载程序 不用像其他单片机那样还需要专用 编程器或仿真器 非常迅速和便捷 片内集成有 2KB 的 EEPROM 总共有 3 个 16 位定时器 计数器 总共有 4 路外部中断 可以选择下降沿触发或低电平触发 此外单片机进入节能模式时 也可被外部中断以低电平触发的中断方式所唤醒 STC89C52 的实物图如 2 3 图 2 3 STC89C52 实物图 STC89C52 的管脚分布如图 2 4 图 2 4 STC89C52 引脚示意图 目前的称重传感器按其力电转换的方式大致可以分为电阻应变式 电容应变式 液压转换 式 光电转换式 压电感应式以及新兴的陀螺仪式等 下面就将各种传感器的工作原理和适 用范围一一做以介绍 光电式传感器 主要有光栅与码盘这两类 光栅式传感器有两块光栅 其中一块是固定 还有一块位于表盘轴可移动 当承重台上放 有待测物时 被测物的重力通过杠杆作用在表盘轴上从而使其旋转 则表盘轴上的移动光栅 也随之转动 光栅产生的莫尔条纹也会移动 再通过光电管换算出发生移动的莫尔条纹的数 量 从而把转轴的角度位移转换成了对应的光电信号 我们通过测量光栅的转动角度 就可 以最终被测物的实际质量 码盘式传感器也是通过把码盘的转动角度转换成光电信号来工作的 被测物体放在承重台 上时重力作用施加于杠杆使表盘转轴转动 和转轴相连的码盘亦随之转动 光电池可以把光 信号转换成电信号 因此码盘转动角度和光电池的电信号呈一定关系 输出的电信号经由数 字化处理 就可以得到待测物的实际质量 以前的机电结合秤上光电式传感器曾经被大量使 用 压磁式称重传感器是通过检测铁芯上绕的线圈的阻抗变化 间接得到待测物质量的 我们 知道铁磁材料的磁导系数与磁阻会随着其所受外力的大小发生相应的改变 而磁导系数和磁 阻的变化会引起线圈阻抗的变化 也可以说线圈阻抗的变化与外力大小成一定的比例关系 我们通过检测线圈阻抗的变化 就可以得到外力的大小 进而求出待测物体的质量 压电式称重传感器是通过晶体表面电荷的转移现象测定物体质量的 一定方向的外力作用 与某些晶体介质时 晶体内部的正负电荷会发生相反方向的移动 晶体表面的两个方向就聚 集了大量符号相反的束缚电荷 这些束缚电荷的电荷密度与外力的大小成正比关系 18 据 此可以得到物体的实际质量 液压式称重传感器的量程比较大 一般应用于工业场合 它的原理也比较简单 是通过其 内部液压油的压强变化达到测量目的的 当中午作用于液压油时 液压油会受到压缩 所以 其压强会增大 增大的程度与物体重力有关 我们可以通过测出压强的变化 来确定被测物 的质量 液压式称重传感器的结构相对简单 稳定性好 但是其准确度很低 电容应变式称重传感器的工作原理是弹性体上固定有电容器 当被测物体作用于弹性体时 弹性体会发生形变 从而引起电容极板间距的变化 我们知道电容器的电容大小和其极板间 距有关 当电容发生变化时 电路的震荡频率会发生变化 通过计算得知振荡电路的振荡频 率与电容器的极板间距呈正比例的关系 很明显 电容器极板间距的变化和待测物的质量有 关 通过测量电路的变化量 我们就可以求出被测物的实际质量 电容式称重传感器价格便 宜 功率消耗低 精确度在 1 200 和 500 之间 振动式称重传感器的金属丝或金属膜的尺寸 材质和密度都一定时 其固有频率就只与其 受到的外部力的大小有关 不同的待测物施加的重力也不同 金属丝的振动频率也就会发生 不同的改变 我们设法用频率测量仪器测出金属丝震荡频率的改变 就可求得待测物的质量 振动式称重传感器分为音叉式以及振弦式 振弦式称重传感器的核心部分是弦丝 弦丝在传感器中是以 V 字形固定的 当有被测物作 用于弦丝时 弦丝的 V 形交汇点会向下移动 与此同时弦的左半部拉力增大 弦的右半部拉 力减小 弦的左右两部分的固有频率都会发生就会发生变化 两部分的频率之差和物体的质 量有一定关系 我们得到这个频率差就可以求出被测物的质量 振弦式传感器的精确度高达 0 001 到 1 0001 其量程可达几百千克的级别 优势比较明显 但与此同时其结构过于复杂 加工难度非常大 因此造价很高 只适用于特殊场合 压电元件固定在音叉的顶部 压电元件可以随音叉一起振动 通过压电元件可以测出音叉 的固有振荡频率 当音叉受到待测物的重力作用时其固有频率会增大 频率增大的量与重力 大小的平方根成正比 可见音叉 固有频率的变化量反映了物体的质量大小 求出音叉频率的 变化量就可以得到物体的质量 音叉式称重传感器功耗低 计量准确度高 可惜最大量程只 有 10kg 陀螺仪式称重传感器是最近几年来新兴的一种新型数字型称重传感器 这种传感器的工作 原理利用了陀螺的进动特征与力矩效应 陀螺仪式称重传感器的位移与物体作用力不在一个 方向上 不必考虑静态平衡问题 这种传感器几乎不存在滞后性 线性非常好 精度高 响 应速度快 抗干扰能力很强 陀螺仪式称重传感器最大的特点是它输出的信号直接就是数字 型的 可供单片机直接处理 无需再经过模数转换过程 使用起来非常方便 电阻应变式称重传感器内部的弹性体上有四个电阻应变计 构成了惠更斯电桥 待测物重 力使当弹性体产生形变 其上的电阻应变计的电阻发生不同的变化 电桥的平衡状态被打破 输出相应的电信号 由于输出的电信号与物体的重力存在线性关系 所以通过后面的信号处 理电路测出这个电信号的幅值 就可以测出物体的实际质量 电阻应变式称重传感器的量程 范围很大 最高可称量上千千克的物体 其计量准确度也比较高 电阻应变式称重传感器结 构简单 可以适应大部分的工作环境 可靠性也较好 因此目前这种称重传感器得到了非常 广泛的应用 综上所述 反复对比各类称重传感器后可以得出结论 从技术成熟度 结构复杂程度 计量精确度和制造成本综合考虑 电阻应变式称重传感器是最佳的选项 本方案选用的是电阻应变式平行梁传感器 目前应用最为广泛 在各种各样的电子秤中 可能使用的都是这种称重传感器 厨房秤和珠宝秤等行业领域 是工业和农业自动化系统中 一种不可或缺的核心部件 其外形是不规则的长方体形状 如图 2 5 平行梁称重传感器 是业界部分人对其的一种称呼 图 2 5 平行梁传感器外形 平行梁传感器的原理 如图 2 6 外力作用于弹性体时 弹性体发生弹性形变 电阻 应变片由于是贴在弹性体上的也随之产生形变 产生形变后电阻应变片的阻值也将发生变化 电桥不再平衡 输出的差动信号经过放大和 A D 转换 最后由单片机进行处理 就可以得到 待测物的质量 图 2 6 传感器工作原理示意图 本方案选用的平行梁传感器的基本参数如表 2 1 表 2 1 平行梁传感器参数 平行梁传感器可以在各种恶劣的条件下保持正常地工作 它的体积也一般比较小 非常 适合小型化的民用称重设备 平行梁传感器精度高 量程大 构造简单 频率响应特性优异 当然它也存在着缺点 电桥输出的差动信号微弱需要进行放大 而且当称量物体重量较大时 其线性特征会变差 当然这些缺点可以通过优化电路设计在一定程度上得到补救 由于平行梁传感器输出的信号是模拟信号 单片机无法直接进行处理 因此需要通过 A D 转换变成单片机可以处理的数字信号 同时传感器输出的原始信号非常微弱 如果直接 处理误差会非常大 所以还需要进行信号的放大 另外还要给传感器和 A D 转换芯片提供稳 定可靠的电源 因此这里有两种方案可供选择 方案一 采用高精度的 A D 转换芯片 同时设计信号放大电路和电源供电电路 此种方 法可以保证具有良好的效果 但是由于电路结构非常复杂 工作的温度性无法保证 另外也 势必会增加成本 方案二 采用电子秤专用集成 A D 芯片 可以省去放大电路和电源电路的 设计 简化系统结构 同时由于采用专用芯片 因此其精确性和可靠性也有保障 综合考量 之下 我决定选择方案二 经过长时间的资料查找 海芯科技的一款电子秤专用的 A D 转换芯片进入了我的视线 这款芯片的优异性能和强大功能确实让人初见就会有眼前一亮的感觉 它就是 HX711 引脚示 意图如图 2 7 图 2 7 HX711 引脚示意图 A D 转换器以及信号处理部分此处选用 HX711 HX711 内部已经集成了时钟振荡器 稳压 电源 因此采用此芯片将会减少很多外围电路的设计工作 该芯片具有非常高的集成度 抗 干扰性能也非常强 该芯片的选用降低了电子秤的整机成本 同时也大大简化了数据处理电 路部分的设计 提高了整机的性能 增强了可靠性 由于芯片内部集成了优质的电源模块 因此称重传感器以及芯片内部的 A D 可以从芯片直接获取电源 因此系统电路板上无需额外 的模拟电源供电 非常地方便 另外片内集成了稳定的时钟振荡电路 芯片外部不需要再接 任何器件 当系统同电时 HX711 芯片会完成复位的过程 不需要额外的初始化程序 HX711芯片的特点 通道A和通道B两路可选择的差分输入 内部集成优良的可编程信号放大器 增益可以通过编程改变 内部集成稳压电源 接入的传感器和HX711内部的A D 转换器可通过此电源获得电源 内部集成时钟振荡电路 无需外接晶振等元件即可起振 也可以引入外部时钟 具有上电自动复位电路 通用的串口通讯模式 直接通过管脚控片 不用对芯片内部的寄存器编程 数据输出的速率可以通过编程在10HZ和80HZ之间转换 可以抑制50Hz或60Hz电源的干扰 超低的功耗 工作电压范围是2 6 到5 5V 可以在 40 到85 的环境下工作 16 引脚的贴片封装形式 数据输入模块的选择相对来说非常简单 这个模块也属于人机交互界面的其中一部分 需 要完成称重系统金额等数据的输入以及时钟模块时间的调整 因此无非就是有独立键盘和矩 阵键盘两种选择 而本系统至少需要设置 10 个数字键 还有若干的功能转换按键 考虑到按 键数量比较多 毫无疑问矩阵键盘将会是最佳的选择 经过对比 本系统选择了近些年来颇为流行的一种键盘即薄膜型键盘 薄膜键盘其实是一 种薄膜开关 此种键盘按键一般很多 按键分布整齐 人们习惯叫它薄膜键盘 薄膜键盘外 观漂亮 体积较小 重量特别轻 具有防水 防灰尘 耐酸碱 防油污 抗震以及寿命长等 诸多特点 薄膜键盘集文字标识 商标印制 显示透明窗为一体 目前已经被广泛地应用于 智能化的电子测量仪器 家用电器 医疗器械等诸多领域 薄膜键盘的优点 外形美观新颖 体积可以做得很小 适用于笔记本等高端产品 密封性强 可以防水 防尘 还具有一定的耐酸碱和抗震能力 使用寿命很长且可以耐弯折 表 2 2 键盘按键功能分布 显示模块可以在常见的数码管和液晶屏之间取舍 考虑到本设计要显示的数据量会比较多 如果采用数码管显示 则所需的数码管位数就会非常多 将会占用单片机大量宝贵的 I O 口 本就有限的 51 单片机的资源将会更加显得捉襟见肘 另外硬件电路的设计也会很复杂 编程 也会有一定难度 同时大量的数码管从美观和显示效果来看也不甚理想 可见数码管只适用 于显示内容相对较少的情况 当显示内容较多时 数码管往往就显得鞭长莫及了 因此本设 计决定选用性能更加优异的 LCD 屏 常见的液晶显示屏有以 1602 和 12864 为典型代表的普通 屏 还有更加高端的彩色 TFT 屏 从成本和实用性来看彩色屏可以被排除 因为就普通的电 子秤来说不需要显示大量的彩色图像 用彩色屏有些牛刀杀鸡的感觉 同时就 51 单片机的处 理速度来说去驱动高分辨率的彩色屏也会显得力不从心 1602 成本最低 但是其显示区域较 小且有不能显示中文的局限性 因此 本方案选择 12864 液晶作为系统的显示部分 系统选用的是 12864 液晶屏 内置字库 采用 8 位并行数据传输模式 它的显示分辨率为 128 64 可以同时最多显示四行 32 个 16 16 点阵的汉字或 64 个 16 8 点阵的西文字母 另 外本模块还具有绘图功能 非常适合做人机交互模块 同时 12864 的功耗也很低 价格相对 1 2 3 功 能 转 换 4 5 6 时 间 调 整 7 8 9 去 皮 功 能 0 预 留 按 键 便宜 其硬件电路的设计比同类模块也要简单 报警模块相对来说也比较简单 本设计采用的是比较经典的蜂鸣器报警方案 蜂鸣器是一 种常见的电子讯响设备 蜂鸣器被广泛地应用于游戏机 家用电器和医疗设备等电子设备的 报警电路中 蜂鸣器价格低廉 电路结构简单 响度大 工作稳定性高 是一种非常理想的报警电路设 计方案 蜂鸣器分为有源蜂鸣器和无源蜂鸣器 其中有源蜂鸣器接通合适的电源就可以连续 发出声响 而无源蜂鸣器必须有音频信号的输入才能发声 和普通的扬声器更像 我们常说的有源或无源蜂鸣器 其中的 源 是指震荡源 而不是电源 有源蜂鸣器内部 带有独立的震荡源 因此只要一通电就会发出响声 但是无源蜂鸣器内部是没有震荡源的 所以直流信号无法直接驱动其鸣叫 只有输入一定频率的方波信号才可以驱动它发声 有源 蜂鸣器一般都比无源蜂鸣器贵 就是因为它内置了一个震荡源 无源蜂鸣器虽然有其自身的 优点 比价格便宜 发声频率可编程 在个别特殊情况下甚至可以和 LED 复用同一个 I O 口 但是无源蜂鸣器的控制程序就要远远比有源蜂鸣器复杂了 其中往往需要涉及定时器的编程 相反有源蜂鸣器的编程非常简单只需要控制 I O 口电平的高低变化就可以了 另外如过是小 批量的话无源蜂鸣器的成本优势也并不明显 加之本设计只是需要普通的声音报警 没有要 求音调的变化 毫无疑问 在本设计中 有源蜂鸣器是最好的选择 目前的时钟芯片市场中 DS1302 PCF8485 和 DS1307 等都比较流行 这些芯片都具有接口 简单 成本低廉 应用简单的优点 因而在目前的电子设备中被广泛地应用 在这类芯片中 DS1302 是目前最为经典 使用也最广泛的一种 DS1302 由 DALLAS 公司开发 它可以为备用 电池提供充电功能 采用高效的串行数据传输模式 可以在接入电源时为备用电池充电 当 然也可以关闭其此功能 和 DS1302 配套实用的也是常见的 32768Hz 的晶体振荡器 经过对比 我决定选用 DS1302 作时钟芯片 因为其技术相对比较成熟 价格适中 功能 也符合设计的要求 DS1302 是一种低功耗 多功能的实时时钟芯片 具有进行闰年补偿功能 在 2 5V 到 5 5V 的工作电压下都可以正常运行 DS1302 通过简单的三个 I O 扣与控制器进 行同步通讯 DS1302 比 DS1202 增加了后备电源电源的引脚 可以对后备电源进行充电 因 此 DS1302 是 DS1202 的改进版和升级版 完全符合本设计的需求 DS1302 的管脚示意图如图 2 8 图 2 8 DS1302 管脚示意图 温度传感器从大的方面来分可以分为接触式和非接触式 其中非接触式传感器和待测物 可以不直接接触 因此这种传感器的测温上限非常高 理论上可以不用考虑敏感元件的耐高 温上限 但是这种传感器造价相对昂贵 主要是用来测量运动中的目标 或温度变化迅速的 目标的表温 尤其是 1800 以上的高温 因此这种传感器就本系统来说不是特别合适 接触式一类的传感器的热电偶或热电阻的测温范围大 并且灵敏度高 转换时间短 但是 需要与之配套的外围电路相对复杂 适用于专用的测温仪器的开发 考虑到本系统中的测温 功能只是其中一个辅助功能 对温度传感器的测温性能并无特别高的要求 为了简化电路设 计减小开发难度 在此选用集成温度传感器 集成温度传感器又有模拟和数字的区分 其中模拟型的是把敏感元件和基本信号变换电路 以及控制电路全部集成在了单一的 I 芯片上 这种芯片优点比较明显 灵敏度高 线性度较 好并且响应速度很快 数字型集成温度传感器把温度敏感器件 A D 转换器和存储器等集成 在了一个 IC 上 可以直接输出数字信号 单片机可以直接从 IC 中读取数据 再经过换算就 可以得到实际的温度值 使用更加加方便 对比以上方案 设计最终选择了一款数字集成温度传感器 DS18B20 它只有一根数据线就 可以完成和 MCU 的通信 不需要额外的备用电源 3 0 V 到 5 5 V 的电压范围内都可以工作 它可以测量零下 55 到 125 的温度范围 量程内的测温精度可以达到 0 5 DS18B20 可编程的分辨率为 9 到 12 位 虽然响应时间稍长 但对于本系统来说完全可以符合要求 DS18B20 的引脚示意图如图 2 9 图 2 9 DS18B20 引脚示意图 2 4 小结 本章内容对系统的总体设计方案做了简单的介绍 之后又详细地阐述了系统每一个模块的 选型依据 系统的各个模块器件的选择对于系统的整体设计是非常重要的 模块选择得当可 以以最简单最廉价的方案实现设计所要求的功能 同时系统性能和工作稳定性也可以得到非 常有效的保障 达到事半功倍的效果 相反如果模块选择失当 整个设计进程将会大费周折 最终的结果往往也不理想 第 3 章 系统硬件电路的设计 3 1 MCU 的最小系 统电路设计 单片机最小系统的设计参考了经典的 51 单片机的电路设计 包括震荡电路 复位电路 该方案已经久经实践的检验 所以是非常成熟的 因此在此不再赘述 具体的电路连接图如 下图 图 3 1 单片机最小系统原理图 3 2 称重传感器和 A D 转换芯片 HX711 的电路设计 根据平行梁式称重传感器的数据手册 传感器的接线方法如图 3 2 图 3 2 传感器接线示意图 HX711 芯片的电路设计也参考了厂家给出的方案 没有外接晶振 数据输入选择是 通道 其中 AVDD 和 GND 为称重传感器提供电源 具体电路设计如图 3 3 图 3 3 HX711 电路原理图 3 3 数据输入模块的电路 设计 按键输入模块是采用普通的矩阵键盘电路 键盘的控制口连接的单片机 P3 口 如图 3 4 图 3 4 键盘电路 3 4 液晶显示模块的电路设计 12864 的硬件电路设计采用其 8 位并行数据传输工作模式 单片机的 P2 口为 12864 的并 行数据口 P3 5 为使能端 E P3 6 为读写控制端 R W P3 7 为数据 指令控制端 D I P0 2 为串 并选择控制端 PSB 具体的电路原理图如图 3 5 图 3 5 LCD12864 接口电路 3 5 报警模块的电路设计 蜂鸣器驱动电路也比较简单 由于 51 单片机的 I O 口不足以直接驱动蜂鸣器 因此需要 设计三极管放大电路 LED 报警电路比较简单 LED 通过串接 1K 电阻后和 P0 7 口相连接 具 体的电路设计如图 3 6 图 3 6 蜂鸣器报警电路 3 6 时钟模块和温度模块的电路设计 DS1302 的硬件电路也相对比较简单 两个小电容起到温度震荡频率的作用 单片机 P3 4 口接时钟端 P3 3 为数据口 P3 2 为复位 片选端 VCC2 接后备电源 具体电路设计如图 3 7 图 3 7 时钟模块原理图 DS18B20 由于是单总线芯片 其电路设计也非常简单 数据端口接单片机的 P0 3 如图 图 3 8 时钟电路原理图 第 4 章 系统软件部分的设计 4 1 编程语言和开发工具的选择 4 1 1 编程语言的选择 51 单片机的编程语言有汇编语言或是 C51 语言等高级语言 其中汇编语言产生的目标代码 短 所占用的存储空间相对很小 因此汇编程序的执行速度较快 可以充分发挥出单片机的硬件 性能 使用汇编语言编写复杂的应用却非常困难 并且程序的可读性以及可移植性都不强 用 C51 语言编写的程序代码相对长 需要占用更多的程序存储空间 但这些都只是相对于汇 编语言来讲的 如果程序编写得科学合理 那么 C 语言也可以编写非常精简和高效率的程序代 码 同时 C 语言的易读性和可移植性却是汇编语言望尘莫及的 编程效率将会大大高于汇编语 言 减小了程序眼的编程难度 所以本方案选择 C51 语言作为系统的编程语言是合适的 4 1 2 软件开发环境的选择 当今主流的 C51 编译软件主要有以下几种 IAR Avocet Tasking Dunfiled shareware Micro Computer Controls KEIL 等 其中 KEIL 以其紧凑代码和易于使用的界 面深受编程开发人员的喜爱 在国内 51 单片机开发界 KEIL 更是久负盛名 是国内编程人员 首选的开发工具 因此本设计采用 KEIL V4 版本作为系统软件开发环境是非常合适的 4 2 程序设计的总 体思路 本次设计的系统包含的模块数量比较多 如果所有函数都在一个源代码文件中实现 容 易使源代码文件过于臃肿 同时程序的可读性和可维护性也会较差 因此本设计考虑采用模 块化编程的思想 即每个模块的功能均只由一个源代码文件实现 同时对应一个头文件 以 供其他源代码文件调用 每个源程序和对应的头文件均以相应的模块名来命名 力求做到闻 名而知意 这样处理的结果会使整个设计的程序部分可读性非常强 也大大提高了程序的可 移植性 这样的程序设计方法也便于对各个模块的调试采取分而治之 然后再各个击破的策 略 可以尽可能地减小程序调试的难度 整个程序的结构图如图 4 1 图 4 1 程序结构图 程序大体上分为两部分 即万年历和称重系统 两种模式通过 A 键来切换 具体的程序 流程图如图 4 2 图 4 2 程序流程图 4 3 各个模块程序设计说明 4 3 1 键盘扫描 程序 矩阵键盘扫描程序是在 jianpan c 源文件中实现的 程序扫描的方法是先给某一行置 低电平 然后对每一列进行完整扫描 列扫描完成后在变化另一行 同样进行列扫描 直至 每一行都被扫描过 键盘也就完成了一次扫描 总共有 16 个按键 也就是说需要做 16 次判 断 如果有键被按下 则返回其键值 由于系统没有设计硬件消抖电路 因此需要在程序中 加入软件消抖 具体的实现方法是加入适当的延时 以消除按键抖动造成的电平跳变 从而 增加按键稳定性 详细程序请参考附录部分相关内容 4 3 2 A D 转换程 序设计 HX711 有两条串口通讯线分别是数据线 DOUT 和时钟线 PD SCK 利用者两个引脚可以输出 数据和选择输入通道以及增益 当 DOUT 为高电平时 说明明 A D 转换器未就绪 需要等待 串口时钟输入信端 PD SCK 此时应该为低电平 DOUT 从高电平变低电平后 说明 A D 转换已 经就绪 此时如果 PD SCK 输入了 25 到 27 个的时钟脉冲 其中第一个时钟脉冲的上升沿将读 开始 各个模块初始化 A 键是 否按下 进入称重模式 Y 进入万年历模式 N C 键 B键 设置单价 正常走时 去皮 校时 获取数据 显示数据 Y N Y N 出输出的 24 位数据的最高位 一直到第 24 个时钟脉冲完成 24 位数据就完成了输出输 剩 下的第 25 到第 27 个时钟脉冲是用来设定下一次 A D 转换的数据输入通道以及增益调节的 A D 转换器的输入通道或增益任意一个参数发生改变时 都需要至少经过 4 个数据输出周期 输出的数据才能稳定 也就是说 4 个数据输出周期后 DOUT 才会变为低电平 开始输出有效数 据 详细设置参见表 4 1 表 4 1 HX711 增益选择 从 HX711 读出的 24 位二进制数还需要经过换算才能转换为最终的实际重量 具体换算方 法为 传感器电源为固定的 4 3V 传感器灵敏度为 1mv v 经过 A D 的 128 倍放大后的满量程 电压 重物为 5kg 时 的表达式为 4 3v 1mv V 128 550 4mV 4 1 同时 A D 的参考电压也是 4 3V 所以 不难得出满量程最终输出的二进制数为 550 4mV 224 4 3V 2147483 4 2 根据传感器的线性特征 可以得到 当输出二进制数为 n 时 对应的实际质量 x 为 x n 4 30g 4 3 3LCD 显示程序设计 12864 的程序设计采用并行显示方式的 具体的端口定义见图 4 3 图 4 3 12864 端口定义 液晶初始化完成后 先显示屏幕上一些固定的信息 然后再显示从传感器或芯片上读出的 数据 考虑到要显示的信息比较多 12864 有限的屏幕不能一次性地把所有内容显示完全 经测试滚动显示的效果也不理想 因此设计把信息分成了两屏来显示 具体实现方法是通过 键盘上的 A 键来切换 对应的两种模式分别为万年历和电子秤 这样就完美地解决了 12864 单次显示内容少的问题 4 3 4 报警模块程序 设计 报警模块的程序非常简单 根据硬件电路的设计 只要当读取的传感器的数据超过了设定 值 此时只要将连接蜂鸣器和 LED 的 I O 口置为低电平 蜂鸣器和 LED 就会产生报警信号 经过测试连续的蜂鸣器报警声太过尖锐 会引起使用者的不适 因此后期程序经过了改进 在程序中加入了稍许的延时 实现了间歇性的报警声 效果较之以前有很大提高 4 3 5 时钟模块程序 设计 时钟模块程序设计的难点是时间的调整 部分 根据设计的要求 需要由键盘直接输入时 间的数值 再将调整后的时间值写入 DS1302 的对应的时间寄存器中 还要同步把调整后的时 间显示在 12864 液晶屏上 时钟模块程序的流程图如图 4 4 图 4 4 时钟模块程序流程图 4 3 6 温度模块程 序设计 温度模块的主函数中先调用 DS18B20 的初始化函数即 init DS18B20 然后再在大 循环中调用 DS18B20 的温度获取函数 由于本系统只有一个 DS18B20 温度传感器因此可以跳 过读序号列号的操作 直接读取温度寄存器 DS18B20 的温度分高分为两个字节存放在两个 开始 DS1302 初始化 按键 B 是否被 按下 YES 进入时间调整状态 时钟芯片正常走时模式 读取内部寄存器中时间的数据 转换后显示在 12864 屏幕上 NO 寄存器中 读取之后需要把两字节的数据合并 然后转换为 12864 可以直接显示的字符 最 后在液晶屏上显示出当前的温度值 4 4 小 结 本系统的程序设计由于模块化编程思想的引入而使其调试难度大大降低 每个模块都可 以单独进行调试 当模块单独工作正常时 再将其放入整个系统进行联合调试 如果系统哪 一部分出现问题 也可以迅速找到问题根源并进行修改 由此可见模块化编程对于结构复杂 的程序编写是一种非常行之有效的方法 第 5 章 系统整体校调 5 1 调试方法和 步骤 根据前面所述模块化的编程方法 系统的调试基本上也遵循了这一原则 即先易后难 先局部再整体的调试方法 先调试一些相对简单的模块 比如蜂鸣器报警和液晶显示 程序 编译通过后把可以仿真的模块在 protues 仿真软件中进行了仿真测试 仿真测试通过后 最 后把程序烧写进单片机进行实际硬件的测试 由于软件仿真和实际的硬件一般都存在一定的 差距 软件仿真通过的模块不一定可以在硬件测试中通过 根据硬件测试的结果对程序进行 相应的调整 直至硬件测试也通过 当各个模块软件仿真和硬件测试通过后 需要进行系统的联合调试 也就是要把各个独立 的模块给整合进一个系统 这一步的调试也相当地关键 需要保证各个模块既可以正常地工 作又不能影响到其他模块 所以各个模块需要达到局部独立工作 但整体上又协调统一的要 求 图 5 1 和图 5 2 是某些模块的仿真过程 图 5 1 时钟模块仿真结果 图 5 2 称重模块仿真图 5 2 调试过程中出现的问题及其解决方法 程序调试主要分为两大部分 即万年历模式和电子秤模式 其中万年历模式中时间显示 相对比较简单 程序调试的难点在于时间调整函数的处理 由于矩阵键盘的引入 系统设计 要求时间调整需要通过键盘直接输入要调整的数值 而不是像传统时钟那样只通过一个按键 实现时间数据单步的加减 调试过程中特别是两次按键之间的延时更是需要反复试验才能确 定最为合适的参数 电子秤模式中调试的难点在于称重特想参数需要多次不断地校正 由于每个称重传感器的 特性曲线都不尽相同 同时还存在一定的非线性 因此需要用标准砝码 反复去校正 知道 找出相对最好的特性参数 才可以使称量结果的误差减到最小 5 3 调试结 果 经过长时间不断的调试 整个系统的表现终于达到了设计的各项功能和性能的要求 系 统分为两种模式 即万年历模式和电子秤模式 两种模式可以通过键盘的 A 键自由切换 在万年历模式下液晶显示屏幕上可以显示年 月 日 星期 时 分 秒和当前温度值 时 间的调整模式可以通过按键 B 来激活 可以从键盘数字键直接输入调整的目标值 调整完 一项时间参数后通过按键 B 切换到下一项的调整 直到所有时间参数都调整完毕 最后按 下 B 键时万年历恢复正常的时间显示模式 当切换到称重模式时 已经屏幕上会显示欢迎信息和待测物的质量 单价以及金额的信息 为了方便用户使用 本系统还增加了 去皮 功能 可以直接得到待测物的实际重量 非常 方便 使用过程中 去皮 功能的实现是通过按键 C 实现的 使用过程中使用者可以随 时变换单价信息 类似于时间的调整 可以通过数字键盘直接输入单价 系统默认单价为三 位数 其中一位为小数部分 足以应付日常使用 输入单价后系统将会自动计算出相应的金 额并显示在液晶屏上 此外系统还具有超重报警功能 当待测物的质量超过了系统的量程 蜂鸣器会自动响起警报声 给使用者以提醒 报警功能的加入有效地保护了称重系统的使用 安全 减少了系统故障出现的概率 用标准砝码测试的结果如表 5 1 所示 表 5 1 测试结果 砝码重量 g 实际显示重量 1 g 实际显示重量 2 g 实际显示重 量 3 g 100 99 99 98 500 499 500 499 1000 998 999 999 2000 1999 2000 2000 3000 3000 2999 2999 4000 3999 3999 3999 5000 4998 4998 4997 经过测试系统的平均称重误差大约为 1 358 由于传感器本身以及其他元器件都做不到 理想的线性 程序中已经根据测试结果进行了线性补偿 经过多次校准和非线性补偿后 本 称重系统的误差已基本达到了设计要求 第 6 章 讨论与展望 6 1 结论 本系统从前期论证到选题 查找资料 系统设计 程序编写 软件仿真 硬件调试到 最后的项目完成 前后历时近三个月 期间我查找了大量的资料文献 设计了很多方案 才确定了最终的方案 程序
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类 > 大学论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!