




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
考试序列号考试序列号 单片机课程设计论文单片机课程设计论文 论文题目 论文题目 温度采集显示系统温度采集显示系统 课程名称 课程名称 单片机课程设计单片机课程设计 学学 院院 物理与光电工程学院物理与光电工程学院 专业班级专业班级 0808 电子电子 3 3 班班 学学 号号 姓姓 名名 梁辉浩梁辉浩 联系方式联系方式 任课教师任课教师 20 年年 月月 日日 温度采集显示系统温度采集显示系统 一 功能和要求 一 功能和要求 1 温度测量范围 0 99 2 温度分辨率 1 3 选择合适的温度传感器 4 使用键盘输入温度的最高点和最低点 温度超出范围时候报警 报警温度不 需要保存 二 系统方案二 系统方案 方案一 由于本设计是测温电路 可以使用热敏电阻之类的器件利用其感温效 应 在将随被测温度变化的电压或电流采集过来 进行 A D 转换后 就可以用 单片机进行数据的处理 在显示电路上 就可以将被测温度显示出来 这种设 计需要用到 A D 转换电路 感温电路比较麻烦 方案二 进而考虑到用温度传感器 在单片机电路设计中 大多都是使用传感器 所以这是非常容易想到的 所以可以采用一只温度传感器 DS18B20 此传感器 可以很容易直接读取被测温度值 进行转换 就可以满足设计要求 从以上两种方案 很容易看出 采用方案二 电路比较简单 软件设计也比较简单 故采 用了方案二 三 核心元件的功能三 核心元件的功能 1 1 AT89C51AT89C51 AT89S51 美国 ATMEL 公司生产的低功耗 高性能 CMOS 8 位单片机 片内含 4K BytesISP In system programmable 的可反 复擦写 1000 次的 Flash 只读程序存储器 器 件采用 ATMEL 公司的高密度 非易失性存储 技术制造 兼容标准 MCS 51 指令系统及 AT89C51 引脚结构 芯片内集成了通用 8 位 中央处理器和 ISP Flash 存储单元 单片机 AT89S51 强大的功能可为许多嵌入式控制应 用系统提供高性价比的解决方案 AT89C51 芯片的引脚结构如图 1 所示 1 11 1 功能特性概括功能特性概括 AT89S51 提供以下标准功能 40 个引脚 4K Bytes Flash 片内程序存储器 128 Bytes 的随机存取数据存储器 RAM 32 个 外部双向输入 输出 I O 口 5 个中断优 先级 2 层中断嵌套中断 2 个数据指针 2 个 16 位可编 图 1 程定时 计数器 2 个全双工串行通信口 看门狗 WDT 电路 片内振荡器及时钟电路 此外 AT89S51 可降至 0Hz 的静态逻辑操作 并支持两 种软件可选的节电工作模式 空闲模式 CPU 暂停工作 而 RAM 定时 计数器 串行通信口 外中断系统可继续工作 掉电模式冻结振荡器而保存 RAM 的数据 停止芯片其它功能直至外中断激活或硬件复位 同时该芯片还具有 PDIP TQFP 和 PLCC 等三种封装形式 以适应不同产品的需求 1 21 2 管脚说明 管脚说明 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 也即地址 数据总线复用口 作为输出口用时 能驱动 8 个 TTL 逻辑门电路 对端口写 1 时 被定义为高 阻输入 在访问外部数据存储器或程序存储器时 这组口线分时转换地址 低 8 位 和 数据总线复用 在访问期间激活内部上拉电阻 在 Flash 编程时 P0 口接收指令字节 而在程序校验时 输出指令字节 校验 时 要求外接上拉电阻 P1 口 P1 口是一个带内部上拉电阻的 8 位双向 I O 口 P1 口的输出缓冲级可 驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口写 1 通过内部的上拉 电阻把端口拉到高电平 此时可作输入口 作输入口使用时 因为内部存在上拉 电阻 某个引脚被外部信号拉低时会输出一个电流 I IL 在 Flash 编程和程序校验期间 P1 接收低 8 位地址 部分端口还有第二功能 如 表 1 所示 端口引脚 第二功能 P1 5 MOSI 用于 ISP 编程 P1 6 MISO 用于 ISP 编程 P1 7SCK 用于 ISP 编程 表 1 P1 口部分引脚第二功能 P2 口 P2 口是一个带有内部上拉电阻的 8 位双向 I O 口 P2 口的输出缓冲 级可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口写 1 通过内部的 上拉电阻把端口拉到高电平 此时可作输入口 作输入口使用时 因为内部存在 上拉电阻 某个引脚被外部信号拉低时会输出一个电流 I IL 在访问外部程序存储器或 16 位地址的外部数据存储器 例如执行 MOVX DPTR 指令 时 P2 口送出高 8 位地址数据 在访问 8 位地址的外部数据寄 存器 例如执行 MOVX Ri 指令 时 P2 口线上的内容 也即特殊功能寄存器 SFR 区中 P2 寄存器的内容 在整个访问期间不改变 在 Flash 编程或校验时 P2 亦接收高位地址和其它控制信号 P3 口 P3 口是一个带有内部上拉电阻的双向 8 位 I O 口 P3 口的输出缓 冲级可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对 P3 口写 1 时 它们被 内部的上拉电阻拉高并可作为输入端口 作输入口使用时 被外部信号拉低的 P3 口将用上拉电阻输出电流 I IL P3 口除了作为一般的 I O 口线外 更重要的用途是它的第二功能 如表 2 所 示 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号 端口引脚第二功能 P3 0RXD 串行输入口 P3 1TXD 串行输出口 P3 2 外中断 0 0INT P3 3 外中断 1 INT1 P3 4 T0 定时 计数器 0 P3 5 T1 定时 计数器 1 P3 6 外部数据存储器写选通 WR P3 7 外部数据存储器读选通 RD 表 2 P3 口引脚第二功能 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期以上的高电 平时间将使单片机复位 WDT 溢出将使该引脚输出高电平 设置 SFR AUXR 的 DISRTO 位 地址 8EH 可打开或关闭该功能 DISRTO 位缺省为 RESET 输出高电 平打开状态 ALE 当访问外部存储器或数据存储器时 ALE 地址锁存允许 输出脉冲用 于锁存地址的低 8 位字节 即使不访问外部寄存器 ALE 仍以时钟振荡频率的 1 6 输出固定的正脉冲信号 因此它可对外输出时钟或用于定时目的 值得注意 的是 每当访问外部数据存储器时将跳过一个 ALE 脉冲 对 Flash 存储器编程期间 该引脚还用于输入编程脉冲 PROG 如有必要 可通过对特殊功能寄存器 SFR 区中的 8EH 单元的 D0 位置位 可 禁止 ALE 操作 该位置位后 只要一条 MOVX 和 MOVC 指令才会激活 ALE 此外 该引脚会被微弱拉高 单片机执行外部程序时 应设置 ALE 无效 程序存储允许 输出是外部程序存储器的读选通信号 当PSENPSEN AT89S51 由外部程序存储器取指令 或数据 时 每个机器周期两次有效 即PSEN 输出两个脉冲 当访问外部数据存储器时 没有两次有效的信号 PSEN EA VPP 外部访问允许 欲使 CPU 仅访问外部程序存储器 地址为 0000H FFFFH EA 端必须保持低电平 接地 需要注意的是 如果加密位 LB1 被编程 复 位时内部会锁存 EA 端状态 如 EA 端保持高电平 接 VCC 端 CPU 则执行内部程序存储器中的指令 Flash 存储器编程期间 该引脚用于施加 12V 编程电压 VPP XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入端 XTAL2 反向振荡放大器器的输出端 2 2 DS18B20DS18B20 美国 Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 一线总线 接口的温度传感器 在其内部使用了在板 ON B0ARD 专利技术 全部传感元件及转换电路集成在形如一只三极管的集成电路内 一线总线独特 而且经济的特点 使用户可轻松地组建传感器网络 为测量系统的构建引入全 新概念 现在 新一代的 DS18B20 体积更小 更经济 更灵活 使你可以充分 发挥 一线总线 的优点 新的 一线器件 DS18B20 体积更小 适用电压更宽 更经济 DS18B20 可以程序设定 9 12 位的分辨率 精度为 0 5 C 可选更 小的封装方式 更宽的电压适用范围 分辨率设定 及用户设定的报警温度存 储在 EEPROM 中 掉电后依然保存 DS18B20 的性能是新一代产品中最好的 性 能价格比也非常出色 继 一线总线 的早期产品后 DS1820 开辟了温度传感 器技术的新概念 DS18B20 使电压 特性及封装有更多的选择 让我们可以构 建适合自己的经济的测温系统 DS18B20 也支持 一线总线 接口 测量温度范围为 55 C 125 C 在 10 85 C 范围内 精度为 0 5 C 现场温度直接以 一线总线 的数字方式 传输 大大提高了系统的抗干扰性 适合于恶劣环境的现场温度测量 如 环 境控制 设备或过程控制 测温类消费电子产品等 与前一代产品不同 新的 产品支持 3 0V 5 5V 的电压范围 使系统设计更灵活 方便 而且新一代产品 更便宜 体积更小 2 1 DS18B20 的主要特性的主要特性 1 适应电压范围更宽 电压范围 3 0 5 5V 在寄生电源方式下可由数据 线供电 2 独特的单线接口方式 DS18B20 在与微处理器连接时仅需要一条口线即可 实现微处理器与 DS18B20 的双向通讯 3 DS18B20 支持多点组网功能 多个 DS18B20 可以并联在唯一的三线上 实 现组网多点测温 4 DS18B20 在使用中不需要任何外围元件 全部传感元件及转换电路集成在 形如一只三极管的集成电路内 5 温范围 55 125 在 10 85 时精度为 0 5 6 可编程的分辨率为 9 12 位 对应的可分辨温度分别为 0 5 0 25 0 125 和 0 0625 可实现高精度测温 7 在 9 位分辨率时最多在 93 75ms 内把温度转换为数字 12 位分辨率 时最多在 750ms 内把温度值转换为数字 速度更快 8 测量结果直接输出数字温度信号 以 一线总线 串行传送给 CPU 同时可传送 CRC 校验码 具有极强的抗干扰纠错能力 9 负压特性 电源极性接反时 芯片不会因发热而烧毁 但不能正常 工作 2 22 2 DS18B20DS18B20 的内部结构的内部结构 DS18B20 内部结构主要由四部分组成 64 位光刻 ROM 温度传感器 非挥发的 温度报警触发器 TH 和 TL 配置寄存器 DS18B20 引脚定义 1 GND 为电源地 2 DQ 为数字信号输入 输出端 3 VDD 为外接供电电源输入端 在寄生电源接线方式时接地 2 32 3 DS18B20DS18B20 工作原理工作原理 DS18B20 的读写时序和测温原理与 DS1820 相同 只是得到的温度值的位数 因分辨率不同而不同 且温度转换时的延时时间由 2s 减为 750ms DS18B20 测 温原理如图 3 所示 图中低温度系数晶振的振荡频率受温度影响很小 用于产 生固定频率的脉冲信号送给计数器 1 高温度系数晶振随温度变化其振荡率明 显改变 所产生的信号作为计数器 2 的脉冲输入 计数器 1 和温度寄存器被预 置在 55 所对应的一个基数值 计数器 1 对低温度系数晶振产生的脉冲信号 进行减法计数 当计数器 1 的预置值减到 0 时 温度寄存器的值将加 1 计数 器 1 的预置将重新被装入 计数器 1 重新开始对低温度系数晶振产生的脉冲信 号进行计数 如此循环直到计数器 2 计数到 0 时 停止温度寄存器值的累加 此时温度寄存器中的数值即为所测温度 图 3 中的斜率累加器用于补偿和修正 测温过程中的非线性 其输出用于修正计数器 1 的预置值 2 42 4 DS1820DS1820 使用中注意事项使用中注意事项 DS1820 虽然具有测温系统简单 测温精度高 连接方便 占用口线少等优 点 但在实际应用中也应注意以下几方面的问题 1 较小的硬件开销需要相对复杂的软件进行补偿 由于 DS1820 与微处理器间 采用串行数据传送 因此 在对 DS1820 进行读写编程时 必须严格的保证读写 时序 否则将无法读取测温结果 在使用 PL M C 等高级语言进行系统程序设 计时 对 DS1820 操作部分最好采用汇编语言实现 2 在 DS1820 的有关资料中均未提及单总线上所挂 DS1820 数量问题 容易使人 误认为可以挂任意多个 DS1820 在实际应用中并非如此 当单总线上所挂 DS1820 超过 8 个时 就需要解决微处理器的总线驱动问题 这一点在进行多点 测温系统设计时要加以注意 3 连接 DS1820 的总线电缆是有长度限制的 试验中 当采用普通信号电缆传 输长度超过 50m 时 读取的测温数据将发生错误 当将总线电缆改为双绞线带 屏蔽电缆时 正常通讯距离可达 150m 当采用每米绞合次数更多的双绞线带屏 蔽电缆时 正常通讯距离进一步加长 这种情况主要是由总线分布电容使信号 波形产生畸变造成的 因此 在用 DS1820 进行长距离测温系统设计时要充分考 虑总线分布电容和阻抗匹配问题 4 在 DS1820 测温程序设计中 向 DS1820 发出温度转换命令后 程序总要等待 DS1820 的返回信号 一旦某个 DS1820 接触不好或断线 当程序读该 DS1820 时 将没有返回信号 程序进入死循环 这一点在进行 DS1820 硬件连接和软件设计 时也要给予一定的重视 测温电缆线建议采用屏蔽 4 芯双绞线 其中一对线接地线与信号线 另一组接 VCC 和地线 屏蔽层在源端单点接 四 理论分析与计算四 理论分析与计算 系统程序主要包括主程序 读出温度子程序 温度转换命令子程序 计算温度 子程序 显示数据刷新子程序等 4 14 1主程序流程图 主程序的主要功能是负责温度的实时显示 读出并处理 DS18B20 的测量的当前 温度值 温度测量每 1s 进行一次 这样可以在一秒之内测量一次被测温度 其 程序流程见图 8 所示 图 8 程序流程图 4 24 2 读出温度子程序流程图读出温度子程序流程图 读出温度子程序的主要功能是读出 RAM 中的 9 字节 在读出时需进行 CRC 校验 验有错时 不进行温度数据的改写 其程序流程图如图 9 所示 4 34 3 温度转换命令子程序流程图温度转换命令子程序流程图 温度转换命令子程序主要是发温度转换开始命令 当采用 12 位分辨率时转换时 间约为 750ms 在本程序设计中采用 1s 显示程序延时法等待转换的完成 温度 转换命令子程序流程图如上图 图 9 所示 计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算 并进行温度值正负的 判定 其程序流程图如图 10 所示 五 电路与程序设计五 电路与程序设计 5 15 1 电路图 电路图 5 25 2 程序 程序 include include define uchar unsigned char define uint unsigned int bit DS18B20 IS OK 1 sbit DQ P1 4 sbit BEEP P1 2 sbit TEST P1 7 sbit jian di P1 5 sbit jia gao P1 6 数码管位选 sbit ge P1 0 sbit shi P1 1 设置报警高低温时的按键次数 int key counts 0 正常读取 DS18B20 的处理温度 uchar T 数码管显示程序 0 空显示的段码 低电平显示 uchar duan 17 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 0 x88 0 x83 0 xc6 0 xa1 0 x86 0 x8 e 0 xff 暂存 DS18B20 的初始温度值 uchar Temp Value 2 0 x00 0 x00 平常温度段缓存 uchar duan hc 2 0 x00 0 x00 设置报警温度时的段缓存 uchar counts hc 2 0 x00 0 x00 报警低 20 高 70 温度 uchar Alarm Temp 2 0 x14 0 x46 DS18B20 延迟 void Delay int x while x 延迟一秒 void Delay ms int i uchar t while i for t 0 t 180 t 初始化 DS18B20 uchar Init DS18B20 uchar status DQ 1 Delay 8 DQ 0 Delay 90 DQ 1 Delay 8 status DQ Delay 100 DQ 1 return status 成功时返回值为 0 读一个字节 uchar ReadOneByte uchar i dat 0 DQ 1 nop for i 0 i 1 DQ 1 nop nop if DQ dat 0 x80 Delay 30 DQ 1 return dat 写一个字节 void WriteOneByte uchar dat uchar i for i 0 i 1 没设置报警高低温平常温度显示 void Show uchar j T Temp Value 0 duan hc 1 T 100 10 duan hc 0 T 10 for j 0 j 24 j P0 duan duan hc 0 ge 1 shi 0 Delay 150 P0 0XFF P0 duan duan hc 1 ge 0 shi 1 Delay 150 P0 0XFF 读取 DS18B20 的实时温度值 void Read Temperature uchar j if Init DS18B20 1 DS18B20 IS OK 0 else WriteOneByte 0 xCC WriteOneByte 0 x44 Init DS18B20 WriteOneByte 0 xCC WriteOneByte 0 xBE Temp Value 0 ReadOneByte Temp Value 1 ReadOneByte DS18B20 IS OK 1 Show 设置报警高低温度时的温度显示 void Show Temperature uchar j counts hc 1 key counts 100 10 counts hc 0 key counts 10 for j 0 j 24 j P0 duan counts hc 0 ge 1 shi 0 Delay 150 P0 0XFF P0 duan counts hc 1 ge 0 shi 1 Delay 150 P0 0XFF 设置报警高低温 void gao di uchar key P3 0 xFF key 0 xFF key P3 Show Temperature if key 0 xFF Show Temperature if key 0 xFF switch key case 0 xFD if key counts 99 key counts break case 0 xFB if key counts 99 Alarm Temp 1 key counts
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际安全生产培训的可持续发展评估指标体系构建考核试卷
- 3D打印在机器人传感器支架设计中的应用考核试卷
- 数字绘画软件发展分析考核试卷
- 西学医师考试试题及答案
- 数学公益考试题及答案
- 拜城居民考试题及答案
- 供应链虚拟库存管理政策建议考核试卷
- 一通三防考试试题及答案
- 泰达招聘试题及答案
- 中部地区融入统一大市场策略
- 医美行业营销策划方案模板
- 2025年人教版一年级下册数学期末模拟试卷(含答案)
- 资产评估风险管理制度
- 餐厅控烟制度管理制度
- 新媒体部笔试题目及答案
- 道路旅客运输安全生产管理制度x
- 人教(部编版)道德与法治八下5.3基本政治制度教学设计
- 黑龙江省2024年普通高校招生体育类本科批院校专业组投档分数线(历史类)
- 水闸地基施工方案
- 企业数字化转型服务协议
- 《建立合适边界:亲子教育课件》
评论
0/150
提交评论