51单片机串口通信

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题
1、给电脑发送数字,每按下一次按键,发送的数值加1,用 电脑串口给单片机发送特定指令,控制单片机小灯的亮灭。 给电脑发送数字,每按下一次按键,发送的数值加1, 用电脑串口给单片机发送字符字符串在 液晶上显示
串行口通信的控制
SCON 是一个特殊功能寄存器,可位寻址,用以设定串行口 的工作方式、接收/发送控制以及设置状态标志。
SM0和SM1为工作方式选择位,可选择四种工作方式:
串行口通信的控制
●REN——允许串行接收位。由软件置REN=1,则启动串行口 接收数据;若软件置REN=0,则禁止接收。 ●TI,发送中断标志位。在方式0时,当串行发送第8位数据 结束时,或在其它方式,串行发送停止位的开始时,由内部 硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须 用软件将其清0,取消此中断申请。 ●RI,接收中断标志位。在方式0时,当串行接收第8位数据 结束时,或在其它方式,串行接收停止位的中间时,由内部 硬件使RI置1,向CPU发中断申请。也必须在中断服务程序中, 用软件将其清0,取消此中断申请。 PCON中只有一位SMOD与串行口工作有关 :
串行口通信的控制
2、方式1输入
RXD 位采样脉冲 RI(中断标志) 起始
D0 D1 D2 D3 D4 D5 D6 D7
停止位
用软件置REN为1时,接收器以所选择波特率的16倍速率采 样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说 明起始位有效,将其移入输入移位寄存器,并开始接收这一帧 信息的其余位。接收过程中,数据从输入移位寄存器右边移入, 起始位移至输入移位寄存器最左边时,控制电路进行最后一次 移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收 到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进 入RB8,并置RI=1,向CPU请求中断。
波特率
在方式1中,当定时器计满溢出时,自动进入中断服务程序,然 后我们需要手动再给定时器装初值,而在方式2中,当定时器计满溢 出后,单片机会自动为其装初值,并且无需进入中断服务程序进行 任何处理,这样定时器溢出的速率就会绝对稳定。方式2的工作过程 是:先设定M0M1选择定时器方式2,在TLX和THX中装好合适的数值, 以让定时器输出产生的溢出率,这里TLX和THX中装的数值必须是一 样的,因为每次计数溢出后TLX中装入的新值是从THX中取出的。 【例】已知串口通信在串口方式2下,波特率为9600bps,系统晶振 频率为11.0592MHz,求TL1和TH1中装入的数值是多少? 解:设所求的数为X,则定时器每计256-X个数溢出一次,每计一个 数的时间为一个机器周期,一个机器周期等于12个时钟周期,所以 计一个数的时间为12/11.0592MHz(s),那么定时器溢出一次的时 间为[256-X]*12/11.0592MHz(s),T1的溢出率就是它的倒数,方 式1的波特率=(2^SMOD/32)*(T1溢出率),这里我们取SMOD=0,则 2^SMOD=1,将已知的的数代入公式后得9600=(1/32) *11059200/[256-X]*12,求得X=253,转换成十六进制为0xFD。上面 若将SMOD置1的话,那么X的值就变成了250了。可见,在不变化X值 的状态下,SMOD由0变1后,波特率便增加一倍.
空 闲 起 始 位 D0 LSB 1帧共10位 数据位8位 D7 MSB 停 止 位 空 闲
1、方式1输出
写入SBUF TXD TI(中断标志) 起始
D0 D1 D2 D3 D4 D5 D6 D7
停止位
串行口通信的控制
串行口工作之前,应对其进行初始化,主要是设置产生波特率 的定时器1、串行口控制和中断控制。具体步骤如下: 1、确定T1的工作方式(编程TMOD寄存器); 2、计算T1的初值,装载TH1、TL1; 3、启动T1(编程TCON中的TR1位); 4、确定串行口控制(编程SCON寄存器); 5、串行口在中断方式工作时,要进行中断设置(编程IE、IP寄 存器)。
波特率
通信双方只有产生相同的传送速率,才能确保设备同步。通过 编程可对单片机串口设为4种工作模式,其中方式0和方式2的 波特率是固定的,而方式1和方式3的波特率是可变的,由定 时器T1的溢出率来决定。 以下是4种方式波特率的计算公式
fosc为系统晶振频率,通常为12MHZ或11.0592MHZ;SOMD是 PCON寄存器的最高位,T1溢出率即定时器T1溢出的频率
串行口通信原理
串行口通信原理
通信有并行和串行两种方式。在单片机系统以及现代单片机 测控系统中,信息的交换多采用串行通信方式。
串行口通信原理
并行通信是指数据的各位同时进行传送(发送或接收)的通信 方式。 其优点是传送速度快; 缺点是数据有多少位,就需要多少根传送线。并行通信在位数 多、传送距离又远时就不太合适了。
串行通信指数据是一位一位按顺序传送的通信方式。 它的突出优点是只需一对传输线,这样就大大降低了传送成本, 特别适用于远距离通信; 其缺点是传送速度较低。
波特率
本章将介绍89C51串行口的结构及应用,PC机与89C51间的双 机通信。 单片机或电脑在串口通信时的速率用波特率表示,它定义 为每秒钟传送二进制代码的位数,它的单位是b/s(位/秒)。 假设数据传送速率是120字符/s,而每个字符格式包含1个 代码位(1个起始位、1个终止位、8个数据位)。这时,传送的 波特率为: 10b/字符×120字符/s=1200b/s
串行口通信原理
80C51串行口的结构
TXD SBUF
TH1 TL1 1
控制门 发送控制器
÷16
TI
去串口中断
≥1
Aቤተ መጻሕፍቲ ባይዱ
T1溢出率
÷2
0 SMOD
接收控制器 移位寄存器
RI
RXD SBUF
89C51通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串 行数据发送端)与外界进行通信。 有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址 99H ;接收器是双缓冲结构 ;发送缓冲器,因为发送时CPU是主动的, 不会产生重叠错误。
SMOD(PCON.7) 波特率倍增位。在串行口方式1、方式2、方式3 时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时, SMOD=0。
串行口通信的控制
串行口方式1是最常用的方式,方式1是10位数据的异步通 信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数 据的格式如图所示。其中1位起始位,8位数据位,1位停止位。
相关文档
最新文档