串口波特率與定时计数器的关系.docVIP

  • 17
  • 0
  • 约2.79千字
  • 约 6页
  • 2016-11-27 发布于重庆
  • 举报
串口波特率與定时计数器的关系

串口波特率与定时计数器的关系 在基于单片机的系统开发时,经常采用UART串口,在系统中元件之间,或系统与系统之间进行通信。然而在写过(抑或是生搬硬套)若干串口通信程序之后,却越来越迷惘于串口波特率的设定与T/C间的关系,本文就此问题加以思考并给予验证。 1. T1 作为波特率发生器 在对TMOD进行设置时,若非特殊需要非常低的波特率,一般将T1的工作模式选为方式2:此时既省去了进入T1中断,利用软件重新设置TH1和TL1的不便,又保障了数据收发的正确性(因为晶振稳定)。此时问题来了,那么T0又该设置成什么方式呢?看下表: TMOD TR1 = ? Communicate 片内资源(8051) 0x20 0 不能通信 T/C(1) 1 可以通信 0x21 0 不能通信 T/C(1) 1 可以通信 0x22 0 不能通信 T/C(1) 1 可以通信 0x23 0 可以通信 T/C(1),T(1):由T0拆分 1 可以通信 由上表可看出,当T/C0工作于方式3时,T/C1只需设置好工作方式就可自动运行,而不需要TR1 =1命令。同时也发现,由于T0的拆分,片内仍存在着一个T/C,一个T,可以说,若使用T1作为串口的波特率发生器,最好使T0工作在方式3下,即TMOD = 0X23。 正如老子所说福兮祸之所伏,此做法也存在着一定的坏处: 1. 由于T0的拆分所得的2个T均为8位,且无relo

文档评论(0)

1亿VIP精品文档

相关文档