看板 ASM 關於我們 聯絡資訊
經由P2的LED得知,P2的值確實有在變化 但是PC都收不到任何字串 (用超級終端機看) #include "AT89X51.h" /* P2 讀取ADC P1,2,3 預留輸出控制 */ unsigned char ucADC0804; main() { IE=0x90; /* (中斷Enable)EA=1,(串列中斷)ES=1*/ P2=0xFF; /* P2為讀取Port */ SCON=0x70; /*Serial Port mode1*/ TMOD=0x20; /*Timer mode1(Auto Load)*/ TH1=0xFD; /*9600bps@11.0952MHz*/ TR1=1; /*Timer1 啟動!*/ ucADC0804=P2; TI=1; /*發射中斷啟動!*/ while(1) { //如果ADC0804輸出的值有變化 if(P2!=ucADC0804){ ucADC0804=P2; TI=1; } } } void serial_INT(void) interrupt 4 { if(TI) { TI=0;/*清除*/ SBUF=ucADC0804; while(!TI); /*等待發射完畢*/ TI=0; P1=~(P1&=0x01); /*中斷觀測用*/ } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.165.222
deo2000:發現是RxTx接反,可是接對後還是一堆亂碼 01/09 02:26
deo2000:找到每次傳4bit的方法,但還是無法理解為何這樣不行? 01/09 06:05
hongsiangfu:你直接傳回P2的值是亂碼很正常 01/09 09:48
hongsiangfu:超級終端機接到資料後會對應ascii code顯示對應字元 01/09 09:49
hongsiangfu:sorry 沒看到下面那篇 01/09 09:51
deo2000:感謝! 下面那篇是我書上方法改,我還是想知道這篇的原因 01/09 12:46
cwl751005:直接在主程式打SBUF=ucADC0804就會傳啦 01/09 17:54