原程序如下,可实现发送功能。 SEND_STRING: MOV R7,#00H STR: MOV DPTR,#STRING MOV A,R7 MOVC A,@A+DPTR MOV DAT,A ;DAT为发送字母的寄存器 ACALL SEND INC R7 MOV A,DAT CJNE A,#26,STR ;ctrl+z的ascii码为26,用于确定发送字符,每次出现一个26为一条信息 RET STRING: DB 'W','e','l','l','c','o','m','e',26 ; 但我需要改成发送分组的字母,这些字母要组成一条信息,所以只能出现一次26,即发送'WellcomABC',我改的程序如下,编译没问题,但单片机不能实现功能,希望大神能指教下问题出在哪? SEND_STRING: MOV R7,#00H MOV R6,#08H STR: MOV DPTR,#STRING MOV A,R7 MOVC A,@A+DPTR MOV DAT,A ACALL SEND INC R7 DJNZ R6,STR STRING: DB 'W','e','l','l','c','o','m','e' ; SEND_STRING1: MOV R7,#00H STR1: MOV DPTR,#STRING1 MOV A,R7 MOVC A,@A+DPTR MOV DAT,A ACALL SEND INC R7 MOV A,DAT CJNE A,#26,STR RET STRING1: DB 'A','B','C',26 ; |