博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51单片机学习中的问题
阅读量:6041 次
发布时间:2019-06-20

本文共 1255 字,大约阅读时间需要 4 分钟。

串口通信波特率问题:

学习使用普中科技51开发板,在串口通信实验教程中,应特别注意波特率适用问题

                            TMOD工作方式寄存器

TMOD T1定时/计数器 T0定时/计数器
(89H) D7 D6 D5 D4 D3 D2 D1 D0
位定义 GATE C/

T
M1 M0 GATE C/

T
M1 M0

T1/T2定时器有4种工作模式:                                                

模式0:13位定时计数模式                                                      

模式1: 16位定时计数模式
模式2:8位自动重装载模式
模式3:两个独立8位定时计数模式(只T0) 

定时器定时时间计算方法:

Td=(2^n-Count)×fosc/12    ,.......................................................................(公式1)                                

其中Td为计时时间,n为位数,fosc为晶振频率,

除以12因为:单指令周期  = 一个机器周期 = 6状态周期 = 12个时钟周期  (参见时钟电路与时序内容)

计数:2^n-Count

其中,

模式0不常用的;

模式1常用于定时;
模式2常用,例如串口
模式3不常用;                                       

                                                                                  串行口控制寄存器

位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
位定义 SM0 SM1 SM2 REN TB8 RB8 TI RI
功能 方式选择 多机控制 串行接收允许/禁止 发送的第9位 接收的第9位 发送中断有/无 接收中断有/无

 串行口分四种工作方式,由SM0、SM1二位决定,其定义如下:

SM0   SM1   工作方式     功能描述                                                     波特率

 0   0   方式0   8位                                             Fosc/12

 0   1   方式1   10位UART(包括一个起始位和停止位)                可变
 1   0   方式2   11位UART (包括一个起始位和停止位)        Fosc/64或fosc/32
 1   1   方式3   11位UART (包括一个起始位和停止位)                可变

 由公式1得

各种方式的波特率:

方式0的波特率BR =  fosc/12

方式2的波特率BR =(2^SMOD/64)· fosc 

方式1的波特率 BR=(2^SMOD/64)·(Td溢出率) .......................................................................(公式2)      

方式3的波特率 BR=(2^SMOD/64)·(Td溢出率) .......................................................................(公式3)    

 

经公式1与公式2化简得:

 Count=2^n - (12×64×BR)/(2^SMOD×fosc)

注意 2^n 是否足够减

 

转载于:https://www.cnblogs.com/mryu119/p/11031354.html

你可能感兴趣的文章
||和&&返回什么?
查看>>
linux在文件中查找指定字符串,然后根据查找结果来做进一步的处理
查看>>
在Oracle中删除所有强制性外键约束
查看>>
【R】R语言使用命令行参数 - [编程技巧(Program Skill)]
查看>>
经典算法题每日演练——第二题 五家共井
查看>>
存储过程中拼接的变量和点的问题
查看>>
ASP.NET那点不为人知的事(一)
查看>>
HTML 表格
查看>>
VMware 虚拟化编程(7) — VixDiskLib 虚拟磁盘库详解之三
查看>>
php 未实例化类调用方法的问题
查看>>
我对读计算机软件专业硕士的几点看法
查看>>
用JS写CSS
查看>>
TOJ4537: n阶行列式
查看>>
3.16
查看>>
表单文件上传与文件下载
查看>>
下午考
查看>>
创建字符设备的三种方法
查看>>
走在网页游戏开发的路上(六)
查看>>
nginx 配置的server_name参数(转)
查看>>
Uva592 Island of Logic
查看>>