历史上的今天
今天是:2024年12月18日(星期三)
2020年12月18日 | 为网友解答的51单片机波特率计算习题
2020-12-18 来源:51hei
【第1题】
已知51单片机串行通信口在串口方式1,波特率为9600bps,
系统晶振频率为11.0592MHZ,求TL1和TH1中装入的数值是多少?
【答】:
方式1是16位计数器, 2^16=65536d
当SMOD取0,波特率=F/[32x12x(65536-N)],
预装值N=256-F/(波特率x32x12)=65536-11059200/(9600x32x12)=65533d=FFFDh
TH1←0FFh, TL1←0FDh
=======================================
【第2题】
已知51单片机使用晶振为11.0592MHZ,用T1的工作方式2作波特率发生器,
串口通信的波特率为9600bps,要求:
1.写出T1定时器的初值计算过程,
2.写出程序。
【答】:
1.T1定时器的初值计算:
方式2是8位计数器,
波特率=(2的SMOD次方x F)/(32x12x(256-N),
SMOD取0(波特率不倍增),
N是置入定时器TH1的时间常数初值,F是晶振频率,
当SMOD取0,波特率=F/(32x12x(256-N)),
计数初装值N=256-F/(波特率x32x12)=256-11059200/(9600x32x12)=253d=0FDh
2.汇编语言源程序:
INIT: MOV TMOD,#20H ;定时器T1工作方式2
MOV TH1,#0FDH ;置入时间常数
MOV TL1,#0FDH
SETB TR1 ;启动T1
MOV PCON,#00H ;SMOD=0,波特率不倍增
MOV SCON, #50H ;串行口工作方式1
=======================================
【第3题】
有a、b两台51单片机,使用晶振不相同,Fa=11.0592MHz,Fb=12MHz,
a与b用T1方式2作串行通信,波特率为2400bps,a,b各自的初装值是多少?
答:
方式2是8位计数器,
SMOD取0(波特率不倍增),波特率=F/(32x12x(256-N)),
计数初装值N=256-F/(波特率x32x12)
a的计数初装值Na=256-11059200/(2400x32x12)≈244d=0F4h
b的计数初装值Nb=256-12000000/(2400x32x12)≈243d=0F3h
=======================================
【第4题】
80C51串行口使用定时器T1作波特率发生器,工作方式2即( )方式。
假定晶振频率为12MHZ,则可设定的波特率范围为( )~( ),为什么?
【答】:
方式2即(8位计数器,最大值=2的8次方=256),
可设定的波特率范围为(122bps)~(62500bps),理由如下:
波特率=(2的SMOD次方x F)/(32x12x(256-N),
F=12000000Hz是晶振频率,N是8位计数器TH1,TL1的初装值,
SMOD是特殊功能寄存器PCON的第7位,取1或0(波特率倍增、或不倍增),
当SMOD=0,N=0, 波特率=(1x12000000)/(32x12x(256-0)=122bps
当SMOD=1,N=255, 波特率=(2x12000000)/(32x12x(256-255)=62500bps
.
补充知识:
顾及单片机与PC机串行通信, 常用波特率见下表:
晶振频率 SMOD1 TH1=TL1初装值 波特率(取整数)
--------------------------------------------------
12MHZ 0 204d即CCh 600bps
12MHZ 1 204d即CCh 1200bps
12MHZ 0 243即F3h 2400bps
12MHZ 1 243即F3h 4800bps
上一篇:单片机数字密码锁
下一篇:利用压栈sp自增复制数据
史海拾趣
|
鼠标全局钩子程序,部份函数/结构、常量不能被Wince 5.0环境识别 在windows平台上用VC+6 编写好的鼠标全局钩子程序, 在向Wince 5.0,EVC4.0+SP4, 模拟器环境(StandardSDK_500)移置时,发现: 部份函数/结构、常量不能被Wince 5.0环境识别如: error C2065: \'CallNextHookEx\' : undeclared identifier erro ...… 查看全部问答> |
|
目前需求是: 一台主机,多个触摸显示屏(USB连接到主机),该主机上装了几个虚拟操作系统,想在不同触摸屏上分别显示各个操作系统。 不知道现在市面上有没有这种触摸屏支持这种功能,就是在一定程度上提供这样一个接口,可以控制它所输出的内容 ...… 查看全部问答> |
|
J-link 出现target vcc failure .please check target voltage.failed to connect J-link 出现target vcc failure .please check target voltage.failed to connect我是笔记本电脑,用的开发板是mini2440。在看国嵌体验入门班-1-5(软硬件环境搭建) 视频教程根据视频教程的步骤,我装好了J-Flash ARM V4.08l,并连接好J-link跟开 ...… 查看全部问答> |
|
在ZLG的1138开发板中所有的例程中,其启动文件都有这3个中断程序代码。想请教大家,特别是FaultISR(void)和IntDefaultHandler(void)到底在实际运用中有什么用途。 static void NmiSR(void) { // // Enter an infi ...… 查看全部问答> |
|
在使用stm8时,出现了2个类似奇怪的现象(在2台电脑上使用):(电脑)1,stm8的电源指示灯突然熄灭,电脑突然关机,导致3个USB接口全部坏掉,最后判定为主板坏了。(电脑)2,stm8的电源指示灯突然熄灭,电脑突然关机,无法重启,最后拔掉电池才能 ...… 查看全部问答> |
|
SSD1306 图5-1:OLED1 Xplained ProOLED1 Xplained Pro是Atmel设计的配件开发板,上面总共呆了三个LED和三个Key以及一个128*32的OLED液晶屏幕。 图5-2:OLED1 Xplained Pro Overview打开AtmelStudio 新建一个SSD1306的工程。 图5-3:Example代码 ...… 查看全部问答> |




