微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机第一次作业

单片机第一次作业

时间:11-25 来源:互联网 点击:
作业:把片内RAM的30H处的值(是压缩BCD码)展开为非压缩BCD码放41H,42H处。(高位放41H处)
,此题不是太难,所以就选了这道啦!具体步骤,请大家看好啦!

1、先fileànew建asm文件5.asm。
MOV A,30H
ANL A,#0FH
MOV 42H,A
MOV A,30H
SWAP A
ANL A,#0FH
MOV 41H,A
END
为了调试时看数据,预先在30H中赋值为56H,所以程序前加:
MOV 30H,#56H
为了在最后不至于出现不想看到的框,可以在END前加两三个NOP指令,程序变为:
MOV 30H,#56H
MOV A,30H
ANL A,#0FH
MOV 42H,A
MOV A,30H
SWAP A
ANL A,#0FH
MOV 41H,A
NOP
NOP;因为NOP是仅耗时但什么也不做的空指令,对本程序无影响,也可以不写。
NOP
END
2、建新工程,Projectànewproject,选AtemlàAT89C51,导入文件5.asm。
注意,对初学者,一个工程里只能有本程序5.asm,无关的程序要删除,新试验一个程序最好重新建工程,以保证一个工程里只有你要试验的那一个程序。

,前面的出了程序基本照抄老师的,图省事嘛!

3、可见程序:

4、进行编译、连接。编译通过后,点debug下的start/stop开始调试,step和stepover都是单步调试,step是遇到子程序或中断也要进入进行单步调试,stepover是遇到子程序或中断当一句一次执行完。本程序物子程序,二者是一样的。,准备工作已经做好,下面就开始执行喽!我们执行一句得到:


点viewàmemorywindows,再输入D:30h回车,得到:



可见D:30H处变为56H.

把30H中的值赋给了A,所以A中的值变为56H,再执行一步,可见:



把A中的值与0FH进行逻辑“与”,A中的值高四位被屏蔽,所以A中的值变为06H,再执行一步,可见:


,到此就快找到30H中的值的低位啦!别急,输入D:42h回车,得到:


可见d:42h处变为06h.哈哈,找到啦!再执行一步可得:


可见A中的值又变为56H.接下来该怎么办呢?再执行一步可得:


可见A中的值变为65H.这一步把A中的值高低位互换,为的是找到高位并放到42H中。当然还有其他办法,具体的自己慢慢想吧,哈哈,(提示一下,直接把A与F0H逻辑“与”,也是可以滴。)。再执行一步可得:


可见A中的值变为05H.原因已经说过啦!再执行一步可得:


,这就要找到高位啦!输入D:41h回车,得到:


可见d:41h处中的值变为05H.,找到了吧?!
综上:就把片内RAM的30H处的值展开为了非压缩BCD码放41H,42H处,并且高位放在了41H处。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top