[問題] RS232和超級終端機傳輸問題
想請問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