基于单片机的智能水平仪设计_第1页
基于单片机的智能水平仪设计_第2页
基于单片机的智能水平仪设计_第3页
基于单片机的智能水平仪设计_第4页
基于单片机的智能水平仪设计_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

精品文档 I欢迎下载欢迎下载 摘 要 电子水平仪是一种非常普遍的测量小角度的量具 用它可测量对于水平位置的倾 斜度 基于传感器 数字信号处理 单片机技术的数字水平仪是当前倾角测试仪器数 字化发展的方向 本毕业设计就是采用 STC89C52 单片机和 ADI 公司生产的三轴加速度传感器 ADXL345 相结合 利用 ADXL345 三轴加速度传感器感应水平倾角 通过单片机的控制以 及运算将倾角以数值的形式直接在 LCD 显示屏上进行显示 处理 从而使角度测量变 得方便 快捷 实现了倾角的高精度测量 通过 ADXL345 三轴加速度传感器原理 提 出了使用软件和硬件结合的自动校正技术进行测量角度 最大限度简化了电路 提高 了系统的稳定性和可靠性 通过对本课题的研究 让我对水平仪有了一定的了解 在未来水平仪将在建筑方 面起着重要作用 并且随着时代发展 水平仪对角度的测量将越来越精细 随着光学 应用领域的不断扩展 也相应的产生了一些基于光电原理的光电式水平仪和激光式水 平仪 光电原理的应用将是未来水平仪的发展方向 关键词 智能水平仪 单片机 ADXL345 角度 精品文档 II欢迎下载欢迎下载 Abstract Electronic level gauge is a very common small angle measurement Measurement for the horizontal position of the inclination to use it Based on the digital level sensor digital signal processing computer technology is the current development of digital instrument tilt testing instrument in the direction of This graduation design is the use of three axis accelerometer ADXL345 microcontroller STC89C52 and ADI company production of combination using the ADXL345 three axis acceleration sensor level angle processing through the MCU control and operation will dip in numerical form directly in the LCD screen display so that the angle measuring is convenient quick realize high precision measurement of angle The principle of the ADXL345 three axis accelerometer and proposes to use the combination of hardware and software of the automatic calibration technique for measuring the angle the maximum simplifies the circuit improves the stability and reliability of the system This graduation design is the use of three axis accelerometer ADXL345 microcontroller STC89C52 and ADI company production of combination using the ADXL345 three axis acceleration sensor level angle processing through the MCU control and operation will dip in numerical form directly in the LCD screen display so that the angle measuring is convenient quick realize high precision measurement of angle The principle of the ADXL345 three axis accelerometer and proposes to use the combination of hardware and software of the automatic calibration technique for measuring the angle the maximum simplifies the circuit improves the stability and reliability of the system Keywords Keywords Intelligent level MCU ADXL345 angle 精品文档 III欢迎下载欢迎下载 目 录 1 绪 论 1 1 1 课题研究背景和意义 1 1 2 国内外水平仪发展现状和趋势 1 1 3 系统设计的主要工作 1 1 4 论文结构及安排 2 2 三轴加速度传感器感应原理 3 2 1 ADXL345 工作原理 3 2 2 ADXL345 寄存器映射 5 2 3 ADXL345 主要寄存器定义介绍 6 2 4 测量倾斜角度原理 8 2 4 1 加速度传感器进行倾角测量简介 8 2 4 2 ADXL345 测量角度原理 9 3 水平仪总体设计 12 3 1 水平仪硬件设计 12 3 1 1 单片机模块 13 3 1 2 LCD 液晶显示模块 14 3 1 3 ADXL345 接口设计 16 3 1 4 ADXL345 加速度传感器模块 18 3 2 水平仪软件设计 20 3 2 1 I2C 总线协议分析 21 3 2 2 液晶显示驱动程序设计 25 3 2 3 ADXL345 加速度传感器软件模块 28 3 2 4 ADXL345 加速度传感器误差校准 28 精品文档 IV欢迎下载欢迎下载 4 实验数据及总结 30 结 论 33 致 谢 34 附录 A 英文原文 37 附录 B 汉语翻译 41 附录 C 主程序 44 附录 D 电路原理图 55 精品文档 1欢迎下载欢迎下载 1 绪 论 1 1 课题研究背景和意义 在高楼桥梁等建筑行业 对建筑物自身在水平面倾斜度的测量和处理 需要一个能 连续工作几个月甚至一年以上采样进度很高的数字水平仪系统 这就要求该系统必须 具有高精度微功耗的功能 水平仪从过去简单的气泡水平仪到现在的电子水平仪已经 历经多次更新 电子水平仪是一种非常急需的测量小角度的量具 随着精密制造技术的发展 已有的电子水平仪不能满足精度要求 国内数显式电 子水平仪灵敏度 反应时间等与国外相比 差距较大 研究分辨率更高 性能更好的 智能电子水平仪具有重要意义 为了提高水平仪的测量精度 摆脱传统水平仪智能化程度低 数据处理能力差 抗震能力差等缺点 必须利用现代科技设计一种新的水平仪 基于 MEMS 传感器 数字 信号处理 单片机的智能水平仪是今后水平仪的发展方向 可以应用于建筑 石油 煤矿和地质勘探等领域 本毕业设计将 STC89C52 单片机和 ADI 公司生产的三轴加速度 传感器 ADXL345 相结合 实现了高精度数显智能水平仪的设计 1 2 国内外水平仪发展现状和趋势 目前国内已有的水平仪不能很好的满足生产和应用的需求 国内电子水平仪的生 产和研制能力与国外相比相对落后 尤其是存在着智能化程度不高 对数据缺乏处理 能力 无法一次性测量出被测面倾斜角和方位角等缺点 近年来 国内在水平仪的研 制开发方面取得了不少进展 国外蒸蒸日上 厂家繁多 种类齐全 速度越来越快 功耗越来越低 性能越来越强 国内除台湾做的比较好外 大陆也有几家具备研发和 生产能力 如上海华虹 海尔等 只不过大陆产品占的市场份额太小了 1 3 系统设计的主要工作 本毕业设计的主要目标是利用单片机和三轴加速度传感器 设计一种高精度 大 角度测量范围 实时显示 便携式的智能水平仪 该水平仪测量的角度显示在 90 以 内 并且能通过三个轴的加速度正负值 判断角度的倾斜方向 同时 由于本系统是 精品文档 2欢迎下载欢迎下载 基于 MEMS 技术 因此即使在恶劣的现场工业环境中 仍能表现出优秀可靠的性能 经过文献的翻阅和芯片资料的对比 选择了一套可行的方案 在硬件方面 可以 用于测量倾角的芯片有三种类型 分别是 ADXL345 三轴加速度传感器 mma7455 三轴加 速度传感器 三轴陀螺仪 通过对比 ADXL345 具备数字输出 高精度 3 9mg LSB 误差小等优点 因此选择了 ADXL345 芯片作为测量倾角的传感器 同时选择了集成了 单片机 LCD 液晶显示屏和一些基本元件的开发板 减少设计的时间和复杂度 在软件 方面 采用 C 语言在 Keil 软件中编程 使用 I2C 通信方式实现单片机和传感器的数据 传输 利用数学方法推倒出的角度计算公式计算角度大小 最后经过实际测量角度 计算出传感器的测量误差 在偏移寄存器中进行校准 1 4 论文结构及安排 本文将围绕设计一个完整的电容式传感器信号处理系统的过程展开 包括角度转换 模块和数据处理模块 本文主要内容如下 第1章 绪论 阐述了选题背景和意义 分析了国内外相关技术的发展动态及研究 现状 并对本论文的主要工作进行了介绍 第2章 通过对角度转换中涉及的三轴加速度传感器以及数据处理中涉及的A D转 换 数码显示等各部分综合分析 确定本系统的总体方案 并给出系统总体结构框图 为后续设计做准备 第 3 章 先简单介绍了智能水平仪的硬件设计 软件技术 并对其选型和性能进 行分析 第 4 章 设计结果实现 分析数据 精品文档 3欢迎下载欢迎下载 2 三轴加速度传感器感应原理 2 1 ADXL345 工作原理 ADXL345 是一款小而薄的超低功耗三轴加速度测量系统 如图 2 1 所示 分辨率高 达 13 位 可选择的测量范围有 2g 4g 8g 或 16g 数字输出数据格式为 16 位二 进制补码 ADXL345 非常适合应用在移动设备中 它既能测量运动或冲击导致的动态加 速度 也能测量静止加速度 例如重力加速度 使得器件可作为倾斜传感器使用 其 高分辨率 3 9mg LSB 能够测量不到 1 0 的倾斜角度变化 ADXL345 的主要特性如下 超低功耗 Vs 2 5V 时 典型值 测量模式下为 23 A 待机模式下为 0 1 A 用户可以选择不同的量程和分辨率 2g 10bit 4g 11bit 8g 12bit 16g 13bit 1 电源电压范围 2 0V 至 3 6V I O 电压范围 1 7V 至 3 5VS 2 SPI 模式 3 线和 4 线 和 I2C 模式数字接口 3 通过串行命令可选测量范围和带宽 4 32 级 FIFO 缓冲器 5 使用温度范围 40 至 85 6 抗冲击能力 10000g 7 小而薄 3mm 5mm 1mm LGA 封装 8 应用范围 手机 医疗仪器 工业仪器 仪表 个人导航设备等 图 2 1 ADXL345 芯片 该加速度传感器提供多种特殊检测功能 活动和非活动检测功能通过比较任意轴 上的加速度与用户设置的阈值来检测有无运动发生以及在各个轴上的加速度值是否超 精品文档 4欢迎下载欢迎下载 过用户设置的阀值 敲击检测功能可以检测任意方向的单振和双振动作 自由落体检 测功能可以检测器件是否正在掉落 这些功能可以独立映射到两个中断输出引脚中的 一个 芯片内部集成式存储器管理系统采用一个32级先进先出 FIFO 缓冲器 可用于 存储32个X Y和Z轴的数据样本集 从而将主机处理器负荷降至最低 并降低整体系统 功耗 同时 低功耗模式支持基于运动的智能电源管理 从而以极低的功耗进行阀值 感测和运动加速度测量 ADXL345为多晶硅表面微加工结构 置于晶圆顶部 由于应用加速度 多晶硅弹簧 悬挂于晶圆表面的结构之上 提供力量阻力 差分电容由独立固定板和活动质量连接 板组成 能对结构偏转进行测量 加速度使惯性质量偏转 差分电容失衡 从而传感 器输出的幅度与加速度成正比 相敏解调用于确定加速度的幅度和极性 ADXL345 的工作原理是 首先有前端感应器感测加速度大小 然后感应电信号器件 将它转换成可识别的电信号 此时的信号还是模拟信号 在芯片内部集成了 AD 转化器 因此模拟信号经过转化器变为数字信号输出 与计算机系统数字信号输出类似 AD 转 换器输出的也是 16 位的二进制补码 数字信号经过数字滤波器的滤波处理后 在控制 和中断逻辑单元的控制下访问 32 级 FIFO 单片机通过串行接口读取三个轴的加速度数 据 单片机通过对寄存器的操作 发送对串口的读写命令实现对 ADXL345 的控制 芯 片内部的功能框图如图 2 2 所示 图2 2 ADXL345芯片功能框图 精品文档 5欢迎下载欢迎下载 2 2 ADXL345 寄存器映射 表 2 1 寄存器映射 地址 十六进制十进制 名称类型复位值描述 0 x000DEVIDR11100101 器件 ID 0 x01 0 x1C1 28 保留 保留不操作 0 x1D29THRESH TAPR W00000000 敲击阈值 0 x1E30OFSXR W00000000 X 轴偏移 0 x1F31OFSYR W00000000 Y 轴偏移 0 x2032OFSZR W00000000 Z 轴偏移 0 x2133DURR W00000000 敲击持续时间 0 x2234LatentR W00000000 敲击延迟 0 x2335WindowR W00000000 敲击窗口 0 x2436THRESH ACTR W00000000 活动阈值 0 x2537THRESH INACTR W00000000 静止阈值 0 x2638TIME INACTR W00000000 静止时间 0 x2739ACT INACT CTLR W00000000 轴使能控制活 动和静止检测 0 x2840THRESH FFR W00000000 自由落体阈值 0 x2941TIME FFR W00000000 自由落体时间 0 x2A42TAP AXESR W00000000 单击 双击轴控 制 0 x2B43ACT TAP STATUSR00001010 单击 双击源 0 x2C44BW RATER W00000000 数据速率及功 率模式控制 0 x2D45POWER CTLR W00000000 省电特性控制 0 x2E46INT ENABLER W00000000 中断使能控制 精品文档 6欢迎下载欢迎下载 ADXL345 共有 30 个寄存器 如表 2 1 所示 其中包括 29 个功能寄存器和 1 个识 别设备标识的只读寄存器 DEVID 的 地址分别为 0 x1D 至 0 x39 和 0 x00 单片机对 ADXL345 的控制操作主要是通过对其寄存器的读写来实现的 在访问寄存器之前要先发 送一个字节的读写地址信息 第 7 位是操作类型位 1 表示读操作 0 表示写操作 第 6 位是读写类型位 1 表示多值读写 0 表示单值读写 字节第 5 位至第 1 位是寄存器 地址 根据需要可以选择 30 个寄存器中的任意一个进行读写操作 实现对加速度传感 器的初始化和不同功能的控制 2 3 ADXL345 主要寄存器定义介绍 寄存器 OFSX OFSY OFSZ 0 x1E 0 x1F 0 x20 都是 8 位寄存器 在二进制补码 格式中提供用户设置偏移调整 比例因子为 15 6mg LSB 通过实际测量 确定各个轴 平均的偏移量 储存在这三个寄存器中 然后偏移寄存器的存储值会自动添加到加速 度数据上 结果值存储在输出数据寄存器中 速率位 0 x2C 能选择器件带宽和输出数据速率 如表 2 2 所示 默认值为 0 x0A 转换后为 100Hz 的输出数据速率 在本毕业设计中 选择了适合 I2C 通信协议 和频率的输出数据速率 12 5Hz 十六进制为 0 x08 若选择太高的输出数据速率和过低 的通信速度会导致采样的丢失 数据传输失败 FIFO CTL 设置缓存器具体的工作模式 比如 Bypass FIFO Stream Trigger 模式 各种模式区别如下 在 Bypass 模式中 FIFO 缓存器是退化的 仅 FIFO 0 存储一次采样结果 无论是否被读取 新数据到来时将旧数据覆盖 在 FIFO 模式中 FIFO 缓存器不停地收集数据直到缓存器满 此时如果没有及时读数据 新到样本数据 将被丢弃 而当 FIFO 被读取后 它将继续收集新到数据 在 Stream 模式中 FIFO 缓存器不停地收集数据 当缓存器满 自动丢弃 FIFO 0 其他样本值向前移位填充 最新数据填入 FIFO 31 在 Trigger 模式中 FIFO 开始工作与 Stream 模式类似 收集样本值直到 FIFO 缓存器满 然后丢弃最旧的数据 一旦触发事件发生 由 FIFO CTL 寄存器中 TRIG SOURCE 位所定义 FIFO 将保留最后 n 采样值 其中 n 在 FIFO CTL 寄存器中指定 然后像 FIFO 模式一样运行 即 FIFO 不满时 继续收集新 的样本值 精品文档 7欢迎下载欢迎下载 表 2 2 输出数据速率 输出数据速率 Hz 带宽 Hz 速率代码 IDD A 320016001111140 1600800111090 8004001101140 4002001100140 2001001011140 100501010140 5025100190 2512 5100060 12 56 25011150 6 253 13011045 3 131 56010140 1 560 78010034 0 780 39001123 0 390 2001023 0 20 1000123 0 10 05000023 寄存器 INT ENABLE 0 x2E 字节格式如表 2 3 所示 寄存器设置位值为 1 使能 相应功能 生成中断 设置为 0 时 阻止这些功能产生中断 DATA READY 位 水印位 和溢出位仅使能中断输出 这些功能总是处于使能状态 在本毕业设计中 在其输出 前进行了中断配置 然后读取寄存器内部数据 表 2 3 寄存器 INT ENABLE 字节格式 D7D6D5D4 DATA READYSINGLE TAPDOUBLE TAPActivity D3D2D1D0 InactivityFREE FALLWatermarkOverrun 精品文档 8欢迎下载欢迎下载 范围位 0 x31 可以设置 g 范围 如表 2 4 所述 在本设计中 选择了 16g 范围 全分辨率 13 位 表 2 4 范围设置 设置 D1D0 g 范围 00 2g 01 4g 10 8g 11 16g 寄存器DATAX0 DATAX1 DATAY0 DATAY1 DATAZ0和DATAZ1 0 x32至0 x37 都是8 位字节 保存各个轴的输出数据 寄存器0 x32和0 x33保存x轴输出数据 寄存器0 x34和 0 x35保存y轴输出数据 寄存器0 x36和0 x37保存z轴输出数据 输出数据为二进制补码 DATAx0为最低有效字节 DATAx1为最高有效字节 其中x可代表X Y或Z DATA FORMAT寄存器 地址0 x31 控制数据格式 在本设计中所有寄存器都执行多字节读取 防止相继寄存器读取之间的数据变化 2 4 测量倾斜角度原理 2 4 1 加速度传感器进行倾角测量简介 目前常用的确定平面系统倾斜的方法是对陀螺仪的输出求积分 尽管这种方法简 单明了 但随着积分周期的增加 与零偏稳定性相关的误差也可能快速增大 即使当 器件处于静止状态时也可能导致明显的旋转 在某些净加速度或者重力加速度的应用 中 可以利用加速度传感器来测量静态倾斜角 这样克服了陀螺仪的缺点 目前加速 度传感器测量角度的方法广泛应用于数码相机水平检测 以及工业和医学应用中检测 器件方向等 利用加速度传感器进行倾斜检测的基本假设是 加速度只与重力相关 实际上 可以对信号输出进行信号处理 以消除其中的高频组分 因而可以接受一定的交流加 速度 精品文档 9欢迎下载欢迎下载 倾斜角度检测是利用重力矢量及其在轴上的投影来确定倾斜角由于重力是直流加 速度 因此任何额外加入的直流加速度都会破坏输出信号并且导致计算错误 造成直 流加速度的因素包括车辆以恒定速率加速时的时间 以及在加速度传感器上导致向心 加速度的旋转器件 另外 当目标轴上的重力投影发生变化时 通过重力旋转加速度 会导致明显的交流加速度 在计算角度之前对加速度信号进行的任何过滤都会影响输 出达到新静态值的速度 综上所述 在本毕业设计中 测量平面倾斜角度时 要让加 速度传感器在平面上保持一段时间的静止 以保证角度测量的准确性 下面来介绍下 ADXL345 三轴加速度传感器通过 X Y Z 轴上的重力加速度换算成 倾斜角的基本原理 2 4 2 ADXL345 测量角度原理 通过 ADXL345 测量出 X Y Z 轴上的重力加速度分量大小 分别能得到 X 轴与水平 面的夹角 Y 轴与水平面的夹角 Z 轴与水平面的夹角 设 X 轴的加速度分量为 Ax Y 轴的加速度分量为 Ay Z 轴的加速度分量为 Az 对重力进行力学分析可得如下 公式 2 1 sin 90cos ggAx 2 2 sin 90cos ggAy 2 3 cos sin 90cos gggAz 图 2 3 水平仪的测量数学模型示图 水平仪测量倾角的数学模型如图 2 3 所示 如图所示 DA 代表 X 轴 DB 代表 Y 轴 精品文档 10欢迎下载欢迎下载 DG 代表 Z 轴 DA DB 假设 X 轴与水平面的夹角为 Y 轴与水平面的夹角为 X 轴 与 Y 轴所组成的平面 DAB 与水平面的夹角为 过 D 点做水平面的垂线 垂足为点 E 那么 DAE DBE 过 E 点做 AB 的垂线与 AB 交于 C 点 由立体几何知识可知 DCE 就是平面 EAB 与水平面的夹角 即使水平仪要测量并显示的角度 下面是推导 之间关系的过程 假设 DE 1 由 DE AE DE BE 可知 sin1 DA sin1 DB 2 4 因为 ADB 为直角三角形 所以 222 DBDAAB 2 5 将 AB 代入式 2 得 22 DBDADBDADC 2 6 又因为 DEC 为一直角三角形 所以可得 22 111 sin DBDADCDC DE 2 7 将式 1 代入式 5 得 22 sinsinsin 2 8 因为 所以 gAx singAy sin 22 2 2 sin g Ay g Ax 2 9 由 推出 gAz cos Az AyAx 22 tan 2 10 即可得出被测面与水平面间的夹角 arctan 22 Az AyAx 精品文档 11欢迎下载欢迎下载 2 11 由图 2 4 1 的数学模型可知 角 就是加速度传感器 Z 轴与自然坐标系 Z 轴间夹 角 同理可得 加速度传感器 X 轴与自然坐标系 X 轴的夹角 为 arctan 22 AzAy Ax 2 12 加速度传感器 Y 轴与自然坐标系 Y 轴的夹角 为 arctan 22 AzAx Ay 2 13 综上分析 因为单片机能计算简单的反三角函数 所以在程序中利用公式 2 10 就能计算出需要的倾斜角度 弧度值 再将其进行转化就能显示直观的角度 值 在该毕业设计中 为了方便读数 无论 Z 轴的加速度值是正还是负 都将 的值 取在 0 90 之间 精品文档 12欢迎下载欢迎下载 3 水平仪总体设计 电子水平仪的测量系统主要由单片机 ADXL345 三轴加速度传感器 数码显示屏以 及电源四部分构成 进行测量时 水平仪发生微小倾斜 传感器的相对位置发生改变 按照测量算法就可得到倾斜角 结果通过 LED 数码显示屏显示出来 ADXL345传感 器 单片机LED显示屏 电源 角度测量模块 角度运算模块 图 3 1 水平仪系统设计原理框图 本设计在选用传感器方面 对比了三种 最终使用了误差小 精度高的 ADXL345 三轴加速度传感器 选择了 ADXL345 芯片作为测量倾角的传感器 在单片机方面最后 使用了 STC89C52 单片机 以及液晶 12864LED 显示屏共同完成本设计 3 1 水平仪硬件设计 通过上述几章的分析 在了解了 ADXL345 的基本工作原理之后 开始进行智能水 平仪的硬件设计 根据设计需要确定各部分器件的选型 购买合适的电路板 熟悉原 理图之后进行连线测试工作 硬件是一套系统的 躯体 是系统能够成功运行的基础 没有一个稳定而且可靠 的硬件系统 就无法保证系统的稳定运行 硬件设计的主要任务是根据总体设计所确 定方案的要求 选择符合设计指标所要求功能 精度 处理速度并且价格合理的器件 并在所选用元器件的基础之上确定系统硬件扩展所需用到的 I O 接口电路以及外围设 备电路 然后设计系统的原理图 根据原理图设计 PCB 电路图 完成元器件的焊接和 精品文档 13欢迎下载欢迎下载 电气特性测试 在该毕业设计中 我选择了购买已经设计好的模块来实现需要的功能 但是无论是硬件的设计还是选购都要遵循如下原则 1 尽可能选择典型电路 并符合单片机的常规用法 9 为硬件系统的常规化和 模块化打下良好的基础 同时硬件系统的设计应充分满足系统的功能要求 并留有适 当余地 以便进行二次开发 2 硬件设计应结合软件方案一并考虑 在进行总体设计时 系统的整套方案应 了如指掌 充分考虑软硬件的相互配合和相互影响 在不影响系统实时性的情况下 能够由软件实现的功能尽量由软件实现 这样可以简化硬件结构 节约硬件成本 3 系统中的相关器件要尽可能做到性能匹配 如选用芯片 单片机构成低功耗 系统时 系统中所有芯片都应尽可能选择低功耗产品 选用处理速度较快的处理器时 系统中相关芯片都应尽量选择处理能力相近的芯片 4 单片机外围电路较多时 必须考虑其驱动能力 驱动能力不足时 系统工作 不可靠 可通过增设线驱动器增强驱动能力或减少芯片功耗来降低总线负载 根据设 计的需要 将智能水平仪的硬件部分分为 3 个模块 显示模块 单片机模块 ADXL345 加速度传感器模块 整个系统的硬件框图如图 3 2 所示 图 3 2 系统硬件框图 3 1 1 单片机模块 单片机是本系统的核心部分 在这个模块中包括了单片机芯片 电源电路 复 位电路 继电器电路 串行口通信电平转换电路 键盘电路 数码管电路和液晶显示 电路 如图 3 3 所示 电源电路为整个系统提供稳定的 5V 直流电 保证系统正常工作 串行口通信电平转换电路既能实现单片机与计算机间的全双工通信 又能用于与其它 精品文档 14欢迎下载欢迎下载 单片机通信 同时方便计算机中的程序烧写进单片机 单片机的串行口具有两条独立 的数据线 发送端 TXD 和接收端 RXD 它允许数据同时往两个相反的方向传输 一般通 信时发送数据由 TXD 端输出 接收数据由 RXD 端输入 图 3 3 单片机硬件模块 3 1 2 LCD 液晶显示模块 为了使显示效果更好 本毕业设计选择了带中文字库的点阵液晶显示屏 FYD12864 0402B 该液晶屏支持 4 位 8 位并行 2 线或 3 线串行多种接口方式 内置 8192 个 16 16 点汉字和 128 个 16 8 点 ASCII 字符集 显示分辨率为 128 64 灵活的接口方式 和简单 方便的操作指令是 12864 显示屏的优点 其基本特征如下 1 低电源电压 VDD为 3 0V 至 5 5V 2 显示分辨率 128 64 3 2MHz 时钟频率 4 驱动方式 1 32DUTY 1 5BIAS 5 内置 DC CD 转换电路 无需外加负压 6 工作温度 0 55 存储温度 20 60 7 背光方式 侧部高亮白色 LED 功率仅为普通 LED 的 1 5 1 10 12864 液晶显示屏总共有 20 个管脚 根据表 3 1 的管脚功能描述 选择并行接口 模式 设计液晶屏与单片机连接的电路图 如图 3 4 所示 DB0 DB7 管脚连接到单片 机的 P0 0 P0 7I O 接口 传输数据 RS 管脚连接到单片机的 P1 0 端口 R W 管脚接 精品文档 15欢迎下载欢迎下载 到 P1 1 EN 管脚接到 P1 2 端口 改变三者的高低电平状态实现读写不同的功能 表 3 1 并行接口管脚信号 管脚号管脚名称电平管脚功能描述 1VSS0V电源地 2VCC3 0 5V电源正 3V0 对比度调整 4RS CS H L RS 1 表示 DB7 DB0 为显示数据 RS 0 表示 DB7 DB0 为显示指令 数据 5R W SID H L R W 1 E 1 数据被读到 DB7 DB0 R W 0 E 1 0 DB7 DB0 的 数据被写到 IR 或 DR 6E SCLK H L使能信号 7DB0H L三态数据线 8DB1H L三态数据线 9DB2H L三态数据线 10DB3H L三态数据线 11DB4H L三态数据线 12DB5H L三态数据线 13DB6H L三态数据线 14DB7H L三态数据线 15PSBH L 1 8 位或 4 位并口方式 0 串口方 式 16NC 空脚 17 RESETH L复位端 低电平有效 18VOUT LCD 驱动电压输出端 19AVDD背光源正端 20KVSS背光源负端 精品文档 16欢迎下载欢迎下载 图 3 4 12864 液晶屏模块电路图 3 1 3 ADXL345 接口设计 DXL345 为用户提供 SPI 和 I2C 两种与单片机通信的方式 在这两种方式下 ADXL345 都是作为从机运行 在该毕业设计中 采集三个轴的加速度数据和对其进行控制操作 都是通过 I2C 方式来完成的 下面分别介绍下这两种通信方式 1 SPI 通信接口设计 SPI Serial Peripheral Interface 即串行外围设备接口 是 Motorola 首先在 其处理器上推出的同步接口技术 每个 SPI 系统由一个主机 一个或者多个从机构成 主机是微控制器 提供 SPI 时钟信号 从机是接受 SPI 信号的集成电路 如 ADXL345 传感器 SPI 模式可配置成 3 线或 4 线方式 4 条线分别为 SDI 数据输入 SDO 数 据输出 SCLK 时钟 和 CS 片选 连线方式如图 3 5 和图 3 6 所示 精品文档 17欢迎下载欢迎下载 图 3 5 ADXL345 的 SPI 通信 4 线连接方式 图 3 6 ADXL345 的 SPI 通信 3 线连接方式 在执行不同不连续寄存器的读取或写入时 传输之间必须失效 新寄存器进行CS 另行处理 2 I2C 通信接口设计 简单性和有效性是 I2C 总线最主要的优点 11 一方面 由于接口直接再组件之上 因此它占用的空间很小 减少了电路板的空间和芯片管脚数量 另一方面 总线的长 度最长可以达到 7 6 米 能够支持 40 个组件并以 10KBPS 的最大传输速率传输数据 I2C 另一个优点是支持多主控 其中任何能够进行发送和接受的设备都可以成为主总线 并控制信号的传输和系统时钟频率 ADXL345 的 I2C 通信过程 将引脚拉高至 VDDI O 通过简单的 2 线式连接 CS ADXL345 便处于 I2C 模式 连线方式如图 3 6 所示 如果满足 I2C 总线协议规定和用户 手册 便能支持标准 100kHz 和快速 400kHz 数据传输模式 同时它还支持单个或者多 个字节的读取 写入 当 ALT ADDRESS 引脚处于高电平时 ADXL345 的 7 位 I2C 地址是 精品文档 18欢迎下载欢迎下载 0 x1D 读写地址分别为 0 x3B 和 0 x3A 当 ALT ADDRESS 接地时 可以选择备用的 I2C 地 址 0 x53 读写地址分别为 0 xA7 和 0 xA6 使用该方式时 引脚必须连接至CS VDDI O ALT ADDRESS 引脚必须连接至任一 VDDI O 或接地 否则任何已知状态或默认状 态将不存在 图 3 7 ADXL345 的 I2C 通信连接方式 3 1 4 ADXL345 加速度传感器模块 DXL345 芯片共有 14 个管脚 管脚描述如表 3 2 所示 在前面已经详细叙述了 I2C 通信的基本原理 以及 ADXL345 与单片机 I2C 通信的连线方式 按照图 3 7 和引脚说 明 就能进行 ADXL345 的接口设计 如图 3 8 所示 VDDI O 和 VS接 3 3V 电压 3 脚和 11 脚的 RESERVED 悬空 8 脚和 9 脚接单片机的中断源 10 脚 NC 悬空 12 脚接地 其 余 3 个引脚都接地 I2C 通信需要上拉电阻 因此 11 脚 SCL 13 脚 SDA 7 脚 CS 都接 上 10K 的电阻 另外 需要在电源上接两个电容 大小分别为 10uF 和 0 1uF 最后 利用跳线将 SDA 和 SCL 脚与单片机 I O 连接即可 精品文档 19欢迎下载欢迎下载 表 3 2 ADXL345 引脚描述 图 3 8 ADXL345 电路模块 引脚编号引脚名称描述 1VDDI O数字接口电源电压 2GND该引脚必须接地 3RESERVED保留 该引脚必须连接到 VS 或保持断开 4GND该引脚必须接地 5GND该引脚必须接地 6VS电源电压 7CS片选 8INT1中断 1 输出 9INT2中断 2 输出 10NC内部不连接 11RESERVED保留 该引脚必须接地或保持断开 12 SDO ALT ADDRESS 串行数据输出 SPI 4 线 备用 I2C 地址选择 13SDA SDI SDIOI2C 数据 SPI 4 线数据输入 SPI 3 线数据输入和输出 14SCL SCLK串行通信时钟 SCL 为 I2C 时钟 SCLK 为 SPI 时钟 精品文档 20欢迎下载欢迎下载 由于 ADXL345 的正常工作电压是 2 0V 3 6V 而 89C52 单片机的工作电压是 5V 为了使 ADXL345 连接到系统电路中能正常工作 必须设计一个电平转换电路 在本毕 业设计中 利用芯片 RT9161 将 5V 输入电压转换成 3 3V 输出电压 电路图如图 3 9 所 示 图 3 9 电平转换电路 图 3 10 ADXL345 模块 3 2 水平仪软件设计 如果说硬件是系统的 躯体 那么软件就是系统的 灵魂 一套系统的智能化在很 大程度上是通过软件表现出来的 在具有稳定可靠硬件基础的条件下 软件对硬件系 统各部件进行统一调度 对从加速度传感器部分采集到的数据信息进行综合计算处理 最终实现设计的各种功能 对于本毕业设计而言 从硬件模块的角度来讲 软件部分可以分为液晶显示驱动 程序 单片机模块初始化 ADXL345 加速度传感器模块 模块化的程序设计提高了程序 的可读性和可移植性 便于程序的调试 程序流程图如图 3 11 所示 精品文档 21欢迎下载欢迎下载 单片机编程是使用 Keil C51 软件 它是美国 Keil Software 公司出品的 51 系列 兼容单片机 C 语言软件开发系统 提供了丰富的库函数和功能强大的集成开发调试工 具 同时 程序烧录软件是 STC 官方烧录工作 单片机是整个系统的 心脏 全部的 软件设计都要在单片机上运行 但是在单片机模块程序设计中 主函数设计的较为简 单 主要内容是单片机 LCD 屏幕和 ADXL345 加速度传感器的初始化 以及利用 I O 端 口模拟 I2C 读写数据 下面详细介绍 I2C 通信协议和另外两个模块的程序设计 图 3 11 软件设计流程图 3 2 1 I2C 总线协议分析 I2C 总线类型是由飞利浦半导体公司在八十年代初设计出来的 主要用来连接整 体电路 随着大规模集成电路技术的发展 单片机和外围设备需要进行扩展 扩展方 式一种是并行总线 另一种是串行总线 由于串行总线连线少 结构简单 因此飞利 浦公司在十几年前就推出 I2C 串行总线 I2C 协议是单片机与 ADXL345 加速度传感器通 精品文档 22欢迎下载欢迎下载 信的协议 1 I2C 总线时序分析 I2C 总线具有以下几点特征 只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 从机 关系软件设定地址 主机可以作为主机发送器或主机接收器 它是一个真正的多主机总线 如果两个或更多主机同时初始化 数据传输可 以通过冲突检测和仲裁防止数据被破坏 串行的 8 位双向数据传输位速率在标准模式下可达 100kbit s 快速模式下可 达 400kbit s 高速模式下可达 3 4Mbit s 连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制 数据位的有效性 I2C 总线进行数据传送时 时钟信号为高电平期间 数据线上的数据必须保持稳定 只有在时钟线上的信号为低电平期间 数据线上的高电平或低电平状态才允许变化 图 3 12 I2C 总线的位传输 启示和停止条件 在 I2C 总线中 定义了起始条件 S 和停止条件 P 两种情况 如图 3 13 所示 当 SCL 线是高电平时 SDA 线从高电平向低电平切换产生下降沿 这个情况表示起始条件 当 SCL 线是高电平时 SDA 线由低电平向高电平切换产生上升沿 这个情况表示停止条 件 起始条件和停止条件一般是由主机产生 总线在起始条件后被认为处于忙的状态 在停止条件的时间里总线被认为处于空闲状态 如果产生重复起始条件而不产生停止 条件 总线会一直处于忙的状态 此时的起始条件 S 和重复起始条件 Sr 在功 精品文档 23欢迎下载欢迎下载 能上是一样的 图 3 13 起始和停止条件 如果连接到总线的器件合并了必要的接口硬件 那么用它们检测起始和停止条件 是十分简便的 但是如果没有这种接口的微控制器在每个时钟周期至少要采样 SDA 线 两次来判别是否有电平切换发生 字节格式 通信过程中发送到 SDA 线上的每个字节必须为 8 位 每次传输可以发送的字节数 量不受限制 每个字节后必须跟一个响应位 0 是应答 1 是非应答 首先传输的是 数据的最高位 MSB 如果从机要完成一些其他功能后才能接收或发送下一个完整的 数据字节 可以使时钟线 SCL 保持低电平 迫使主机进入等待状态 当从机准备好接 收下一个数据字节并释放时钟线 SCL 后数据传输继续 应答响应 数据传输必须带响应 相关的响应时钟脉冲由主机产生 在响应的时钟脉冲期间 发送器释放 SDA 线 高 在响应的时钟脉冲期间 接收器必须将 SDA 线拉低 使它在 这个时钟脉冲的高电平期间保持稳定的低电平 通常被寻址的接收器在接收到的每个 字节后 除了用 CBUS 地址开头的数据 必须产生一个响应 当从机不能响应从机地址 时 从机必须使数据线保持高电平 然后主机产生一个停止条件终止传输或者产生重 复起始条件开始新的传输 如果从机接收器响应了从机地址 但是在传输了一段时间后不能接收更多数据字 节 主机必须再一次终止传输 这个情况用从机在第一个字节后没有产生响应来表示 从机使数据线保持高电平 主机产生一个停止或重复起始条件 如果传输中有主机接收器 它必须通过在从机不产生时钟的最后一个字节不产生 精品文档 24欢迎下载欢迎下载 一个响应 向从机发送器通知数据结束 从机发送器必须释放数据线 允许主机产生 一个停止或重复起始条件 读写数据过程 单片机进行写操作时 首先发送该器件的 7 位地址码和写方向位 0 共 8 位 即 一个字节 发送完后释放 SDA 线并在 SCL 线上产生第 9 个时钟信号 被选中的存储器 在确认是自己的地址后 在 SDA 线上产生一个应答信号 单片机在收到应答信号后开 始传送数据 单片机进行读数据时 首先发送该器件的 7 位地址码和写方向位 0 伪写 发 送完后释放 SDA 线并在 SCL 线上产生第 9 个时钟信号 被选中的存储器在确认是自己 的地址后 在 SDA 线上产生一个应答信号 然后 再发送一个字节要读出存储区的首 地址 收到应答后 单片机要重复一次起始信号并发出器件地址和读方向位 1 收到器件应答后就可以读出数据字节 每读出一个字节 单片机都要回复应答信号 当最后一个字节数据读完后 单片机应返回 非应答 信号 高电平 并发出终止信号 结束读操作 2 单片机 I O 端口作为 I2C 总线接口 目前 51 96 系列的单片机在开发中应用非常广泛 但是由于它们都不具备 I2C 总线接口 因此限制了具有 I2C 总线接口的器件在这些系统中使用 通过上面对 I2C 总 线时序的分析 可以用 51 单片机的两个 I O 端口来模拟 I2C 总线接口 13 实现 I2C 总 线的功能 按照 I2C 总线的规定 SCL 线和 SDA 线是各设备对应输出状态相 与 的结果 设备可以用输出低电平的方法来延长 SCL 的低电平时间 以迫使高速设备进入等待状 态 从而实现不同速度设备间的时钟同步 因此 即使时钟脉冲的高 低电平时间长 短不一 也能实现数据的可靠传送 可以用软件控制 I O 口做 I2C 接口 该毕业设计 就是利用单片机的通用 I O 口作为 I2C 总线接口 并由软件控制实现单片机与传感器 之间的数据传送 在该单片机系统中 时钟线是由单片机驱动的 因此用 89C52 的一根 I O 线 P2 4 作为 SCL 的信号线 将其设置为输出方式 并由软件控制产生串行时钟信号 另一根 I O 线 P2 3 作为 I2C 总线的串行数据线 可在软件控制下在时钟的低电平期间读取或 输出数据 系统传输数据的过程如下 先由单片机发出一个起始数据信号 接着送出 要访问器件的 7 位地址数据 并等待传感器的应答信号 在收到应答信号之后 根据 访问要求进行相应的操作 如果是读入数据 则 SDA 线可一直设为输入方式 中间不 精品文档 25欢迎下载欢迎下载 需要改变 SDA 线的工作方式 每读入一个字节均要依次检测应答信号 如果是输出数 据 则首先要将 SDA 设置为输出方式 当发送完一个字节后 需要改变 SDA 线为输入 方式 此时读入传感器的应答信号就完成了一个字节的传送 当所有数据传输完毕后 应向 SDA 发出一个停止信号 以结束该次数据传输 3 2 2 液晶显示驱动程序设计 单片机通过对 RS R W 使能端 E 和数据总线 DB 信号的控制 实现将单片机处理 后的数据显示在屏幕上的功能 在本毕业设计中 LCD 显示四行数据 这就要求不仅要 成功控制四个信号 还需要设定合理的显示位置 表 3 3 是 RS R W 的配合选择决定

温馨提示

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

评论

0/150

提交评论