新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于串口的温度检测数据单片机仿真

基于串口的温度检测数据单片机仿真

作者:时间:2012-09-23来源:网络收藏

摘要:随着系统的广泛应用和计算机网络技术的普及,的通信功能愈来愈显得重要。通信是指单片机与计算机或单片机与单片机之间的信息交换,通常单片机与计算机之间的通信用的较多。本文以为基础,研究了单片机与PC 机的通信原理及电路的设计。

本文引用地址:http://www.eepw.com.cn/article/170815.htm

  0 引言

  本文研究的是一种收发模块。利用DS18B20 传感器设计温度监测模块,精确到0.1℃,用液晶显示当前温度,然后通过调试助手向单片机发送指令。当单片机收到十六进制指令01时,将当前温度值以1s 为间隔传回PC 机显示,同时PC 机显示Turn on temp;当单片机收到十六进制指令02 时,停止温度值的回传,PC 机显示Turn off temp;当单片机收到其它指令时,PC 机显示Error。

  1 总体设计

  本系统功能由硬件和软件两大部份协调完成,硬件部分主要完成信息的显示;软件主要完成信号的处理及控制功能等。

  本系统的硬件采用模块化设计,以AT89C52 单片机为核心,与LCD 显示电路、串行口通信电路及DS18B20 温度电路组成控制系统。该系统硬件主要包括以下几个模块:

  AT89C52 主控模块、LCD 显示模块、串行口通信模块、DS18B20 温度检测模块等。其中AT89C52 主要完成外围硬件的控制以及一些运算功能,LCD 显示模块完成字符、数字的显示功能、串行口通信模块主要完成单片机和PC 机之间的通信功能,DS18B20 温度检测模块主要完成环境温度检测功能。系统组成方框图如图1.1 所示。

图1.1系统硬件组成方框图

  图1.1系统硬件组成方框图

  应用软件采用模块化设计方法。该系统软件主要由主程序、接收发送中断子程序、LCD 显示子程序等模块组成,系统软件结构框图如图1.2 所示。

图1.2系统软件设计框图。

  图1.2系统软件设计框图。

  2 系统工作原理

  MCS-51 单片机串行口发送/接收数据时,通过2 个串行缓冲器SBUF 进行,这2 个缓冲器采用一个地址(98H),但在物理上是独立的。其中接收缓冲器只能读出不能写入,50 发送缓冲器只能写入不能读出。

  1. 发送过程

  当数据被写入SBUF 寄存器后,单片机自动开始从起始位发送数据,发送到停止位的开始时,由内部硬件将TI 置1,向CPU 申请中断,接下来可在中断服务程序中做相应处理,也可选择不进入中断。

  2. 接收过程

  串行口的接收与否受制于允许接收位REN 的状态,当REN 被软件置1后,允许接收器接收。串口的接收器以所选波特率的16 倍速对RXD 线进行监视。当1到0跳变时,检测器连续采样到RXD 线上低电平时。便认定RXD 端出现起始位,继而接收控制器开始工作。在每位传送时间的第7、8、9 三个脉冲状态采样RXD 线,决定所接收的值为0或1.当接收完停止位后,控制电路使中断标志R1置为1.

  3. 温度检测

  温度检测采用DALLAS 最新单线数字温度传感器DS18B20,DS18B20 是一种新型的一线器件,其体积更小,更适用于多种场合,且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20 是世界上第一片支持一线总线接口的温度传感器。

  温度测量范围为-55℃~+125℃,可编程为9 位~12位转换精度,可分辨温度分别为0.5℃,0.25℃,0.125℃和0.0625℃。在9 位分辨率时,最多在93.75ms 内把温度转换为数字;在12 位分辨率时,最多在750ms 内把温度值转换为数字。

3 温度传感器

  3.1 温度传感器特性

  DALLAS 最新单线数字温度传感器DS18B20[2]是一种新型的一线器件,其体积更小,更适用于多种场合,且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20 是世界上第一片支持一线总线接口的温度传感器。温度测量范围为-55℃~+125℃,可编程为9 位~12 位转换精度,可分辨温度分别为0.5℃,0.25℃,0.125℃和0.0625℃。在9 位分辨率时,最多在93.75ms 内把温度转换为数字;在12 位分辨率时,最多在750ms内把温度值转换为数字。DS18B20的性能特点如下:

  1. 独特的单线接口仅需要一个端口引脚进行通信;

  2. 多个 DS18B20 可以并联在惟一的三线上,实现多点组网功能

  3. 无须外部器件;

  4. 可通过数据线供电,电压范围为3.0~5.5V;

  5. 零待机功耗;

  6. 温度以 9 或12 位数字;

  7. 用户可定义报警设置;

  8. 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;

  9. 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

  DS18B02 可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1 脚接地,2 脚作为信号线,3 脚接电源。另一种是寄生电源供电方式,单片机端口接单线总线,为保证在有效的DS18B20 时钟周期内提供足够的电流,可用一个MOSFET 管来完成对总线的上拉。

  当 DS18B20 处于写存储器操作和温度A/D 转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us.采用寄生电源供电方式时VDD 端接地。由于单线制只有一根线,因此发送接口必须是三态的。

图 3.1 DS18B20 引脚图

  图 3.1 DS18B20 引脚图

  3.2 工作时序图

  1. 初始化

图 3.2 初始化时序图

  图 3.2 初始化时序图

  1)先将数据线置高电平1;2) 延时(该时间要求不是很严格,但是要尽可能短一些);3) 数据线拉到低电平0;4) 延时 750us(该时间范围可以在480~960us);5) 数据线拉到高电平1;6)延时等待。如果初始化成功则在15~60ms内产生一个由DS18B20 返回的低电平0,据该状态可以确定它的存在。但是要注意,不能无限地等待,不然会使程序进入死循环,所以要进行超时判断;7) 若 CPU 读到数据线上的低电平0 后,还要进行延时,其延时时间从发出高电平算起最少要480us;8)将数据线再次拉到高电平后结束。

  2. DS18B20 写数据

图3.3 写数据时序图

  图3.3 写数据时序图

  1) 数据线先置低电平0;

  2)延时确定的时间为15us;

  3) 按从低位到高位的顺序发送数据(一次只发送一位);

  4) 延时时间为 45us;

  5) 将数据线拉到高电平1;

  6) 重复 1)到5)步骤,直到发送完整个字节;

  7)最后将数据线拉高到1.

  3. DS18B20 读数据

图3.4 读数据时序图

  图3.4 读数据时序图

  1)将数据线拉高为1;

  2) 延时 2us ;

  3) 将数据线拉低0 ;

  4) 延时 6us ;

  5) 将数据线拉高1 ;

  6)延时 4us ;

  7) 读数据线的状态得到1 个状态位,并且进行数据处理;

  8) 延时 30us ;

  9) 重复 1)到7)步,知道读取完一个字节。

  4 硬件设计

  4.1 时钟电路及复位电路

  1.时钟电路

  时钟电路可以产生CPU 校准时序,是单片机的控制核心,本次设计是通过外接12MHz的晶振来实现时钟电路的时序控制。在使用片内振荡器时,XTAL1 和XTAL2 分别为反向放大器的输入端和输出端。外接晶体以及电容C3 和C5 构成并联谐振电路,接在放大器的反馈回路中。当用外部时钟驱动时,XTAL2引脚应悬空,而由XTAL1引脚上的信号驱动,外部振荡器通过一个2 分频的触发器而成为内部时钟信号,故对外部信号的占空比没有什么要求,但最小和最大的高电平持续时间和低电平持续时间应符合技术要求。电路如图4.1 所示。

电流变送器相关文章:电流变送器原理
温湿度控制器相关文章:温湿度控制器原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭