微机原理与接口技术离线作业Word文档下载推荐.docx

上传人:b****1 文档编号:13393078 上传时间:2022-10-10 格式:DOCX 页数:16 大小:33.77KB
下载 相关 举报
微机原理与接口技术离线作业Word文档下载推荐.docx_第1页
第1页 / 共16页
微机原理与接口技术离线作业Word文档下载推荐.docx_第2页
第2页 / 共16页
微机原理与接口技术离线作业Word文档下载推荐.docx_第3页
第3页 / 共16页
微机原理与接口技术离线作业Word文档下载推荐.docx_第4页
第4页 / 共16页
微机原理与接口技术离线作业Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术离线作业Word文档下载推荐.docx

《微机原理与接口技术离线作业Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术离线作业Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

微机原理与接口技术离线作业Word文档下载推荐.docx

片外数据存储器。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1