基于at89s52的数字温度计设计(编辑修改稿)内容摘要:

电路,就可构件一个单片机运行的最小系统,但是单片机的开始需要借助个人电脑,在个人电脑上,编写和调试开发语言,并将编译好后的机器语言通过下载器烧写到单片机内,使单片机运行预先设计的程序。 单片机的开发需要个人电脑上运行的单片机开发环境,程序下载器和开发板,如 所用的 AT89S52 单片机,就需要 KEIL 开发环境,并口下载线和开发板。 在 本 设计方案中,选用的是 ATMEL 公司的 52 系列的 AT89S52 单片机 , 属于 复杂指令( CISC)运算单片机, AT89S52 是一种低功耗、高性能 CMOS 8 位微控制器,它具有 8k字节 Flash, 256 字节 RAM, 32 位 I/O 口线,看门狗定时器, 2 个数据指针,三个16 位定时器 /计数器,一个 6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。 另外, AT89S52 可降至 0Hz 静态逻辑操作,支持 2种软件可选择节电模式。 空闲模式下,CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。 掉电保护方式下, RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中 断或硬件复位为止。 使该型号的单片机有极高的性能价格比。 计算机学院暑期项目文档 7 它的 KEIl 开发环境支持在 WINDOWS 平台上的 C 语言 及汇编语言 程序开发,方便软件设计的模块化和结构化的开发模式。 第 3 章 具体 设计与实现 系统总体设计 该系统由 单总线温度检测系统 ,显示系统, 开关 系统 三 个部分构成,同时把系统设计分为硬件和软件两部分来设计。 本设计采 用 ATMEL 的 52 系列 AT89S52 单片机应用系统来实现设计要求,高性能、低功耗的 8位微处理器 ,非易失性的程序和数据存储器 , 在单芯片上,拥有灵巧的 8 位 CPU 和在系统可 编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 温度采集及 A/D 转换,采用 DALLAS 公司的 DS18B20。 DS18B20 是 DALLAS 公司生产的总线式数字温度传感器,具有 3个 引脚;温度测量范围为- 55℃~+ 125℃ ,可编程为9位~ 12 位 A/D 转换精度,测温分辨率可达 ℃,被测温度用符号扩展的 16 位数字量串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生; 多个 DS18B20可以并联到 3 根或 2根线上 , CPU 只需一根端口线就能与诸多 DS18B20 通 信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。 以上特点使 DS18B20 非常适用于 远距离多点温度检测系统。 数据显示装置采用的是 LED数码管, LED 数码管结构简单,价格便宜。 分为共阴和共阳两类 ,八段 LED 显示管是通过同名管脚上所加的电平高低来控制发光二极管是否点亮从而显示不同的字形。 数字温度 计 系统 基本工作原理为: 首先检测单总线情况,判断是否有单总线芯片在工作,然后对于数字温度传感器采集到的温度数值 , 单片机对温度数值进行处理,然后作温度显示。 在 图 31 中 , 在系统中控制模块主要由 AT89S52 负责整 个系统的控制工作 , 显示模块主要由 LED 数码管 显示 信息 ,温度采集是由数字温度传感器 DS18B20 实现的。 计算机学院暑期项目文档 8 图 31 系统模块图 硬件设计 温度检测系统 设计 DS18B20 数字温度计提供 9~12 位温度读数,只是器件的温度。 信息经过单线接口送入 DS18B20 或从 DS18B20 送出,因此从主机 CPU 到 DS18B20 仅需要一条线。 DS18B20 的电源可以由数据线本身提供而不需要外部电源。 因为每一个 DS18B20 在出厂时已经给定了唯一的序号,因此任意多个 DS18B20 可以存放在同一条单 线总线上。 这允许在许多不同的地方放置温度敏感器件。 DS18B20 的测量范围从 55℃到 +125 ℃,增量值为 ℃,可在 1s内 把 温度变成数字。 每一个 DS18B20 包括一个唯一的 64位长的序号,该序号值存放在 DS18B20 内部的ROM 中。 开始 8位是产品类型编码。 接着的 48位是每个器件唯一的序号。 最后 8位是前面 56 位的 CRC(循环冗余校验)码。 DS18B20 中还有用于贮存测得的温度值的两个 8位贮存器 RAM,编号为 0号和 1号。 1号存贮器存放温度值的符号,如果温度为负,则 1号存贮器 8位全为 1,否则全为 0。 0 号存 贮器用于存放温度值的补码 , LSB(最低位)的‘ 1’表示 ℃。 将存贮器中的二进制数求补再转换成十进制数并除以 2,就得到被测温度值。 每只 DS18B20 都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。 采取数据总线供电方式可以节省一根导线,但完成温度测量的时间较长;采取外部供电方式则多用一根导线,但测量速度较快。 本设计 采用 DS18B20 单总线温度检测芯片, 在芯片上只有 3个接口,分别对应电源VCC,地线 GND,信号线 TX/RX,由于 DS18B20 芯片使用 5V的供电方式, 本设计 直接将电源 VCC先上 直接串入一个 欧姆的电阻并上拉到信号线上来实现芯片的供电, 计算机学院暑期项目文档 9 这样的供电的方式就叫作寄生供电 [3],这样设计的原因是单总线的收发都是同一根线,若在总线上有多个设备,这需要在寻找指定设备和设备应答上使总线保持严格的通讯时序。 图 32 单总线电路图 单片机最小系统 设计 AT89S52 是 ATMEL 公司推出的 单片机 , 它 是一款采用低功耗 CMOS 工艺生产的 8位单片机。 系统内可编程特性,使得无需购买昂贵的仿真器和编程器也可进行单片机嵌入系统的设计和开发。 AT89S52 具有 8k字节 Flash, 256 字节 RAM, 32 位 I/O 口线,看门狗定时器, 2 个数据指针,三个 16 位定时器 /计数器,一个 6向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。 另外, AT89S52 可降至 0Hz 静态逻辑操作,支持 2种软件可选择节电模式。 空闲模式下, CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。 掉电保护方式下, RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 显示系统 设计 为方便用户直观地看到当前的温度, 本设计 使用 数码管显示器。 LED 显示器常用的工作方式有静态显示方式和动态显示方式。 所谓静态显示方式就是当显示器显示一个字符时,相应的发光二极管始终保持导通或截止。 在显示的过程中,其状态是静止不变的,直到一个字符显示完毕。 而动态显示方式在显示每一个字符的过程中,都是一位一位的轮流点亮要显示的各个位。 每一位点亮后保留 1 ms,然后去点亮下一个要点亮的位,这样反复循环。 计算机学院暑期项目文档 10 本系统采用的是 LED 的动态显示。 在多位 LED 显示时,为了简化硬件电路,常常将所有位的段选线并联在一起,由一个 8 位的 I/O 口控制,而各位的共阳极或共阴极引脚则分别有单独的 I/O 口来控制,以实现 各位的分时复用。 电源系统设计 电源系统为整个温度检测系统提供稳定可靠的电源, 本系统 5V 稳压电路设计采用的 方案 是实验板上 USB 接口 提供的 5V电源。 软件设计 软件设计和开发 本设计 使用的是基 于 C语言的 KELL 环境 ,使得本设计 能够让软件构件更加结构化,模块化,并方便修改和扩展。 下面 本设计 将软件分为单总线驱动, LED显示驱动, 温度转化模块, 主程序大循环 三 个模块来说明。 图 33 软件结构图 温度传感器驱动 设计 单总线驱动模块 温度转化模块 LED 显示模块 Init_18B20() 主程序 大 循环 san() read_byte() workTemp() write_byte() readTemp() 计算机学院暑期项目文档 11 由于 本设计 的系统只有一个 18B20 芯片,所以需要在总线上只访问一个设备。 采用单总线数据传输方式, DS18B20 的 数据 I/O 均由同一条线完成。 因此,对读写的操作时序要求严格。 为保证 DS18B20 的严格 I/O时序, 需要做较精确的延时。 为了得到精确的延时,采用了硬件延时的方法。 在 DS18B20 操作中,用到的延时有 15 μ s, 90 μ s,270 μ s, 540 μ s等。 因这些延时均为 15 μ s的整数倍,因此可编写一个 DELAY15( n)函数,只要用该函数进行大约 15 μ s N 的延时即可。 有了比较精确的延时保证,就可以对 DS18B20 进行读写操作、温度转换及显示等操作。 同时为了方便程序的模块化,将 单总线驱动 设计为初始化函数 init_1820( ),读温度函数 read_byte( ),写指令函数: write_byte( ) 3个大的函数模块。 (1) 初始化 主机发一 个 复位脉冲 (最短为 480gs的低电平 ),接着主机释放总线进入接收状态,DS 18B20在检测到 1/O引脚上的上升沿之。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。