可以參考下這個
#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;
}
} |