实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。
利用P3口低四位状态控制开始和停止计数,控制方式自定(此处用P3.0为高电平开始计数,为低电平计数停止)。
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV P2, #0
MOV P0, #0
MOV R7, #0
MOV R6, #0
LOOP:
JNB P3.0, LOOP
LCALL NUM_OPER
LCALL NUM_DISP
LJMP LOOP
NUM_OPER:
JNB P3.7, DEC_OPER
INC_OPER:
CJNE R6, #99H, N_CARRY1
CARRY1:
MOV R6, #0
CJNE R7, #99H, N_CARRY2
CARRY2:
MOV R7, #0
RET
N_CARRY2:
MOV A, #1
ADD A, R7
DA A
MOV R7, A
RET
N_CARRY1:
MOV A, #1
ADD A, R6
DA A
MOV R6, A
RET
DEC_OPER:
CJNE R6, #00H, N_CARRY3
CARRY3:
MOV R6, #99H
CJNE R7, #00H, N_CARRY4
CARRY4:
MOV R7, #99H //为-1相对于(9AH)的补码
RET
N_CARRY4:
MOV A, #99H
ADD A, R7
DA A
MOV R7, A
RET
N_CARRY3:
MOV A, #99H
ADD A, R6
DA A
MOV R6, A
RET
NUM_DISP:
MOV P1, R7
MOV P2, R6
RET
END
版权声明:本文为cxiaobaizzf原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。