单片机第五次作业
时间:11-25
来源:互联网
点击:
作业:将4位二进制数转换为ASCII码
入口:R2=4位二进制数,只取低四位。
出口:R2=转换后的ASCII码
1、先fileànew 建asm文件20.asm
BIN2ASC:MOV 10H,R2
ANL 10H,#0FH
PUSH 10H
MOV A,10H
CLR C
SUBB A,#0AH
POP 10H
MOV A,10H
JC LOOP
ADD A,#07H
LOOP:ADD A,#30H
MOV R2,A
RET
END
为了调试时看数据,预先在R2中赋值为7CH,所以程序前加:
MOV R2,#7CH
程序变为:
MOV R2,#7CH
BIN2ASC:MOV 10H,R2
ANL 10H,#0FH
PUSH 10H
MOV A,10H
CLR C
SUBB A,#0AH
POP 10H
MOV A,10H
JC LOOP
ADD A,#07H
LOOP:ADD A,#30H
MOV R2,A
RET
END
2、建新工程,Projectànew project ,选AtemlàAT89C51 ,导入文件20.asm。
注意,对初学者,一个工程里只能有本程序20.asm,无关的程序要删除,新试验一个程序最好重新建工程,以保证一个工程里只有你要试验的那一个程序。
3、可见程序
4、编译通过后,点debug下的start/stop开始调试, step 和step over都是单步调试,step是遇到子程序或中断也要进入进行单步调试,step over是遇到子程序或中断当一句一次执行完。本程序物子程序,二者是一样的。我们执行一句得到:
可见:R2值变为7ch.继续执行:
点view àmemory windows,再输入D:10h回车,得到:
10H处值为7CH.下一步:
可见,10H值变为0ch,下一步:
A中值变为0CH,下一步:
把A与0AH相减,并使10H出栈,此时CY并未改变,仍为0。所以不跳转。继续执行:
可见A中值变为13H,继续往下执行:
A中值变为43h,下一步:
可见R2中值变为43h,即为0ch转换后的ACSII码值.
入口:R2=4位二进制数,只取低四位。
出口:R2=转换后的ASCII码
1、先fileànew
BIN2ASC:MOV 10H,R2
LOOP:ADD A,#30H
END
为了调试时看数据,预先在R2中赋值为7CH,所以程序前加:
MOV R2,#7CH
程序变为:
MOV R2,#7CH
BIN2ASC:MOV 10H,R2
LOOP:ADD A,#30H
END
2、建新工程,Projectànew
3、可见程序
4、编译通过后,点debug下的start/stop开始调试,
可见:R2值变为7ch.继续执行:
点view àmemory windows,再输入D:10h回车,得到:
10H处值为7CH.下一步:
可见,10H值变为0ch,下一步:
A中值变为0CH,下一步:
把A与0AH相减,并使10H出栈,此时CY并未改变,仍为0。所以不跳转。继续执行:
可见A中值变为13H,继续往下执行:
A中值变为43h,下一步:
可见R2中值变为43h,即为0ch转换后的ACSII码值.
单片机ASCII 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)