/************* 本程序功能说明 **************
使用12MHZ时钟时,Timer0从P3.4 Timer1从P3.5分别输出50KHZ和30KHZ的方波.
1.0输出10khz
******************************************/
#include <reg51.h>
sfr AUXR = 0x8E;
sfr WAKE_CLKO = 0x8F;
sfr BRT = 0x9C;
void main(void)
{
unsigned char a,b;
TMOD=0x22; //T0,T1工作在模式2,8位自动重装计数器
AUXR=(AUXR|0x80); //T0工作在1T模式
AUXR=(AUXR|0x40); //T1工作在1T模式
AUXR=(AUXR& ~0x04 ); //独立的波特率发生器工作在12T模式
BRT = 256 - 50; //1.0输出10khz 1 脚
TH0 = 256 - 120; //3.4输出50khz 14 脚
TH1 = 256 - 200; //3.5输出30khz 15 脚
WAKE_CLKO=(WAKE_CLKO|0x07);//允许T0,T1,独立波特率发生器输出时钟
TR0 = 1; //启动T0开始计数
for(b=3;b>0;b--)
for(a=3;a>0;a--);
TR1 = 1; //启动T1开始计数
for(b=3;b>0;b--)
for(a=4;a>0;a--);
AUXR=(AUXR|0x10); //启动独立波特率发生器开始计数
//至此时钟已经输出
while(1);
}