微机原理与接口技术离线作业Word文档下载推荐.docx
- 文档编号:13393078
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:16
- 大小:33.77KB
微机原理与接口技术离线作业Word文档下载推荐.docx
《微机原理与接口技术离线作业Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术离线作业Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
片外数据存储器。
1.在逻辑上设有3个存储器地址空间
片内、片外统一的64KB程序存储器地址空间;
片内256(80C52为384)B数据存储器地址空间;
片内数据存储器空间,在物理上又包含两部分:
对于80C51型单片机,从0~127字节为片内数据存储器空间;
从128~255字节为特殊功能寄存器(SFR)空间(实际仅占用了20多个字节);
片外64KB数据存储器地址空间;
在访问三个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号;
访问片内RAM采用MOV指令,访问片外RAM则一定要采用MOVX指令,因为MOVX指令会产生控制信号
或
用来访问外RAM;
访问程序存储器地址空间,则应采用MOVC指令。
6.80C51片内数据存储器低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个区,剩下的所有单元。
第三章P87
9.MOV、MOVC、MOVX指令有什么区别,分别用于那些场合,为什么?
MOV指令用于对内部RAM的访问。
MOVC指令用于对程序存储器的访问,从程序存储器中读取数据(如表格、常数等)。
MOVX指令采用间接寻址方式访问外部数据存储器或I/O,有Ri和DPTR两种间接寻址方式。
MOVX指令执行时,在P3.7引脚上输出
有效信号或在P3.6引脚上输出
有效信号,可以用作外部数据存储器或1/0的读或写选通信号。
15.已知(R1)=20H,(20H)=AAH,请写出执行完下列程序段后A的内容。
MOVA,#55H
ANLA,#0FFH
ORL20H,A
XRLA,@R1
CPLA
各指令执行结果如下:
MOVA,#55H;
(A)=55H
ANLA,#OFFH;
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
MOVR1,A
4
8
ADDA,R1:
10
MOV@R0,A:
存数
功能:
将30H中的数乘以10以后再存回30H中.
17.已知两个十进制数分别从内部数据存储器中的40H单元和50H单元开始存放(低位在前),其字节长度存放在内部数据存储器的30H单元中。
编程实现两个十进制数求和,并把和的结果存放在内部数据存储器40H开始的单元中。
答:
程序如下:
ORG0000H
SJMPMAIN
ORG0030H
MAIN:
MOVR0,#40H;
被加数首址.又作两个十进制数和的首址
MOVR1,#50H;
加数首址
MOVR2,30H;
字节长度
CLRC
PP:
MOVA,@R1;
取加数
ADDCA,@R0;
带进位加
DAA;
二一十进制数调整
MOV@R0,A;
存和
INCR0;
修正地址
INCR1
DJNZR2,PP;
多字节循环加
AJMP$
END
21.读程序,请⑴画出P1.0~P1.3引脚上的波形图,并标出电压V-时间T坐标;
⑵加以注释。
ORG0000H
START:
MOVSP,#20H
MOV30H,#01H
MOVP1,#01
MLP0:
ACALLD50ms;
软件延时50mS
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:
…;
延时50ms子程序(略)
RET
①程序功能:
P1.O~P1.3引脚上的波形图如图3—2所示。
图3—2P1.O~P1.3引脚上的波形图
②注释见源程序右边所述。
START:
MOV30H,#01H
MOVP1,#01H
MLP0:
ACALL,D50ms;
软件延时50ms
MOVA,30H
CJNEA,#08H,MLPI;
判断表格中数据是否取完?
MOVA,#01H;
取完,从表头开始取
MOVDPTR,#ITAB;
表格首地址
MLP2:
MOV30H,A
MOVCA,@A+DPTR;
取表格中数据
MOVP1,A
SJMPMLP0
MLPI:
INCA;
表格中数据未取完,准备取下一个
SJMPMLP2
ITAB:
DB0,1,2,4,8;
表
DB8,4,2,1
D50ms:
……;
软件延时50ms子程序
RET
第四章P123
6.根据运算结果给出的数据到指定的数据表中查找对应的数据字。
运算结果给出的数据在片内数据存储器的40H单元中,给出的数据大小在00~0FH之间,数据表存放在20H开始的片内程序存储器中。
查表所得数据字(为双字节、高位字节在后)高位字节存于42H、低位字节存于41H单元。
其对应关系为:
给出数据;
000102……0DH0EH0FH
对应数据:
00A0H7DC2HFF09H3456H89ABH5678H
请编制查表程序段,加上必要的伪指令,并加以注释。
程序如下:
AJMPMAIN,
0RG0020H
TAB:
DBOAOH,OOH,0C2H,7DH,09H,OFFH,...,56H,34H,0.ABH,89H,DB78H,56H;
数据字表
ORG0050H
MOVA,40H;
运算结果给出的数据放在40H中
MOVDPTR,#TAB;
指向数据字表首地址
RLA;
由于是双字节,所以A左移1位(乘2)
MOV40H,A;
结果放在40H’
查表,找出对应的值
MOV41H,A;
查找出的数据值低字节放入41H
MOVA.40H
ADDA,#01H;
查找数据的高位字节
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV42H,A。
;
查找出的数据值高字节放入42H
SJMP$
注意:
数据表存放在20H开始的片内存储器中,该存储器应为内部程序存储器,因为查表指令MOVC的功能是从程序存储器中读数据。
10.把长度为10H的字符串从内部数据存储器的输入缓冲区INBUF向设在外部数据存储器的输出缓冲区OUTBUF进行传送,一直进行到遇见回车字符“CR”结束传送或整个字符串传送完毕。
加上必要的伪指令,并对源程序加以注释。
AJMPMAIN
MOVR7,#10H;
数据长度
MOVR0,#INBUF;
源数据首地址
MOVDPTR,#OUTBUF;
目的数据首地址
LOOP:
MOVA,@R0;
把源数据的值赋给A
CJNEA,#0DH,LOOPl;
判断是否为“CR”(ASCII码值为0DH)
SJMPENDl;
是“CR"
,则结束传送
LOOPl:
MOVX@DPTR,A;
把A的值赋给目的数据
源数据下一个地址值
INCDPTR;
目的数据下一个地址值
DJNZR7,L00P;
判断数据传送是否完毕
ENDI:
SJMPENDI
END
12.比较两个ASCII码字符串是否相等。
字符串的长度在内部数据存储器的20H单元,第一个字符串的首地址在内部数据存储器的30H中,第二个字符串的首地址在内部数据存储器的50H中。
如果两个字符串相等,则置用户标志F0为0;
否则置用户标志F0为1。
加上必要的伪指令,并加以注释。
(注:
每个ASCII码字符为一个字节,如ASCII码“A”表示为41H)
答:
LOOPl:
END
14.80C51单片机从内部数据存储器的31H单元开始存放一组8位带符号数,字节个数在30H中。
请编写程序统计出其中正数、零和负数的数目,并把统计结果分别存入20H、21H和22H三个单元中。
LENGTHEQU30H;
DATA_ADREQU31H;
数据首地址
POS_NUMEQU20H;
正数个数
ZERO_NUMEQU21H;
0个数
NEG_NUMEQU22H;
负数个数
MAIN:
MOVPOS_NU
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 离线 作业