早教吧 育儿知识 作业答案 考试题库 百科 知识分享

单片机求解、将累加器A中的十六进制数转换为ASCII码。查ASCII码表可知:数字0~9的ASCII码分别是30H~39H;英文大写字母A~F的ASCII码分别是41H~46H。可见数字的ASCII码值与数字值相差30H;字母的ASCII

题目详情
单片机求解
、将累加器A中的十六进制数转换为ASCII码。查ASCII码表可知:数字0~9的ASCII码分别是30H~39H;英文大写字母A~F的ASCII码分别是41H~46H。可见数字的ASCII码值与数字值相差30H;字母的ASCII码值与其值相差37H。试完成如下程序:
MOV R2,A
CLR C
SUBB A,#0AH
MOV A,R2
(1) () AD30
(2) () A,#07H
AD30:ADD A,#30H
END
▼优质解答
答案和解析
第一个括号: JC
第二个括号:ADD
原因:
CLR C ;清零C
SUBB A,#0AH ;A - 0AH 即,A - 10,如果A>10,则C不变,如果C<10,则C会自动
;变成 1
MOV A,R2 ;再次把R2赋值给A
JC AD30 ; 如果C不为0,也就是说前面的 A -10出现了 A<10,那么跳到 AD30处
;直接加30H,然后退出
ADD A,#07H ; 如果C为0,即前面的 A -10出现了 A>10,那么先加07H,然后再加30H后
;退出.
AD30:ADD A,#30H
END