您当前的位置:五五电子网电子知识单片机-工控设备单片机通信基于串口通信的单片机仿真和C语言开发 正文
基于串口通信的单片机仿真和C语言开发

基于串口通信的单片机仿真和C语言开发

点击数:7747 次   录入时间:03-04 11:33:32   整理:http://www.55dianzi.com   单片机通信

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

     引 言

    本论文题目为基于串口通信的单片机仿真和C 语言开发,研究的是一种基于串口的温度检测数据收发模块。利用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系统硬件组成方框图

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

    56
图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".



www.55dianzi.com

    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 端接地。由于单线制只有一根线,因此发送接口必须是三态的。

    DS18B20 引脚图
图 3.1 DS18B20 引脚图

    3.2 工作时序图

    1. 初始化

    初始化时序图
图 3.2 初始化时序图

   



www.55dianzi.com

    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 写数据时序图

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

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

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

    4) 延时时间为 45us;

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

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

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

    3. DS18B20 读数据

    读数据时序图
图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]  下一页


本文关键字:单片机  通信  开发  C语言  单片机通信单片机-工控设备 - 单片机通信

《基于串口通信的单片机仿真和C语言开发》相关文章>>>