51单片机微机处理作业+实验+及参考答案

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

第一章基础知识 (1)

第二章单片机 (1)

第三章开发工具 (1)

第四章指令与编程 (1)

第五章 I/O端口 (5)

第六章中断 (6)

实验2-1:按键控制流水灯移动 (7)

实验2-2:按键控制递减运算 (7)

第七章定时/计数器 (8)

第一章基础知识

1 简述微机模型(组成);

2 简述自己的PC机(和手机)性能指标;

3 教材P23:第3、4、9题。

第二章单片机

1 用指令将程序存储器中地址为200H单元的内容读取到累加器A;

2 上题中,如何控制从片内200H单元读取,还是片外200H单元读取?

3 说明片内RAM划分,及各部分容量及编址;

4 将片内数据存储器中地址为30H单元的内容读取到累加器A;

5 将片外数据存储器中地址为3000H单元的内容读取到累加器A;

6 将累加器A的内容保存到片内数据存储器的40H地址单元。

7 堆栈工作原则?

8 教材P52,8和12。

第三章开发工具

1 完成教材中的例子,熟悉操作流程,并简单说明完成情况(遇到的问题,未完成的原因)和对课程教学的意见,然后上传。不要传源程序和设计图。

截至日期:已过期。

第四章指令与编程

1 教材P102:4-1;

2 单片机的指令按功能如何分类?

3 单片机内部RAM的40H单元中保存了一个数,范围是0-9。用查表的方法将其转换为对应的ASCII码,并保存在片内50H单元中。

提示:ASCII编码规则:大写字母从41H开始依次排列,小写从61H开始,数字0-9从30H-39H。也可用’’的方式表示字母和数字编码,如’W’表示W的ASCII编码,’8’表示8的编码,等等。

4 用加法运算的方法完成第3题。

5 拆字程序。压缩的BCD码保存在20H单元,编程将其分解为两个非压缩的BCD码,低位放在50H单元,高位放在51H单元。

6 教材4-3;

7 检查ROM地址为400H单元的内容,如为’W’,则将’Y’送到累加器A,否则送’N’;

8 教材4-13(要求用循环调用子程序的方法完成,子程序实现查表转换)。

9 将ROM中首地址为900H的8个连续单元中的数据保存到片内首地址为30H的连续单元中。

10 比较片内RAM的60H单元与25的大小,在累加器中,分别用1、2、3表示大于、等于和小于25。

11 教材4-13(要求用循环调用子程序的方法完成,子程序用加法计算的方法实现转换)。12-14 修改重新完成6-8.

参考解答

6 ORG 0H

CALL INIT

LOOP: CALL MOVE

INC R0

INC DPTR

DJNZ R7,LOOP

CALL INIT2

LOOP: CALL MOV2

INC R0

INC DPTR

DJNZ R7,LOOP

JMP $

INIT: MOV R0,#30H

MOV DPTR,#100H

MOV R7,#5

RET

MOVE: MOV A,@R0

MOVX @DPTR,A

RET

INIT2: MOV R0,#40H

MOV DPTR,#2000H

MOV R7,#10

RET

MOV2: MOVX A,@DPTR

MOV @R0,A

RET

END

7 ORG 0H

CLR A

MOV DPTR,#400H

MOVC A,@A+DPTR

CJNE A,#'W',NO

MOV A,#'Y'

JMP OVR

NO: MOV A,#'N'

OVR: JMP $

END

8 ORG 0H

CALL INIT LOOP: CALL CHNG

INC R0

INC R1

DJNZ R7,LOOP

JMP $

INIT: MOV R0,#40H

MOV R1,#50H

MOV R7,#10

MOV DPTR,#TAB

RET

CHNG: MOV A,@R0

MOVC A,@A+DPTR

MOV @R1,A

RET

TAB: DB '0','1','2','3','4','9'

END

9 ORG 0H

CALL INIT LOOP: CALL MOVE

INC DPTR

INC R0

DJNZ R7,LOOP

JMP $

INIT: MOV R7,#8

MOV DPTR,#900H

MOV R0,#30H

RET

MOVE: CLR A

MOVC A,@A+DPTR

MOV @R0,A

RET

END

10 ORG 0H

MOV A,60H

CJNE A,#25,NEXT

MOV A,#2

JMP OVR NEXT: JC LOW

MOV A,#1

JMP OVR LOW: MOV A,#3 OVR: JMP $

END

11 ORG 0H

CALL INIT LOOP: CALL CHNG

INC R0

INC R1

DJNZ R7,LOOP

JMP $

INIT: MOV R0,#40H

MOV R1,#50H

MOV R7,#10

RET

CHNG: MOV A,@R0

ADD A,#30H

MOV @R1,A

RET

END

相关文档
最新文档