串口通信的前期讲解

串口通信(电脑与外设的一种通讯)

本次串口通信主要面向51单片机通用异步收发传输器,通常称作串口通信,是一种异步收发传输器。



前言

可以想象我们的电脑和使用设备的一种谈话,其中含有同步通信(发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式)和异步通信(发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式)


一、对串口通信介绍

硬件设置

:RTS/CTS (Request To Send/Clear To Send)即请求发送/清除发送协议。
  用于半双工时的收发切换,半双工的意思是说,发的时候不收,收的时候不发。那么怎么区分收发呢?缺省时是DCE向DTE发送数据,当DTE决定向DCE发数据时,先有效RTS,表示DTE希望向DCE发送。一般DCE不能马上转换收发状态,DTE就通过监测CTS是否有效来判断可否发送,这样避免了DTE在DCE未准备好时发送所导致的数据丢失。
简单的说就是:在发送之前告诉你我要发送数据(有效RTS),通过检测CTS来查看这个时候总线是否空闲,来决定是否可以发送数据

软件设置

:串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。
具体步骤如下:

1.确定T1的工作方式(编程TMOD寄存器);

2.计算T1的初值,装载TH1、TL1;

3.启动T1(编程TCON中的TR1位);

4.确定串行口控制(编程SCON寄存器);

5.串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。

二、步骤

1.tongxin_init的初始化函数

代码如下(示例):

void tongxin_Init()
{
	SCON=0x40;
	PCON |= 0x80;
	TMOD &= 0x0F;		//设置定时器模式
	TMOD |= 0x20;		//设置定时器模式
	TL1 = 0xF3;		//设定定时初值
	TH1 = 0xF3;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1
}

void tongxin_SendByte(unsigned char Byte)
{
	SBUF=Byte;
	while(TI==0);
	TI=0;
}

2.mian.c函数的写法

在这里插入代码片#include <REGX52.H>
#include "Delay.h"
#include "tongxin_.h"

typedef unsigned char u8;
u8 i;
void delay(u8 len)
{
	while(len--);
}
void main()
{
	tongxin_Init();			//串口初始化
	while(1)
	{
		tongxin_SendByte(i);	//串口发送一个字节
		i++;				//i自增
		delay(1000);		//延时1秒
	}
}

学习方法

当你开始对51单片机的串口通信时,需要对SCON,PCON,TMOD进行了解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值