初学者:求助!!
我作一个串口传数据的实验,但是单片机没有得到想要的输出,大家给看看是怎么回事,谢
谢。
pc端的程序:
#include <bios.h>
#include <stdio.h>
#define PROTOCAL 0xe3
#define PROT 0
#define TX 1
#define RX 2
#define STATUS 3
int port=1;
main()
{
int s=0,i=0,num=0;
unsigned char c;
bioscom(PROT,PROTOCAL,port);
clrscr();
puts("-----------------------");
puts("RS232 COM2 <9600 N 8 1>");
puts("-----------------------");
while(i<=81920)
{
s=bioscom(STATUS,0,port)&0x10;
if(s)
{
if((i%2)==0)
num=0;
else num=1;
bioscom(TX,num,port);
printf("%d ",num);
i++;
}
}
}
单片机:
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV TMOD,#20H
MOV TL1,#0FDH
MOV TH1,#0FDH
SETB TR1
MOV R2,#00H
MOV R3,#00H
LOOPA:
LOOPB:CALL RECEIVE
MOV P1,A
INC R2
CJNE R2,#0FFH,LOOPB
INC R3
CJNE R3,#20H,LOOPA
RET
RECEIVE: MOV SCON,#50H
WAIT: JNB RI,WAIT
CLR RI
MOV A,SBUF
RET
我试了一下,经过max232,在单片机的rx脚上测的还是有正确的信号,但是P1口没有输出。
发表时间:2003年3月4日22:17:00