[問題] RS232和超級終端機傳輸問題

看板Electronics作者 (kk)時間14年前 (2011/05/29 17:45), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
想請問RS232傳輸的問題(8051新手) 我晶片用89S51,接max232傳輸,都是照著書上接電路的 #include <reg51.h> sbit LED=P1^0; char RI_DATA[] = 5; int RI_END; char TI_DATA[] = {0x41,0x01,0x61,0x3f,0x33}; void DELAY(int ); main() { int i; TMOD = 0x20; PCON &= 0x7f; TH1 = TL1 = 0xfd; SCON = 0x50; TR1 = 1; EA = ES = 1; LED = 0; RI_END = 0; while(1) { DELAY(200); if(RI_END) { for (i=0;i<5;i++) { TI = 0; SBUF = TI_DATA[i]; while (TI == 0); } RI_END = 0; } } } void serial_INT(void) interrupt 4 { if((RI == 1)&&(RI_END == 0)) { RI = 0; RI_DATA[0] = SBUF; //if (RI_DATA[0] =='1') LED = ~LED; RI_END = 1; RI = 0; } } void DELAY(int X) { int i,j; for(i=0;i<X;i++) for(j=0;j<60;j++); } 超級終端機 鮑率設 "9600" 流量控制設 "無" 確定後進入內容點 "ASCII設定" "行尾傳送換行符號"打勾 若"回應輸入的字元"打勾在按終端機時會出現同樣的字 例如:我按a就再出現一個a,這正常嗎? 可以接收(我設定按一下,LED就閃) 但不知道接收了什麼 以上是我的程式和其他設定,有兩個問題 1.在接數時多了if判斷收到的為 1 ,但我在終端機上按1,沒法讓我的LED燈閃一下 要怎麼修改才可以進入if的判斷? 2.接收到時,我會傳出5個字串,但終端機都不會收到,為什麼? 晶片設定有錯嗎? 麻煩各位大大了~謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.79.161
文章代碼(AID): #1DuXNGYI (Electronics)