浙大远程微机原理与接口技术离线作业答案Word下载.docx
- 文档编号:14167112
- 上传时间:2022-10-19
- 格式:DOCX
- 页数:15
- 大小:41.40KB
浙大远程微机原理与接口技术离线作业答案Word下载.docx
《浙大远程微机原理与接口技术离线作业答案Word下载.docx》由会员分享,可在线阅读,更多相关《浙大远程微机原理与接口技术离线作业答案Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
●片内数据存储器;
●片外数据存储器。
⒉在逻辑上设有3个存储器地址空间
●片内、片外统一的64KB程序存储器地址空间。
●片内256B(80C52为384B)数据存储器地址空间。
片内数据存储器空间,在物理上又包含两部分:
-对于80C51型单片机,从0~127字节为片内数据存储器空间;
从128~255字节为特殊功能寄存器(SFR)空间(实际仅占用了20多个字节)。
●片外64KB的数据存储器地址空间。
在访问三个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号。
访问片内RAM采用MOV指令,访问片外RAM则一定要采用MOVX指令,因为MOVX指令会产生控制信号或,用来访问片外RAM。
访问程序存储器地址空间,则应采用MOVC指令。
6.80C51单片机片内RAM低128个存储单元划分为哪4个主要部分?
各部分主要功能是什么?
【答】80C51片内RAM的低128个存储单元划分为4个主要部分:
●寄存器区:
共4组寄存器,每组8个存储单元,各组以R0~R7作为单元编号。
常用于保存操作数及中间结果等等。
R0~R7也称为通用寄存器,占用00H~1FH共32个单元地址。
●位寻址区:
20H~2FH,既可作为一般RAM单元使用,按字节进行操作,也可以对单元中的每一位进行位操作,称为位寻址区。
寻址区共有16个RAM单元,共计128位,位地址为00H~7FH。
●堆栈区:
设置在用户RAM区内。
●用户RAM区:
在内部RAM低128单元中,除去前面3个区,剩下的所有单元。
13.程序存储器指令地址、堆栈地址和外接数据存储器地址各使用什么指针?
为什么?
【答】程序存储器指令地址使用程序计数器PC指针,PC中存放的是下一条将要从程序存储器中取出的指令的地址。
程序计数器PC变化的轨迹决定程序的流程。
PC的最基本的工作方式是自动加1。
在执行条件转移或无条件转移指令时,将转移的目的地址送入程序计数器,程序的流向发生变化。
在执行调用指令或响应中断时,将子程序的入口地址或者中断矢量地址送入PC,程序流向发生变化。
堆栈地址使用堆栈指示器SP,SP在80C51中存放当前的堆栈栈顶所指存储单元地址,是一个8位寄存器,对数据按照“先进后出”原则进行管理。
外接数据存储器地址使用数据指针DPTR,是一个16位的特殊功能寄存器,主要功能是作为片外数据存储器或I/O寻址用的地址寄存器,这时会产生或控制信号,用于单片机对外扩的数据存储器或I/O的控制。
数据指针DPTR也可以作为访问程序存储器时的基址寄存器,这时寻址程序存储器中的表格、常数等单元,而不是寻址指令。
第3章P93
9.MOV、MOVC、MOVX指令有什么区别,分别用于那些场合,为什么?
【答】MOV指令用于对内部RAM的访问。
MOVC指令用于对程序存储器的访问,从程序存储器中读取数据(如表格、常数等)。
MOVX指令采用间接寻址方式访问外部数据存储器,有Ri和DPTR两种间接寻址方式。
MOVX指令执行时,在P3.7引脚上输出有效信号或在P3.6引脚上输出有效信号,可以用作外部数据存储器或I/O的读或写选通信号,与单片机扩展电路有关。
15.已知(R1)=20H,(20H)=AAH,请写出执行完下列程序段后A的内容。
MOVA,#55H
ANLA,#0FFH
ORL20H,A
XRLA,@R1
CPLA
【答】各指令执行结果如下:
MOVA,#55H;
(A)=55H
ANLA,#0FFH;
ORL20H,A;
(20H)=FFH
XRLA,@R1;
(A)=AAH
CPLA;
(A)=55H
执行完程序段后,A的内容为55H。
16.阅读下列程序,说明其功能。
MOVR0,#30H
MOVA,@R0
RLA
MOVR1,A
ADDA,R1
MOV@R0,A;
【答】对程序注释如下:
MOVR0,#30H;
(R0)=30H
MOVA,@R0;
取数
RLA;
(A)×
2
4
8
ADDA,R1;
10
MOV@R0,A;
存数
功能:
将30H中的数乘以10以后再存回30H中。
条件:
30H中的数不能大于25,25×
10=250仍为一个字节。
若30H中的数大于25,则应考虑进位。
21.读下列程序,请完成下列任务:
①画出P1.0~P1.3引脚上的波形图,并标出电压V-时间t坐标。
②对源程序加以注释。
ORG0000H
START:
MOVSP,#20H
MOV30H,#01H
MOVP1,#01H
MLP0:
ACALLD50ms
MOVA,30H
CJNEA,#08H,MLP1
MOVA,#01H
MOVDPTR,#ITAB
MLP2∶MOV30H,A
MOVCA,@A+DPTR
MOVP1,A
SJMPMLP0
MLP1:
INCA
SJMPMLP2
ITAB:
DB0,1,2,4,8
DB8,4,2,1
D50ms:
…
RET
【答】
①程序功能:
P1.0~P1.3引脚上的波形图如图3-2所示。
图3-2P1.0~P1.3引脚上的波形图
②注释见源程序右边所述。
ORG0000H
MOVP1,#01H;
P1.0~P1.3引脚输出波形
ACALLD50ms;
软件延时50ms
CJNEA,#08H,MLP1;
判表格中数据是否取完?
MOVA,#01H;
取完,从表头开始取
MOVDPTR,#ITAB;
表格首地址
MOVCA,@A+DPTR;
取表格中数据
INCA;
表格中数据未取完,准备取下一个
ITAB:
DB0,1,2,4,8;
表
DB8,4,2,1
…;
软件延时50ms子程序
第4章P132
10.把长度为10H的字符串从内部RAM的输入缓冲区INBUF向设在外部RAM的输出缓冲区OUTBUF进行传送,一直进行到遇见字符“CR”时停止,如字符串中无字符“CR”,则整个字符串全部传送。
加上必要的伪指令,并对源程序加以注释。
【答】程序如下:
AJMPMAIN
ORG0030H
MAIN:
MOVR7,#10H;
数据长度
MOVR0,#INBUF;
源数据首地址
MOVDPTR,#OUTBUF;
目的数据首地址
LOOP:
MOVA,@R0;
把源数据的值赋给A
CJNEA,#0DH,LOOP1;
是“CR”(ASCII码值为0DH)?
SJMPEND1;
是“CR”,则结束传送
LOOP1:
MOVX@DPTR,A;
把A的值赋给目的数据
INCR0;
源数据下一个地址值
INCDPTR;
目的数据下一个地址值
DJNZR7,LOOP;
判数据传送是否完毕?
END1:
SJMPEND1
14.80C51单片机从内部RAM的31H单元开始存放一组8位带符号数,字节个数在30H中。
请编写程序统计出其中正数、零和负数的数目,并把统计结果分别存入20H、21H和22H三个单元中。
【答】
分析:
带符号数以字节最高位D7的值来区分是正数(包括零)和负数。
D7=1,则该带符号数为负数。
程序如下:
POS_NUMEQU20H;
正数个数
ZERO_NUMEQU21H;
零个数
NEG_NUMEQU22H;
负数个数
ORG0030H
MOVPOS_NUM,#0;
计数单位初始化为0
MOVZERO_NUM,#0
MOVNEG_NUM,#0
MOVR1,30H;
MOVR0,#31H;
数据首地址
MOVA,@R0
JBACC.7,INC_NEG;
符号位为1,该数为负数,跳转加1
CJNEA,#0,INC_POS
INCZERO_NUM;
该数为0,0个数加1
AJMPLOOP1
INC_NEG:
INCNEG_NUM;
负数个数加1
INC_POS:
INCPOS_NUM;
该数为正数,正数个数加1
LOOP1:
INCR0;
判断统计是否结束
DJNZR1,LOOP
END
例如:
已知(30H)=08H,31H单元起存放数据为:
00H,80H,7EH,6DH,2FH,34H,EDH,FFH。
执行结果:
(20H)=04H,(21H)=01H,(22H)=03H。
15.两个10位的无符号二一十进制数,分别从内部RAM的40H单元和50H单元开始存放。
请编程计算该两个数的和,并从内部RAM的60H单元开始存放。
10位的无符号二一十进制数,占5个字节,每个字节存放一个压缩BCD码(2位)。
ORG0030H
MOVR7,#05H;
十位(5个字节)计数
MOVR0,#40H;
被加数首址
MOVR1,#50H;
加数首址
MOVR2,#60
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙大 远程 微机 原理 接口 技术 离线 作业 答案