单片机作业答案教学内容.docx

上传人:b****2 文档编号:2323395 上传时间:2022-10-28 格式:DOCX 页数:18 大小:57.83KB
下载 相关 举报
单片机作业答案教学内容.docx_第1页
第1页 / 共18页
单片机作业答案教学内容.docx_第2页
第2页 / 共18页
单片机作业答案教学内容.docx_第3页
第3页 / 共18页
单片机作业答案教学内容.docx_第4页
第4页 / 共18页
单片机作业答案教学内容.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

单片机作业答案教学内容.docx

《单片机作业答案教学内容.docx》由会员分享,可在线阅读,更多相关《单片机作业答案教学内容.docx(18页珍藏版)》请在冰豆网上搜索。

单片机作业答案教学内容.docx

单片机作业答案教学内容

2-1.8051单片机芯片内部包含哪些主要逻辑功能部件?

答:

一个8位微处理器(CPU);片内数据存储器RAM;片内程序存储器ROM;四个8位并行I/O口P0~P3;两个定时器/计数器;五个中断源的中断控制系统;一个UART(通用异步接收发送器)的串行I/O口;片内振荡器和时钟产生电路。

2-2、8051存储器分哪几个地址空间?

如何区别不同空间寻址?

答:

⑴片内、外统一编址的64KB程序存储器;⑵片内256B数据存储器;⑶片外64KB数据存储器。

硬件:

引脚接高电平时CPU从片内0000H单元开始取指令,接低电平时CPU直接访问片外EPROM。

软件:

MOV指令访问片内数据存储器,MOVX指令访问片外数据存储器,MOVC指令用于读取程序存储器中的常数。

2-4.简述直接位寻址区的空间分配,片内RAM中包含哪些可位寻址单元?

答:

MCS-51单片机片内RAM中有两个区域可进行位寻址:

(1)片内RAM低128字节的位寻址区,地址为20H~2FH的16个字节单元共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作,128位的位地址定义为00H~7FH。

(2)片内RAM高128字节的存储器区,有21个特殊功能寄存器。

其中字节地址正好能被8整除的字节单元中的每一位都可以按位寻址、操作。

2-6.8051单片机引脚有何功能?

在使用8031时,引脚应如何处理?

答:

引脚为外部程序存储器地址允许输入端,其电平的高低决定了系统复位后CPU是从片内程序存储器还是片外扩展存储器的0000H字节单元开始取指令。

(1)当引脚接成高电平时,CPU首先从片内0000H字节单元开始取指令执行程序,当指令地址寄存器PC中的内容超过0FFFH后,就自动转向片外扩展的EPROM中取指令执行,这时芯片外部的重叠地址为0000H~0FFFH的低4KBEPROM忽略不用。

(2)当引脚接成低电平时,复位后CPU直接从片外EPROM的0000H字节单元开始取指令执行,这时芯片内部0000H~0FFFH的4KB单元被忽略不用。

在使用8031时,由于其内部没有ROM/EPROM,所以必须使用外部扩展程序存储器,它的引脚应该接成低电平,CPU直接从片外扩展的EPROM中取指令执行。

2-8.内RAM低128B单元划分为哪三个主要区域?

各区域主要功能是什么?

答:

地址范围为00H~7FH的128字节单元,按功能特点划分为不同的几个区,分述如下。

(1)工作寄存器区地址范围为00H~1FH的32字节存储器单元,分为四个组,每组有8个工作寄存器字节单元,定名为R0、R1、R2、R3、R4、R5、R6和R7。

通过改变程序状态字特殊功能寄存器PSW中RS1,RS0两位的内容,每组工作寄存器均可选作CPU的当前工作寄存器组。

(2)位寻址区地址为20H~2FH的16个字节单元中共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作。

(3)一般数据存储区地址范围为30H~7FH的区域,可用于原始数据及运算结果的存储。

值得注意的是,30H~7FH中一部分字节单元可以开辟出一块遵守“后进先出”或“先进后出”规则的特殊数据区──堆栈。

2-9.单片机系统复位有哪几种方法?

复位后特殊功能寄存器初始状态如何?

答:

使单片机系统复位有两种方法:

上电自动复位和按键手动复位

系统复位的主要功能就是把PC初始化为0000H,使单片机从0000H单元开始执行程序,另外,系统复位还使一些特殊功能寄存器恢复到复位状态。

PC:

0000HACC:

00HPSW:

00H

SP:

07HDPTR:

0000HP0~P3:

FFH

IP:

**000000BIE:

0*000000BTMOD:

00H

TCON:

00HTL0:

00HTH0:

00H

TL1:

00HTH1:

00HSCON:

00H

SBUF:

不定PCON:

0***0000B

2-10.开机复位后,CPU使用那组工作寄存器作为当前工作寄存器?

它们的地址是什么?

答:

开机复位后,由于(RS1=0,RS0=0),CPU使用第0组工作寄存器作为当前工作寄存器,它的地址为00H~07H.

2-11.CPU如何确定和改变当前工作寄存器组?

答:

通过改变程序状态字特殊功能寄存器PSW中RS1,RS0两位的内容,每组工作寄存器均可被选作当前工作寄存器。

RS1RS0当前工作寄存器

00第0组

01第1组

10第2组

11第3组

2-13.位寻址与字节单元地址7CH如何区别?

位地址7CH、具体在片内RAM的什么位置?

答:

8051采用不同的寻址方式和指令分别对位和字节进行不同的操作,如SETB20H指的是20H位单元的内容置为1,而MOV20H,#0FFH指的是内RAM20H字节单元的内容变为FFH。

位地址7CH在内RAM低128字节的2FH字节单元的第四位。

2-14.8051单片机时钟周期与振荡周期之间有什么关系?

答:

8051单片机的时钟周期为振荡周期的两倍。

2-16.什么叫堆栈?

堆栈指针SP的作用是什么?

8051单片机堆栈容量不能超过多少字节?

答:

一般在30H~7FH的地址范围内,有一部分字节单元可开辟出一块遵守“后进先出”或“先进后出”规则的特殊数据区,就叫堆栈。

SP为堆栈指针,它始终存放堆栈顶部字节单元的地址(栈顶指针),数据压栈时,SP首先自动加1,然后数据压入SP内容指示的字节单元中;而数据出栈时,SP内容指示的字节单元中的数据弹出,然后SP自动减1,这样SP始终指向堆栈顶部字节单元的地址。

8051单片机堆栈容量最多不能超过128字节。

初始化后,(SP)=07H,如果CPU使用工作寄存器1组,那么堆栈和工作寄存器将发生冲突,因此常把堆栈移至30~7FH区域之中。

第三章

3-1什么是寻址方式?

MCS-51单片机有哪几种寻址方式?

对8031内部RAM的128~255字节地址的空间寻址要注意什么?

答:

寻址方式是如何找到存放被操作数据的位置(地址)的方法;MCS-51单片机有七种寻址方式:

寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址间接寻址、相对寻址和位寻址;8031内部RAM的128~255字节为特殊功能寄存器区,只允许使用直接寻址方式。

3-6若要完成以下数据传送,如何应用MCS-51指令予以实现?

(1)R1的内容传送到R0:

MOVA,R1

MOVR0,A

(2)外部RAM20H单元的内容送入R0:

MOVP2,#00H;

MOVR1,#20H

MOVXA,@R1

MOVR0,A

(3)外部RAM0020H单元的内容送内部RAM20H单元:

MOVP2,#00H;

MOVR0,#20H

MOVXA,@R0

MOV20H,A

(4)外部RAM1000H单元内容送内部RAM20H单元:

MOVDPTR,#1000H

MOVXA,@DPTR

MOV20H,A

(5)外部ROM2000H单元内容送R0:

MOVA,#00H

MOVDPTR,#2000H

MOVCA,@A+DPTR(MOVCA,@DPTR)

MOVR0,A

(6)外部ROM2000H单元内容送内部RAM20H单元:

MOVA,#00H

MOVDPTR,#2000H

MOVCA,@A+DPTR

MOV20H,A

(7)外部ROM2000H单元内容送外部RAM0020H单元:

MOVA,#00H

MOVR0,#20H

MOVDPTR,#2000H

MOVCA,@A+DPTR

MOVX@R0,A

3-7(R0)=30H;(A)=(30H)=40H;(R1)=40H;(B)=10H;(P1)=0CAH;(40H)=0CAH;(30H)=20H(原来40H);(10H)=20H;

好多:

(R0)=40H;(A)=10H;(R1)=10H;(B)=00H;(P1)=0CAH;;(30H)=(20H);(10H)=(20H);

3-8已知SP=25H,PC=2345H,标号LABEL所在的地址为3456H,问执行长调用指令LCALLLABEL后,堆栈指针和堆栈的内容发生什么变化?

PC值等于什么?

答:

(SP)=27H,(26H)=48H,(27H)=23H;(PC)=3456H

3-9上题中的LCALL指令能否直接换成ACALL指令,为什么?

如果使用ACALL指令,则可调用的地址范围是什么?

答:

不能,因为LABEL所在地址3456H与PC不在同一2KB范围内,即高5位地址不同。

若要使用ACALL指令,可调用的地址范围是2000H~27FFH。

3-10有一个16位二进制数,高8位存于21H单元,低8位存于20H单元。

执行如下程序段,试问:

⑴程序段功能是什么?

⑵能否用MOV代替程序段中的XCH语句而不改变程序的逻辑功能?

写出相应程序段。

⑶两个程序段结果是否相同?

差别在哪里?

CLRC

XCHA,21H

RRCA

XCHA,21H

XCHA,20H

RRCA

XCHA,20H

答:

(1)程序段的功能是将此16位二进制数除2后取整

(2)能用MOV代替程序段中的XCH语句而不改变程序的逻辑功能,如下:

CLRC

MOVA,21H

RRCA

MOV21H,A

MOVA,20H

RRCA

MOV20H,A

两个程序段结果不相同。

原程序执行后A的内容为程序运行前A中内容,即

此程序没有改变A中内容;MOV语句程序中A的内容为原20H单元内容右移一位后的内容。

3-11分析以下程序段运行的结果。

若将DAA指令取消,则结果会有什么不同?

CLRC

MOV20H,#99H

MOVA,20H

ADDA,#01H

DAA

MOV20H,A

答:

结果为(20H)=00H,CY=1。

若取消DAA指令,(20H)=9AH,CY=0。

3-12由于SJMP指令的转移范围是256B,而AJMP指令转移范围是2KB,所以在程序中SJMP指令都可以用AJMP指令来代替。

”请问这种说法是否正确,为什么?

答:

不正确。

AJMP转移的目标地址必须在AJMP后面指令的第一个字节开始的同一2KB范围内,不能改变高5位地址,因此,即使相邻很近的两个地址,只要它的高5位发生改变,就不能跳转。

而SJMP可以通过几次跳转,最终到任意目标地址。

4-1两个4位BCD码数相加求和。

设被加数存于内部RAM的40H、41H单元,加数存于45H、46H单元,要求和数存于50H、51H单元(均前者为低二位,后者为高二位)。

请编制加法程序段。

解:

程序如下:

CLRC

MOVA,40H

ADDA,45H

DAA

MOV50H,A

MOVA,41H

ADDCA,46H

DAA

MOV51H,A

CLRA

ADDCA,#00H

MOV52H,A

好多同学:

MOVA,40H

ADDA,45H

DAA

MOV50H,A

MOVA,41H

ADDA,46H

DAA

MOV51H,A

4-2试编写程序,查找在内部RAM20H-50H单元中出现00H的次数,并将查找的结果存入51H单元。

解:

程序如下:

MOVR0,#20H

MOV

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

当前位置:首页 > 农林牧渔 > 林学

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

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