START: MOV IP,#00H
;SCON: SM0|SM1|SM2|REN|TB8|RB8|TI|RI
MOV SCON,#11010000B ; 1 1 0 0 0 0 0 0
MOV A,PCON
ANL A,01111111B ;SMOD=0
MOV PCON,A
MOV P1,#00H
MOV TCON,#00H
MOV IE,#00H
MOV TH1,#0FDH ;波特率9600
MOV TL1,#0FDH
;TMOD: GATE|C/!T|M1|M0|GATE|C/!T|M1|M0
MOV TMOD,#00100000B; 0 0 1 0 0 0 0 0
SETB TR1
SETB ES
SETB EA
MOV A,#0FH
LOOP: ACALL DELAY ;循环的发数据
ACALL SENT
SJMP LOOP
DELAY: MOV R0,#0FFH ;延时子程序
MOV R1,#0FFH ;延时:执行r0*r1*r2条djnz指令的时间
MOV R2,#05H ;
D_1: DJNZ R2,INIT_2 ;
RET ;延时完成,返回
INIT_2: MOV R1,#0FFH ;
D_2: DJNZ R1,D_3 ;
SJMP D_1 ;
D_3: MOV R0,#0FFH ;
DJNZ R0,$ ;
SJMP D_2 ;
SENT: MOV SBUF,A ;问题就在这,发某些数就停了
MOV P1,A ;
INC A ;实验发送0-255
RET
RXD_INT:CLR TI ;
JB RI,RCV ;
RETI ;
RCV: CLR RI ;接收的数据从p1口显示
MOV P1,SBUF ;p1口接8个LED
RETI
RXD_INT:JB RI,RCV ;
CLR TI ;
SETB TIFG
RETI ;
RCV: CLR RI ;接收的数据从p1口显示
MOV P1,SBUF ;p1口接8个LED
RETI
B.你的串口通讯是方式为3,那么,根据奇偶校验等,你的TB8是要不断附值的。建议
串口通讯方式是使用方式1。