




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
合 肥 学 院 创 新 课 程 设 计 报 告 题 目 基于基于 ADC0832ADC0832 的单片机数据采集系统设计的单片机数据采集系统设计 系 别 电子信息与电气工程系电子信息与电气工程系 专 业 通信工程通信工程 班 级 10 10 通信通信 1 2 1 2 班班 学 号 姓 名 导 师 张大敏张大敏 成 绩 2014 年年 01 月月 07 日日 设计 题目 基于 ADC0832 的单片机数据采集系 统设计 设计 类型 导师 姓名 主要内容及目标 基于 8 位串行模数转换器 ADC0832 设计完成一个单片机数据采集系统 要求 1 设计实现 ADC0832 模数转换电路 将单片机采集到得 0 5V 电压信号用 数码管显示 2 要求绘制系统原理框图 电路原理图 PCB 版图和程序流程图 3 认真进行系统软硬件设计 实施 调试 观察实验结果 4 详细记录实施过程中所遇到的问题及问题产生的原因并制定解决方案 具有的设计条件 器材需要相关电子元器件 实验板 实验仪器需要计算机 示波器 万用表等 计划学生数及任务 计划需要 3 人 1 人主要进行系统方案设计 组织实施 1 人主要进行硬件设计实施调试 1 人主要进行软件设计实施调试 计划设计进程 1 从接题开始收集资料 准备设计 2 第 1 周 查阅文献 制定设计方案 绘制系统原理框图 电路原理图 等 3 第 2 周 绘制电路 PCB 版图 完成系统所有硬件电路和程序编制工作 4 第 3 周 系统调试和完善 同时编写完成设计报告 应用型张大敏 通信技术创新课程设计通信技术创新课程设计 任务书任务书 摘要 随着时代的进步 用指针式万用表测量小幅度直流电压已经显得有些不太方 便 因为指针式的测量不够精确 随着长时间的使用可能会造成欧姆调零以及 机械调零的磨损 这都会对数据的测量造成很多困难 而采用数字式电压表来 测量就可以避免这种情况的发生 而且操作更加方便 下面本文将介绍一种由 数字电路以及单片机构成的 简易数字电压表的设计方法 数字电压表 Digital Voltmeter 简称 DVM 它是采用数字化测量技术 把连续的模拟量 直流输入电压 转换成不连续 离散的数字形式并加以显示 的仪表 本设计运用 89C52 和 ADC0832 进行 A D 转换 根据数据采集的工作原理 设计实现数字电压表 最后完成单片机与 PC 的数据通信 传送所测量的电压值 该数字电压表测量电压类型是直流 测量范围是 0 51V 本设计量程为 0 5V 电路包括 数据采集电路的单片机最小化设计 单片机与PC 接口电路 单片机钟电路 复位电路等 下位机采用89C52 芯片 A D 转换采用 ADC0832 芯片 通过 RS232 行口与 PC 进行通信 传送所测量的直流电压数据 关关键键词词 STC89C52 单片机 ADC0832 模数转换器 LCD1602 参考文献 1 余锡存等 单片机原理及接口技术 M 西安 西安电子科技大学出版社 2000 2 赵亮等 单片机 C 语言编程与实例 M 北京 人民邮电出版社 2003 3 赵晶 protel 99 高级应用 M 北京 人民邮电出版社出版 2000 年 4 梁明亮等 单片机与 ADC0832 的接口技术 J 河南科技 2006 8 48 49 5 李庭贵等 基于 DAC0832 和 AT89S52 的信号发生器设计 J 电子科技 2012 25 6 104 106 目目 录录 第一章 绪 论 1 1 1 系统设计任务分析 1 第二章 总体方案设计与选择的论证 1 2 1 单片机最小系统 1 2 1 1 单片机的说明 1 2 1 2 单片机的应用 1 2 1 3 单片机的结构特点 3 2 1 4 单片机引脚配置 3 2 2 模数转换模块介绍 7 2 2 1 ADC0832 概述 7 2 2 2 引脚功能及描述 7 2 2 3 工作模式 8 2 2 4 单片机对 ADC0832 的控制原理 8 2 2 5 ADC0832 应用原理框图 9 2 3 LCD1602 显示 10 2 3 1 LCD1602 的基本结构 10 2 3 2 LCD1602 的指令表 11 第三章 软件设计报告 12 3 1 单片机软件设计 12 3 1 1 模数转换软件设计 12 3 1 2 LCD1602 显示软件设计 12 3 2 流程图设计 12 3 2 1 主程序流程图 12 3 2 2 液晶模块流程图 14 3 2 3 电压显示流程图 15 3 3 原理图设计 16 3 4 PROTEUS 仿真图 17 3 5 PCB 版图 18 3 6 实物图 19 第四章 疑难问题及解答 20 第五章 总结与致谢 21 总结 21 致谢 21 参考文献 22 附 录 23 课程设计评语 37 1 第第一一章章 绪绪 论论 1 1 1 1 系系统统设设计计任任务务分分析析 本设计由 A D 转换 数据处理及显示控制等组成 测量0 5V 范围内的 输入电压值 由 LCD1602 扫描显示 最大分辨率 0 1V 误差 0 02V 数字电 压表的核心为 ST89C52 单片机和 ADC0832 A D 转换集成芯片 本系统的核心控制芯片 选用的是 STC89C52RC 单片机在各个技术领域中 的迅猛发展 与单片机所构成的计算机应用系统的特点有关 1 单片机构成的应用系统有较大的可靠性 2 系统构建简洁 易行 能方便的实现系统功能 3 由于构成的系统是一个计算机系统 相当多的功能由软件实现 故具有 柔性特点 和优异的性能价格比 第第二二章章 总总体体方方案案设设计计与与选选择择的的论论证证 2 2 1 1 单单片片机机最最小小系系统统 2 2 1 1 1 1 单单片片机机的的说说明明 单片机的原名叫 Microcontroller 即微型控制器 顾名思义 单片机有 别于通用微型计算机 它是专门为控制和智能仪器设计的一种集成度很高的微 型计算机 其控制功能强 有优异的性能 价格比 有很高的可靠性 因而 单片机的应用范围在不断的扩大 它已经成了人类生活中不可缺少的工具 下 面介绍单片机在几个方面的典型应用 2 2 1 1 2 2 单单片片机机的的应应用用 1 单片机在智能仪器中的应用 2 单片机广泛的用于各种仪器仪表中 使仪器仪表数字化 微型化和智能化 提高它们的测量速度 测量精度和自动化程度 简化仪器仪表的硬件结构 便 于使用 维修和改进 提高其性能 价格比 2 单片机在机电一体化产品中的应用 机电一体化是机械工业发展的方向 机电一体化产品是指 集机械技术 微电子技术 计算机技术和控制技术于一体 具有智能化特征的机电产品 例 如 微机控制的数控机床 机器人等 单片机作为机电产品中的控制器 能充 分的发挥它的体积小 可靠性高 功能强等优点 大大提高了机器的自动化 智能化程度 3 单片机在过程控制中的应用 过程控制是微型机应用最多 最有效的方面之一 单片机广泛的应用于 过程控制 它既可以作为主机控制 也可以作为分布式控制系统的前端机 对 现场的信息进行实时的测量和控制 单片机可用于开关量控制 顺序控制及逻 辑控制等 如锅炉控制 电机控制 机器人控制 交通信号灯控制 造纸纸浆 浓度控制 纸张定量水分及厚薄控制 雷达与导弹控制以及航天导航系统鱼雷 制导系统控制等 4 单片机在计算机网络及通信中的应用 由于高性能单片机中集成有SDLC 通信接口 因而使其在计算机网络及通 信设备中得到了广泛的应用 例如 Intel 公司的 8044 由 8051 单片机及 SDLC 通信接口组合而成 用高性能的串行接口单元 SIU 代替传统的 UART 采用双绞线 半双工通信形 式 特别适合远距离通信 以8044 位基础组成的位总线是一种高性能 低价 格的分布式控制系统 传送距离可达1200m 传送速度为 2 4Mbit s 网络节 点为 28 个 此外 单片机在自动拨号无线电话网 串行自动呼叫应答设备 程 控电话 无线电遥控等方面都有广泛的应用 5 单片机在家用电器方面的应用 单片机广泛的应用于家用电器产品中 例如 洗衣机 电冰箱 微波炉 电饭煲 高级智能玩具 收录机等配上单片机后 大大提高了产品的性能 倍 受人们的喜爱 可以说 单片机在人们日常生活中应用所受到的限制主要不是技 3 术问题 而是创造力和技巧上的问题 2 2 1 1 3 3 单单片片机机的的结结构构特特点点 控制电路设计是系统的控制和数据处理的核心 而作为控制核心的单片机种类 很多 如 PIC 等等 根据任务书的要求以及系统实际的需要 本次毕业设计 采用 STC89C52RC 作为系统的微控制器芯片 特点是 STC89C52RC 的内核和 AT51 系列单 片机一样 故引脚也相同 但是 STC89C52RC 可以通过 STC ISP 软件下载进行烧 录 2 2 1 1 4 4 单单片片机机引引脚脚配配置置 图 2 1 引脚配置图 鉴于 STC89C52RC 与 MCS 51 单片机类似 现介绍 MCS 51 单片机如下文 MCS 51 单片机采用 40 引脚双列直插封装 DIP 形式 对于 CHMOS 单片机除 采用 DIP 形式外 还采用方形封装工艺 由于受到引脚数目的限制 所以有部 分引脚具有第二功能 在单片机的 40 条引脚中 有 2 条用于主电源的引脚 2 条外接晶体的引脚 控制或其他电源复用引脚 RST Vpd ALE 和 VPP 32 条输入 输出引脚 下 面就本系统用到的引脚分别说明这些引脚的名称和功能 1 主电源引脚 V CC 和 GND 4 VCC 接 5V 电源 GND 接电源地 2 钟电路引脚 XTAL1 和 XTAL2 XTAL1 接外部晶体的一端 在单片机内部 它是反相放大器的输入端 该 放大器构成了片内振荡器 在采用外部时钟电路时 对于HMOS 单片机 此引 脚必须接地 对 CHMOS 单片机 此引脚作为驱动端 XTAL2 接外部晶体的另一端 在单片机内部 接至上述振荡器的反相放大 器的输出端 振荡器的频率是晶体振荡频率 若采用外部时钟电路时 对于 HMOS 单片机 该引脚输入外部时钟脉冲 对于CHMOS 单片机 此引脚应悬空 3 信号引脚 RST Vpd RST Vpd 复位 备用电源输入端 单片机上电后 只要在该引脚上输入 24 个振荡周期 2 个机器周期 宽度以上的高电平就会使单片机复位 若在 RST 与 VCC 之间接一个 10 F 的电容 而在 RST 与 GND 之间接一个 8 2K 的 下拉电阻 则可实现单片机上电自动复位 RST Vpd 具有复用功能 在主电源 VCC 掉电期间 该引脚可接上 5V 备用 电源 当 VCC 下掉到低于规定的电平 而Vpd 在其规定的电压范围内时 Vpd 就向片内 RAM 提供备用电源 以保持片内RAM 中的信息不丢失 复电后能继续 正常运行 4 输入 输出 I O 引脚 P0 P1 P2 和 P3 MCS 51 单片机有 4 个双向并行的 8 位 I O 口 P0 P3 P0 口为三态双向口 可驱动 8 个 TTL 电路 P1 P2 P3 口为准双向口 作为输入时 口线被拉成高 电平 故称为准双向口 其负载能力为 4 个 TTL 电路 P0 0 P0 7 P0 口是一个 8 位双向 I O 端口 在访问片外存储器时 它分 时提供低 8 位地址和作 8 位双向数据总线 在 EPROM 编程时 从 P0 口输入指 令字节 在验证程序时 则输出指令字节 验证时 要外接上拉电阻 P0 口能以吸收电流的方式驱动8 个 LSTTL 负载 5 图 2 2 P0 口 1 位结构图 P1 0 P1 7 P1 口是 8 位准双向 I O 端口 在 EPROM 编程和程序验证时 它输入低 8 位地址 P1 口能驱动 4 个 LSTTL 负载 图 2 3 P1 口 1 位结构图 P2 0 P2 7 P2 口是一个 8 位准双向 I O 端口 在 CPU 访问外部存储器时 它输出高 8 位地址 在对 EPROM 编程和程序验证时 它输入高8 位地址 P2 口可驱动 4 个 LSTTL 负载 6 图 2 4 P2 口 1 位结构图 P3 0 P3 7 P3 口是 8 位准双向 I O 端口 它是一个复用功能口 作为第 一功能使用时 为普通 I O 口 其功能和操作方法与 P1 口相同 作为第二功 能使用时 各引脚的定义如表3 1 所示 P3 口的每一条引脚均可独立定义为 第一功能的输入输出或第二功能 P3 口能驱动 4 个 LSTTL 负载 图 2 5 P3 口 1 位结构图 表 2 1 口线 第二功能 7 P3 0 P3 1 P3 2 P3 3 P3 4 P3 5 P3 6 P3 7 RXD 串行口输入 TXD 串行口输出 INT0 外部中断 0 输入 INT1 外部中断 1 输入 T0 定时器 0 的外部输入 T1 定时器 1 的外部输入 WR 外部数据存储器 写 信号输出 RD 外部数据存储器 读 信号输出 2 2 2 2 模模数数转转换换模模块块介介绍绍 2 2 2 2 A AD DC C0 08 83 32 2 概概述述 ADC0832 是美国国家半导体公司生产的一种8 位分辨率 双通道 A D 转换 芯片 由于它体积小 兼容性 性价比高而深受单片机爱好者及企业欢迎 其目 前已经有很高的普及率 学习并使用ADC0832 可是使我们了解 A D 转换器的 原理 有助于我们单片机技术水平的提高 ADC0832 主要特性如下 8 位分辨率 逐次逼近式 A D 转换器 双通道 A D 转换 输入输出电平与 TTL CMOS 相兼容 5V 电源供电时输入电压在 0 5V 之间 工作频率为 250KHZ 转换时间为 32 S 一般功耗仅为 15mW 8P 14P DIP 双列直插 PICC 多种封装 商用级芯片温宽为 0 C to 70 C 工业级芯片温宽为 40 C to 85 C 2 2 2 2 2 2 引引脚脚功功能能及及描描述述 ADC0832的引脚如图所示 各引脚功能如下 8 图 2 6 ADC0832的引脚图 CS 片选使能 低电平芯片使能 CH0 模拟输入通道 0 或作为 IN 使用 CH1 模拟输入通道 1 或作为 IN 使用 GND 芯片参考 0 电位 地 DI 数据信号输入 选择通道控制 DO 数据信号输出 转换数据输出 CLK 芯片时钟输入 Vcc REF 电源输入及参考电压输入 复用 2 2 2 2 3 3 工工作作模模式式 ADC0832 为 8 位分辨率 A D 转换芯片 其最高分辨可达 256 级 可以适应 一般的模拟量转换要求 其内部电源输入与参考电压的复用 使得芯片的模拟电 压输入在 0 5V 之间 芯片转换时间仅为 32 S 据有双数据输出可作为数据校 验 以减少数据误差 转换速度快且稳定性能强 独立的芯片使能输入 使多器 件挂接和处理器控制变的更加方便 通过DI 数据输入端 可以轻易的实现通 道功能的选择 2 2 2 2 4 4 单单片片机机对对 A AD DC C0 08 83 32 2 的的控控制制原原理理 正常情况下 ADC0832 与单片机的接口应为 4 条数据线 分别是 CS CLK DO DI 但由于 DO 端与 DI 端在通信时并未同时有效并与单片机的接口是双向 图 2 7 ADC0832 工作模式的选 取 9 的 所以电路设计时可以将 DO 和 DI 并联在一根数据线上使用 当 ADC0832 未工作时其 CS 输入端应为高电平 此时芯片禁用 CLK 和 DO DI 的电平可任 意 当要进行 A D 转换时 须先将 CS 使能端置于低电平并且保持低电平直到转 换完全结束 此时芯片开始转换工作 同时由处理器向芯片时钟输入端CLK 输入时钟脉冲 DO DI 端则使用 DI 端输入通道功能选择的数据信号 在第1 个时钟脉冲的下沉之前 DI 端必须是高电平 表示启始信号 在第2 3 个脉冲 下沉之前 DI 端应输入 2 位数据用于选择通道功能 其功能项见官方资料 如资料 所示 当此 2 位数据为 1 0 时 只对 CH0 进行单通道转换 当 2 位数据为 1 1 时 只对 CH1 进行单通道转换 当 2 位数据为 0 0 时 将 CH0 作为正输入端 IN CH1 作为负输入端 IN 进行输入 当 2 位数据为 0 1 时 将 CH0 作为负输入端 IN CH1 作为正输入端 IN 进行 输入 到第 3 个脉冲的下沉之后 DI 端的输入电平就失去输入作用 此后DO D I 端则开始利用数据输出 DO 进行转换数据的读取 从第 4 个脉冲下沉开始由 D O 端输出转换数据最高位 DATA7 随后每一个脉冲下沉 DO 端输出下一位数据 直到第 11 个脉冲时发出最低位数据 DATA0 一个字节的数据输出完成 也正是 从此位开始输出下一个相反字节的数据 即从第11 个字节的下沉输出 DATA0 随后输出 8 位数据 到第 19 个脉冲时数据输出完成 也标志着一次A D 转 换的结束 最后将 CS 置高电平禁用芯片 直接将转换后的数据进行处理就可以 了 作为单通道模拟信号输入时 ADC0832 的输入电压是 0 5V 且 8 位分辨率时的电 压精度为 19 53mV 如果作为由 IN 与 IN 输入的输入时 可是将电压值设定在 某一个较大范围之内 从而提高转换的宽度 但值得注意的是 在进行IN 与 IN 的输入时 如果 IN 的电压大于 IN 的电压则转换后的数据结果始终为00H 10 2 2 2 2 5 5 A AD DC C0 08 83 32 2 应应用用原原理理框框图图 图 2 8 ADC0832 时序图 2 2 3 3 L LC CD D1 16 60 02 2 显显示示 2 2 3 3 1 1 L LC CD D1 16 60 02 2 的的基基本本结结构构 1602LCD 是指显示的内容为 16X2 即可以显示两行 每行 16 个字符液晶模 块 显示字符和数字 11 图 2 9 LCD1602 引脚图 1602 采用标准的 16 脚接口 其中 第 1 脚 VSS 为电源地 第 2 脚 VCC 接 5V 电源正极 第 3 脚 V0 为液晶显示器对比度调整端 接正电源时对比度最弱 接地电 源时对比度最高 对比度过高时会 产生 鬼影 使用时可以通过一个 10K 的电位器调整对比度 第 4 脚 RS 为寄存器选择 高电平 1 时选择数据寄存器 低电平0 时选 择指令寄存器 第 5 脚 RW 为读写信号线 高电平 1 时进行读操作 低电平 0 时进行 写操作 第 6 脚 E 或 EN 端为使能 enable 端 高电平 1 时读取信息 负跳变 时执行指令 第 7 14 脚 D0 D7 为 8 位双向数据端 第 15 16 脚 空脚或背灯电源 15 脚背光正极 16 脚背光负极 2 2 3 3 2 2 L LC CD D1 16 60 02 2 的的指指令令表表 指令 1 清显示 光标复位到地址00H 位置 指令 2 光标复位 光标返回到地址00H 指令 3 光标和显示模式设置 I D 光标移动方向 高电平右移 低电平 左移 S 屏幕上所有文字是否左移或者右移 高电平表示有效 低电平则无效 指令 4 显示开关控制 D 控制整体显示的开与关 高电平表示开显示 低电平表示关显示 C 控制光标的开与关 高电平表示有光标 低电平表示无 光标 B 控制光标是否闪烁 高电平闪烁 低电平不闪烁 指令 5 光标或显示移位 S C 高电平时移动显示的文字 低电平时移动 光标 R L 高向左 低向右 12 指令 6 功能设置命令 DL 高电平时为 4 位总线 低电平时为 8 位总线 N 低电平时为单行显示 高电 平时双行显示 F 低电平时显示 5x7 的点阵字符 高电平时显示5x10 的 点阵字符 有些模块是 DL 高电平时为 8 位总线 低电平时为 4 位总线 指令 7 字符发生器 RAM 地址设置 地址 字符地址 8 字符行数 将一 个字符分成 5 8 点阵 一次写入一行 8 行就组成一个字符 指令 8 置显示地址 第一行为 00H 0FH 第二行为 40H 4FH 指令 9 读忙信号和光标地址 BF 为忙标志位 高电平表示忙 此时模块 不能接收命令或者数据 如果为低电平表示不忙 指令 10 写数据 指令 11 读数据 第三章 软件设计报告 3 3 1 1 单单片片机机软软件件设设计计 3 3 1 1 1 1 模模数数转转换换 软软件件设设计计 单片机对 ADC0832 模数转换模块进行初始化之后 读取电压数据 然后经过处 理之后在 LCD1602 显示 该部分代码见附录 3 3 1 1 2 2 L LC CD D1 16 60 02 2 显显示示软软件件设设计计 该部分代码见附录 3 3 2 2 流流程程图图设设计计 3 2 1 主主程程序序流流程程图图 13 图 3 1 主程序流程图 14 3 2 2 液液晶晶模模块块 流流程程图图 图 3 2 液晶模块流程图 15 3 2 3 电电压压显显示示 流流程程图图 图 3 3 电压显示流程图 16 3 3 3 3 原原理理图图设设计计 图 3 4 电路原理图 17 3 3 4 4 p pr ro ot te eu us s 仿仿真真图图 图 3 5 仿真图 18 3 3 5 5 P PC CB B 版版图图 图 3 6 PCB 版图 19 3 3 6 6 实实物物图图 图 3 7 实物图 20 第四章 疑疑难难问问题题及及解解答答 疑问 1 怎么用 Proteus 添加元器件 答 先用 Keil 软件对原程序进行了一下调试 如果程序没有错误 再进 行原理图的绘制 先点击左侧device 栏上的 P 按钮 就会弹出元器件选择对 话框 写上关键字就可以找到相应的元件 双击需要的元件就可以将此元件加 到当前的 device 栏中 在 device 栏中选中需要放置的元件 这样就可以放置 了 疑问 2 怎么进行仿真 答 用软件仿真调试工具 keil 编译程序生成文件 基于 ADC0832 的数字 电压表 hex 用 Proteus 打开完整的原理图点芯片 在program file 一行 选入 keil 生成 基于的 ADC0832 的数字电压表 hex 疑问 3 怎样检测最终结果 答 首先将所有准备工作做好 其次接电源 进行观看结果状况 查看结果 同时调节电位器 是否 LCD1602 显示器电压变化 如果变化则成功 否则进行 检测出错原因 疑问 4 程序下载后 LCD1602 为何无显示 答 首先要排除是否是硬件及连接问题 若不是硬件问题 则检查软件代码 是否与硬件相匹配 细到各个端口的引脚 最终在同学的协助下 确认了是软 件代码的问题 对代码进行了修改 问题得以解决 21 第五章总总结结与与致致谢谢 总结总结 通过这次对基于 ADC0832 的单片机数据采集系统设计 让我们了解了设计 电路的程序 也让我们了解了关于数据采集系统的原理与设计理念 通过这 次学习 让我们对各种电路都有了大概的了解 所以说 坐而言不如立而行 对于这些电路还是应该自己动手实际操作才会有深刻理解 除了学会了许多专 业知识外 在遇到困难时 积极地去请教我的指导老师 我们通过看现有的教 材 去图书馆查阅资料 去网上搜索相关信息这些方式 不仅完成了我的毕业 论文 而且大大增强了我的自学能力和独立能力 更重要的是 我拓展了思路 开阔了视野 活跃了思想 这次创新课程设计不仅使我们对相关专业知识有了更深的理解 而且还让我 们认识到了理论知识对工作实践的重大意义 学会理论联系实际 这次的课程 设计让我们发挥主观能动性独立的查阅资料 寻找数据 设计实验方案 并将 理论知识应用到实践中去 同时 通过这次设计提高了我们认识问题 分析问 题 解决问题的能力 总之 这次设计既是对我们课程知识的考核 又是对我 们思考问题 解决问题能力的考核 更是对我们人格品德的考验 设计让我们 受益匪浅 致致 谢谢 首先 我们组的三个人都是考研大军中一份子 由于忙于复习在课程设计上 分配的时间不是很多 感谢张老师对我们的理解和支持 其次 在本次设计中 我们遇到了很多问题 感谢在设计中对我们提供帮助的热心老师和同学们 因 为有你们 本次设计才得以成功完成 Thank you 22 参考文献参考文献 1 单片机原理及接口技术案例教程 李春法 编著 机械工业出版社 2 单片机应用系统与接口技术 丁向荣 编著 电子工业出版社 3 8051 单片机实践与应用 吴金戌 沈庆阳 郭庭青 编著 清华大学出版社 4 单片机应用新技术教程 朱宇光 编著 北京电子工业出版社 5 基于 C 语言编程 MCS 51 单片机原理与应用 张陪任 编著 清华大学出版 社 6 单片机微型计算机原理与接口技术 高峰 编著 北京科学出版社 23 附附 录录 程序代码 include 包含单片机寄存器的头文件 include 包含 nop 函数定义的头文件 sbit CS P3 4 将 CS 位定义为 P3 4 引脚 sbit CLK P1 0 将 CLK 位定义为 P1 0 引脚 sbit DIO P1 1 将 DIO 位定义为 P1 1 引脚 unsigned char code digit 10 定义字符数组显示数字 unsigned char code Str1 Volt 说明显示的是电压 unsigned char code Str2 Thank Mr Zhang 以下是对液晶模块的操作程序 sbit RS P2 4 定义端口 sbit RW P2 5 sbit E P2 6 使能信号位 将 E 位定义为 P2 2 引脚 sbit BF P0 7 忙碌标志位 将 BF 位定义为 P0 7 引脚 24 函数功能 延时 1ms 3j 2 i 3 33 2 10 1010 微秒 可以认为是 1 毫秒 void delay1ms unsigned char i j for i 0 i 10 i for j 0 j 33 j 函数功能 延时若干毫秒 入口参数 n void delaynms unsigned char n unsigned char i for i 0 i n i delay1ms 25 函数功能 判断液晶模块的忙碌状态 返回值 result result 1 忙碌 result 0 不忙 bit BusyTest void bit result RS 0 根据规定 RS 为低电平 RW 为高电平时 可以读状态 RW 1 E 1 E 1 才允许读写 nop 空操作 nop nop nop 空操作四个机器周期 给硬件反应时间 result BF 将忙碌标志电平赋给 result E 0 将 E 恢复低电平 return 0 函数功能 将模式设置指令或显示地址写入液晶模块 入口参数 dictate 26 void WriteInstruction unsigned char dictate while BusyTest 1 如果忙就等待 RS 0 根据规定 RS 和 R W 同时为低电平时 可以 写入指令 RW 0 E 0 E 置低电平 根据表 8 6 写指令时 E 为高脉 冲 就是让 E 从 0 到 1 发生正跳变 所以应先置 0 nop nop 空操作两个机器周期 给硬件反应时间 P0 dictate 将数据送入 P0 口 即写入指令或地址 nop nop nop nop 空操作四个机器周期 给硬件反应时间 E 1 E 置高电平 nop nop 27 nop nop 空操作四个机器周期 给硬件反应时间 E 0 当 E 由高电平跳变成低电平时 液晶模块开始 执行命令 函数功能 指定字符显示的实际地址 入口参数 x void WriteAddress unsigned char x WriteInstruction x 0 x80 显示位置的确定方法规定为 80H 地址码 x 函数功能 将数据 字符的标准 ASCII 码 写入液晶模块 入口参数 y 为字符常量 void WriteData unsigned char y while BusyTest 1 RS 1 RS 为高电平 RW 为低电平时 可以写入数据 28 RW 0 E 0 E 置低电平 根据表 8 6 写指令时 E 为高脉冲 就是让 E 从 0 到 1 发生正跳变 所以应先置 0 P0 y 将数据送入 P0 口 即将数据写入液晶模块 nop nop nop nop 空操作四个机器周期 给硬件反应时间 E 1 E 置高电平 nop nop nop nop 空操作四个机器周期 给硬件反应时间 E 0 当 E 由高电平跳变成低电平时 液晶模块开始执行命令 函数功能 对 LCD 的显示模式进行初始化设置 void LcdInitiate void delaynms 15 延时 15ms 首次写指令时应给 LCD 一段 29 较长的反应时间 WriteInstruction 0 x38 显示模式设置 16 2 显示 5 7 点阵 8 位 数据接口 delaynms 5 延时 5ms 给硬件一点反应时间 WriteInstruction 0 x38 delaynms 5 延时 5ms 给硬件一点反应时间 WriteInstruction 0 x38 连续三次 确保初始化成功 delaynms 5 延时 5ms 给硬件一点反应时间 WriteInstruction 0 x0c 显示模式设置 显示开 无光标 光标不闪烁 delaynms 5 延时 5ms 给硬件一点反应时间 WriteInstruction 0 x06 显示模式设置 光标右移 字符不移 delaynms 5 延时 5ms 给硬件一点反应时间 WriteInstruction 0 x01 清屏幕指令 将以前的显示内容清除 delaynms 5 延时 5ms 给硬件一点反应时间 以下是电压显示的说明 30 函数功能 显示电压符号 void display volt void unsigned char i WriteAddress 0 x01 写显示地址 将在第 2 行第 1 列开始显示 i 0 从第一个字符开始显示 while Str1 i 0 只要没有写到结束标志 就继续写 WriteData Str1 i 将字符常量写入 LCD i 指向下一个字符 void display3 void unsigned char i 31 WriteAddress 0 x80 0 x41 写显示地址 将在第 2 行第 1 列开始显示 i 0 从第一个字符开始显示 while Str2 i 0 只要没有写到结束标志 就继续写 WriteData Str2 i 将字符常量写入 LCD i 指向下一个字符 函数功能 显示电压的小数点 void display dot void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兰西辅警考试题库2025(有答案)
- 衡水金卷四省(四川云南)高三联考9月联考英语(含答案)
- 道教学院期末考试试题及答案
- 冲压车间电气安全培训课件
- 医疗咨询市场发展趋势-洞察及研究
- 冰雪林海关东风情课件
- 充电工安全培训课件
- 2025年小微企业创业扶持资金申请政策解读与创业策略报告
- 文化产业经典IP全权授权与转让独家合作协议
- 美食城档口租赁及餐饮设备购置一体化服务合同
- 甲醇改装培训课件
- 贵州人民版一年级劳动上册全册教案
- 2025年度事业单位考试(D类)《中学综合应用能力》新版真题卷(附答案)
- 口腔设备学发展史
- 2025年广西专业技术人员继续教育公需科目(二)答案
- 外墙防水渗漏红外检测技术
- 监控系统维护方案
- 二手电车买卖合同范本
- 中介拍卖合同协议书范本
- 2025年云南红河州开发区投资建设集团有限公司招聘笔试参考题库含答案解析
- 法医物证课件法医植物学
评论
0/150
提交评论