四海电子的笔记 https://bbs.21ic.com/?552178 [收藏] [复制] [RSS]

日志

将拨码开关的4位HEX转换为按位编号的加法BCD(ASM)

已有 782 次阅读2008-8-19 20:21 |个人分类:51单片机程序(ASM)|系统分类:单片机| HEX转换, 加法BCD

;***********************************************************************************
;子程序名:SWITCH_BCD
;功    能:将拨码开关的4位HEX转换为按位编号的加法BCD
;说    明:转换原理为将对应的位数相加得到一个0-9的数字
;          D3=4,D2=3,D1=2,D0=1
;          00H=0:  01H=1:  02H=2:  03H=3:  04H=3:  05H=4:  06H=5:  07H=6:  08H=4: 
;          09H=5:  0AH=6:  0BH=7:  0CH=7:  0DH=8:  0EH=9:  0FH=0:
;调    用:无
;堆栈需求:两字节
;入口参数:R0: 存放转换数据的首地址   R7: 需转换数据的个数
;修 改 值:R0,R7
;返 回 值:原地址单元
;程序设计:李尚
;设计时间:2005.03.16
;版 本 号:20050316
;***********************************************************************************
SWITCH_BCD:
 CJNE @R0,#00H,SB1
 MOV @R0,#00H
 AJMP SWITCH_NEXT
SB1:
 CJNE @R0,#01H,SB2
 MOV @R0,#01H
 AJMP SWITCH_NEXT
SB2:
 CJNE @R0,#02H,SB3
 MOV @R0,#02H
 AJMP SWITCH_NEXT
SB3:
 CJNE @R0,#03H,SB4
 MOV @R0,#03H
 AJMP SWITCH_NEXT
SB4:
 CJNE @R0,#04H,SB5
 MOV @R0,#03H
 AJMP SWITCH_NEXT
SB5:
 CJNE @R0,#05H,SB6
 MOV @R0,#04H
 AJMP SWITCH_NEXT
SB6:
 CJNE @R0,#06H,SB7
 MOV @R0,#05H
 AJMP SWITCH_NEXT
SB7:
 CJNE @R0,#07H,SB8
 MOV @R0,#06H
 AJMP SWITCH_NEXT
SB8:
 CJNE @R0,#08H,SB9
 MOV @R0,#04H
 AJMP SWITCH_NEXT
SB9:
 CJNE @R0,#09H,SB10
 MOV @R0,#05H
 AJMP SWITCH_NEXT
SB10:
 CJNE @R0,#0AH,SB11
 MOV @R0,#06H
 AJMP SWITCH_NEXT
SB11:
 CJNE @R0,#0BH,SB12
 MOV @R0,#07H
 AJMP SWITCH_NEXT
SB12:
 CJNE @R0,#0CH,SB13
 MOV @R0,#07H
 AJMP SWITCH_NEXT
SB13:
 CJNE @R0,#0DH,SB14
 MOV @R0,#08H
 AJMP SWITCH_NEXT
SB14:
 CJNE @R0,#0EH,SB15
 MOV @R0,#09H
 AJMP SWITCH_NEXT
SB15:
 CJNE @R0,#0FH,SB16
 MOV @R0,#00H
 AJMP SWITCH_NEXT
SWITCH_NEXT:
 INC R0
 DJNZ R7,SWITCH_BCD
 RET


 


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)