单片机点阵显示控制电路设计毕业论文.doc_第1页
单片机点阵显示控制电路设计毕业论文.doc_第2页
单片机点阵显示控制电路设计毕业论文.doc_第3页
单片机点阵显示控制电路设计毕业论文.doc_第4页
单片机点阵显示控制电路设计毕业论文.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

扬州工业职业技术学院毕业论文 单片机点阵显示控制电路设计毕业论文单片机点阵显示控制电路设计毕业论文 目目 录录 第一章 绪论 1 1 1 课题意义 1 1 2 课题实现功能 1 第二章 硬件设计 2 2 1 单片机的产生与发展 2 2 2 单片机的特点及应用 3 2 2 1 单片机的特点 3 2 2 2 单片机的应用 3 2 3AT89C51 单片机的结构 4 2 3 1 运算器 4 2 3 2 控制器 5 2 3 3 寄存器阵列 5 2 3 4 存储器 5 2 3 5 I O 端口 6 2 3 6 定时器 计数器 6 2 3 7 中断系统 7 2 3 8 内部总线 7 2 3 9 I O 端口功能 7 2 3 10 AT89C51 单片机的控制线有如下几 种 9 2 3 11 省电方 式 11 2 3 12 振荡器与时钟电 路 11 2 4 DS1302 的结构与工作原理 12 2 5 DS18B20 数字温度传感器 14 2 5 1 DS18B20 的技术性能描述 14 2 5 2 DS18B20 的应用范围 14 2 5 3 DS18B20 有 4 个主要的数据部件 15 2 5 4 DS18B20 的存储器 15 2 5 5 DS18B20 的初始化 16 第三章 系统软硬件设计 16 3 1 硬件电路的设计 16 3 1 1 时钟电路的设计 16 3 2 软件设计 17 3 2 1 软件设计的方案 17 3 2 2 应用程序的设计 18 第四章 调试过程 23 扬州工业职业技术学院毕业论文 4 1 软件调试 23 4 2 电路仿真 26 总结 30 致谢 32 参考文献 33 扬州工业职业技术学院毕业论文 0 第一章 绪论 1 11 1 课题课题意义意义 本课题本课题可以显示实时的温度 时间与万年历 利用 AT89C51 单片机 作为本系统的中控模块 单片机可把由 DS18B20 时钟芯片读来的数据利用软件 来进行处理 进而把数据传输到显示模块 LCD 实现温度 日历的同时显示 LCD 作为主要的显示模块 通过软件控制把单片机传来的数据显示出来 1 21 2 课题实现功能课题实现功能 在我们的日常生活和工作中 常常需要记录实时的时间温度信息 在 51 内 核单片机系统中也是如此 比如 在数据采集时 对某些重要的信息不仅需要 记录其内容 还需要记录下该事件的发生的准确时间 又比如 在银行营业大 厅使用的利率或汇率显示屏 上面除了显示利率或汇率等数据以外 还需要显 示实时的时间信息 其中包括年 月 日 星期 时间等 根据实用性我们所设计的实时日历时钟的功能是在 51 内核单片机系统中设 置 获取 记录实时的日历时钟温度信息并通过数码管显示 实时显示可以通 过软件编程实现 但这种方法需要编制的程序复杂 代码多且单片机软件开销 大 而采用专用实时时钟芯片可以避免这些问题 所以在我们在实现实时日历 时钟显示时选用专用实时时钟芯片 扬州工业职业技术学院毕业论文 1 第二章 硬件设计 2 12 1 单片机的产生与发展单片机的产生与发展 单片机的全称是单片微型计算机 Single Chip Microcomputer 为了使 用方便 它把组成计算机的主要功能部件 中央处理器 CPU 数据存储器 RAM 程序存储器 ROM EPROM E2PROM 或 FLASH 定时 计数器和各种输 入 输出接口电路等都集成在一块半导体芯片上 构成了一个完整的计算机系统 与通用的计算机不同 单片机的指令功能是按照工业控制的要求设计 因此它 又被称为微控制器 Microcontroller 计算机的发展经历了从电子管到大规模集成电路等几个发展阶段 随着大 规模集成电路技术的发展 使计算机向性能稳定可靠 微型化 廉价方向发展 从而出现了单片微型计算机 MCS51 系列单片机是美国 Intel 公司于 1980 年推出的一种 8 位单片机系列 该系列的基本型产品是 8051 8031 和 8751 这 3 种产品之间的区别只是在片 内程序存储器方面 8051 的片内程序存储器 ROM 是掩膜型的 即在制造芯 片时已将应用程序固化进去 8031 片内没有程序存储器 8751 内部包含有用作 程序存储器的 4KB 的 EPROM 由于 8051 的编程需要制造商的支持 8751 的价格 昂贵 因此 8031 获得了更为广泛的使用 MCS51 系列单片机优异的性能 价格比使得它从面世以来就获得用户的认可 Intel 公司把这种单片机的内核 即 8051 内核 以出售或互换专利的方式授权 给一些公司 如 Atmel Philips ADI 等 这些公司的这类产品也被称为 8051 兼容芯片 这些 8051 兼容芯片在原来的基础上增加了许多特性 本书应用电路 中采用了 Atmel 公司的 AT89S51 芯片 它与 MCS51 单片机指令集兼容 同时它 的内部包含用作程序存储器的 4KB 的基于 FLASH 技术的只读存储器 采用这款 芯片既克服了采用 8031 需要添加外部程序存储器导致电路复杂的缺点 又克服 了采用 8751 导致电路制作成本高的缺点 扬州工业职业技术学院毕业论文 2 2 22 2 单片机的特点及应用单片机的特点及应用 2 2 12 2 1 单片机的特点单片机的特点 随着现代科技的发展 单片机的集成度越来越高 CPU 的位数也越来越高 已能将所有主要部件都集成在一块芯片上 使其应用模式多 范围广 并具有 以下特点 体积小 功耗低 价格便宜 重量轻 易于产品化 控制功能强 运行速度快 能针对性地解决从简单到复杂的各类控制问 题 满足工业控制要求 并有很强的位处理和接口逻辑操作等多种功 能 抗干扰能力强 适用温度范围宽 由于许多功能部件集成在芯片内部 受外界影响小 故可靠性高 虽然单片机内存储器的容量不可能很大 但存储器和 I O 接口都易于扩 展 可以方便的实现多机和分布式控制 2 2 22 2 2 单片机的应用单片机的应用 单片机的应用具有面广量大的特点 目前它广泛的应用于国民经济各个领 域 对技术改造和产品的更新起着重要作用 主要表现在以下几个方面 单片机在智能化仪器 仪表中的应用 由于单片机有计算机的功能 它 不仅能完成测量 还既有数据处理 温度控制等功能 易于实现仪器 仪表的 数字化和智能化 单片机在实时控制中的应用 单片机可以用于各种不太复杂的实时控制 系统中 如一般性的温度控制 液面控制 电镀顺序控制等 将测量技术 自 动控制技术和单片机技术相结合 充分发挥单片机的数据处理和实时控制功能 使系统工作于最佳状态 单片机在机电一体化中的应用 单片机有利于机电一体化技术的发展 已广泛应用于数控机床 医疗设备 汽车设备等 单片机在多机系统中的应用 单片机在多机系统中的应用是将来单片机 发展的主要模式 它可以提高单片机的可靠性 使系统运行速度更快 单片机在计算机外围设备中的应用 单片机广泛应用于打印机 绘图机 扬州工业职业技术学院毕业论文 3 等多种计算机的外围设备 特别是用于智能终端 可大大减轻主机负担 提高 系统的运行速度 单片机在家用电器中的应用 单片具有体积小 重量轻 价格便宜等特 点 所以家电产品中配上微电脑后 使其身价百倍 功能更强 使用方便 灵 活 深得用户欢迎 单片机在通信中的应用 单片机广泛应用于移动通信领域 使移动电话 的功能更强大 操作更方便 2 32 3 AT89C51AT89C51 单片机的结构单片机的结构 AT89 系列单片机在内部结构上基本相同 其中不同型号的单片机只不过在 个别模块和功能方面有些区别 AT89C51 单片机内部硬件结构框图如图 2 1 所 示 它由一个 8 位中央处理器 CPU 一个 256B 片内 RAM 及 4KB Flash ROM 21 个特殊功能寄存器 4 个 8 位并行 I O 口 两个 16 位定时 计数器 一个串行 I O 口以及中断系统等部分组成 各功能部件通过片内单一总线联成 一个整体 集成在一块芯片上 AT89C51 单片机内部结构如图所示 时序和振荡时序和振荡 电路电路 程序存储程序存储 器器 ROM 数据存储器数据存储器 RAM 2个个16位定时位定时 计数器计数器 CPU 内部内部8位数据总线位数据总线 中断中断 系统系统 并行并行 I OI O口口 串行串行I OI O 口口 内部中断内部中断 外部中断外部中断 P0 P1 P2 P3 RXD TXD 时钟源时钟源外部事件外部事件 CPU 是单片机内部的核心部件 是一个 8 位二进制数的中央处理单元 主要由 运算器 控制器和寄存器阵列构成 2 3 12 3 1 运算器运算器 运算器用来完成算术运算和逻辑运算功能 它是 AT89C51 内部处理各种 信息的主要部件 运算器主要由算术逻辑单元 ALU 累加器 ACC 暂存寄存 扬州工业职业技术学院毕业论文 4 器 TMP1 TMP2 和状态寄存器 PSW 组成 1 算术逻辑单元 ALU AT89C51 中的 ALU 由加法器和一个布尔处理 器组成 2 累加器 ACC 用来存放参与算术运算和逻辑运算的一个操作数或运 算的结果 3 暂存寄存器 TMP1 TMP2 用来存放参与算术运算和逻辑运算的另 一个操作数 它对用户不开放 4 状态寄存器 PSW PSW 是一个 8 位标志寄存器 用来存放 ALU 操 作结果的有关状态 2 3 22 3 2 控制器控制器 控制器是单片机内部按一定时序协调工作的控制核心 是分析和执行指令 的部件 控制器主要由程序计数器 PC 指令寄存器 IR 指令译码器 ID 和定时 控制逻辑电路等构成 程序计数器 PC 是专门用于存放现行指令的 16 位地址的 CPU 就是根据 PC 中的地址到 ROM 中去读取程序指令码和数据 并送给指令寄存器 IR 进行 分析 指令寄存器 IR 用于存放 CPU 根据 PC 地址从 ROM 中读出的指令操作码 指令译码器 ID 是用于分析指令操作的部件 指令操作码经译码后产生相 应于某一特定操作的信号 定时控制逻辑中定时部件用来产生脉冲序列和多种节拍脉冲 2 3 32 3 3 寄存器阵列寄存器阵列 寄存器阵列是单片机内部的临时存储单元或固定用途单元 包括通用寄存 器组和专用寄存器组 通用寄存器组用来存放过渡性的数据和地址 提高 CPU 的运行速度 专用寄存器组主要用来指示当前要执行指令的内存地址 存放特定的操 作数 指示指令运行的状态等 扬州工业职业技术学院毕业论文 5 2 3 42 3 4 存储器存储器 AT89C51 单片机内部有 256 个字节的 RAM 数据存储器和 4 KB 的闪存程 序存储器 Flash 当不够使用时 可分别扩展为 64 KB 外部 RAM 存储器和 64 KB 外部程序存储器 它们的逻辑空间是分开的 并有各自的寻址机构和寻址 方式 这种结构的单片机称为哈佛型结构单片机 程序存储器是可读不可写的 用于存放编好的程序和表格常数 数据存储器是既可读也可写的 用于存放运算的中间结果 进行数据暂存 及数据缓冲等 2 3 52 3 5 I OI O 端口端口 AT89C51 单片机对外部电路进行控制或交换信息都是通过 I O 端口进行的 单片机的 I O 端口分为并行 I O 端口和串行 I O 端口 它们的结构和作用并不相 同 1 并行 I O 端口 AT89C51 有四个 8 位并行 I O 端口 分别命名为 P0 口 P1 口 P2 口 和 P3 口 它们都是 8 位准双向口 每次可以并行输入或输出 8 位二进制信息 2 串行 I O 端口 AT89C51 有一个全双工的可编程串行 I O 端口 它利用了 P3 口的第二 功能 即将 P3 1 引脚作为串行数据的发送线 TXD 将 P3 0 引脚作为串行数据 的接收线 RXD 2 3 62 3 6 定时器定时器 计数器计数器 AT89C51 内部有两个 16 位可编程定时器 计数器 简称为定时器 0 T0 和 定时器 1 T1 T0 和 T1 分别由两个 8 位寄存器构成 其中 T0 由 TH0 高 8 位 和 TL0 低 8 位 构成 T1 由 TH1 高 8 位 和 TL1 低 8 位 构成 TH0 TL0 TH1 TL1 都是 SFR 中的特殊功能寄存器 扬州工业职业技术学院毕业论文 6 T0 和 T1 在 TCON 和 TMOD 的控制下可工作在定时器模式或计数器模式下 每种模式下又有不同的工作方式 当定时或计数溢出时还可申请中断 2 3 72 3 7 中断系统中断系统 单片机中的中断是指 CPU 暂停正在执行的原程序转而为中断源服务 执行 中断服务程序 在执行完中断服务程序后再回到原程序继续执行 中断系统是 指能够处理上述中断过程所需要的部分电路 AT89C51 的中断系统由中断源 中断允许控制器 IE 中断优先级控制器 IP 定时器控制器 TCON 中断标志寄存器 等构成 IE IP TCON 均为 SFR 特殊功能寄存器 2 3 82 3 8 内部总线内部总线 总线是用于传送信息的公共途径 总线可分为数据总线 地址总线和控制 总线 单片机内的 CPU 存储器 I O 接口等单元部件都是通过总线连接到一 起的 采用总线结构可以减少信息传输线的根数 提高系统可靠性 增强系统 灵活性 AT89C51 单片机内部总线是单总线结构 即数据总线和地址总线是公用的 AT89C51 单片机引脚及其功能 AT89C51 有 40 条引脚 与其他 51 系列单片机引脚是兼容的 这 40 条引 脚可分为 I O 端口线 电源线 控制线 外接晶体线四部分 其封装形式有两 种 双列直插封装 DIP 形式和方形封装形式 2 3 9I O2 3 9I O 端口功能端口功能 1 P0 口 P0 口有八条端口线 命名为 P0 0 P0 7 其中 P0 0 为低位 P0 7 为高位 扬州工业职业技术学院毕业论文 7 每条线的结构组成如图 2 3 所示 它由一个输出锁存器 两个三态缓冲器 输 出驱动电路和输出控制电路组成 P0 口是一个三态双向 I O 口 它有两种不同 的功能 用于不同的工作环境 2 P1 口 3 P2 口 P2 口有八条端口线 命名为 P2 0 P2 7 每条线的结构如图 2 5 所示 P2 口 也是一个准双向口 它有两种使用功能 一种是当系统不扩展外部存储器时 作普通 I O 口使用 其功能和原理与 P0 口第一功能相同 只是作为输出口时不 需外接上拉电阻 另一种是当系统外扩存储器时 P2 口作系统扩展的地址总线 口使用 输出高 8 位的地址 A7 A15 与 P0 口第二功能输出的低 8 位地址相 配合 共同访问外部程序或数据存储器 64 KB 但它只确定地址并不能像 P0 口那样还可以传送存储器的读写数据 4 P3 口 P3 口有八条端口线 命名为 P3 0 P3 7 每条线的结构如图 2 6 所示 P3 口 是一个多用途的准双向口 第一功能是作普通 I O 口使用 其功能和原理与 P1 口相同 第二功能是作控制和特殊功能口使用 这时八条端口线所定义的功能 各不相同 5 I O 口的读写 在单片机中 口是一个集数据输入缓冲 数据输出驱动及锁存等多项功能于一 体的 I O 电路 AT89C51 的 4 个口在电路结构上基本相同 P0 P3 口都可作 为普通 I O 口来使用 但又各具特点 因此在功能和使用上各口之间有一定的 D CL Q Q P0 X MUX T2 T1 VCC P0 X 扬州工业职业技术学院毕业论文 8 差异 各口用作输入时 均须先写入 1 P0 口用作输出时 应外接上拉电阻 2 3 10AT89C512 3 10AT89C51 单片机的控制线有如下几种 单片机的控制线有如下几种 1 RST 复位输入端 高电平有效 2 ALE PROG 地址锁存允许 编程线 3 EA 外部程序存储器的读选通线 4 VPP 片外 ROM 允许访问端 编程电源端 AT89C51 存储器 AT89C51 单片机存储器结构采用哈佛型结构 即将程序存储器 ROM 和数据存储器 RAM 分开 它们有各自独立的存储空间 寻址机构和寻 址方式 1 程序存储器 AT89C51 程序存储器有片内和片外之分 片内有 4 KB 字节的 Flash 程 序存储器 地址范围为 0000H 0FFFH 当不够使用时 可以扩展片外 程序存储器 因程序计数器 PC 和程序地址指针 DPTR 都是 16 位 片 外程序存储器扩展的最大空间是 64 KB 地址范围为 0000H FFFFH 2 数据存储器 AT89C51 数据存储器也有片内和片外之分 片内有 256 个字节 RAM 地址范围为 00H FFH 按功能又可分为两部分 低 128 字节 地址为 00H 7FH 为一般 RAM 区 高 128 字节 地址为 80H FFH 为特殊 功能寄存器 SFR 区 片外数据存储器可扩展 64 KB 存储空间 地址范 围为 0000H FFFFH 但两者的地址空间是分开的 各自独立的 1 片内数据存储器 AT89C51 单片机片内数据存储器可分为两部分 00H 7FH 单元空间的 128 字节为 RAM 区 0H FFH 单元空间的 128 字节为专用寄存器 SFR 区 两部分的 地址空间是连续的 扬州工业职业技术学院毕业论文 9 1 片内 RAM 区 共 128 字节 它又可划分为通用寄存器区 位寻址区 普通 RAM 区 通用寄存器区 00H 1FH 这 32 个单元为通用寄存器区 分为四组 每组占八个 RAM 单元 地址由小到大分别用代号 R0 R7 表示 通过 设置程序状态字 PSW 中的 RS1 RS0 状态来决定哪一组寄存器工作 如表 2 2 所示 位寻址区 20H 2FH 这 16 个单元为位寻址区 它有双重寻址功能 既可以按位寻址操作 也可以普通 RAM 单元那样按字节寻址操作 普通 RAM 区 30H 7FH 这 80 个单元为普通 RAM 区 用于存放用户数据 只能按字节存取 堆栈区 堆栈是片内 RAM 中的特殊群体 用来暂时存放诸如子程序端口 地址 中断端口地址以及其它需要保护的数据 2 专用寄存器区 片内 80H FFH 区间 AT89C51 集合了一些特殊用途的寄存器 一般称 之为特殊功能寄存器 SFR AT89C51 单片机共有 21 个 SFR 每个 SFR 占一个 RAM 单元 它们离散地分布在 80H FFH 地址范围内 3 片外数据存储器 AT89C51 单片机可扩展片外 64 KB 空间的数据存储器 地址范围 为 0000H FFFFH 它与程序存储器的地址空间是重合的 但两者的寻 址指令和控制线不同 复位方式 单片机在开机时或在工作中因干扰而使程序失控或工作中程序处于 某种死循环状态等情况下都需要复位 复位的作用是使中央处理器 CPU 以及其他功能部件都恢复到一个确定的初始状态 并从这个状态开始工 作 1 复位原理 AT89C51 单片机的复位靠外部电路实现 信号由 RESET RST 引 扬州工业职业技术学院毕业论文 10 脚输入 高电平有效 在振荡器工作时 只要保持 RST 引脚高电平两个 机器周期 单片机即复位 复位后 PC 程序计数器的内容为 0000H 其他特殊功能寄存器的复位状态如表 2 5 所示 片内 RAM 中内容不变 2 常用复位电路 一般有上电复位 手动开关复位和自动复位电路三种 程序执行方式 程序执行方式是单片机的基本工作方式 即执行用户编写好并存放在 ROM 中的程序 2 3 112 3 11 省电方式省电方式 AT89 系列单片机有两种省电运行方式 即空闲方式和掉电方式 省电 方式可使单片机功耗最小 单片机正常工作时消耗 10 20 mA 电流 空闲方式工作时消耗 1 75 mA 电流 掉电方式工作时消耗 5 50 A 电流 2 3 122 3 12 振荡器与时钟电路振荡器与时钟电路 单片机内各部件之间有条不紊的协调工作 其控制信号是在一种基本节 拍的指挥下按一定时间顺序发出的 这些控制信号在时间上的相互关系 就是 CPU 时序 而产生这种基本节拍的电路就是振荡器和时钟电路 AT89C51 单片机内部有一个用于构成振荡器的单级反相放大器 引脚 XTAL1 为反相器输入端 XTAL2 为反相器输出端 当在放大器两 个引脚上外接一个晶体 或陶瓷振荡器 和电容组成的并联谐振电路作为 反馈元件时 便构成一个自激振荡器 引脚 XTAL1 为反相器输入端 XTAL2 为反相器输出端 当在放大器两 个引脚上外接一个晶体 或陶瓷振荡器 和电容组成的并联谐振电路作为 扬州工业职业技术学院毕业论文 11 反馈元件时 便构成一个自激振荡器 单片机也可采用外部振荡器向内部时钟电路输入一固定频率的时钟源信 号 此时 外部信号接至 XTAL1 端 输入给内部时钟电路 而 XTAL2 端浮空即可 时序 1 振荡周期 振荡周期指由单片机片内或片外振荡器所产生的 为单片机提 供时钟源信号的周期 其值为 1 fosc 2 时钟周期 时钟周期又称为状态周期 S 由内部时钟电路产生 是振荡周期 的二倍 每个时钟周期分为 P1 和 P2 两个节拍 前半周期 P1 节拍信号 有效 后半周期 P2 节拍信号有效 每个节拍完成不同的逻辑操作 3 机器周期 一个机器周期由 6 个状态周期 12 个振荡周期 组成 6 个状态周 期用 S1 S6 表示 每一状态周期的两个节拍用 P1 P2 表示 则一个机 器周期的 12 个节拍就可用 S1P1 S1P2 S2P1 S6P1 S6P2 来表 示 4 指令周期 执行一条指令所占用的全部时间 一个指令周期通常由 1 4 个 机器周期组成 若外接晶振频率为 fosc 12 MHZ 则四个基本周期的具 体数值为 1 振荡周期 1 12 s 2 时钟周期 1 6 s 3 机器周期 1 s 4 指令周期 1 4 s 2 4DS13022 4DS1302 的结构与工作原理的结构与工作原理 DS1302 是美国 DALLAS 公司推出的一种高性能 低功耗 带RAM 的实时时钟 电路 它可以对年 月 日 周日 时 分 秒进行计时 具有闰年补偿功能 工作电 压为 2 5V 5 5V 采用三线接口与 CPU 进行同步通信 并可采用突发方式一次传送 扬州工业职业技术学院毕业论文 12 多个字节的时钟信号或 RAM 数据 DS1302 内部有一个 31 8 的用于临时性存放数 据的 RAM 寄存器 DS1302 是 DS1202 的升级产品 与 DS1202 兼容 但增加了主 电源 后背电源双电源引脚 同时提供了对后背电源进行涓细电流充电的能力 1 引脚功能及结构 DS1302 的引脚排列 其中 Vcc1 为后备电源 VCC2 为主电源 在主电源关闭 的情况下 也能保持时钟的连续运行 DS1302 由 Vcc1 或 Vcc2 两者中的较大者供 电 当 Vcc2 大于 Vcc1 0 2V 时 Vcc2 给 DS1302 供电 当 Vcc2 小于 Vcc1 时 DS1302 由 Vcc1 供电 X1 和 X2 是振荡源 外接 32 768kHz 晶振 RST 是复位 片 选线 通过把 RST 输入驱动置高电平来启动所有的数据传送 RST 输入有两种功能 首先 RST 接通控制逻辑 允许地址 命令序列送入移位寄存器 其次 RST 提供 终止单字节或多字节数据的传送手段 当RST 为高电平时 所有的数据传送被初始 化 允许对 DS1302 进行操作 如果在传送过程中RST 置为低电平 则会终止此次 数据传送 I O 引脚变为高阻态 上电运行时 在Vcc 2 0V 之前 RST 必须保持低 电平 只有在 SCLK 为低电平时 才能将 RST 置为高电平 I O 为串行数据输入输 出端 双向 后面有详细说明 SCLK 为时钟输入端 下图为 DS1302 的引脚功能 图 DS1302 封装图 2 DS1302 的控制字节 DS1302 的控制字如图 2 所示 控制字节的最高有效位 位 7 必须是逻辑 1 如果它为 0 则不能把数据写入 DS1302 中 位 6 如果为 0 则表示存取日历时钟数 据 为 1 表示存取 RAM 数据 位 5 至位 1 指示操作单元的地址 最低有效位 位 0 如 为 0 表示要进行写操作 为 1 表示进行读操作 控制字节总是从最低位开始输出 3 数据输入输出 I O 在控制指令字输入后的下一个SCLK 时钟的上升沿时 数据被写入DS1302 数据输入从低位即位 0 开始 同样 在紧跟 8 位的控制指令字后的下一个 SCLK 脉 冲的下降沿读出 DS1302 的数据 读出数据时从低位 0 位到高位 7 4 DS1302 的寄存器 扬州工业职业技术学院毕业论文 13 DS1302 有 12 个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数据位 为 BCD 码形式 其日历 时间寄存器及其控制字见表1 此外 DS1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄存器及 与 RAM 相关的寄存器等 时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄 存器内容 DS1302 与 RAM 相关的寄存器分为两类 一类是单个RAM 单元 共 3 1 个 每个单元组态为一个 8 位的字节 其命令控制字为 C0H FDH 其中奇数为 读操作 偶数为写操作 另一类为突发方式下的RAM 寄存器 此方式下可一次性读 写所有的 RAM 的 31 个字节 命令控制字为 FEH 写 FFH 读 为了实现系统报警计时等功能 此设计采用了DS302 实时时钟芯片 DS1302 是美国 DALLAS 公司推出的一种高性能 低功耗 带RAM 的实时时钟 电路 它可 以对年 月 日 周日 时 分 秒进行计时 具有闰年补偿功能 工作电压为2 5 V 5 5V 采用三线接口与 CPU 进行同步通信 并可采用突发方式一次传送多个字节 的时钟信号或 RAM 数据 DS1302 内部有一个 31 8 的用于临时性存放数据的 RAM 寄存器 DS1302 是 DS1202 的升级产品 与 DS1202 兼容 但增加了主电源 后背 电源双电源引脚 同时提供了对后背电源进行涓细电流充电的能力 2 1 引脚功能 及结构 DS1302 的引脚排列 其中 Vcc1 为后备电源 VCC2 为主电源 在主电源关 闭的情况下 也能保持时钟的连续运行 DS1302 由 Vcc1 或 Vcc2 两者中的较大者 供电 当 Vcc2 大于 Vcc1 0 2V 时 Vcc2 给 DS1302 供电 当 Vcc2 小于 Vcc1 时 DS1302 由 Vcc1 供电 X1 和 X2 是振荡源 外接 32 768kHz 晶振 RST 是复位 片选线 通过把 RST 输入驱动置高电平来启动所有的数据传送 RST 输入有两种功 能 首先 RST 接通控制逻辑 允许地址 命令序列送入移位寄存器 其次 RST 提 供终止单字节或多字节数据的传送手段 当RST 为高电平时 所有的数据传送被初 始化 允许对 DS1302 进行操作 如果在传送过程中RST 置为低电平 则会终止此 次数据传送 I O 引脚变为高阻态 上电运行时 在Vcc 2 5V 之前 RST 必须保持 低电平 只有在 SCLK 为低电平时 才能将 RST 置为高电平 I O 为串行数据输入 输出端 双向 后面有详细说明 SCLK 始终是输入端 2 5 DS18B20 数字温度传感器数字温度传感器 2 5 1DS18B20 的技术性能描述的技术性能描述 1 独特的单线接口方式 DS18B20 在与微处理器连接时仅需要一条口线即可实现 微处理器与 DS18B20 的双向通讯 2 测温范围 55 125 固有测温分辨率 0 5 3 支持多点组网功能 多个 DS18B20 可以并联在唯一的三线上 实现多点测温 4 工作电源 3 5V DC 5 在使用中不需要任何外围元件 6 测量结果以 9 12 位数字量方式串行传送 7 不锈钢保护管直径 6 8 适用于 DN15 25 DN40 DN250 各种介质工业管道和狭小空间设备测温 扬州工业职业技术学院毕业论文 14 9 标准安装螺纹 M10X1 M12X1 5 G1 2 任选 10 PVC 电缆直接出线或德式球型接线盒出线 便于与其它电器设备连接 2 5 22 5 2D DS S1 13 30 02 2 的的应应用用范范围围 1 该产品适用于冷冻库 粮仓 储罐 电讯机房 电力机房 电缆线槽等测温和控 制领域 2 轴瓦 缸体 纺机 空调 等狭小空间工业设备测温和控制 3 汽车空调 冰箱 冷柜 以及中低温干燥箱等 4 供热 制冷管道热量计量 中央空调分户热能计量和工业领域测温和控制 5 产品型号与规格 型 号 测温范围 安装螺纹 电缆长度 适用管道 TS 18B20 55 125 无 1 5 m TS 18B20A 55 125 M10X1 1 5m DN15 25 TS 18B20B 55 125 1 2 G 接线盒 DN40 60 2 5 3DS18B202 5 3DS18B20 有有 4 4 个主要的数据部件 个主要的数据部件 1 光刻 ROM 中的 64 位序列号是出厂前被光刻好的 它可以看作是该DS18B20 的地址序列码 64 位光刻 ROM 的排列是 开始 8 位 28H 是产品类型标号 接着 的 48 位是该 DS18B20 自身的序列号 最后 8 位是前面 56 位的循环冗余校验码 C RC X8 X5 X4 1 光刻 ROM 的作用是使每一个 DS18B20 都各不相同 这样就可 以实现一根总线上挂接多个 DS18B20 的目的 2 DS18B20 中的温度传感器可完成对温度的测量 以12 位转化为例 用 16 位符号扩展的二进制补码读数形式提供 以0 0625 LSB 形式表达 其中 S 为符号 位 DS18B20 内部结构主要由四部分组成 64 位光刻 ROM 温度传感器 温度报警触 发器 TH 和 TL 配置寄存器 2 5 4DS18B202 5 4DS18B20 的存储器的存储器 DS18B20 的存储器包括高速暂存器 RAM 和可电擦除 RAM 可电擦除 RAM 又包 括温度触发器 TH 和 TL 以及一个配置寄存器 存储器能完整的确定一线端口的通讯 数字开始用写寄存器的命令写进寄存器 接着也可以用读寄存器的命令来确认这些数 字 当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM 中 当修改过寄存器中的数时 这个过程能确保数字的完整性 高速暂存器 RAM 是由 8 个字节的存储器组成 第一和第二个字节是温度的显示 位 第三和第四个字节是复制TH 和 TL 同时第三和第四个字节的数字可以更新 第 五个字节是复制配置寄存器 同时第五个字节的数字可以更新 六 七 八三个字节是 计算机自身使用 用读寄存器的命令能读出第九个字节 这个字节是对前面的八个字节 扬州工业职业技术学院毕业论文 15 进行校验 64 位光刻 ROM 的前 8 位是 DS18B20 的自身代码 接下来的 48 位为连续的数 字代码 最后的 8 位是对前 56 位的 CRC 校验 64 位的光刻 ROM 又包括 5 个 RO M 的功能命令 读 ROM 匹配 ROM 跳跃 ROM 查找 ROM 和报警查找 2 5 5DS18B202 5 5DS18B20 的初始化的初始化 1 先将数据线置高电平 1 2 延时 该时间要求的不是很严格 但是尽可能的短一点 3 数据线拉到低电平 0 4 延时 750 微秒 该时间的时间范围可以从480 到 960 微秒 5 数据线拉到高电平 1 6 延时等待 如果初始化成功则在15 到 60 毫秒时间之内产生一个由 DS18B 20 所返回的低电平 0 据该状态可以来确定它的存在 但是应注意不能无限的进行等 待 不然会使程序进入死循环 所以要进行超时控制 7 若 CPU 读到了数据线上的低电平 0 后 还要做延时 其延时的时间从发出 的高电平算起 第 5 步的时间算起 最少要 480 微秒 8 将数据线再次拉高到高电平 1 后结束 第三章 系统软硬件设计 3 13 1 硬件电路的设计硬件电路的设计 3 1 13 1 1 时钟电路的设计时钟电路的设计 如图 3 5 所示 单片机工作的时间基准是由时钟电路提供的 在单片机的 XTAL1 和 XTAL2 两个引脚间 接一只晶振及两只电容就构成了单片机的时钟电 路 电路中的器件选择可以通过计算和实验确定 也可以参考一些典型电路的 参数 电路中 电容器 C1 和 C2 对振荡器频率有微调作用 通常的取值范围 30 10pF 石英晶体选择 6MHZ 或 12MHZ 都可以 其结果只是机器周期时间不同 影响计数器的计数初值 扬州工业职业技术学院毕业论文 16 图 3 5 时钟设计电路 3 23 2 软件设计软件设计 3 2 13 2 1 软件设计的方案软件设计的方案 1 进行应用软件设计时可采用模块化程序设计方法 其优点是 1 每个模块的程序结构简单 任务明确 易于编写 调试和修改 2 程序可读性好 对程序的修改可局部进行 其他部分可以保持不变 便 于功能扩充 3 对于使用频繁的子程序可以建立子程序库 便于多个模块调用 4 便于分工合作 多个人同时进行程序的编写和调试工作 加快软件研制 进度 2 设计方案及框图 如图 3 9 所示 根据设计要求 首先要确定软件设计方案 即确定该软件 应该完成哪些功能 其次是规划为了完成这些功能需要分成多少个功能模块 以及每一个程序模块的具体任务是什么 划分模块时应遵循下述原则 1 每个模块应具有独立的功能 能产生一个明确的结果 扬州工业职业技术学院毕业论文 17 2 模块之间的控制参数应尽量简单 数据参数应尽量少 3 模块长度适中 4 根据模块的划分原则 将该程序划分成 5 个模块 图 3 9 设计框图 3 2 23 2 2 应用程序的设计应用程序的设计 名称 160128LCD 中文显示温度与时间 说明 运行本例时 液晶屏讲实时显示当前日期 时间 温度信息 include include include extern void LCD Initialise extern void Display Str at xy uchar x uchar y char Buffer reentrant extern void Read Temperature extern void Delay uint num extern float Build Temperature float extern uchar Current Temp Display Buffer extern bit DS18B20 IS OK sbit SDA P1 0 DS1302 数据线 sbit CLK P1 1 DS1302 时钟线 sbit RST P1 2 DS1302 复位线 uchar tCount 0 星期的中文对照表 char code WeeksTable 日 一 二 三 四 五 扬州工业职业技术学院毕业论文 18 六 所读取的日期时间 uchar DateTime 7 char dat str 13 向 DS1302 写入一字节 void Write A Byte To DS1302 uchar x uchar i for i 0 i 1 从 DS1302 读取一字节 uchar Get A Byte FROM DS1302 uchar i b t for i 0 i 1 t SDA b t 7 CLK 1 CLK 0 BCD 码转换 Return b 16 10 b 16 扬州工业职业技术学院毕业论文 19 从 DS1302 指定位置读数据 uchar Read Date uchar addr uchar dat RST 0 CLK 0 RST 1 Write A Byte To DS1302 addr dat Get A Byte FROM DS1302 CLK 1 RST 0 return dat 读取当前日期时间 Void GetTime uchar i for i 0 i 7 i DateTime i Read Date 0 x81 2 1 定时器 0 每秒刷新 LCD 显示 扬州工业职业技术学院毕业论文 20 void T0 INT interrupt 1 TH0 50000 256 TL0 50000 256 if tCount 20 return GetTime tCount 0 显示年月日 sprintf dat str 20 c c 年 c c 月 c c 日 DateTime 6 10 0 DateTime 6 10 0 DateTime 4 10 0 DateTime 4 10 0 DateTime 3 10 0 DateTime 3 10 0 Display Str at xy 16 24 dat str 显示星期 sprintf dat str 星期 s WeeksTable DateTime 5 1 Display Str at xy 16 44 dat str 星期时分秒 sprintf dat str c c 时 c c 分 c c 秒 DateTime 2 10 0 DateTime 2 10 0 DateTime 1 10 0 DateTime 1 10 0 DateTime 0 10 0 DateTime 0 10 0 Display Str at xy 16 64 dat str 读取并显示当前温度 扬州工业职业技术学院毕业论文 21 Read Temperature if DS18B20 IS OK sprintf dat str 4 1f Build Temperature float Display Str at xy 16 104 dat str 主程序 Void main LCD Initialise 液晶初始化 Read Temperature 读取温度 Delay 50000 Delay 50000 IE 0 x82 允许 T0 中断 TH0 50000 256 TL0 50000 256 TR0 1 Display Str at xy 16 88 当前温度 Display Str at xy 60 104 while 1 LCD 160128 C LCD 显示控制程序 相关代码在此前相关案例中已经提供 这里仅给出本例用到的点阵字 扬州工业职业技术学院毕业论文 22 模 本例汉字点阵库 宋体小五号 12 12 点阵 点阵用 Zimo 软件取得 Struct typFNT GB16 code GB 16 年 0 x20 0 x00 0 x3F 0 xE0 0 x42 0 x00 0 x82 0 x00 0 x3F 0 xC0 0 x22 0 x00 0 x22 0 x00 0 xFF 0 xE0 0 x02 0 x00 0 x02 0 x00 0 x02 0 x00 0 x00 0 x00 月 0 x1F 0 x80 0 x10 0 x80 0 x10 0 x80 0 x1F 0 x80 0 x10 0 x80 0 x10 0 x80 0 x1F 0 x80 0 x10 0 x80 0 x10 0 x80 0 x20 0 x80 0 x43 0 x80 0 x00 0 x00 日 0 x3F 0 xC0 0 x20 0 x40 0 x20 0 x40 0 x20 0 x40 0 x3F 0 xC0 0 x20 0 x40 0 x20 0 x40 0 x20 0 x40 0 x20 0 x40 0 x3F 0 xC0 0 x20 0 x40 0 x00 0 x00 限于篇幅 这里省略了 时 分 秒 星 期 一 二 三 四 五 六 日 当 前 温 度 的数据 第四章 调试过程 4 14 1 软件调试软件调试 将所编的软件程序输入到 Keil u Vision2 仿真软件中通过相应的编译来调 试程序 具体步骤如下 1 启动 uVision2 新建一个项目文件并从器件库中选择一个器件 如图 4 1 所示 扬州工业职业技术学院毕业论文 23 图 4 1 uVison2 界面 2 新建一个源文件并把它加入到项目中 如图 4 2 所示 图 4 2 新建项目对话框 3 增加并设置选择的器件的启动代码 如图 4 3 所示 扬州工业职业技术学院毕业论文 24 图 4 3 选择器件 4 针对目标硬件设置工具选项 5 编译项目并生成可编程 PROM 的 HEX 文件 6 Debug 选项卡的设置 如图 4 4 图 4 4Debug 选项卡 这里有两类仿真形式可选 Use Simulator 和 Use Keil Monitor 51 Driver 前一种是纯软件仿真 后一种是带有 Monitor 51 目标仿真器的仿真 扬州工业职业技术学院毕业论文 25 本课题选择的是后一种 进入 Target 设置 选择串行口 波特率选择 38400 这样就设置好了 7 开始调试 在实验箱上连接好电路 打开相关模块的电源开关 关闭不相关模块的电 源开关 打开总电源开关 按下 按钮 开始调试 按下复位开关将停止运行 如图 4 6 所示 图 4 6 调试 4 24 2 电路仿真电路仿真 利用 Proteus 仿真软件对设计好的电路原理图进行仿真 效果如下图 4 7 4 8 4 9 4 10 4 11 所示 扬

温馨提示

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

评论

0/150

提交评论