单片机源程序如下:
#include <STC89C5xRC.H>
int PWM = 10, num1 = 0, num2 = 9;
void UartInit(void) //9600bps@11.0592MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x22; //设置定时器模式
TL1 = 0xFD; //设置定时初始值
TH1 = 0xFD; //设置定时重载值
TL0 = 0x48; //设置定时初始值
TH0 = 0x48; //设置定时重载值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1;
ET1 = 0;
TR1 = 1; //定时器1开始计时
}
char _getkey ()
{
char num2;
while(!RI);
num2 = SBUF;
RI = 0;
return (num2);
}
void int4() interrupt 4
{
if (RI)
{
scanf("%bd ", &num2);
}
}
void int1() interrupt 1
{
num1 = (num1 + 1) % PWM;
if (num1 < num2)
{
P20 = 1;
}
else
{
P20 = 0;
}
}
void main()
{
UartInit();
ES = 1;
EA = 1;
while(1);
}
|