原程序如下,可實現發送功能。 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 ; |