首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

89s52定时器2作为波特率发生器

89s52定时器2作为波特率发生器

#include<reg52.h>
#define uchar unsigned char

void delay(void)           //此处延时时间为513us,此处延时可以任意
{
 uchar  i,j;
 for(i=0;i<0xff;i++)
    for(j=0;j<0xef;j++);
}

void main(void)
{
 
 uchar i;
 TCLK=1;
 RCLK=1;
 
 TH2=0xFF;  //9600bps  11.0592MHz的时钟频率
 TL2=0xDC;
 RCAP2H=0xFF;  //方式1和方式3的波特率=fosc/(32-(65535-(RCAP2H,RCAP2L))
 RCAP2L=0xDC;

//******************串口设置**************************************************//
 SCON=0x50; //SM0  SM1  SM2  REN  TB8 RB8  TI RI
 CON=0x00;  //TMOD=0;
 
 TR2=1;
 EA=1;
 ET2=1;
 
 while(1)
 {
  for(i=0;i<6;i++)
  {
   SBUF=0x30;
   while(TI==0);
   TI=0;
   delay();
  }
 }
}

我使用该程序利用单片机和PC机通信证明程序是正常的 。

返回列表