單片機源程序如下:
#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);
}
|