?? winbond的w77e58雙串口測(cè)試程.txt
字號(hào):
硬件:關(guān)于w77e58雙串口的求助! [explorer_7] [51次] 01-5-10 下午 05:36:31
我現(xiàn)在正在用w77e58的雙串口功能,但是我照華邦公司主頁(yè)上的資料做實(shí)驗(yàn)做了半天,第一
個(gè)串口運(yùn)行良好,始終打不開第二個(gè)串口,希望大俠能給一點(diǎn)幫助,發(fā)一點(diǎn)相關(guān)資料,最好
有一個(gè)例程。謝謝!E-mail:cj@cool.com.cn
w77e58例程 [RSCZ] [81次] 01-5-10 下午 07:51:12
winbond的w77e58雙串口測(cè)試程
序:
打開超級(jí)終端(com1,baud rate=2400),用串口線連接單片機(jī)的任意一個(gè)串口,在超
級(jí)終端任意一個(gè)鍵,串口都產(chǎn)生中斷,單片機(jī)的串口中斷程序會(huì)予以響
應(yīng)。
********************************************************************************
#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用定時(shí)器2,串口1用定時(shí)器1
//串口1的設(shè)置
IE=0x90; //允許總中斷和串口0的中斷
TMOD=0x20; //定時(shí)器1工作在模式1
TL1=0xf4; //baud rate=2400
TH1=0xf4;
SCON1=0x58; //工作在模式1,允許接收
PCON=0x00; // SM0=0 SM1=1 在10位異步收發(fā)模式 SMOD=0 溢出速率/32
ES1=1; //串口1中斷允許
SCON=0x58; //工作在模式1,接收允許
T2CON=0x30; //用定時(shí)器2做串口0的波特率發(fā)生器
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;
}
}
}
謝謝RSCZ大哥!你真是幫我解決了大難題! [explorer_7] [12次] 01-5-11 上午 09:10:46
我現(xiàn)在做一個(gè)消防系統(tǒng)的遠(yuǎn)程數(shù)據(jù)傳輸,有空多聯(lián)系!謝謝!
不用謝 [RSCZ] [14次] 01-5-11 下午 07:36:55
有空可以發(fā)郵件聯(lián)系(rscz@china.com)
點(diǎn)擊這里回復(fù)這篇貼子>>
_____________________________________________________________________________
Copyright?,C51BBS論壇 2000-2001
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -