单片机12M的晶振使用9600波特率与电脑通讯

 时间:2026-02-16 04:03:50

1、想要使用9600的波特率与电脑通讯,却发现单片机上的晶振为12Mhz,真的无法实现了么?

2、对于51系列单片机,推荐改成11.0592M晶振。这个方法是肯定可以实现的。而如果你使用的是52及其以上的单片机(例如STC89C52),不用换跟换晶振也可以实现9600波特率。

3、51单片机通常由TIMER1来产生波特率,TIMER1的频率是晶振的1/12,也就是1M。它的频率太低导致它不能实现9600波特率。

52及以上的单片机提供了TIMER2,可作为波特率发器。且它作为波特率发生器时,它的频率是晶振的1/2,也就是6M。

4、下面给出串口初始化函数:

void Uart0_Init()

{

    RCAP2L=0xD9;//9600波特率对应 FFD9,低位为D9

    RCAP2H=0xFF;//高位为FF

    T2CON=0x34;//RCLK、TCLK、TR2置1

    SCON=0x50;//串口工作模式1,接收使能

    ES=1;//打开接收中断

    EA=1;//打开总中断

}

5、中断函数:

void Uart0_Ist() interrupt 4 //中断函数

{

       if(RI)

    {

        RI= 0;

        //Do whatever you want;

    }

       if(TI)

    {

        TI = 0;

        //Do whatever you want;

    }

}

  • Keil如何软件仿真调试
  • Altium Designer原理图如何修改纸张大小
  • ad10怎么修改原理图图纸大小
  • keil5使用教程
  • keil怎样生成hex文件?
  • 热门搜索
    掉发怎么办 痛风发作了怎么样才能快速缓解下去 法令纹怎么去除 情况说明书怎么写 无房证明怎么开 房产遗嘱怎么写 公司概况怎么写 华硕飞行堡垒怎么样 宝宝抵抗力差怎么办 省略号怎么打出来