标题: stc89c52rc单片机中t2做波特率发生器,t0能做pwm发生器吗 [打印本页]

作者: jfmdam    时间: 2021-6-5 00:30
标题: stc89c52rc单片机中t2做波特率发生器,t0能做pwm发生器吗
如题
作者: xuyaqi    时间: 2021-6-5 07:32
stc89c52rc不具备pwm发生器功能,t2做波特率发生器,t0能做定时器用。
作者: qq603599910    时间: 2021-6-5 13:34
我用 STC15W404AS , PCA模块是硬件PWM控制器,不占用系统资源,特别舒服.
作者: jfmdam    时间: 2021-6-5 13:54
#include<REG52.H>
sfr T2MOD=0X0C9;
/************************************************************************/
void sint() interrupt 4          //中断接收3个字节
{

    if(RI)                         //是否接收中断
    {
       RI=0;
       dat=SBUF;
}
}
        void main(void)
{
        T2CON=0X34;
        T2MOD=0x00;  
  RCAP2H=0xFF;                     //11.0592M晶振,9600波特率
  RCAP2L=0xDC;
    SCON=0x50;
PCON=0X00;  
        ES=1;   
    EA=1;       
           while(1);                                                        /*无限循环*/       
}



这个程序是11.0592Mhz,波特率为9600的C程序,需要的师兄可以参考一下。
另外,如果用 T0或者T1产生PWM波的话,T2做波特率发生器才不会冲突。经验之谈,希望对大家有用!       
作者: 啤酒瓶子老大    时间: 2021-6-5 14:20
我也没试过,我想冲突肯定会有,楼主能否换个晶振,比如22.1184的,或者更高的。计算好T2的波特率,这样时钟块了,冲突应该会小点。利用MCU的高速度把时间分成更小的时间片。也许可以。毕竟串口是允许有一点误差的。
作者: jfmdam    时间: 2021-6-5 14:24
啤酒瓶子老大 发表于 2021-6-5 14:20
我也没试过,我想冲突肯定会有,楼主能否换个晶振,比如22.1184的,或者更高的。计算好T2的波特率,这样时 ...

用T2好像没有冲突,我看有人在冲突的时候把串口中断的优先级设置成最高就没事了




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