[問題] PC 收不到 51 送出的字串

看板ASM (組合語言)作者 (800IM)時間12年前 (2013/01/09 01:50), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/2 (看更多)
經由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

01/09 02:26, , 1F
發現是RxTx接反,可是接對後還是一堆亂碼
01/09 02:26, 1F

01/09 06:05, , 2F
找到每次傳4bit的方法,但還是無法理解為何這樣不行?
01/09 06:05, 2F

01/09 09:48, , 3F
你直接傳回P2的值是亂碼很正常
01/09 09:48, 3F

01/09 09:49, , 4F
超級終端機接到資料後會對應ascii code顯示對應字元
01/09 09:49, 4F

01/09 09:51, , 5F
sorry 沒看到下面那篇
01/09 09:51, 5F

01/09 12:46, , 6F
感謝! 下面那篇是我書上方法改,我還是想知道這篇的原因
01/09 12:46, 6F

01/09 17:54, , 7F
直接在主程式打SBUF=ucADC0804就會傳啦
01/09 17:54, 7F
文章代碼(AID): #1Gx5nSoB (ASM)
文章代碼(AID): #1Gx5nSoB (ASM)