单片机原理部课后习题解.docVIP

  • 31
  • 0
  • 约 10页
  • 2017-06-11 发布于河南
  • 举报
单片机原理部课后习题解

3.16 8051芯片需要外扩4KB程序存储器,要求地址范围为1000~1FFFH,以便和内部程序存储器地址相衔接。所用芯片除了地址线和数据线外,只有一个片选控制端/CS,画出扩展系统的连接图。 解: 3.17 在图3.13中,若因某种原因,P2.2、P2.1、P2.0误接为P2.5、P2.4、P2.3,这时所接的EPROM寻址区是如何分布的? 解: 误接后,A10,A9,A8则分别与P2.5,P2.4,P2.3相接, P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7~P0.0 * * 0 0 0 * * * 11111111 * * 0 0 1 * * * 11111111 * * 0 1 0 * * * 11111111 * * 0 1 1 * * * 11111111 * * 1 0 0 * * * 11111111 * * 1 0 1 * * * 11111111 * * 1 1 0 * * * 11111111 * * 1 1 1 * * * 11111111 所以地址分布为: 0000H~00FFH, 0800H~08FFH, 1000H~10FFH, 1800H~18FFH, 2000H~20FFH, 2800H~28FFH, 3000H~30FFH, 3800H~38FFH 4.8 编写程序,进行两个16位数的减法:6F5DH~13B4H,结果存至内部RAM的30H和31H单元。30H单元存差的低8位。 解: MOV A, #5DH CLR C SUBB A, #0B4H MOV 30H, A MOV A, #6FH SUBB A, #13H MOV 31H, A SJMP $ 4.9 编写程序,若累加器内容分别满足一下条件,则程序转至LABEL存储单元。 (1)A≥10 (2) A>10 (3) A≤10 (4) A<10 解: (1) CLR C CJNE A, #10, LOOP SJMP LABEL LOOP: JNC LABEL SJMP $ (2) CJNE A, #10, LOOP SJMP $ LOOP: JNC LABEL SJMP $ (3) CJNE A, #10, LOOP SJMP LABEL LOOP: JC LABEL SJMP $ (4) CJNE A, #10, LOOP SJMP $ LOOP: JC LABEL SJMP $ 4.10 已知SP=25H,PC=2345H,(24H)=12H,(25H)=34H,(26H)=56H,问在这种条件下执行RET指令以后,SP,PC分别是多少? 解: 在执行RET指令后说明是一个子函数执行结束,则进行POP操作,于是SP在执行RET指令后变为23H,因为(25H)=34H, (24H)=12H,所以PC=3412H,因为在进入堆栈的时候是先压入低8位,然后进入堆栈的是高8位,出堆栈的时候正好相反。所以最后结果是:SP=23H,PC=3412H 4.11 若SP=25H,PC=2345H,标号LABEL所在的地址为3456H,问执行长调用指令 LCALL LABEL 之后,堆栈指针和堆栈内容发生什么变化?PC是多少? 解: 在进行长调用指令 LCALL LABEL,则要进行堆栈保护,而LCALL指令是三字节的指令,所以PC在进入堆栈之前变为2348H,在执行完长指令LCALL之后,PC进入子函数程序,则进入之前的地址要首先保护起来,所以SP=27H,堆栈的内容(26H)=48H,(27H)=23H,此时PC将要指向子函数LABEL的入口地

文档评论(0)

1亿VIP精品文档

相关文档