《单片机原理与接口技术》课后答案陈蕾(4)

2020-04-15 00:24

SUBB A, @R0 JZ L1 INC R0 MOV A, B

DJNZ R7, AGAIN AJMP EXIT L1: MOV 51H, #-1 EXIT: SJMP $ END

9. 编写程序,将片内RAM 40H~6FH单元中的无符号数按照从小到大的次序排列,结果仍然

放在原存储空间。

答: N EQU 30H TAB EQU 40H ORG 0000H SORT: MOV R4, #N-1 LOOP1: MOV A, R4 MOV R3, A MOV R0, #TAB LOOP2: MOV A, @R0 MOV B, A INC R0 CLR C

SUBB A, @R0 JC UNEXCH MOV A, B XCH A, @R0 DEC R0

MOV @R0, A UNEXCH: DJNZ R3, LOOP2 DJNZ R4, LOOP1 SJMP $ END

10.试编写程序,统计片内RAM的20H~5FH单元中出现55H的次数,并将统计结果送60H

单元。

答: TAB EQU 20H ORG 0000H START: MOV 60H, #0 MOV R0, #TAB LOOP2: MOV A, #55H CLR C

SUBB A, @R0 JNZ NEXT INC 60H NEXT: INC R0

16

CJNE R0, #60H, LOOP2 SJMP $ END

11.编写程序,将片内RAM 30H~7FH单元的内容全部清零。 答: TAB EQU 30H ORG 0000H START: MOV A, #0 MOV R0, #TAB LOOP: MOV @R0, A INC R0

CJNE R0, #80H, LOOP SJMP $ END

12.编写程序,将片外数据存储区中3000H~30FFH单元全部清零。 答: ORG 0000H START: MOV A, #0 MOV R7, #0

MOV DPTR, #3000H LOOP: MOVX @DPTR, A INC DPTR DJNZ R7, LOOP SJMP $ END

13.从内部RAM DATA1单元开始,存放有20H个数据,试编写程序,将这20H个数据逐一移

到片外RAM DATA2单元开始的存储空间。 答: DATA1 EQU 30H

DATA2 EQU 1000H

ORG 0000H

START: MOV R0, #DATA1 MOV DPTR, #DATA2 MOV R7, #20H LOOP: MOV A, @R0 MOVX @DPTR, A INC R0 INC DPTR

DJNZ R7, LOOP SJMP $ END

14. 将外部RAM 8000H开始的20个字节数据传送到外部RAM 8100H开始的地址单元中去。 答: DATA1 EQU 8000H

DATA2 EQU 00H

ORG 0000H

START: MOV DPTR, #DATA1

17

MOV R0, #DATA2 MOV R7, #20 LOOP: MOVX A, @DPTR MOV P2, #81H MOVX @R0, A INC R0 INC DPTR

DJNZ R7, LOOP SJMP $ END

15. 编程统计累加器A中“1”的个数。

答:以下程序将A中“1”的个数放在30H单元。

DAT EQU 37H

ORG 0000H START: PUSH ACC MOV A, #DAT MOV 30H, #0 NEXT: JZ EXIT CLR C RLC A JNC L1 INC 30H L1: AJMP NEXT POP ACC EXIT: SJMP $ END

16. 从内部RAM 30H单元开始,存放有50个数据。试编写程序,将其中的正数、负数分别

送外部RAM 5000H和5500H开始的单元,并分别记下正数和负数的个数送内部RAM 70H和71H单元。

答: BUF EQU 30H

N EQU 50

ORG 0000H START: MOV R0, #BUF MOV R7, #N MOV 70H, #0 MOV 71H, #0 MOV DPTR, #5000H MOV R1, #00H NEXT: MOV A, @R0

JNB ACC.7, POSIT INC 71H

MOV P2, #55H MOVX @R1, A INC R1

18

AJMP L1 POSIT: INC 70H

MOVX @DPTR, A INC DPTR L1: INC R0

DJNZ R7, NEXT SJMP $ END

17. 利用调子程序的方法,进行两个无符号数相加。请编主程序及子程序。 答: ORG 0000H

START: MOV R6, #56H ;主程序 MOV R7, #7FH ACALL ADD_SUB SJMP $

ADD_SUB: MOV A, R6 ;子程序 ADD A, R7 RET END

18. 计算下面子程序执行的时间(晶振频率为12MHz)。

DL: MOV R3, #15 ;1个机器周期 DL1: MOV R4, #255 ;1个机器周期 DL2: MOV P1, R3 ;2个机器周期

DJNZ R4, DL2 ;2个机器周期 DJNZ R3, DL1 ;2个机器周期 RET ;2个机器周期

答:1个机器周期=1us

延时时间t=1+15×(1+255×(2+2)+2)+2=15348us

19. 编写程序,将30H~34H单元中压缩的BCD码数(每个字节存放两个BCD码数)转换为

ASCII码数,并将结果存放在片内RAM 60H~69H单元。 答: ORG 0000H START: MOV R0, #30H MOV R1, #60H MOV R7, #2 AGAIN: MOV A, @R0 ANL A, #0F0H SWAP A

ADD A, #30H MOV @R1, A MOV A, @R0 ANL A, #0FH ADD A, #30H INC R1 MOV @R1, A INC R0 INC R1

19

DJNZ R7, AGAIN SJMP $ END

20.将内部RAM 30H单元的内容转换成三位BCD码(百位、十位、个位),并将结果存入外

部RAM 1000H开始的单元。 答: ORG 0000H START: MOV A, 30H

MOV DPTR, #1000H MOV B, #100 DIV AB

MOVX @DPTR, A INC DPTR MOV A, B MOV B, #10 DIV AB

MOVX @DPTR, A MOV A, B INC DPTR

MOVX @DPTR, A SJMP $ END

21. 请使用位操作指令,编程实现: 。 (其中 20H、2FH、2AH都是位地址) 答: ORG 0000H MOV C, 20H ANL C, 2FH CPL C

ORL C, 2AH MOV P1.0, C SJMP $ END

习题六

1. MCS-51的外部中断输入引脚为 /INT0 和 /INT1 。

2. MCS-51中断系统有 5 个中断源, 2 级中断优先级。 3. MCS-51外部中断的触发方式有 电平触发 和 边沿触发 。 4. 对于 中断允许(IE) 寄存器的相应位写入“1”,便可开放MCS-51的中断。

5. 控制MCS-51中断优先级的寄存器为 IP ,可编程设定 两 级中断优先级。 6. MCS-51中断源的总开关为 EA ,在 IE 寄存器中的第 7 位。

7. MCS-51复位后,内部的查询电路自动设定 外部中断0 为最高优先级; 串行口中断 为最低优先级。 8. 什么是中断? 答:“中断”是指由于外部或内部事件而改变原来CPU正在执行指令顺序的一种工作机制。 9. 为什么要引入中断机制? 答:中断机制常用于计算机与外部数据的传送,以解决高速运行的CPU与低速外设之间的矛盾。较好地实现CPU与外部设备的同步工作,进行实时处理。

20


《单片机原理与接口技术》课后答案陈蕾(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:山东省威海市2019年初中学业水平考试语文试卷(解析版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: