标题: 定时器2如何改变波特率? [打印本页]

作者: 衒!    时间: 2016-6-5 16:56
标题: 定时器2如何改变波特率?
有一个例程,是9600波特率的,代码如下
  1. void UART_Init(void)
  2. {

  3.         SCON = 0x50;                //8位数据,可变波特率
  4.         AUXR |= 0x01;                //串口1选择定时器2作为波特发生率
  5.         AUXR |= 0x04;                //定时器2时钟作为Fosc,即1T
  6.         T2L = 0x8F;                //设置定时器初值
  7.         T2H = 0xFD;                //设置定时器初值
  8.         AUXR |= 0x10;                //启动定时器2
  9.        
  10. }
复制代码

我找到的单片机的书,定时器1是SCON,PCON这些,比如PCON=0x00改成PCON=0x80. 定时器2就是T2MOD,
没看到有AXUR,请问上边的初始化程序中,怎么将波特率翻倍?




作者: luoluoluo136    时间: 2016-6-5 21:52
书上的单片机没有定时器2吧。。。一般书上说的都是89c51,只有定时器0和定时器1的~~~这个定时器2看你用的什么单片机
作者: 衒!    时间: 2016-6-5 22:52
luoluoluo136 发表于 2016-6-5 21:52
书上的单片机没有定时器2吧。。。一般书上说的都是89c51,只有定时器0和定时器1的~~~这个定时器2看你用的什 ...

恩,好像定时器1比较常用
作者: ljh951028    时间: 2016-6-6 09:19
void UART_Init(void)
{

        SCON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x01;                //串口1选择定时器2作为波特发生率
        AUXR |= 0x04;                //定时器2时钟作为Fosc,即1T
        T2L = 0x8F;                //设置定时器初值
        T2H = 0xFD;                //设置定时器初值
        AUXR |= 0x10;                //启动定时器2
       
}
作者: 王杰    时间: 2016-6-6 09:52
通过设置定时器的初值就可以改变波特率
作者: liuyimao485812    时间: 2016-6-19 18:27
ljh951028 发表于 2016-6-6 09:19
void UART_Init(void)
{

写的不错的。
作者: 念此    时间: 2018-7-29 09:56
luoluoluo136 发表于 2016-6-5 21:52
书上的单片机没有定时器2吧。。。一般书上说的都是89c51,只有定时器0和定时器1的~~~这个定时器2看你用的什 ...

52单片机就有T2,功能很强
作者: wulin    时间: 2018-7-29 20:58


作者: lingaoyun66    时间: 2018-7-30 14:56

通过设置定时器的初值就可以改变波特率
作者: huliujie    时间: 2018-7-30 18:07
写PCON=0x80就行了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1