串行接口的通信及相关概念

串行接口

串行接口简称串口,主要的作用就是通信,只需要一对传输线上就可以实现双向通信。

在通信领域内,有两种数据通信方式:并行通信和串行通信

串行通信方式支持单工半双工全双工通信

  • 单工
    仅能进行一个方向的数据传送(通俗的讲就是和哑巴对话,只能单方面讲话)
  • 半双工
    数据可以在两个方向上进行传送,但是这种传送绝不能同时进行。(双向,但不同时),通俗的讲就是对讲机的原理,双方都能讲话,不过不能同时讲话
  • 全双工
    能够在两个方向同时进行数据传送(最好理解,比如电话、两个人面对面聊天就是全双工)

串行通信特点

  • 一位一位地顺序传送
  • 只要一堆传输线就可以实现双向通信,发送占用一条线,接收占用一条线
  • 远距离通信(几米到几千米),但传送速度较慢

编程配置寄存器

1.SCON(. 串行口1的控制寄存器):选择串口的工作方式及数据格式
2.计算波特率
要用到定时器1来做波特率的发生器
TCON

  • RI
    数据接收的过程,一直是低电平,当数据接收完毕后,被置为高电平,被硬件

  • TI
    数据发送的过程,一直是低电平,当数据发送完毕后,被置为高电平,被硬件

RI、TI,当被硬件拉高,我们处理完数据,需要清零(RI=0)

串口初始化代码:

//串口初始化
//1. 串口协议相关初始化
	//1.1 数据格式: 起始位,数据位,停止位,奇偶校验
	//工作方式1:1位起始位,8位数据位(低位在先)和1位停止位 SM0、SM1为 “01	 	//芯片手册: 每个硬件都有一个开发手册,软件代码必须根据手册来写
void initUart()
{
	//SCON = 0x50;//数据位8位,停止位1位,起始位1位怎么配!都要根据芯片手册来写 ,使能接收
	//SCON = 0x40;
	SCON |= 0x1 << 6; //配置sm1为1,sm0本来就是0
	SCON &= ~(0x1 << 7);
	 		 //1. 如何让一个位上的是为1,而不影响其他位,2。如何让一位上的数为0,而不影响其他数!
	SCON |= 0x1 << 4;
  //  SCON |= 0x1 << 6 | 0x1 <<4;

	//控制寄存器SCON用于选择串行通信的工作方式?   和某些控制功能?
	//1.2 波特率设置
	//TMOD = 0x20;
	TMOD |= 0x1<<5;
	TH1 = 0xFD;
	TL1 = 0xFD; 
//	TR1 = 1; //启动定时器,让定时器工作,数节拍!
	TCON |= 0x1 << 6;
}

波特率选择的是9600的方式,其中系统频率是11.0592MHz,需要×2^16次方
工作方式1的波特率公式为:( 2^SMOD/32 )×(定时器1的溢出率或BRT独立波特率发生器的溢出率)

定时器 = SYSclk/12/( 256 - T H1);

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

书名:《Visual C++串口通信及测控应用实例详解》(电子工业出版社.刘长征.张荣华.党媚.李江全) PDF格式扫描版,全书分为6章,共373页。2014年1月出版。 注:本文档仅包含前3章的内容共46页。 内容简介 本书从应用角度出发,首先介绍与串口通信程序设计有关的基础知识,包括串行通信概述、VC++串口通信基础、计数制与编码;然后通过PC、远程I/O模块、三菱/西门子PLC、单片机、智能仪器等典型串口设备,详细讲解VC++开发串口通信及测控程序的设计方法。每个设计实例由设计任务、线路连接、串口通信调试、程序界面设计、程序设计详解、系统运行测试等部分构成。 本书内容丰富,论述深入浅出,有较强的实用性和可操作性,可供自动化、计算机应用、电子信息、机电一体化、测控仪器等专业的大学生、研究生以及计算机测控系统研发的工程技术人员学习和参考。 注:原书无书签。为了方便阅读,本人在上传前添加了完整的书签。 目 录 第1章 串行通信概述 (1) 1.1 串行通信的基本概念 (1) 1.1.1 通信通信方式 (1) 1.1.2 串行通信的数据传输方式 (3) 1.1.3 串行通信的基本参数 (4) 1.1.4 串行通信的基本方式 (4) 1.2 串行通信协议 (5) 1.2.1 异步串行通信协议 (5) 1.2.2 同步串行通信协议 (8) 1.3 串行通信的接口标准 (10) 1.3.1 RS-232C串口通信标准 (11) 1.3.2 RS-422/485串口通信标准 (13) 1.4 串行通信线路连接 (15) 1.4.1 短距离线路连接 (15) 1.4.2 长距离线路连接 (15) 1.5 串口调试工具 (17) 1.5.1 超级终端程序 (17) 1.5.2 串口调试助手 (18) 第2章Visual C++与串口通信 (19) 2.1 串口通信控件MSComm (19) 2.1.1 MSComm控件处理通信的方式 (19) 2.1.2 MSComm控件的添加 (20) 2.1.3 MSComm控件的常用属性 (21) 2.1.4 MSComm控件的OnComm事件 (27) 2.2.5 MSComm控件通信步骤 (29) 2.2 串口通信API函数 (30) 2.2.1 动态链接库与API函数 (30) 2.2.2 VC++与动态链接库 (31) 2.2.3 与串口通信有关的API函数 (32) 2.2.4 利用API函数操作串口 (35) 2.2.5 利用API函数实现串口通信的查询方法 (37) 2.2.6 使用API函数实现PC与PC串口通信实例 (38) 第3章 计数制与编码 (44) 3.1 计数制 (44) 3.1.1 计数制概述 (44) 3.1.2 十进制与二进制 (45) 3.1.3 八进制与十六进制 (46) 3.2 计数制转换及其程序设计 (47) 3.2.1 二进制与十进制的转换 (47) 3.2.2 二进制与八进制的转换 (51) 3.2.3 二进制与十六进制的转换 (53) 3.2.4 八进制与十进制的转换 (55) 3.2.5 十六进制与十进制的转换 (57) 3.2.6 八进制与十六进制的转换 (59) 3.3 字符编码 (62) 3.3.1 非数值数据 (62) 3.3.2 BCD码 (62) 3.3.3 ASCII编码 (63) 3.3.4 ASCII编码与十六进制的转换 (64)
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值