您所在位置: 网站首页 / 单片机串行通信-.doc / 文档详情
单片机串行通信-.doc 立即下载
2025-01-15
约5.3千字
约10页
0
41KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

单片机串行通信-.doc

单片机串行通信-.doc

预览

免费试读已结束,剩余 5 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

串行通信的概述
在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。
串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。
在串行通信中,把通信接口只能发送或接收的单向传送办法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。在双工传送方式中又分为半双工传送和全双工传送。半双工传送是两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。
51系列单片机有一个可编程的全双工串行通信接口,它可作异步接收发送器用,也可做同步移位寄存器用,其帧格式可有8位、10位或11位,并能设置各种波特率,给使用带来很大的灵活性。
51系列单片机有两个物理上独立的接收、发送缓冲器SBUF,它们只占用同一地址99H,可同时发送、接送数据。发送缓冲器只能写入,不能读出,接收缓冲器只能读出、不能写入。
串行发送接收的速率与波特率发生器产生的移位脉冲同频。51系列单片机用按时器T1或直接用CPU时钟作为通信波特率发生器的输入,在串行接口的不同工作方式中,波特率发生器从两个输入信号中选择一个分频,产生移位脉冲来同步串口的接收和发送,移位脉冲的速率即是波特率。
接收器是双缓冲结构,在前一个字节被从接收缓冲器SBUF读出之前,第二字节即开始被接收。但是,假设在第二个字节接收完毕后,前一个字节还未被CPU读取的话,第二个字就会覆盖第一个字节,造成第一个字节的丢失。接收器是双缓冲结构,串行口的发送和接收都是以特别功能寄存器SBUF的名义进行读或写的。
8051串行口可设置四种工作方式,可有8位,10位和11位帧格式。方式0以8位数据为一帧,不设起始位和停止位,先发送最低位。方式1以10位为一帧传输,设有1个起始位“0”,8个数据位和1一个停止位“1”。方式2和3以11位为1帧传输,设有1个起始“0”,8个数据位,1个附加第九位和1个停止们“1”,附加第九位由软件置1或清0。发送时在TB8中,接收时送入RB8中。
2.串行通信程序制定

设定T1和scon
设定发送数据地址指针和块长度计数器
开中断开关EA
同意串行口中断
发送
等待中断
清T1
修改数据地址指针
和块长度计数器
全部数据发送完
发送
中断返回
清EA或ES
Y
N
主程序
中断服务程序

〔a〕中断方式发送程序主程序
设定T1和SCON
置位REN同意接收
开中断开关EA
同意串行口中断
等待中断
中断服务程序
清R1
接收数据
数据送接收缓冲器
数据块接收完
清EA或ES
中断返回
N
Y
设定接收缓冲区首址
置接收数据个数计数器

〔b〕中断方式接收程序


ORG0000H
MOVTMOD,#20H
MOVTH1,#0CCH
MOVTL1,#0CCH;设定波特率
SETBTR1
MOVSCON,#50H
ABC:CLRTI
MOVP1,#0FEH;LED灭
ACALLDAY;延时
MOVA,#0FFH
MOVSBUF,A;发送数据FFH
JNBRI,$;RI≠1等待
CLRRI
MOVA,SBUF;接收数据,A=FFH
MOVP1,A;灯亮
JNBTI,$;TI≠1等待
ACALLDAY;延时
SJMPABC
DAY:MOVR0,#0
DAL:MOVR1,#0
DJNZR1,$
DJNZR0,DAL
RET
END
2.3发送程序及分析
ORG0000H
LJMPMAIN
ORG0023H
LJMPSUB1
MAIN:MOVSCON,#50H
MOVTMOD,#20H
MOVTL1,#0FDH
MOVTH1,#0FDH
MOVIE,#90H
SETBTR1
INI:MOVSBUF,#55H
MOVR1,#0FFH
LOOP:NOP
DJNZR1,LOOP
JNBF0,INI
MOVR0,#21H
MOVSBUF,20H
SUB1:JNBRI,LAB0
MOVA,SBUF
CJNEA,#55H,LAB1
SETBF0
CLRRI
LAB1:RETI
LAB0:MOVSBUF,@R0
INCR0
CJNER0,#24H,LAB2
CLRES
LAB2:CLRTI
RETI
END
主程序中:
指令MOVSCON,#50H的意义是将数据50H送入特别功能寄存器SCON中,即设置串口工作于方式1,不同意多机通信,同意接收/发送数据第9位和接收数据第9位在方式1中未用,
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

单片机串行通信-

文档大小:41KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用