赵嘉蔚北京交通大学单片机原理与接口技术课后习题样本

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章

1-4

运算器, 控制器, 存储器, 输入设备, 输出设备1-9( 7)

1-11( 3)

1-12( 4)

1-16( 3)

见例1-17

1-19( 1)

0100 0111

1-20( 1)

41 42 38

第二章

2-2 见书p30,

2-4 见书p31,

2-5 见书p31,

2-6 见书p32,

2-9 见书p38,

2-10 见书p39,

2-13 见书p43,

2-14 见书p46,

3-8 按要求写出相应的指令。

( 1) 把寄存器R6的内容送到累加器A中。

( 2) 把外部RAM 1000H单元的内容传送到内部RAM 30H单元中。( 3) 清除内部RAM 3FH 单元的高4位。

( 4) 使累加器A的最低位置1。

( 5) 清除进位位。

( 6) 使ACC.4和ACC.5置1。

( 7) 把外部ROM H单元中的内容送到内部RAM的20H单元中。( 8) 把外部ROM H单元中的内容送到外部RAM的3000H单元中。答案:

( 1) MOV A,R6

( 2) MOV DPTR,#1000H

MOVX A,@DPTR

MOV R0,#30H

MOV @R0,A

( 3) ANL 3FH,#0FH

( 4) ORL A,#01H

( 5) CLR C

( 6) ORL A,#30H

( 7) CLR A

MOV DPTR,# H

MOVC A,@A+DPTR

MOV 20H,A

( 8) CLR A

MOV DPTR,# H

MOVC A,@A+DPTR

MOV DPTR,#3000H

MOVX @DPTR,A

3-10 编写程序段完成如下要求。

( 1) 将寄存器R0中的内容乘以10( 积小于256) 。

( 2) 将片内RAM 30H单元开始的15个字节的数据传送到片外RAM 3000H开始的单元中。

( 3) 将片外RAM H开始的5个字节的数据传送到片内RAM 20H 开始的单元中。

( 4) 有10个字节的二进制数存放在片内RAM以 40H开始的单元

内, 编程找出其中的最大值并存于内部50H单元中。

( 5) 将片外RAM空间 H~200AH中的数据的高4位变零, 低4位不变, 原址存放。

( 6) 将外部RAM 2040H单元的内容与3040H单元的内容互换。答案:

(1) MOV B,#0AH

MOV A,R0

MUL AB

MOV R0,A

(2) ORG 0000H

MOV R0,#30H

MOV DPTR,#3000H

MOV R7,#0FH

LOOP: MOV A,@R0

MOVX @DPRT,A

INC R0

INC DPTR

DJNZ R7,LOOP

SJMP $

END

(3) MOV DPTR,# H

MOV R0,#20H

MOV R7,#05H

LOOP: MOVX A,@DPTR

MOV @R0,A

INC R0

INC DPTR

DJNZ R7,LOOP

END

(4) ORG 0000H

MOV A,40H;A寄存器放最大值, 且初始化最大值( 默认第一个数)

MOV R3,#09H; 比较次数

MOV R0,#41H

START: CJNE A,@R0,LOOP

LOOP: JNC LOOP1; 如果比A小, 则跳转到LOOP1

MOV A,@R0; 如果比A大, 则更新A的值

LOOP1: INC R0

DJNZ R3 START

MOV 50H,A

SJMP $

END

(5) MOV DPTR,# 0H

MOV R1,#0BH

LOOP: MOVX A,@DPTR

ANL A,#0FH

MOVX @DPTR,A

INC DPTR

DJNZ R1,LOOP

SJMP $

(6) MOV DPTR,#2040H

MOVX A,@DPTR

MOV R0,#20H

MOV @R0,A

MOV DPTR,#3040H

MOVX A,@DPTR

XCH @R0,A

MOVX @DPTR A

MOV A,@R0

MOV DPTR,#2040H

MOVX @DPTR,A

3-15 设有一带符号的十六位数以补码形式存放在R2、 R3寄存器中, 试编制求其原码的程序。

ORG 0000H

START: MOV A,R3

JB ACC.7,NEXT; 判读符号位, 如果是正数则原码与补码一样,

如果为负, 求原码的方法是符号位不变, 其余位取反加1

MOV R3,A

HERE: SJMP $

NEXT: XRL A,#7FH; 高八位, 符号位不变, 其余取反

MOV R3,A; 放回R3

MOV A,R2; 低八位

XRL A,#0FFH; 取反

ADD A,#01H; 加1

MOV R2,A; 放回R2

MOV A,R3; 看低八位是否有向高八位进位

ADDC A,#00H

MOV R3,A

SJMP $

END

3-16 设有一不带符号的十六进制数组, 存放在8031单片机片内RAM以BUFFER为首址的连续单元中, 其长度为30个字节, 要求统计小于10, 等于10及大于10的数的个数, 并把它们分别存放到片内RAM的LESS、 EQUAL、 BIG单元中, 试编制实现上述要求的程序并画出相应的流程图。

ORG 0000H

BUFFER DATA 10H

LESS DATA 30H

相关文档
最新文档