以AT89C52单片机为核心的单片机与PC机通信原理是什么?

2020-02-03来源: elecfans关键字:AT89C52  单片机  通信原理

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


引言

本文研究的是一种基于串口的温度检测数据收发模块。利用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 所示。

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

图1.1系统硬件组成方框图


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

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

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

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

图 3.1 DS18B20 引脚图


3.2 工作时序图

1. 初始化

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

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

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

图3.3 写数据时序图


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

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

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

4) 延时时间为 45us;

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

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

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


3.3 DS18B20 读数据

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

图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 所示。

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

图 4.1 晶振电路


2.空闲方式

在空闲方式下,CPU 的内部时钟信号被门控电路所封锁,CPU 即进入睡眠状态,但内部时钟信号仍继续供给中断系统,定时器和串行口。这种方式由软件调用。在空闲方式期间,片内RAM和所有专用寄存器的状态仍被保留,空闲方式可通过任何允许的中断或硬件复位来终止。当空闲方式由硬件复位终止时,通常系统在空闲处恢复程序的执行。硬件复位只需要信号持续有效两个机器周期。当用复位终止空闲方式时,为防止避免意外写入端口引脚的可能性,调用空闲方式指令的下一条指令不应是写端口引脚或外部存储器。


3.掉电工作方式

在掉电方式下,片内振荡器停止工作。调用掉电指令是执行的最后一条指令。片内RAM 和专用寄存器的值被保留,直到掉电方式终止。退出掉电方式只能靠硬件复位。复位后将重新定义所有专用寄存器,但不改变RAM 的内容。在VCC 未恢复到正常工作电压之前,不能启动复位,复位信号应保持足够长的时间,以保证振荡器的起振和达到稳定。


为了使单片机正常工作,还需要加入上电复位电路和掉电检测电路。上电复位简要原理:

在系统不需要复位时,RST端是低电平;按下按键,RST端变为高电平。

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

图 4.2 上电复位电路


AT89C51、晶振电路与上电复位电路共同组成单片机最小系统,如图4.3 所示。

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

图 4.3 最小系统


4.2 温度传感器

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

图4.4 DS18B20连线图


从图 4.4 可以看出,DS18B20 与单片机的连接非常简单,单片机只需要一个I/O 口就可以控制DS18B20.这个图的接法是单片机与一个DS18B20 通信,如果要控制多个DS18B20进行温度采集,只要将所有的DS18B20 的I/O 口全部连接到一起就可以了。


4.3 LCD显示模块

显示电路采用LCD1602 液晶显示屏,P2 作为液晶8 位数据输入端口。P1.0 口作为液晶数据/命令选择端口,P1.1 为液晶使能端口。

以AT89C52单片机为核心的单片机与PC机通信原理是什么?

图 4.5 LCD 显示模块


4.4 串行口通信模块设计

51 单片机有一个全双工的串行通信口,使单片机和计算机之间可以方便地进行通信。

电平范围是电路能够安全可靠识别信号的电压范围。


CMOS 电路的电平范围一般是从0 到电源电压。CMOS 电平中,高电平(3.5~5V)为逻辑“1”

[1] [2]
关键字:AT89C52  单片机  通信原理 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic487049.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于AT89S52与总线技术实现小区周界防越报警系统的设计
下一篇:基于51单片机的串口中断发送数据帧

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

嵌入式arm学习总结(三)--IIC 基于AT24C02
1.IIC---SDA、SCLIIC协议  发明者  Philips公司   通过IIC芯片收取版权税近距离通信标准模式  100KBIT/s快速模式 400K    常用   S3C2440使用  高速模式 3.4M   上拉电阻  10K    如果速度越快,上拉电阻越小,增加驱动能力2.IIC读写过程IIC读过程:1)开始2)写芯片地址3)写芯片内部地址4)将写变成读5)读数据6)结束IIC写过程1)开始2)写芯片地址3)写芯片内部地址4)写数据5)结束AT24c
发表于 2020-03-13
51单片机(AT89C52)一键多功能(短按、长按)
短按(按下持续时间小于3s)一次数码管显示加1,同时流水灯计数加1。长按(按下持续时间大于3s)时,数码管显示每500ms加1,同时流水灯每500ms计数加1。#include<reg52.h>typedef unsigned char uchar;typedef unsigned int uint;#define NOKEY 0#define KEYDOWN 1#define KEYUP 2uchar keystate;sbit key=P2^7;void keyscan(void);uchar timeflag;uchar code table[]={ 0x80,0xf2,0x48,0x60, 0x32
发表于 2020-03-05
51单片机(AT89C52)一键多功能(短按、长按)
STC8A8K64单片机关于AT24C04基本读写操作
实验:AT24C04基本读写操作步骤及现象:在下载程序前,选择stc-isp的IRC频率:12MHz。程序下载完成后,在串口助手界面,HEX模式下,选择波特率9600,然后点击“打开串口”按钮。这时按独立按键1在接收缓冲区打印出刚写入的16个数据。*数据帧格式I2C总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/T),用“0”表示主机发送数据(T),“1”表示主机接收数据(R)。每次数据传送总是由主机产生的终止信号结束。但是,若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。在总线的一次
发表于 2020-03-05
STC8A8K64单片机关于AT24C04基本读写操作
【菜鸟入门】stm32 之 eeprom
/* at24c02.c */#include <stm32f10x.h>#include "init.h"#include "iic.h" #define send_slave_addr(a) iic_send_byte(a)#define send_rom_addr(a) iic_send_byte(a)#define ROM_SIZE (2*1024) //2K#define ADDR_SIZE 256#define PAGE_SIZE 8#define PAGE 32 int at24c02_init(unsigned char
发表于 2020-03-02
基于AT89C52单片机的转速测量仪设计
。2 系统设计测速系统总体结构如图1所示,主要包括红外测速传感器(由红外发射与接收电路和齿盘组成)、信号处理电路、单片机以及数字显示部分。其工作过程如下:当齿盘旋转时,由于轮齿的遮挡,红外发射管与接收管之间的红外线光路时断时续,信号处理电路将此变化的光信号转换为电脉冲信号,一个脉冲信号即表示齿盘转过一个齿。单片机对脉冲进行计数,同时通过其内部的计时器对接收一定数目的脉冲计时,根据脉冲数目及所用时间就可计算出齿盘的转速,最后通过数字显示部分将转速显示出来。2.1 系统硬件设计根据红外测速的原理,系统的电路设计如图2所示。本系统采用AT89C52单片机,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8KB的可反复擦写
发表于 2020-02-17
基于AT89C52单片机的转速测量仪设计
MSP430平台下实现AT24C02的读写操作
EEPROM可以随机访问和修改其中的任何一个字节,可以往每个bit中写入0或者1,掉电后数据不丢失,可以保存100年,可以擦写100w次。具有较高的可靠性,但是电路复杂/成本也高。因此目前的EEPROM都是几十千字节到几百千字节的,绝少有超过512K的,常用来保存用户数据,运行过程中可以改变。下面在MSP430平台下以AT24C02为例说明该类可擦除ROM的使用。AT24C02的存储容量为2K bits,内容分成32页,每页8 bytes,共256 bytes。AT24C02对外以I2C总线形式传输数据,外观如下图所示:A0、A1和A2三个引脚作寻址用;SDA和SCL即I2C总线的数据与时钟引脚;WP作写保护用,即WP在保持高电平
发表于 2020-02-05
MSP430平台下实现AT24C02的读写操作
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved