51单片机串口通信,定时器1,8位自动重装初值的求法

来自:    更新日期:早些时候
51单片机串口通信定时器初值怎么计算啊?公式和计算原理麻烦说一下!~

串口通信方式1和方式3,要用T1来控制波特率。

T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:
T1初值 = 256 - fosc * (SMOD + 1) / (384 * 波特率)

--我不明白波特率跟这个定时器的关系。麻烦你详细一点!

这个关系,是由硬件决定的,只有搞微电子的,才能弄明白。
软件人员,编程的时候,会用这个公式即可,也没有必要弄明白这个。

基本上,也没有几个人,能够弄明白集成电路内部,究竟是怎么处理的。
其它的很多人,好像是很明白,其实都是在瞎编理由,包括写书的那些人。

1.简单说起,256表示一个8位分界点,对它求模得高位字节存在TH0中,求余得低位字节放在TL0中,拿十进制打比:15/10得十位1,15%10得个位数5
2.12Mhz时,单周期指令时间为12/fsoc=1us
方式1为16位定时/计数器
故定时1ms为:TH0=(2^16-1000)/2^8,
TL0=(2^16-1000)%256
当为11.0592MHz时,单周期指令时间为12/fsoc=12/11.0592us
由于采用方式0,为13为定时器,TH0高8位和TL0的低5位
故定时1ms为:
TH0=(2^13-1000/(12/11.0592))/2^5,
TL0=(2^16-1000/(12/11.0592))%2^5
这么晚了 写写不容易,多给些分以此鼓励俺
O(∩_∩)O~

呵呵 还是俺来帮你解答吧
1 公式一的结果为TH1=TL1=-3
2 公式二结果为TH1=TL1=253
无论使用哪个参数,程序都可以正常运行,这就对了。
因为这俩数 表面上看着不同 实际是一样的。公式二结果为TH1=TL1=253 为正数,
公式一的结果为TH1=TL1=-3 为负数 在计算机中要用补码表示,应表示为FDH=253.
呵呵 这俩个数实际是一样的。
所以无论公式一还是公式二,计算的结果都是一样的,当然程序运行也是相同的。

呵呵 别忘了给俺加分哦

-3和253互补,汇编后为同一个值。

8位 最大是255


51单片机串口通信,定时器1,8位自动重装初值的求法视频

相关评论:
  • 1336493716751单片机串口通信,定时器1,8位自动重装初值的求法
    盛选迹1 公式一的结果为TH1=TL1=-3 2 公式二结果为TH1=TL1=253 无论使用哪个参数,程序都可以正常运行,这就对了。因为这俩数 表面上看着不同 实际是一样的。公式二结果为TH1=TL1=253 为正数,公式一的结果为TH1=TL1=-3 为负数 在计算机中要用补码表示,应表示为FDH=253.呵呵 这俩个数...

  • 1336493716751单片机串口通信定时器初值怎么计算?公式和计算原理是什么?
    盛选迹串口通信方式1和方式3,要用T1来控制波特率。T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:T1初值 = 256 - fosc * (SMOD + 1) \/ (384 * 波特率)--我不明白波特率跟这个定时器的关系。麻烦你详细一点!这个关系,是由硬件决定的,只有搞微电子的,才能弄明白。软件人...

  • 1336493716751单片机串口通讯(模式1)问题:发送内容前半部分出错,后半部分正确。错...
    盛选迹ET1=1;此语句是罪魁祸首,定时器1已经作为串口波特率发生器了,就不能做其他用途了,此时定时必须禁止中断,而你程序中恰恰相反,来了句ET1=1;开启了定时器1中断,导致串口波特率发生混乱。那当然串口通信会有问题了,删掉ET1=1;该语句即可。

  • 1336493716751单片机串口通信定时器初值怎么计算啊?公式和计算原理麻烦说一下!
    盛选迹串口通信方式1和方式3,要用T1来控制波特率。T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:T1初值 = 256 - fosc * (SMOD + 1) \/ (384 * 波特率)--我不明白波特率跟这个定时器的关系。麻烦你详细一点!这个关系,是由硬件决定的,只有搞微电子的,才能弄明白。软件人...

  • 1336493716751单片机串口通信不用设置IE开关吗?
    盛选迹你对51的串口部分了解还不够透彻。51的串口默认是使用Timer1作为波特率发生器的,利用8位自动重载模式产生串口波特率的32或16倍频。如果你开启了Timer1中断、又没有修改串口波特率发生器的选择,那么由于Timer1不停进入中断就会导致串口部分根本无法正常工作。简而言之,默认状况下,串口要吃掉Timer1。牢记。

  • 13364937167MCS-51单片机串口四种工作方式的波特率如何确定
    盛选迹在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。 串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。 方式...

  • 1336493716751单片机串口通信中IE=0x90是什么意思?
    盛选迹IE: EA X X ES ET1 EX1 ET0 EX0。EA:总允许位。ES:串口中断允许位。ET1:定时计数器1中断允许位。EX1:外部中断1中断允许位。ET0:定时计数器0中断允许位。EX0:外部中断0中断允许位。IE化为二进制 就是 1001 0000 开总中断和串口中断。IE是中断允许寄存器,其值为90时,二进制为1000 000...

  • 1336493716751单片机,T1用作串行口波特率发生器时,设置为工作方式1时,应该给TH1...
    盛选迹51MCU-方式1:10位通用异步通信 一帧信息为10位:1位为起始位(0),8位数据位,1位停止位(1)采用定时器T1(1个16位计数器)作为串行口接收和发送的波特率发生器,数据传输波特率可调,由T1的溢出决定,可用程序设定。波特率设定:波特率=(2^smod)*(定时器T1溢出率)\/32 溢出率=溢出周期的倒数 ...

  • 1336493716751单片机串口通信问题
    盛选迹1、是在一个字节接收成功或一个字节发送成功以后进入中断程序(不过,一般在发送时是将中断关闭的,也就不进入中断了)。此时,定时器的作用就是为了设定串口速率,因为单片机的速度和串口的速度不是一个数量级的,所以一定要有个变速箱。2、数据的接收是由硬件控制的,其实,数据的接收发送都是有一个...

  • 13364937167两个51单片机串口通信程序?
    盛选迹串行发送程序 Tx.asm :PCON, #00H ;; 波特率不倍增 SETB TR1 ;; 启动定时器T1 MOV IE, #0;; 禁止任何中断 CALL DLY125 ;; 延时125ms ;;--- T_X: ;; 透传发送字串 ACALL DSPLED ;; P2.0控制LED闪亮 MOV R3, #4 ;; 待发送字符个数 MOV ...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网