51单片机波特率串行口工作方式1和方式2波特率不是一样的吗?为什么是两种工作方式?

51单片机串行通信1
51单片机内部集成有一个全双工的串行口,数据的发送和接收分别经由发送的串行缓冲器SBUF和接收的串行缓冲器SBUF实现.发送时将数据写入SBUF;接收时由SBUF读取数据.
1.串行口控制寄存器
串行口的控制是由串行口控制寄存器SCON和电源控制寄存器PCON来实现的.
1)串行口控制寄存器SCON
SCON是一个特殊功能寄存器,各位定义如下表
SM0& SM1& SM2&
REN& TB8& RB8&
SM2:多机通信 0:单机
REN:接收控制& 0:禁止 1: 允许
&&&&TB8:发送数据第9位&
RB8:接收数据第9位&
TI:发送中断标志位&
RI:接收中断标志位
TI:当发送完一帧数据时,Ti=1,可用做程序查询,TI需要软件复位.显然,串行口收发除了RI、Ti状态标志外,也能产生中断,利用中断收发信息。
SNM2:为多机通信控制位,当SM2=0时,规定为单机对单机通信。当SM2=1时,规定为多机通信。只用于工作方式2和方式3.在此情况下,当主机要发送数据块到某一从属机时,首先发送从属机的地址,在发送地址时,让第9位为1.这时所有从属机都检查收到的地址是否是自己的地址。被寻址的从属机将清除SM2并开始接收数据。而没有被寻址的从属机则保持原来的状态(SM2=1),当收到第9位为0时,不会产生中断。
SM2在工作方式0时不起作用;在工作方式1时,SM2应设为0.
决定工作的两位SM0和SM1的作用如表所示。
功能&&&&&&&&&&&&波特率
方式0&&&8位移位寄存器&&
0&&&&&&1&&&&
方式1&&&10位UART&&&&&&&&&可改变&
方式2&&11位UART&
fosc*1/32或fosc*1/64
11位UART&&&&&&&
2)电源控制寄存器PCON
电源控制寄存器PCON各位的定义如下表
& SMOD:波特率选择位&
GF0:通用标志&&&
& PD: 0:正常方式&
1:掉电方式
& IDL: 0:正常方式&
1:空闲方式
当PCON最低位为1时,进入空闲方式,一旦进入空闲工作状态,CPU不再工作。但各功能部件均能保持进入空闲时刻前的状态。在51工作的过程中,若CPU
无事可做,令其进入此状态。一旦需要工作。只要使IDL=0,即可退出空闲状态。在空闲状态下,51的功耗可降得很低。值得注意的是,只有CHMOS型的51单片机才具有该功能。
当PCON的bit1=1时,进入掉电方式。在此方式下51内部时钟振荡器不工作,51也不工作。但片内RAM及特殊功能寄存器SFR的内容即使电源Vcc降到2V,仍能保持其信息不丢失。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
MCS-51单片机-串行口
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
at89c51单片机的串行口
下载积分:1000
内容提示:
文档格式:PPT|
浏览次数:1|
上传日期: 09:13:15|
文档星级:
该用户还上传了这些文档
下载文档:第7章
at89c51单片机的串行口.PPT
官方公共微信  串行口的方式1为双机串行通信方式,如右图所示。    当SM0、SM1两位为01时,串行口设置为方式1的双机串行通信。TXD脚和RXD脚分别用于发送和接收数据。    方式1收发一帧的数据为10位,1个起始位(0),8个数据位,1个停止位(1),先发送或接收最低位。方式1的帧格式如下图所示。    方式1时,串行口为波特率可变的8位异步通信接口。方式1的波特率由下式确定    式中,SMOD为PCON寄存器最高位的值(0或1)。    1.方式1发送    串行口以方式1输出时,数据位由TXD端输出,发送一帧信息为10位,1位起始位0,8位数据位(先低位)和1位停止位1,当CPU执行一条数据写发送SBUF的指令(MOVSBUF,A),就启动发送。方式1发送时序如下图所示。    下图中,TX时钟的就是发送的波特率。发送开始时,内部发送控制信号SEND变为有效,将起始位向TXD引脚(P3.0)输出,此后每经过一个TX时钟,便产生一个移位脉冲,并由TXD引脚输出一个数据位。8位数据位全部发送完毕后,中断标志位TI置1,然后SEND(的反)失效。    2.方式1接收    串行口以方式1(SM0、SM1=01)接收时(REN=1),数据从RXD(P3.1)引脚输入。当检测到起始位的负跳变时,则开始接收。方式1的接收时序如下图所示。    接收时,定时控制信号有两种(如下图所示),一种是接收移位时钟(RX时钟),它的频率和传送的波特率相同;另一种是位检测器采样脉冲,它的频率是RX时钟的16倍。也就是在1位数据期间,有16个采样脉冲,以波特率的16倍速率采样RXD引脚状态。当采样到RXD端从1到0的负跳变时就启动检测器,接收的值是3次连续采样(第7、8、9个脉冲时采样)取其中两次相同的值,以确认是否是真正的起始位(负跳变)的开始,这样能较好地消除干扰引起的影响,以保证可靠无误地开始接收数据。    当确认起始位有效时,开始接收一帧信息。接收每一位数据时,也都进行3次连续采样(第7、8、9个脉冲时采样),接收的值是3次采样中至少两次相同的值,以保证接收到的数据位的准确性。当一帧数据接收完毕后,必须同时满足以下两个条件,这次接收才真正有效。    (1)RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中的数据已被取走,说明&接收SBUF&已空。    (2) SM2=0或收到的停止位=1(方式1时,停止位已进入RB8),则将接收到的数据装入SBUF和RB8(装入的是停止位),且中断标志RI置1。    若不同时满足这两个条件,收到的数据不能装入SBUF,这意味着该帧数据将丢失。
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
copyright &
广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670&51单片机——波特率计算
在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。&&
方式0的波特率固定为主振频率的1/12。&&&
&方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:&&&
波特率=2的SMOD次方除以64再乘一个fosc,也就是当SMOD=1时,波特率为1/32fosc,当SMOD=0时,波特率为1/64fosc&&&
方式1和方式3
定时器T1作为波特率发生器,其公式如下:
&&&&&&&&&&T1溢出率=
T1计数率/产生溢出所需的周期数
式中T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为fosc/12;当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。&&
定时器T1工作于方式0:溢出所需周期数=8192-x
定时器T1工作于方式1:溢出所需周期数=65536-x&&
定时器T1工作于方式2:溢出所需周期数=256-x&&&
因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。&&
当时钟频率选用11.0592MHZ时,取易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶振就是这个道理。&&&&
下表列出了定时器T1工作于方式2常用波特率及初值。&&
常用波特率 &Fosc(MHZ)
19200&&&&&&
&&11.0592&&
9600 &&&&&&&&
&11.0592&&
&&0& &&&&FDH
4800&&&&&&
&11.0592& &&&0&&
&&11.0592& &&&0&&
1200&&&&&&
&11.0592& &&&0&&
T1计数率/产生溢出所需的周期数&
产生溢出所需的周期数=256-FD(253)=3
SMOD=()*3
*1/32=9600
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 单片机波特率 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信