题目概述: 电脑通过串口控制LED灯。 编程: #include<REG52.h> void delay(unsigned int xms) { unsigned int i,j; for(i=xms;i>0;i–) for(j=110;j>0;j–); } void UART_Init() { PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 TMOD &= 0x0F; //清除定时器1模式位 TMOD |= 0x20; //设定定时器1为8位自动重装方式 TL1 = 0xFD; //设定定时初值 TH1 = 0xFD; //设定定时器重装值 ET1 = 0; //禁止定时器1中断 TR1 = 1; //启动定时器1 } /* *串口发送一个字节数据 *Byte要发送的一个字节数据 *返回值无 */ void UART_SendByte(unsigned char Byte) { SBUF=Byte; while(TI==0); TI=0; } void main() { UART_Init(); while(1) {
}
} void UART_Routine() interrupt 4 { if(RI==1) //接受 { P2=~SBUF; UART_SendByte(SBUF);//发回 RI=0; } }
|