赵嘉蔚北京交通大学单片机原理与接口技术课后习题样本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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