發(fā)送是主動(dòng)的,要先發(fā)數(shù)據(jù)才會(huì)有中斷,沒(méi)發(fā)數(shù)據(jù),怎么會(huì)觸發(fā)中斷,這個(gè)邏輯你要清楚。一般發(fā)送用查詢模式;接收是被動(dòng)的,接收中斷由外部設(shè)備發(fā)送數(shù)據(jù)產(chǎn)生的。一般用中斷接收方式。如果這樣理解應(yīng)該很清楚了: 發(fā)送可以認(rèn)為內(nèi)部中斷(TI=1,) 接收可以認(rèn)為外部中斷(RI=1,) 查詢發(fā)送方式: #include #include #include void initial_uart(); main() { initial_uart(); while(1) { TI=0; SBUF = A; while(!TI); TI=0; }} void initial_uart(){ TMOD = 0x20;//定時(shí)器1工作在模式2[自動(dòng)重裝模式] SCON = 0x50;//使串口工作在模式1,打開(kāi)串口接收功能[接收本程序沒(méi)有用到] PCON = 0x00; TH1 = 0xFD; TL1 = 0xFD; TR1 = 1;//打開(kāi)定時(shí)器1 ES = 1;//打開(kāi)串口中斷 EA = 1;//打開(kāi)總中斷}
評(píng)論