|
DISP:
LCALL LCD_PRT;显示前面的字符串
MOV A,#0C0H;从第八个位置开始显示
LCALL WRCOM;
MOV P2,#DW_ADD;写数据的地址
MOV R1,#0FFH;
MOV NUM,#03H;要写入数据的个数
DISP1:MOV A,@R0;
LCALL CONV;16进制数先转换为BCD码,再转换为ASCII码,并分别显示
INC R0;
DJNZ NUM,DISP1;
; MOV A,@R0;
; LCALL CONV;16进制数先转换为BCD码,再转换为ASCII码,并显示
; INC R0;
; MOV A,@R0;
; LCALL CONV;16进制数先转换为BCD码,再转换为ASCII码,并显示
; INC R0;
; MOV A,@R0;
; LCALL CONV;16进制数先转换为BCD码,再转换为ASCII码,并显示
DEC R0;将R0调整回原位置
DEC R0;
RET;
谢谢了,麻烦zyzhang365了
NUM是个内存单元,我设的是41h,没有其他变量占用……
加注释的地方是不带循环时的程序
conv是个转换程序,应该没有影响
conv的代码在下面
;数据转换
CONV:
MOV B,#10 ;分离十位和个位
DIV AB;A中为十位,B中为个位
ADD A,#30H
MOVX @R1,A;转换后的数据送显示
LCALL DLY00;
MOV A ,B;
ADD A,#30H;
MOVX @R1,A;转换后的数据送显示
LCALL DLY00;
MOV A,#":";
MOVX @R1,A;显示分号
LCALL DLY00;
RET
|
|