#include" w77c32.h" static int flag_1,flag_0; char c1[]="hello china"; char c2[]="hello World"; main() { int i; flag_1=1; flag_0=1; //system init ,其中串口0用定时器2,串口1用定时器1 //串口1的设置 IE=0x90; //允许总中断和串口0的中断 TMOD=0x20; //定时器1工作在模式1 TL1=0xf4; //baud rate=2400 TH1=0xf4; SCON1=0x58; //工作在模式1,允许接收 PCON=0x00; // SM0=0 SM1=1 在10位异步收发模式 SMOD=0 溢出速率/32 ES1=1; //串口1中断允许 SCON=0x58; //工作在模式1,接收允许 T2CON=0x30; //用定时器2做串口0的波特率发生器 RCAP2H=0xff; // 11.0592M晶振下,baud rate=2400 RCAP2L=0x70;
TR2=1; TR1=1; while(1) { if(flag_0) {TI=1;flag_0=0;} for(i=0;i<1000;i++) ; if(flag_1) {TI_1=1;flag_1=0;} for(i=0;i<1000;i++) ; } } void serial_0(void)interrupt 4 { int i; if(RI) { flag_0=1; RI=0; } if(TI) { for(i=0;i<10;i++) { TI=0; SBUF=c1[i]; while(TI==0) ; TI=0; } } }
void serial_1(void)interrupt 7 { int i; if(RI_1) { flag_1=1; RI_1=0; } if(TI_1) { for(i=0;i<10;i++) { TI_1=0; SBUF1=c2[i]; while(TI_1==0) ; TI_1=0; } } }
(文章推荐人:电池)
|