上位机PC与单片机通信

上传人:我** 文档编号:117887318 上传时间:2019-12-11 格式:PPT 页数:30 大小:635.50KB
返回 下载 相关 举报
上位机PC与单片机通信_第1页
第1页 / 共30页
上位机PC与单片机通信_第2页
第2页 / 共30页
上位机PC与单片机通信_第3页
第3页 / 共30页
上位机PC与单片机通信_第4页
第4页 / 共30页
上位机PC与单片机通信_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《上位机PC与单片机通信》由会员分享,可在线阅读,更多相关《上位机PC与单片机通信(30页珍藏版)》请在金锄头文库上搜索。

1、8-1 8-1 串行通信基础知识串行通信基础知识 8-2 8-2 串行口及控制寄存器串行口及控制寄存器 8-3 8-3 串行通信工作方式串行通信工作方式 8-4 8-4 串行口的应用串行口的应用 第第8 8章章 串行数据通串行数据通 信信 8-1 8-1 串行通信基础知串行通信基础知 识识 一、串行通信基本原理: 并行 数据传送 同步 串行 异步(用于单片 机中) 并 行 数 据 传 送串 行 数 据 传 送 原 理各数据位同时传送数据位按位顺序进行 优 点传送速度快、效率高最少只需一根传输线即可完成:成本低 缺 点数据位数传输线根数:成本高速度慢 应 用传送距离30米,用于计算机内部几米几千

2、公里,用于计算机与外设之间 异步通信的双方需要两项约定: 1.字符格式: 一帧字符位数的规定:数据位,校验位,起始位和停止位。 2.波特率(位/秒)和传送速率的规定: 例:要求每秒传送120个字符,每帧为10位。 解: B=12010=1200波特 每位0.83ms 数据位传送输率=1208=960位/秒 (二)同步通信: 以一串字符为一个传送单位,字符间不加标识位,在一串字符开始 用同步字符标识,硬件要求高,通讯双方须严格同步。 二、串行通信的基本方式: (一)异步通信: 以字符为传送单位用起始位和停止位标识每个字符的开始和结束字 符,间隔不固定,只需字符传送时同步即可。 异步通讯常用格式:

3、一个字符帧 D0D1D2D3D4D5D6D7停止位 起始位 三、串行接口功能 : (1)发送器:并串数据格式转换,添加标识位和校验位, 一帧发送结束,设置结束标志,申请中断。 (2)接收器:串并数据格式转换,检查错误,去掉标识位 ,保存有效数据,设置接收结束标志,申请中断。 (3)控制器:接收编程命令和控制参数,设置工作方式:同 步/异步、字符格式、波特率、校验方式、数据位与同步时钟比 例等。 四、串行数据传送方向: 1、单工通讯:数据单向传送。(1条数据线,单向) 2、半双工通讯:数据可分时双向传送。(2条数据线,双向) 3、全双工通讯:可同时进行发送和接收。 (1条或2条数据线,双向) 发

4、送器接收器 地线 数据线 发送接 收器 接收发 送器 地线 数据线 发送接 收器 接收发 送器 地线 数据线 五、异步串行通信的信号形式 : 1、远距离直接传输数字信号,信号会发生畸变,因此 要把数字信号转变为模拟信号再进行传送。可利用光缆 、专用通信电缆或电话线。 方法:通常使用频率调制法(频带传送方式)。 通常: “1”:1270Hz或2225Hz; “0”:1070Hz或2025Hz。 2、因通信时(有干扰)信号要衰减,所以常采 用RS232电平负逻辑,拉开“0”和“1”的电压档次, 以免信息出错: RS232负逻辑(EIA电平): “0”:+3V+25V; “1”: -3V -25V。

5、 最大传输信息的长度为15米。 TTL正逻辑: “0”: 0 2.4V; “1”: 3.6V+5V; 高阻:2.4V3.6V。 TTL电平直接传输距 离一般不超过1.5米。 RS232负逻辑: “0”:+5V+15V; “1”: -5V -15V。 最大传输信息的长度为15米。 RS-232C (电平转换芯片为MAX232) RS-422 RS-485 8-28-2 串行口及控制寄串行口及控制寄 存器存器 串行接口输入/输出引脚:TXD(P3.1)、RXD(P3.0) 数据格式:按不同方式,一帧数据位数 8/10/11 发送/接收时,数据皆低位在前。 一帧字符发送/接收结束,置位标志位(TI/

6、RI), 并申请串行中断。 中断控制:中断允许位ES、总允许EA; 中断入口:0023H。 D0D1D2D3D4D5D6D7停止位 起始位 D0D1D2D3D4D5D6D7 D0D1D2D3D4D5D6D8 停止位 起始位 D7 1个全双工串行接口,可同时进行发送和接收。 8-2-1 MCS-51串行接口 一、串行接口控制: 1.数据缓冲器SBUF: 发送SBUF和接收SBUF共用一个地址99H。 1)发送SBUF存放待发送的8位数据,写入SBUF将同时 启动发送。发送指令: MOVSBUF,A 2)接收SBUF存放已接收成功的8位数据,供CPU读取。 读取串行口接收数据指令: MOV A,S

7、BUF 2.节电控制寄存器PCON: SMOD(PCON.7):波特率加倍控制位。 SMOD=1,波特率加倍; SMOD=0,则不加倍。 SM0、SM1:选择串行口4种工作方式。 SM2:多机控制位,用于多机通讯。 REN:允许接收控制位,REN=1,允许接收; REN=0,禁止接收。 TB8:发送的第9位数据位,可用作校验位和地址/数据标识位。 RB8:接收的第9位数据位或停止位。 TI :发送中断标志,发送一帧结束,TI=1,必须软件清零; RI :接收中断标志,接收一帧结束,RI=1,必须软件清零。 3.串行口控制/状态寄存器SCON(98H): 请见P229! 8-3 8-3 串行通信

8、工作方串行通信工作方 式式 (1)方式0:同步移位寄存器方式 用于扩展并行I/O接口。 1. 一帧8位,无起始位和停止位。 2. RXD:数据输入/输出端。 TXD:同步脉冲输出端,每个脉冲对应一个数据位。 3. 波特率Bfosc/12 如:fosc12MHz,B1MHz,每位数据占1s。 4. 发送过程:写入SBUF,启动发送, 一帧发送结束,TI1。 接收过程:REN=1且RI=0,启动接收, 一帧接收完毕,RI1。 SM0、SM1选择四种工作方式。 发送时序 写入 SBUF RXD输出 TXD TI D0D1D2 D3D4 D5D6D7 写REN=1 RI=0 RXD输入 RI 接收时序

9、 (a) (b) 时序图:时序图: (2) 方式1:8位数据异步通讯方式 1. 一帧10位:8位数据位,1个起始位(0),1个停止位(1)。 2. RXD:接收数据端。 TXD:发送数据端。 3.波特率:用T1作为波特率发生器, B=(2SMOD/32)T1溢出率。 4.发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。 接收:REN=1,允许接收。 接收完一帧,若RI=0且停止位为1 (或SM2=0),将接 收数据装入SBUF,停止位装入RB8,并使RI=1; 否则丢弃接收数据,不置位RI。 当REN=1,CPU开始采样RXD引脚负跳变信号,若出现负跳变 ,才进入数据接收状态,先检测

10、起始位,若第一位为0,继续接 收其余位;否则,停止接收,重新采样负跳变。 数据采样速率为波特率16倍频,在数据位中间,用第7、8、 9个脉冲采样3次数据位,并3中取2保留采样值。 写入 SBUF 采样 (a) 发送时序图 TXD 数据输出 TI D0D1D2D3D4D5D6D7 停止位 起始位 RXD 输入数据 (b) 接收时序图 D0 D1 D2D3D4D5D6D7 停止位 起始位 RI 检测 负跳变 时序图:时序图: (3) 方式2和方式3: 9位数据异步通讯方式 1.一帧为11位:9位数据位,1个起始位(0),1个停止位(1)。 第9位数据位在TB8/RB8中,常用作校验位和多机通讯 标

11、识位。 2. RXD:接收数据端, TXD:发送数据端。 3.波特率:方式2:B=(2SMOD/64)fosc 。 方式3:B=(2SMOD/32)T1溢出率 。 4.发送:先装入TB8,写入SBUF并启动发送,发送结束,TI=1。 接收:REN=1,允许接收。 接收完一帧,若RI=0且第9位为1 (或SM2=0),将接收数据 装入接收SBUF,第9位装入RB8,使RI=1;否则丢弃接收数据, 不置位RI。 (a) 发送时序图 写入 SBUF TXD输出 TI RXD输入 (b) 接收时序图 RI D0D1D2D3D4 D5D6 TB8 停止位 起始位 D7 D0 D1D2 D3 D4D5D6

12、RB8 停止位 起始位 D7 检测 负跳变 时序图:时序图: (4)计算波特率 : 方式0为固定波特率:B=fosc/12 方式2可选两种波特率: B=(2SMOD /64)fosc 方式1、3为可变波特率,用T1作波特率发生器。 B=(2SMOD/32)T1溢出率 T1为方式2的时间常数: X = 28 - t/T (请见P153) 溢出时间: t= (28 -X)T = (28 -X)12/ fosc T1溢出率=1/t= fosc /12(2n -X) 波特率B=(2SMOD /32)fosc/12(28-X) 串行口方式1、3,根据波特率选择T1工作方式,计算时间常数。 T1选方式2:

13、 TH1= X = 28 - fosc/122SMOD/(32B) T1选方式1用于低波特率,需考虑T1重装时间常数时间。 也可选工作方式3(请见P156)。 4种方式比较 : 方 式 波 特 率传 送 位 数 发送 端 接收 端 用 途 0 1/12 fosc (固定不变) 8(数据)RXDRXD 接移位寄存器 ,扩充并口 1 2SMOD/32 T1 溢出率 10(起始位、8位数据位、 停止位) TXDRXD单机通讯 2 2SMOD/64 fosc11(第9位为1:地址; 为0:数据) TXDRXD多机通讯 3 2SMOD/32 T1 溢出率 11位 (同方式2) TXDRXD多机通讯 8-

14、4 8-4 串行口的应串行口的应 用用 串行口初始化编程格式: SIO:MOV SCON,#控制状态字 ;写方式字且 TI=RI=0 ( MOV PCON,#80H ) ;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率发生 器 ( MOV TH1,#X ) ;选定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;开串行口中断 ( SETB ES) 发送程序:发送程序: 1、查询方式: TRAM:MOV A,R0 ;取数据 MOVSBUF,A ;发送一个字符 WAIT:JBCTI,NEXT ;等待发送结束 SJMPWAIT NEXT:CLR T

15、I INC R0 ;准备下一次发送 SJMPTRAM 2、中断方式: ORG 0023H ;串行口中断入口 AJMP SINT MAIN: ;初始化编程 TRAM: MOV A, R0 ;取数据 MOV SBUF,A ;发送第一个字符 H:SJMP H ;其它工作 SINT:CLR TI ;中断服务程序 INC R0 MOV A, R0 ;取数据 MOV SBUF,A ;发送下一个字符 RETI 先发送一个字符,等待TI=1后再发送下一个字符 。 接收程序:接收程序: 1.查询方式: WAIT:JBC RI,NEXT;查询等待 SJMP WAIT NEXT:MOV A,SBUF ;读取接收数据 MOV R0,A;保存数据 CLR RI INC R0 ;准备下一次接收 SJMP WAIT 2.中断方式: ORG0023H AJMPRINT MAIN: ;初始化编程 H:SJMPH ;其它任务 RINT:CLRRI ;清中断标志 MOVA,SBUF ;读取接收数据 MOVR0,A;保存数据 INCR0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号