可以参考下这个
#include<STC15F2K60S2.h>
/***********位定义************/
sbit LED0 = P0^0; // LED0
sbit LED1 = P0^1; // LED1
sbit LED2 = P0^2; // LED2
sbit LED3 = P0^3; // LED3
sbit LED4 = P0^4; // LED4
sbit LED5 = P0^5; // LED5
sbit LED6 = P0^6; // LED6
sbit LED7 = P0^7; // LED7
sbit LED127 = P3^7; // LED127
void main(void)
{
P0M1 = 0x00;
P0M0 = 0xff;
P0 = 0x00;
P3M1 = 0x03;
P3M0 = 0xfe;
P3 = 0xc3;
SCON = 0xf0; // 8位数据+1位起始位,可变波特率
AUXR |= 0x04; // 定时器2时钟为Fosc,即1T
T2L = 0x8f; // 设定定时初值
T2H = 0xfd; // 设定定时初值
AUXR |= 0x10; // 启动定时器2
ES = 1; // 允许串口中断
while(1)
{
switch(SBUF)
{
case 0x00: LED0 = on; break; // LED0灯亮
case 0x01: LED0 = off; break; // LED0灯灭
case 0x02: LED1 = on; break; // LED1灯亮
case 0x03: LED1 = off; break; // LED1灯灭
case 0x04: LED2 = on; break; // LED2灯亮
case 0x05: LED2 = off; break; // LED2灯灭
// 以下省略
case 0xfe: LED127 = on;break; // LED127灯亮
default: LED128 = off; // LED127灯灭
}
}
}
void UartRcv(void) interrupt 4
{
if(RI)
{
RI = 0;
}
} |