串口2程序:
- #define FOSC 22118400UL
- #define BAUD 9600UL
- #define BRT (0x10000-FOSC/BAUD/4)
-
- void Init(void)
- {
- P0M0=0x00;
- P0M1=0x00;
- P1M0=0xc0;
- P1M1=0x3f;
- P2M0=0x00;
- P2M1=0x00;
- P3M0=0x00;
- P3M1=0x00;
- P4M0=0x00;
- P4M1=0x00;
- P5M0=0x00;
- P5M1=0x00;
- P6M0=0x00;
- P6M1=0x00;
- P7M0=0x00;
- P7M1=0x00;
-
- AUXR=0x15; //设置定时器0为12T模式,设置定时器1为12T模式,使能定时器2,设置定时器2为1T模式
- TMOD=0x00; //设置定时器0为16位自动重载模式,设置定时器1为16位自动重载模式
-
- S2CON=S2REN; //UART2模式为8位数据,可变波特率
- T2L=BRT; //设置波特率
- T2H=BRT>>8; //设置波特率
- IE2|=ES2; //使能UART2中断
-
- EA=1; //使能总中断
- }
-
- void main(void)
- {
- Init();
- while(1)
- {
-
- }
- }
-
- void Uart2_Isr(void) interrupt 8
- {
- if(S2CON&S2RI)
- {
- S2CON&=~S2RI;
- //user code
- }
- if(S2CON&S2TI)
- {
- S2CON&=~S2TI;
- //user code
- }
- }
复制代码
|