基于C8051F330的单片机温度计设计论文.doc_第1页
基于C8051F330的单片机温度计设计论文.doc_第2页
基于C8051F330的单片机温度计设计论文.doc_第3页
基于C8051F330的单片机温度计设计论文.doc_第4页
基于C8051F330的单片机温度计设计论文.doc_第5页
免费预览已结束,剩余50页可下载查看

下载本文档

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

文档简介

西安石油大学本科毕业设计 论文 基于基于 C8051F330 的单片机温度计设计的单片机温度计设计 摘摘 要 要 本论文设计了一种基于 C8051F330 单片机的温度计 测温范围为 0 100 4 位 LED 显示 系统通过温度传感器 获得随温度变化的模拟电压 对这个电压和 片内温度信号进行测量 采集 模数转换及显示 采样速率可达 200ksps 该温度 计系统选用一低压转换器件 AMS1117 实现 5V 电压向 3 3V 电压的转换 为 C8051F330 提供工作电压 将采集到的模拟信号送入 C8051F330 单片机内部的 10 位 ADC 进行量化 编码 然后调用查表程序 将 ADC 寄存器中转换出的数字信息 处理为段码 输出至 74LS164 移位寄存器 再通过数码管显示 系统通过按键来选 择不同通道的采集测量 这种方法具有实用 便捷的优点 实现了测量过程的智能 化 电路设计过程中运用了 Protel99SE 进行原理图及 PCB 板图绘制 选用了 C8051F330 单片机的开发工具 Silicon laboratories IDE 对软件设计中的汇编程序进行 编写 编译 综合仿真 最后将程序下载到中 调试证明硬件能正常工作 可以完 成课题要求的任务 关键词 关键词 单片机 温度计 温度传感器 西安石油大学本科毕业设计 论文 The Designing of a thermometer which is based on the C8051F330 monolithic integrated circuit Abstract A thermometer which is based on the C8051F330 monolithic integrated circuit MCU is designed in this paper The temperature range is 0 100 and it displays on four digital tubes The thermometer system get the simulation voltage which changes with the change of temperature from the temperature sensor Then the circuit operates these functions that gathering the conversion of A D and the displaying about this simulation voltage and the temperature of MCU s interior sensor The rate of sampling reaches 200ksps A Low voltage conversion device AMS1117 was used in this thermometer system in order to provide a 3 3 operating voltage which is conversed from a 5 voltage for C8051F330 The collected simulation signal is firstly delivered into C8051F33010 s ADC to quantify and code Then under the help of the program of table look up the program processes the numerical information which is converted in the ADC register to section code and surveys the processing result to 74LS164 shift register at last it displays on the digital tube The different channel s gathering and survey are chosen by the key press in the controlling part of the circuit This method is convenient and practical and it realizes intellectualization of the survey process In the process of designing Protel99SE is used to plot schematic diagram and PCB diagram and Silicon laboratories IDE the development kit of C8051F330 MCU is used to compile translate and make synthesis simulation about the assemble program After downloading the program into the FPGA component the hardware can work normally after debugging and it can accomplish the task of this design Key words MCU thermometer temperature sensor 西安石油大学本科毕业设计 论文 目目 录录 1 绪论 1 1 1 课题背景及目的 1 1 2 国内外研究现状 1 1 3 论文构成及内容 2 1 4 课题研究方法 2 2 温度计系统的硬件设计 3 2 1 温度计系统基本组成 3 2 2 温度计系统原理框图 4 2 3 温度计系统的工作步骤 4 2 4 温度计系统电路原理图及说明 5 2 4 1 电源部分设计 5 2 4 2 控制部分说明 7 2 4 3 显示部分设计 7 2 4 4 按键部分设计 10 2 5 温度计系统电路板的制作过程 11 3 C8051F330 在温度计系统中的应用 12 3 1 C8051F330 单片机总体介绍 12 3 1 1 C8051F330 内部原理图 13 3 2 电路复位的选择及说明 13 3 3 10 位 ADC0 的配置 14 3 3 1 A D 转换启动方式选择 15 3 3 2 模拟多路选择器的设置和说明 15 3 3 3 ADC0 寄存器的设置 16 3 4 端口 I O 的选用 19 3 4 1 端口 I O 的初始化 19 3 5 增强型串行输出接口 SPI0 配置 21 4 温度计系统的软件设计 25 4 1 主程序流程框图的设计 25 4 1 1 测温子程序及按键子程序的设计 26 4 1 2 温度转换子程序的设计 30 4 1 3 数值转换及显示子程序 30 西安石油大学本科毕业设计 论文 I 5 电路调试 31 5 1 硬件调试 31 5 2 软件调试 32 5 3 系统联机综合调试 32 5 4 调试中的问题 33 5 5 调试结果处理 33 6 结论 35 参考文献参考文献 36 致致 谢谢 37 附录附录 A 电路原理图电路原理图 38 附录附录 B 电路电路 PCB 图图 39 附录附录 C 元器件清单元器件清单 40 附录附录 D 程程 序序 41 西安石油大学本科毕业设计 论文 0 1 绪论绪论 1 1 课题背景及课题背景及目的目的 单片机作为微型计算机的一个重要分支 应用广泛 对人类社会产生了巨大的影响 C8051F具有与8051指令完全兼容的CIP 51内核 并汇集了许多单片机领域的先进技 术 指令运行速度高 I O端口采用软件配置实现 内部使用集成A D转换模块 数 据传输可使用增强型串行外设接口 SPI0 时钟系统更加完善 可实现通过JTAG 或C2接口的在系统调试 多种复位方式 低功耗等 其中 内部集成A D转换模块 和增强型串行外设接口为温度计系统的设计提供了便利条件 温度是一种最基本的环境参数 人们的日常生活与环境的温度息息相关 另外 它也是工业对象中主要的被控参数之一 目前 在许多工业场合中 温度测控系统 进行温度检测和温度控制 常用方法是采用温度传感器进行检测 配合A D转换电 路和单片机进行控制 C8051F330内部的A D转换模块将逐次逼近型ADC 多通道 模拟输入选择器和可编程增益放大器集成在一起 故可以完成传统数据采集设计中 需要分步来实现的采集 转换 放大功能 增强型串行外设接口提供访问一个全双 工同步串行总线的能力 SPI0可以作为主器件或从器件工作 可以使用3线或4线方 式 C8051F330的显著优点大大提高了系统的整体性能 因此 研究设计基于 C8051F330的单片机温度计具有重大的现实意义 1 2 国内外研究现状国内外研究现状 据统计 在各类温度传感器中 低温温度传感器约占 5 低温领域的特殊性以 及相关技术的复杂性 增加了人们对低温温度的获得和准确测量的难度 近年来 随着近代物理学和电子技术的发展 低温温度传感器作为一门新兴技术 不仅得到 发达国家的普遍重视 也一直是各发展中国家竞相进行研究开发的热点 许多国家 通过研究各种物理效应 探索新的低温测量方法 采用近代技术开发新产品 扩大 测温范围 提高测量精度 占领世界市场 并取得了新进展 无论在国内还是国外 温度传感器使用范围 应用领域正在迅速扩大 不断向 高精度 高可靠性 长寿命 集成化 小 微 型化 智能化及民用方向发展 现 代微电子 微细加工 计算机 新型材料 超导技术等又为新型温度传感器的研制 和发展奠定了基础 而我国的低温温度传感器领域虽然已有一支几十年中发展起来的技术队伍 能 够提供不少高质量产品 但由于应用领域窄 产品种类产量少 生产周期长 成本 高 难以形成大批量生产能力 向民用转移慢 和国外水平相比还有较大差距 西安石油大学本科毕业设计 论文 1 1 3 论文构成及内容论文构成及内容 本论文研究设计了一种基于C8051F330的温度测控系统 该系统实现了对外部 可变的两路0 3 3V模拟电压和单片机内部温度传感器温度值的采集 模数转换以及 将电压值转换为温度值并显示 论文共分五章 第一章 绪论 介绍温度计系统的基本概念 课题目的 研究方法及内容 第二章 温度计系统的硬件设计 包括工作步骤 原理图的设计及相关硬件的 配置 第三章 讲述温度计系统中C8051F330的相关配置 包括端口I O的配置 ADC0的转换与配置及SPI0的配置 第四章 讲述相关软件设计 第五章 运用Silicon laboratories IDE进行调试 包括软件和硬件调试 1 4 课题研究方法课题研究方法 本次课题设计中要实现一个基于C8051F330单片机的温度计 该温度计系统完 成对多个物理量的数据采集 模数转换及温度显示 可以通过C8051F330的多路模 拟开关来控制内部ADC对数据的采集 转换 多路模拟开关首先选通来自多个输入 通道的某一路信号 然后将采集到的模拟量送给片内ADC进行转换 接着 通过单 片机内核处理 实现二进制数向BCD码 段码的转换 最终 经过SPI0将转换好的 段码送给LED显示 这样一个采集 转换 显示的过程完成之后 多路开关又可以 将下一路信号接通到采样器进行A D转换 系统不断重复上述操作就实现了对多通 道模拟信号的数据采集 转换 温度显示 西安石油大学本科毕业设计 论文 2 2 温度计系统的硬件设计温度计系统的硬件设计 2 1 温度计系统基本组成温度计系统基本组成 温度计系统包括硬件和软件两大部分 硬件部分可以分为模拟部分和数字部分 下图 2 1 是温度计系统的硬件基本组成 图图 2 1 温度计系统硬件基本组成温度计系统硬件基本组成 传感器的作用是把电量或非电的物理量转变成模拟电量 如电压 电流或频率 例如使用热电偶 热电阻可以获得随温度变化的电压 转速传感器把转速转换为电 脉冲等 通常把传感器输出到 A D 转换器输出的这一段称为模拟通道 前置放大器用来放大和缓冲输入信号 由于传感器输出的信号较小 因此 需 要将这些信号加以放大 这样保证了测量的精度 传感器和电路中的器件常会产生噪声 这种噪声可以用滤波器来衰减 以提高 模拟输入信号的信噪比 C8051F330 单片机内部 10 位 ADC 模块将传感器 多通道模拟输入选择器 逐 次逼近型 A D 和可编程增益放大器集成在一起 可以实现数据的采集 放大 保持 及转换 在数据采集部分 往往要对多个物理量进行采集 这可通过多路模拟开关来实 现 多路模拟开关可以分别选通来自多个输入通道的某一路信号 因此 在多路开 关后的单元电路 如采样 保持电路 A D 及处理器电路等 只需要一套即可 这 样节省成本和体积 模拟开关之后是模拟通道的转换部分 它包括采样 保持和 A D 转换电路 采 样 保持电路的作用是快速拾取模拟多路开关输出的子样脉冲 并保持幅值恒定 以 提高 A D 转换器的转换精度 采样 保持器输出的信号送至模数转换器 模数转换器是模拟输入通道的关键电 路 早期的采样 保持器和模数转换器需要数据采集系统设计人员自行设计 目前普 遍采用单片集成电路 像 C8051F330 中的 A D 转换器内部还包含有采样 保持电路 基准电源和接口电路 这为设计提供了较大的方便 各路被测信号共用一个采集 保持器和 A D 转换器 在某一时刻 多路开关只 能选择其中某一路 把它接到采集 保持器的输入端 当采样保持器的输出已充分逼 C8051F330 单片机 传 感 器 前 置 放 大 器 滤 波 器 数 码 管 键盘 西安石油大学本科毕业设计 论文 3 近输入信号时 在控制命令的作用下 采样保持器由采集状态进入保持状态 A D 转换器开始进行转换 转换完毕后输出数字信号 在转换期间 多路开关可以将下 一路接通到采样保持器的输入端 系统不断重复上述操作 实现对多通道模拟信号 的数据采集 A D 转换的结果要通过增强型串行外设接口 SPI 送给数码管显示 SPI 提供访 问一个全双工同步串行总线的能力 SPI0 可以作为主器件或从器件工作 可以使用 3 线或 4 线方式 SPI 将数据输出给移位寄存器 74LS164 再由数码管显示 2 2 温度计系统原理框图温度计系统原理框图 该温度计系统是通过温度传感器来采集数据的 但为了方便调试 现用电位计 代替温度传感器工作 根据课题要求设计出电路原理框图 3 其内容如下图 2 2 所示 图图 2 2 电路原理框图电路原理框图 如上图 2 2 所示 选用 C8051F330 通用 I O 端口中的 P0 4 P0 5 分别输入第一 二路电压 采集到的模拟数据经单片机内部 A D 转换和内核处理后变为段码 再送 到段码驱动器驱动 LED 实现显示 需要注意的是 作为单片机模拟输出的端口工作 时电压都在 3 3V 同时单片机数据 时钟输出端口都需要上拉电阻到 5V 电源 保 证输出的正常 段码驱动器也需要接到 5V 电源上 2 3 温度计系统的工作步骤温度计系统的工作步骤 1 接好电源 调节两个电位计使其分别输出为一个确定值 2 程序使数码管显示 8051 按下开关 SW2 数码管再次显示 F330 3 再按一下开关 SW2 开始对片内温度值的采集 采集到的数据 电压值 放在 ADC0 的寄存器 ADC0H ADC0L 中 4 程序将采集的电压值转换为温度值 5 程序利用 8051 内核对数据进行转 BCD 码和段码处理 6 使能 C8051F330 内部的增强型 SPI 串行输出端口 使转换好的数据从 此处输出到外部移位寄存器 P0 4 P0 5 RET C8051 F330 单 片 机 电位计 第一路测压 第二路测压 复位控制 3 3V 电压 P0 2 P0 0 段码 驱动器 4 位 LED 温度显示 时钟 输出 数据 输出 上拉 电阻 5V 电压 西安石油大学本科毕业设计 论文 4 7 通过软件查询语句判断数据输出是否结束 结束后送移位寄存器驱动显 示 8 按一下开关 SW1 开始对 P0 4 端口电压值的采集 采集到的数据放在 ADC0 的寄存器 ADC0H ADC0L 中 重复步骤 4 5 6 7 9 再按一下开关 SW1 开始对 P0 5 端口电压值的采集 采集到的数据放 在 ADC0 的寄存器 ADC0H ADC0L 中 重复步骤 4 5 6 7 10 若想停止对数据的测量 可按一下复位开关 SW3 系统回到初始状态 就可重新进行对数据的采集 明确上述的工作步骤之后 温度计系统的设计思路就进一步清晰了 2 4 温度计系统电路原理图及说明温度计系统电路原理图及说明 该系统完成对两路0 3 3V电压和温度的测量 整个系统硬件可分为电源部分 控制部分 显示部分 按键部分 各部分紧密连接形成一套完善的测压 测温系统 系统电路原理图如图2 3所示 系统工作时 由外部电源提供 5V 电压 供 74LS164 使用 单片机的工作电压 在 2 7 3 6V 之间 所以选用一低压转换器件 AMS1117 实现 5V 电压向 3 3V 电压的 转换 为单片机提供工作电压 经过调节电位计后 按下开关 模拟电压信息可从 P0 4 P0 5 输入 经单片机内部 ADC 采集 量化 编码后由 P0 2 口输出到移位寄 存器 等待 4 字节数据传输结束时 串行输出口 SPI0 的控制寄存器 SPI0CN 位 7 SPIF 变为 1 这个 1 便可允许 74LS164 输出上一组数据 送 4 位 LED 显 示 同时允许下一组数据输入 74LS164 由于 P0 0 P0 2 端口工作电压在 3 3V 所 以需要上拉 5 1K 的电阻到 5V 保证单片机数据输出正常 LED 后接一个 510 的 电阻到地端 起到限流保护数码管的作用 2 4 1 电源部分设计电源部分设计 C8051F330的工作电压范围在2 7V 3 6V之间 AMS1117是一个低压差电压调 节器 作为供电装置 AMS1117可以将输入的5V电压转化为3 3V电压输出 正好满 足C8051F330的工作电压要求 需要注意的是 电路的外接电源选5V 这样在经过 AMS1117转换后的3 3V电压适用于C8051F330 同时5V电压满足74LS164以及单片 机输出上拉的要求 西安石油大学本科毕业设计 论文 5 图图2 3 电路原理图电路原理图 西安石油大学本科毕业设计 论文 6 AMS1117输出端需要一个10uF的钽电容来改善瞬态响应和稳定性 电源部分设 计如下图2 4所示 图图2 4 4 电源设计电源设计 如上图2 4所示 2 2uF的输入电容起滤波作用 10uF的输出电容则起到稳定输 出电压为3 3V的作用 AMS1117的管脚图如下图2 5 顶视图 侧视图 图图 2 5 AMS117 管脚图管脚图 从图 2 5 可看出 AMS1117 是平贴的外形设计 用 Protel99SE 设计原理图时 器件库中应选用对应 AMS1117 实物的封装形式 即 SOT223 保证 AMS1117 与其 它器件的正确连接关系 2 4 2 控制部分说明控制部分说明 控制部分选用 C8051F330 单片机 将采集到的模拟信号送入 C8051F330 单片机 内部的 10 位 ADC 模块 使用内核模块完成数字信息的处理 将 ADC 寄存器中转 换出的数字信息处理为段码 即完成了数据的采集 量化和编码 然后调用查表程 序 使用 SPI0 将转换好的段码送给 LED 显示 2 4 3 显示部分设计显示部分设计 显示部分包括 74LS164 移位寄存器和 LED 数码显示管 74LS164 移位寄存器接 收从 8051 内核转换出的 4 字节段码 当单片机发出传输结束的信号后 四个移位寄 存器将送出的 4 个字节串行数据转化为 32 位并行数据 分别送往各个 LED 采用 静态显示的方式 驱动 4 位 LED 实现显示 1 74LS164 移位寄存器 74LS164移位寄存器功能是将外部输入的串行数据转化为8位的并行数据输出 5V供电 串行数据的频率由外部时钟控制 其数据输出具有锁存功能 74LS164封 装图如图2 6 3 3V 电压输出 西安石油大学本科毕业设计 论文 7 图图2 6 74LS164封装图封装图 各引脚说明如下 A B 信号输入端 CLEAR 同步清除输入端 低电平有效 CLOCK 时钟输入端 作为串行数据接收同步信号 由单片机内部时钟提供 片内系统时钟选择了SYSCLK 4 即6 125MHZ QA QH 输出端 其功能如下表2 2所示 表表2 2 74LS164真值表真值表 输入输出 ClearClockA BQA QB QH L H H H H X L X X X X H H L X X L L L L QA0 QB0 QH0 H QAn QGn L QAn QGn L QAn QGn H 高电平 L 低电平 X 任意电平 低到高电平跳变 QA0 QB0 QH0 规定的稳态条件建立前的电平 QAn QGn 时钟最近的 前的电平 当清除端 CLEAR 为低电平时 输出端 QA QH 均为低电平 串行数据 输入端 A B 可控制数据 当A B任意一个为低电平 则禁止新数据的输入 在时钟端 CLOCK 脉冲上升沿作用下QA为低电平 当A B有一个为高电平 则 另一个就允许输入数据 并在CLOCK上升沿作用下决定输出的状态 2 LED数码显示管 LED数码管分为共阴极和共阳极两种 本设计中所采用的是共阴极LED显示块 所谓共阴极方式是指各段发光管的阴极 即N区 是公共的 而阳极互相隔离 图 西安石油大学本科毕业设计 论文 8 b 为共阴极的LED 图 c 为共阳极的LED 其管脚排列如图2 7所示 a LED 管脚图管脚图 b 共阴极共阴极 LED c 共阳极共阳极 LED 图图 2 7 LED 管脚及内部结构管脚及内部结构 LED 显示是用发光二极管显示字段的显示器件 由图 2 7 可见它由 8 个发光二 极管构成 通过不同的组合可用来显示 0 9 A F 及小数点 LED 的显示分式分为静态和动态两种 静态显示时将各位的共阴极连接在一起 并接地 每位的显示段 a dp 分别与一个 8 位锁存器 如前面介绍的 74LS164 输出连接 由于显示器的各位可以独立显示 所以只要在该位的段选线上保持段选 码电平 该位就能保持相应的显示字符 并且由于各位分别由一个 8 位锁存器控制 段选线 故在同一时间里 每一位显示的字符就可以各不相同 动态显示时将所有 位的段选码相应的并联在一起 由一个 8 位 I O 口控制 形成段选线的多路复用 而各位阴极分别由相应的 I O 口线控制来实现各位的分时选通 独立保持的显示可 以满足设计中的要求 所以选择静态显示就可以 表表 2 3 共阴极共阴极 LED 段码表段码表 a b c d e f g dp D0 D1 D2 D3 D4 D5 D6 D7 段码 0 111111003FH 1 011000000FCH 2 110110100DAH 3 111100100F2H 4 0110010166H 5 101101100B6H 6 101111100BEH 7 111000000E0H 8 111111100FEH 9 111101100F6H 西安石油大学本科毕业设计 论文 9 显示出相应的十进制数码 共有七段笔划 每一段为一发光二极管 分别用 a g 的 7 个字母表示 七段 LED 显示的 0 9 这十个数字的字型 采用共阴极数码 管 则七段显示译码器的段码表如下表 2 3 所示 显示部分的电路设计如图 2 9 所示 单片机 P0 2 作串行数据输出口 与 74LS164 的信号输入端 A B 相连 P0 0 口与 74LS164 的 CLK 端相接 为其提供同 步时钟 移位寄存器的 QA QH分别与 LED 的 a dp 相连 数码管的公共端 GND 通过一个 510的电阻接地以限制数码管上的电流过大 起到保护数码管的作用 移位寄存器每传输完四字节信息 数码管就显示出相应数据 图图 2 8 按键电路按键电路 图图 2 9 显示电路显示电路 2 4 4 按键部分设计按键部分设计 设计中按键部分的电路如上图 2 8 所示 按键设计的思路是 按下开关 SW3 时单片机复位 按下开关 SW2 时 采集片 内温度传感器的值 按下 SW1 时 采集单片机的 P0 4 端口到 GND 之间的电压值 西安石油大学本科毕业设计 论文 10 再按下 SW1 时 采集单片机的 P0 5 端口到 GND 之间的电压值 编写程序时 可以 先进行复位 然后判断哪路开关按下 在第一路开关没按下时就跳到下一路开关处 再进行判断 这样一直循环下去 直到判断有开关按下后 便对这个开关对应的一 路开始模拟数据的采集 2 5 温度计系统电路板的制作过程温度计系统电路板的制作过程 硬件的电路设计由Protel99SE软件完成 设计生成的PCB图见附录所示 在完成 对电路的整体方案设计后 进入电路的制作阶段 Protel99SE软件是一个较好的专业 性的电路制图工具软件 电路的绘制主要是用Prote99SE软件来制作完成 在本次设 计中 电路板的设计制作过程如下 1 在启动软件界面后首先按照设计方案画好电路原理图 在此设计过程中 由于元器件库中没有现成的C8051F330的器件图 因此需要在Schematic Library中自 定义元器件库中自己设计C8051F330元器件图 2 进行电气化规则检查 在此过程中ERC开始报告管脚没有接入信号 分 析原因有 创建元件或放置元件时修改了不一致的Grid属性 管脚与线虚连接 自 创建元器件时Pin方向反向 必须与非Pin Name端连线 3 ERC无错后 生成网络 4 在PCB Library中设计封装库缺少而所需的元器件封装 在此设计过程 中 由于元器件库中没有现成的开关 数码管 电容的封装 因此需要在PCB Library中自定义元器件库中开关 数码管 电容的封装形式 5 打开PCB制作界面 添加设计所需的元器件封装库 导入网络表 6 生成PCB图 手动进行元器件的整体布局 设置布线规则并自动布线完 成PCB的制作 西安石油大学本科毕业设计 论文 11 3 C8051F330 在温度计系统中的应用在温度计系统中的应用 C8051F330 在温度计系统中的主要应用模块 1 10 位 ADC 模块 将采集到的模拟信号送入 10 位 ADC 模块 完成数 字信息的处理 将 ADC 寄存器中转换出的数字信息处理为段码 即完成数据的采集 量化和编码 2 I O 模块 P0 n 和 P1 n 都可以作为 I O 口 设计中采用 P1 0 P1 1 作为 开关控制口 分段控制 P0 4 和 P0 5 端口处的模拟量输入 P0 0 给外部硬件 74LS164 提供时钟输入 P0 2 作为数据输出端口 3 SPI 模块 设计采用 3 线单主方式 其中 SPI0 主器件在 MOSI 线上串 行移出数据 同时在 SCK 上给 74LS164 提供串行时钟 3 1 C8051F330 单片机总体介绍单片机总体介绍 C8051F330器件是完全集成的混合信号片上系统型MCU 下面列出了一些主要 特性 5 高速 流水线结构的8051兼容的CIP 51内核 可达25MIPS 全速 非侵入式的在系统调试接口 片内 真正10位200 ksps的16通道单端 差分ADC 带模拟多路选择器 10位电流输出DAC 高精度可编程的25MHz内部振荡器 8KB可在系统编程的FLASH存储器 768字节片内RAM 硬件实现的SMBus I 2C 增强型UART和增强型SPI串行接口 4个通用的16位定时器 具有3个捕捉 比较模块和看门狗定时器功能的可编程计数器 定时器阵列 PCA 片内上电复位 VDD监视器和温度传感器 片内电压比较器 17个端口I O 容许5V输入 具有片内上电复位 VDD监视器 看门狗定时器和时钟振荡器的C8051F330是 真正能独立工作的片上系统 FLASH存储器还具有在系统重新编程能力 可用于非 易失性数据存储 并允许现场更新8051固件 用户软件对所有外设具有完全的控制 可以关断任何一个或所有外设以节省功耗 C8051F330使用Silicon laboratories的专利CIP 51微控制器内核 CIP 51与MCS 51 指令集完全兼容 可以使用标准803x 805x的汇编器和编译器进行软件开发 CIP 51 西安石油大学本科毕业设计 论文 12 内核具有标准8052的所有外设部件 包括4个16位计数器 定时器 一个具有增强波 特率配置的全双工UART 一个增强型SPI端口 768字节内部RAM 128字节特殊功 能寄存器 SFR 地址空间及17个I O端口 CIP 51采用流水线结构 与标准的8051结构相比指令执行速度有很大的提高 在一个标准的8051中 除MUL和DIV以外所有指令都需要12或24个系统时钟周期 最大系统时钟频率为12 24MHz 而对于CIP 51内核 70 的指令的执行时间为1或2 个系统时钟周期 只有4条指令的执行时间大于4个系统时钟周期 3 1 1 C8051F330 内部原理图内部原理图 C8051F330内部原理框图如下图3 1所示 图图3 1 C8051F330内部原理框图内部原理框图 由下图3 1右看起 选择P0 4 P0 5作为输入端口 再经过模拟多路选择器 AMUX 后选通输入信息 然后在10位ADC中进行模数转换 将数据在8051内核 处理成段码后 经SPI0 增强型串行外设接口 XBAR 交叉开关 从P0 2口送出 经过这样一个循环式的过程就完成了C8051F330的数据采集 转换并输出的功能 3 2 电路复位的选择及说明电路复位的选择及说明 对于大多数电路设计 首先必须保证它的复位是否正常 因为实现复位后 片内 每个功能部件才能实现初始化 才能保证接下来的工作处于正常状态 复位电路允许很容易地将控制器置于一个预定的缺省状态 在进入复位状态时 将发生以下过程 CIP 51 停止程序执行 西安石油大学本科毕业设计 论文 13 特殊功能寄存器 SFR 被初始化为所定义的复位值 外部端口引脚被置于一个已知状态 中断和定时器被禁止 所有的 SFR 都被初始化为预定值 SFR 中各位的复位值在 SFR 的详细说明中已 经定义 在复位期间 内部数据存储器的内容不发生改变 复位前存储的数据保持 不变 C8051F330 中的复位多达 8 种 如上电复位 掉电复位 外部 RST 等 电路设计时选用了外部 RST 复位方式 因为外部 RST 引脚提供了使用外部电 路强制 MCU 进入复位状态的手段 在 RST 引脚上加一个低电平有效信号就可使单 片机进入复位状态 需要注意的是 尽管片内有弱上拉 但最好能提供一个外部上 拉或对 RST 引脚去耦以防止强噪声引起的复位 3 3 10 位位 ADC0 的配置的配置 ADC 部分是数据采集设计中特有而重要的一部分 模拟数据到数字数据的转换 以及数字信息的存储与传输都将在此单元完成 下面几节将对它介绍并进行配置 先总体介绍一下 C8051F330 的 ADC0 子系统 它的内部如下框图 3 2 图图3 2 ADC0功能框图功能框图 C8051F330 的 ADC0 子系统集成了两个 16 通道模拟多路选择器 合称 AMUX0 和一个 200ksps 的 10 位逐次逼近寄存器型 ADC ADC 中集成了跟踪保持 西安石油大学本科毕业设计 论文 14 电路和可编程窗口检测器 AMUX0 数据转换方式及窗口检测器都可用软件通过特 殊功能寄存器来配置 只有当 ADC 控制寄存器 ADC0CN 中的 AD0EN 位被置 1 时 ADC0 子系统才被使能 这一点在编程中要用到 当 AD0EN 位为 0 时 ADC0 子系统处于低功耗关断方式 3 3 1 A D 转换启动方式转换启动方式选择选择 C8051F330有6种A D转换启动方式 由ADC0CN中的ADC0转换启动方式位 AD0CM2 0 的状态决定采用哪一种方式 转换触发源有 1 写 1 到ADC0CN的AD0BUSY位 2 定时器0溢出 即定时的连续转换 3 定时器2溢出 4 定时器1溢出 5 CNVSTR输入信号 P0 6 的上升沿 6 定时器3溢出 向AD0BUSY写 1 方式提供了用软件控制ADC0转换的能力 AD0BUSY位在转 换期间被置 1 转换结束后复 0 这种方法优点在于编程时可以根据自己的需要灵 活控制ADC0的转换开始 所以此次设计中选择了向AD0BUSY写 1 方式来使能 ADC0的转换 AD0BUSY位的下降沿触发中断 当被允许时 并置位ADC0CN中的中断标志 AD0INT 注意 当工作在查询方式时 应使用ADC0中断标志 AD0INT 来 查询ADC转换是否完成 当AD0INT位为逻辑 1 时 ADC0数据寄存器 ADC0H ADC0L 中的转换结果有效 根据这一点 每次采集完可用类似 JNB AD0INT LOOP 的语句判断转换是否结束 未结束就继续等待 结束后则跳转到 处理转换结果的另一子程序 3 3 2 模拟多路选择器的设置和说明模拟多路选择器的设置和说明 模拟多路选择器 AMUX0 选择去ADC的正输入和负输入 如图3 3所示 P0 P1 片内温度传感器输出和正电源 VDD 中的任何一个都可以被选择为正输 入 P0 P1 VREF和GND中的任何一个也都可以被选择为负输入 当GND被选择为 负输入时 ADC0工作在单端方式 在所有其它时间 ADC0工作在差分方式 ADC0的输入通道由寄存器AMX0P和AMX0N选择 作为正负输入通道 每次分别只 能选择一路作为输出 而这种选择又分别由AMX0P和AMX0N两个寄存器来控制 由于这次设计中采集到的电压是正值 同时要求采集温度传感器的电压输出 而这一电压是作为单端输入提供给 ADC 多路开关的 所以 综合这两方面因素 选 择单端输入方式 单端输入方式下能测量的输入电压范围为 0 VREF 1023 1024 模拟多路选择器由AMX0P和AMX0N两个寄存器组成 其配置如下表3 1 3 2 西安石油大学本科毕业设计 论文 15 通过数据手册可知 当用到温度传感器时 设置AMX0P4 0的值为 10H便选中 它作为模拟输入 设计中还用到P0 4 P0 5口作为电压模拟量的输入端 所以当设置 AMX0P4 0的值为 04H 05H时便可将它们分别选中 需要注意的是 选用采集温度传感器时还需要将REF0CN控制寄存器中的 TEMPE位使能 即将TEMPE位置 1 当它被禁止时 温度传感器为缺省的高阻状 态 此时对温度传感器的任何ADC0测量结果都是无意义的 AMX0N 是 AMUX0 的负输入通道选择寄存器 AMX0N 与 AMX0P 不同之处在 于位 4 0 AMX0N4 0 AMUX0 负输入选择 注意 当 GND 被选择为负输入时 ADC0 工作在单端方式 对于所有其它负输入选择 ADC0 工作在差分方式 前面 刚刚提到 设计中选择了单端工作方式 所以在软件编程时设置 AMX0N4 0 的值为 11 时就选中 GND 为负输入 即确定了输入为单端方式 表表3 1 AMX0P AMUX0正输入通道选择寄存器正输入通道选择寄存器 表表3 2 AMX0N AMUX0负输入通道选择寄存器负输入通道选择寄存器 3 3 3 ADC0 寄存器的设置寄存器的设置 1 ADC0 数据寄存器设置 上一节中确定了 ADC0 工作在单端方式下 采集到的模拟数据经转换后放在 ADC0H 和 ADC0L 两字节的寄存器中 数据的存放格式分左对齐和右对齐两种 下 表 3 3 给出了单端方式下数据左对齐和右对齐的例子 可以作为参考 在编写程序 中的计算时用到 ADC0H 和 ADC0L 寄存器中未使用的位被设置为 0 R R R R W R W R W R W R W AMX0P4AMX0P3AMX0P2AMX0P1AMX0P0 位7 位6 位5 位4 位3 位2 位1 位0 复位值0001111 位7 5 未使用 读 000b 写 忽略 位4 0 AMX0P4 0 AMUX0正输入选择 R R R R W R W R W R W R W AMX0N4AMX0N3AMX0N2AMX0N1AMX0N0 位7 位6 位5 位4 位3 位2 位1 位0 复位值0001111 位7 5 未使用 读 000b 写 忽略 位4 0 AMX0N4 0 AMUX0负输入选择 西安石油大学本科毕业设计 论文 16 表表 3 3 单端输入方式下采集数据的储存单端输入方式下采集数据的储存 ADC0寄存器中放置了采集数据转换后的结果 是重要的数据 ADC0H ADC0数据字高字节寄存器 在AD0LJST 0时 位7 2为位1的符号扩展位 位1 0为10位ADC0数据的高2位 AD0LJST 1时 位7 0是10位ADC0数据的高8位 ADC0L ADC0数据字低字节寄存器 在AD0LJST 0时 即选择数据储存右对齐方式 位7 0是10位ADC0数据的低8 位 AD0LJST 1时 位7 6是10位ADC0数据的低2位 位5 0的读出值总是为0 如表3 4 3 5所示 表表3 4 ADC0数据字高字节寄存器数据字高字节寄存器 R W R W R W R W R W R W R W R W 位7 位6 位5 位4 位3 位2 位1 位0 复位值00000000 位7 0 ADC0数据字高字节 AD0LJST 0时 位7 2为位1的符号扩展位 位1 0为10位ADC0数据的高2位 AD0LJST 1时 位7 0是10位ADC0数据的高8位 表表3 5 ADC0数据字低字节寄存器数据字低字节寄存器 R W R W R W R W R W R W R W R W 位7 位6 位5 位4 位3 位2 位1 位0 复位值00000000 位7 0 ADC0数据字高字节 AD0LJST 0时 位7 0是10位ADC0数据的低8位 AD0LJST 1时 位7 6是10位ADC0数据的低2位 位5 0的读出值总是为0 2 ADC0控制寄存器设置 根据表3 6对ADC0控制寄存器的说明 要使能ADC0的转换 必须先置位7为 1 当选择ADC0为正常方式时 选择位6为 0 即当ADC0被使能时 除了转换期间之 输入电压 右对齐的ADC0H ADC0L AD0LJST 0 左对齐的ADC0H ADC0L AD0LJST 1 VREF 1023 10240 x3FF0 xFFC0 VREF 512 10240 x02000 x8000 VREF 256 10240 x01000 x4000 00 x00000 x0000 西安石油大学本科毕业设计 论文 17 外一直处于跟踪方式 当位 6 AD0TM 0时 置AD0CM2 0为000 这样就选择了 向AD0BUSY写1时启动ADC0转换 最终ADC0CN值为 80H 表表3 6 ADC0控制寄存器控制寄存器 R W R W R W R W R W R W R W R W AD0ENAD0TMAD0INTAD0BUSYAD0WINTAD0CM2AD0CM1AD0CM0 位7 位6 位5 位4 位3 位2 位1 位0 复位值00000000 位7 AD0EN ADC0使能位 0 ADC0禁止 ADC0处于低耗停机状态 1 ADC0使能 ADC0处于活动状态 可以进行转换数据 位6 AD0TM ADC0跟踪方式位 0 正常方式 当ADC0被使能时 除了转换期间之外一直处于跟踪方式 1 低功耗跟踪方式 由AD0CM2 0定义跟踪方式 见下面的说明 位5 AD0INT ADC0转换结束中断标志 0 从最后一次将该位清 0 后 ADC0还没有完成一次数据转换 1 ADC0完成了一次数据转换 位4 AD0BUSY ADC0忙标志位 读 0 ADC0转换结束或当前不在进行数据转换 AD0INT在AD0BUSY的下降沿被置 1 1 ADC0正在进行转换 写 0 无作用 1 若AD0CM2 0 000b则启动ADC0转换 位3 AD0WINT ADC0窗口比较中断标志 0 未发生ADC0窗口比较匹配 1 发生ADC0窗口比较匹配 位2 0 AD0CM2 0 ADC0转换启动方式选择 本设计中 10 位 ADC 模块的应用主要为以下几点 西安石油大学本科毕业设计 论文 18 C8051F330 1 2 3 4 5 6 7 7 8 9 10 1 1 13 12 14 15 16 17 18 19 20 P0 5 P0 6 P0 7 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P0 4P0 3 P0 2 P0 1 P0 0 GND VDD RST P1 7 P2 0 1 使用了写 1 到 ADC0CN 的 AD0BUSY 位的 A D 转换启动方式 即 ADC0CN 80H 2 本设计工作在查询方式 使用 ADC0 中断标志 AD0INT 来查询 ADC 转换是否完成 3 ADC0 工作在单端方式 即 AMX0N 11H 4 设计中用到 P0 4 P0 5 口作为电压模拟量的输入端 所以当设置 AMX0P 04H AMX0P 05H 时便可将它们分别选中作为模拟输入 5 当采集片内温度值时 AMX0P 10H 3 4 端口端口 I O 的选用的选用 C8051F330 采用 20 脚 DIP 封装如下图 3 3 所示 图图3 3 C8051F330的封装的封装 P0 n 和P1 n 都可以作为I O口 设计中采用P1 0 P1 1作为开关控制口 分段控 制温度传感器 P0 4和P0 5端口处的模拟量输入 RST作为电路复位开关控制端口 P0 0给外部硬件74LS164提供时钟输入 P0 2作为数据输出端口 须注意的是 P2 0 为C2调试接口提供双向数据信号 RST同时为C2调试接口提供时钟信号 3 4 1 端口端口 I O 的初始化的初始化 端口 I O 初始化包括以下步骤 1 用端口输入方式寄存器 PnMDIN 其中n 1 0 选择所有端口引脚的输 入方式 模拟或数字 2 用端口输出方式寄存器 PnMDOUT 其中n 1 0 选择所有端口引脚 的输出方式 漏极开路或推挽 3 使能SPI 设置XBR0为 02H 即SPI0E 1 4 使能数字交叉开关 设置XBR1为 40H 即XBARE 1 所有使用到的端口引脚都必须被配置为模拟或数字输入 被用作ADC输入的任 西安石油大学本科毕业设计 论文 19 何引脚都应被配置为模拟输入 当一个引脚被配置为模拟输入时 它的弱上拉 数 字驱动器和数字接收器都被禁止 这可以节省功耗并减小模拟输入的噪声 端口输入方式在PnMDIN寄存器中设置 其中 1 表示数字输入 0 表示模拟输 入

温馨提示

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

评论

0/150

提交评论