#include <reg51.h>
#define XTAL 11059200 // CPU晶振频率
#define baudrate 9600 // 通信波特率
#define uchar unsigned char
#define uint unsigned int
char aa, bb = 0;
//-----------------------------------------------------------
void main(void)
{
PCON = 0x00; // 波特率不倍增.
SCON = 0x50; // 设定串行口工作方式.
TMOD = 0x21; // T1定时方式2, 用于产生波特率.
// T0定时方式1, 用于定时.
TL1 = (uchar)(256 - (XTAL / (384L * baudrate))); // T1赋初值.
TH1 = (uchar)(256 - (XTAL / (384L * baudrate)));
TR1 = 1; // 启动定时器1
TL0 = (65536 - 4608) % 256; //
[email protected] TH0 = (65536 - 4608) / 256;
TR0 = 1; // 启动定时器0
ET0 = 1;
EA = 1; // 中断总允许.
while(1);
}
//-----------------------------------------------------------
void T0_INT() interrupt 1
{
TL0 = (65536 - 9216) % 256; //
[email protected] TH0 = (65536 - 9216) / 256;
aa++;
aa %= 2;
if (aa == 0) {
SBUF = (bb / 10) * 16 + (bb % 10);
bb++;
bb %= 100;
}
}
//-----------------------------------------------------------