云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单片机整理笔记

单片机整理笔记

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 23:07:32

? ? ?

RB8:在方式2、3中,RB8是接收机接收到的第9位数据,该数据正好来自发送机的TB8。

TI:发送中断标志位。发送前必须用软件清零,发送过程中TI保持零电平,发送完一帧数据后,由硬件自动置1。如要再发送,必须用软件再清零。

RI:接收中断标志位。接收前,必须用软件清零,接收过程中RI保持零电平,接收完一帧数据后,由片内硬件自动置1。如要再接收,必须用软件再清零。

② 电源控制寄存器PCON。PCON的字节地址为87H,无位地址,其格式如下:

PCON是为在CMOS结构的MCS-51单片机上实现电源控制而附加的,对于HMOS结构的MCS-51系列单片机,除了第7位外,其余都是虚设的。与串行通信有关的也就是第7位,称作SMOD,它的用处是使数据传输率加倍。

SMOD:数据传输率加倍位。在计算串行方式1,2,3的数据传输率时;0表示不加倍;1表示加倍。

其余有效位说明如下。 GF1、GF2:通用标志位。

PD:掉电控制位,0表示正常方式,1表示掉电方式。 IDL:空闲控制位,0表示正常方式,1表示空闲方式。

除了以上两个控制寄存器外,中断允许寄存器IE中的ES位也用来作为串行I/O中断允许位。当ES=1,允许 串行I/O中断;当ES=0,禁止串行I/O中断。中断优先级寄存器IP的PS位则用作串行I/O中断优先级控制位。当PS=1,设定为高优先级;当PS =0,设定为低优先级。

工作方式

MCS-51 单片机可以通过软件设置串行口控制寄存器SCON中SM0(SCON.7)和SMl(SCON.6)来指定串行口的4种工作方式。串行口操作模式选择如表5-2所示。

表5-2 串行口操作模式选择表

SM0 SM1 模 式 功 能 波 特 率 0 0 0 同步移位寄存器 fOSC/12 0 1 1 8位UART 可变(T1溢出率) 1 0 0 9位UART fOSC/64或fOSC/32 1 1 1 9位UART 可变(T1溢出率) 其中,fosc是振荡器的频率,UART为通用异步接收和发送器的英文缩写。下面对这4种工作模式作进一步介绍。

1.方式0

当设定SM1、SM0为00时,串行口工作于方式0,它又叫同步移位寄存器输出方式。在方式0下,数据从 RXD(P3.0)端串行输出或输入,同步信号从TXD(P3.1)端输出,发送或接收的数据为8位,低位在前,高位在后,没有起始位和停止位。数据传输 率固定为振荡器的频率1/12,也就是每一机器周期传送一位数据。方式0可以外接移位寄存器,将串行口扩展为并行口,也可以外接同步输入/输出设备。

执行任何一条以SBUF为目的的寄存器指令,就开始发送。

2.方式1

当设定SM1、SM0为01时,串行口工作于方式1。方式1为数据传输率可变的8位异步通信方式,由TXD发 送,RXD接收,一帧数据为10位,1位起始位(低电平),8位数据位(低位在前)和1位停止位(高电平)。数据传输率取决于定时器1或2的溢出速率 (1/溢出周期)和数据传输率是否加倍的选择位SMOD。

对于有定时器/计数器2的单片机,当T2CON寄存器中RCLK和TCLK置位时,用定时器2作为接收和发送的数据传输率发生器,而RCLK=TCLK=0时,用定时器1作为接收和发送的数据传输率发生器。两者还可以交叉使用,即发送和接收采用不同的数据传输率。

类似于模式0,发送过程是由执行任何一条以SBUF为目的的寄存器指令引起的。

3.方式2

当设定SM0、SM1二位为10时,串行口工作于方式2,此时串行口被定义为9位异步通信接口。采用这种方式 可接收或发送 11 位数据,以 11 位为一帧,比方式 1 增加了一个数据位,其余相同。第 9 个数据即 D8 位用作奇偶校验或地址/数据选择,可以通过软件来控制它,再加特殊功能寄存器 SCON 中的 SM2 位的配合,可使 MCS-51 单片机串行口适用于多机通信。发送时,第9位数据为TB8,接收时,第9位数据送入RB8。方式 2 的数据传输率固定,只有两种选择,为振荡率的 1/64 或 1/32 ,可由 PCON 的最高位选择。

4.方式3

当设定SM0、SM1二位为11时,串行口工作于方式3。方式3与方式2类似,唯一的

区别是方式3的数据传输率是可变的。而帧格式与方式2一样为11位一帧。所以方式3也适合于多机通信。

数据传输率的确定

串行口每秒钟发送(或接收)的位数就是数据传输率。

对方式0来说,数据传输率已固定成fosc/12,随着外部晶振的频率不同,数据传输率亦不相同。常用的fosc有12MHz和6MHz,所以数据传输率相应为1000×103和500×103bit/s。在此方式下,数据将自动地按固定的数据传输率发送/接收,完全不用设置。

对方式2而言,数据传输率的计算式为2SMOD·fosc/64。当SMOD=0时,数据传输率为fm/64;当SMOD=1时,数据传输率为fosc/32。在此方式下,程控设置SMOD位的状态后,数据传输率就确定了,不需要再作其他设置。

对方式1和方式3来说,数据传输率和定时器1的溢出率有关,定时器1的溢出率为: 定时器1的溢出率=定时器1的溢出次数/秒 方式1和方式3的数据传输率计算式为: 2SMOD/32×T1溢出率

根据SMOD状态位的不同,数据传输率有Tl/32溢出率和T1/16溢出率两种。由于T1溢出率的设置是方便的,因而数据传输率的选择将十分灵活。

前已叙及,定时器Tl有4种工作方式,为了得到其溢出率,而又不必进入中断服务程序,往往使T1设置在工作方式2的运行状态,也就是8位自动加入时间常数的方式。

表5-3所示常用数据传输率的设置方法。 表5-3 常用数据传输率设置方法

定时器1 数据传输率/Hz fOSC/MHz SMOD C/T 方 式 重新装入值 方式0最大:1M 方式2最大:375k 方式1、3:62.5k 12 12 12 X 1 1 X X 0 X X 2 X X FFH 19.2k 9.6k 4.8k 2.4k 1.2k 110 11.0592 11.0592 11.0592 11.0592 11.0592 12 1 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 FDH FDH FAH F4H E8H 0FEEH 串行通信实例

这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收和查询发送。

#include #include

#define length 4 //数据长度 unsigned char inbuf[length]; unsigned char checksum,counter;

bit flag = 0; //取数标记 main() {

init_serial(); //串行口初始化 while (1) {

if (flag!=0) //如果取数标志已置位,就将读到的数从串口发出

{

flag= 0; //取数标志清0 send_string(inbuf,length); //向串口发送字符串

搜索更多关于: 单片机整理笔记 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

? ? ? RB8:在方式2、3中,RB8是接收机接收到的第9位数据,该数据正好来自发送机的TB8。 TI:发送中断标志位。发送前必须用软件清零,发送过程中TI保持零电平,发送完一帧数据后,由硬件自动置1。如要再发送,必须用软件再清零。 RI:接收中断标志位。接收前,必须用软件清零,接收过程中RI保持零电平,接收完一帧数据后,由片内硬件自动置1。如要再接收,必须用软件再清零。 ② 电源控制寄存器PCON。PCON的字节地址为87H,无位地址,其格式如下: PCON是为在CMOS结构的MCS-51单片机上实现电源控制而附加的,对于HMOS结构的MCS-51系列单片机,除了第7位外,其余都是虚设的。与串行通信有关的也就是第7位,称作SMOD,它的用处是使数据传输率加倍。 SMOD:数

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com