单片机原理及接口技术课后习题答案胡健主编机械工业出版社.docx

上传人:b****6 文档编号:6461733 上传时间:2023-01-06 格式:DOCX 页数:14 大小:22.93KB
下载 相关 举报
单片机原理及接口技术课后习题答案胡健主编机械工业出版社.docx_第1页
第1页 / 共14页
单片机原理及接口技术课后习题答案胡健主编机械工业出版社.docx_第2页
第2页 / 共14页
单片机原理及接口技术课后习题答案胡健主编机械工业出版社.docx_第3页
第3页 / 共14页
单片机原理及接口技术课后习题答案胡健主编机械工业出版社.docx_第4页
第4页 / 共14页
单片机原理及接口技术课后习题答案胡健主编机械工业出版社.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机原理及接口技术课后习题答案胡健主编机械工业出版社.docx

《单片机原理及接口技术课后习题答案胡健主编机械工业出版社.docx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术课后习题答案胡健主编机械工业出版社.docx(14页珍藏版)》请在冰豆网上搜索。

单片机原理及接口技术课后习题答案胡健主编机械工业出版社.docx

单片机原理及接口技术课后习题答案胡健主编机械工业出版社

第一章

一、计算题

1、①()2(87)16②(0.101)2(0.A)16

③(.1011)2(2F.B)16

2、①(430)10(1AE)16②(0.6875)10

(0.B)16

③(110.)10(6E.DABD058)16

3、①()2(1878)10

②(.)2(72.)10

③(0.)2(0.)10

4、①B②B③B

5、原码反码补码

①001001100010011000100110

②010000000100000001000000

③1111000010010000

6、XYX+YX-Y

真值101-9

真值9363

③s

真值46108

7、(863)10(895)10(365)10

8、H434F4DHH

二、问答题1、什么是数制?

为什么微型计算机要采用二进制?

十六进制数能为计算机执行么?

为什么要学习十六进制数。

答:

数制就是计数方式,计算机中采用二进制是由计算机所使用的逻辑器件所决定。

这种逻辑器件是具有两种状态的电路(触发器)好处是运算法则简单、实现方便,两个状态的系统具有稳定性。

计算机中的数只能用二进制表示,十六进制适合于读写方便需要。

2、单片机的发展状况如何?

它有哪些应用?

试举例说明。

答:

1971年微处理器研制成功。

1974年,美国仙童公司研制出世界第一台单片微型计算机F8。

该机由两块集成电路芯片组成,具有与众不同的指令系统,深受民用电器及仪器仪表领域的欢迎和重视。

从此单片机开始迅速发展,应用领域也不断扩大。

目前,单片机正朝着高性能和多品种方向发展,但以MCS-51为主的8位单片机仍然占据着单片机的主导地位。

单片机的应用日益广泛,如应用在仪器仪表、家用电器和专用装备的智能化以及过程控制等方面,单片机在人们的日常生活和工作中正扮演着越来越重要的角色。

(1)工业控制。

单片机可以构成各种工业控制系统、数据采集系统等。

如数控机床、自动生产线控制、电机控制、测控系统等。

(2)仪器仪表。

如智能仪表、医疗器械、数字示波器等。

(3)计算机外部设备与智能接口。

如图形终端机、传真机、复印机、打印机、绘图仪、磁盘/磁带机、智能终端机等。

(4)商用产品。

如自动售货机、电子收款机、电子秤等。

(5)家用电器。

如微波炉、电视机、空调、洗衣机、录像机、音响设备等。

(6)消费类电子产品。

(7)通讯设备和网络设备。

(8)儿童智能玩具。

(9)汽车、建筑机械、飞机等大型机械设备。

(10)智能楼宇设备。

(11)交通控制设备。

第二章

一、填空1、0;低电平2、32;4;8;R0-R73、上电复位;手动按键复位;00;00H-07H;114、内部数据存储器;外部数据存储器;内部程序存储器;外部程序存储器;35、256B;64KB6、0B;4KB

7、1.2MHZ;12MHZ;

二、选择1、①2、④3、①4、①5、②6、③7、③8、③9、③三、判断1、×2、×3、×4、√5、×6、×7、×8、×9、×四、问答题

1、MCS-51单片机内部包含哪些主要逻辑功能部件?

答:

(1)一个8bitCPU是微处理器的核心,是运算和逻辑计算的中心。

(2)片内震荡器及时钟电路:

提供标准时钟信号,所有动作都依据此进行。

(3)4KROM程序存贮器:

存贮程序及常用表格。

(4)128BRAM数据存贮器:

存贮一些中间变量和常数等。

(5)两个16bit定时器/计数器:

完全硬件定时器

(6)32根可编程I/O口线:

标准8位双向(4个)I/O接口,每一条I/O线都能独立地作输入或输出。

(7)一个可编程全双工串行口。

(8)五个中断源。

2、MCS-51系列单片机的存储器可划分为几个空间?

各自的地址范围和容量是多少?

在使用上有什么不同?

答案:

MCS-51的存储器空间可以划分为以下4种,分别是:

程序存储器;内部数据存储器;内部特殊功能寄存器;外部数据存储器;对89S51来说,程序存储器分为片内程序存储器和片外程序存储器,片内程序存储器地址范围为0000H-0FFFH4KB;片外程序存储器地址范围0000H~FFFFH,64KB。

内部程序存储器与外部程序存储器统一编址,当EA为高电平时,从内部程序存储器开始读取程序,达到4KB后跳到片外程序存储器的1000H开始读取程序;当EA为低电平时,直接从片外程序存储器的0000H开始处读取程序。

内部数据存储器地址范围为00H~7FH,128B,在程序中做通用存储器使用。

内部特殊功能寄存器地址范围80H~FFH,128B,专用于控制、管理片内算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等功能模块的工作。

外部数据存储器地址范围0000H~FFFFH,64KB,又称为外部数据RAM,当单片机内部128个字节的数据RAM不能满足系统工作的需要时,可以通过它的外部总线扩展外部数据存储器。

3、位地址7CH和字节地址7CH有何区别?

位地址7CH具体在内存中什么位置?

答:

字节地址7CH是片内数据存储器中的一个地址单元,该地址单元中可以存放8位二进制数,位地址7CH是内部数据存储器中位寻址区中的一位,该地址单元中可以存放1位二进制数。

位地址7CH具体在片内数据存储器字节地址为2FH中的第4位(2FH.4)。

4.分别说明程序计数器PC和堆栈指针SP的作用?

复位后PC和SP中值各为何?

答:

程序计数器PC时一个16位的计数器,其内容为将要执行下一条指令的首地址,PC寻址范围达64KB,具有自动加1功能,以实现程序的顺序执行。

PC不可寻址,无法对它进行读写。

堆栈指针SP的内容就是堆栈栈顶的存储单元地址,向堆栈中每存一个数,SP中的值就自动加1,每取一个数就自动减1,SP始终指在栈顶地址。

复位后PC为0000H和SP为07H。

5、程序状态字寄存器PSW的作用是什么?

常用状态标志有哪些位?

作用是什么?

答:

程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。

各个标志位的意义如下:

PSW.7(Cy):

进位标志位。

PSW.6(AC):

辅助进位标志位,又称为半进位标志位。

PSW.5(F0):

用户标志位。

PSW.4、PSW.3(RS1和RS0):

寄存器组选择位。

PSW.2(OV):

溢出标志位。

PSW.1(空缺位):

此位未定义。

PSW.0(P):

奇偶校验位。

6、什么是堆栈?

堆栈有何作用?

在程序设计时,有时为什么要对堆栈指针SP重新赋值?

如果CPU在操作中要使用两组工作寄存器,SP应该多大?

答:

堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。

堆栈指针SP复位后指向07H单元,00H~1FH为工作寄存器区,20H~2FH为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP重新赋值。

如果CPU在操作中要使用两组工作寄存器,SP应该至少设置为0FH。

7、MCS-51的4个并行I/O口在使用上有哪些特点和分工?

89S51/52单片机的4个I/O口在结构上是相同的,但又各具特点。

这四个端口都是8位双向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器。

在无片外扩展存储器的系统中,这四个端口的每一位都可以作为双向通用I/O端口使用。

在作为一般的通用I/O输入时,都必须先向锁存器写入“1”,使输出驱动场效应管FET截止,以免误读数据。

各自特点如下:

(1)P0口为双向8位三态I/O口,它既可作为通用I/O口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。

作为通用I/O口时,输出数据可以得到锁存,不需外接专用锁存器;输入数据可以得到缓冲,增加了数据输入的可靠性。

每个引脚可驱动8个TTL负载。

(2)P1口为8位准双向I/O口,内部具有上拉电阻,一般作通用I/O口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置1。

每个引脚可驱动4个TTL负载。

(3)P2口为8位准双向I/O口,内部具有上拉电阻,可直接连接外部I/O设备。

它与地址总线高8位复用,可驱动4个TTL负载。

一般作为外部扩展时的高8位地址总线使用。

(4)P3口为8位准双向I/O口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个TTL负载。

作为通用I/O口时,功能与P1口相同,常用第二功能。

8、为什么说单片机的P1和P3端口是静态I/O端口,而P2端口是动态I/O端口,用P2端口输出一个字节数据,在端口线上能得到数据么?

9、MCS-51的并行I/O信息有哪两种读取方法?

读改写操作是针对并行I/O口的那一部分进行的?

有何优点?

答:

读引脚和读锁存器。

锁存器。

对“读改写”指令,不直接读引脚而读锁存器,是为了避免可能出现的错误。

因为在端口已处于输出状态的情况下,如果端口引脚正好驱动一个晶体管基极,导通了的PN结就会把引脚的高电平拉低,这时若直接读端口引脚,将会把原输出的数据“1”误读成“0”。

但是,如果从锁存器来读取数据,由于原输出数据在锁存器中已被锁存,即使引脚电平发生变化,也不会出现上述可能的错误。

10、若采用6MHz的晶振,8051的振荡周期和机器周期分别是多少微秒?

一条单字节双周期指令的指令周期为多少微秒?

答:

6-1us;2us;4us

第三章

一、填空1、指令2、111;单;双;三3、74、操作数;A;B;DPTR5、操作数;地址;R0;R1;DPTR6、直接7、DPTR;PC;A;程序存储器8、DPTR;SP;MOVX9、直接;立即10、80H11、68H12、68H13、62H;68H;36H14、41H;39H;88H15、BFH;0;0;016、2EH;1;1;017、26H;118、90H;06H;0;119、10H;03H;0;0

20、00H;96H

二、选择1、④2、③3、④4、②

2.要访问一特殊功能寄存器和外部数据存储器应分别采用哪种寻址方式?

答:

直接寻址方式、寄存器寻址可用于访问特殊功能寄存器,位寻址方式可对特殊功能寄存器中的可位寻址位进行寻址。

外部数据存储器应采用寄存器间接寻址方式。

5.请写出能完成每一种操作的指令序列

①将R0的内容传送到R1

MOVAR0

MOVR1A

②.将内部RAM20H单元的内容传送到R7

MOVR720H

③.将外部RAM1000H单元的内容传送到内部RAM30H单元

MOVDPTR#1000H

MOVXA@DPTR

MOV30HA

④.将外部RAM1000H单元的内容传送到R1

MOVDPTR#1000H

MOVXA@DPTR

MOVR1A

6.阅读下面的程序。

要求:

说明程序的功能;写出涉及的寄存器及片内RAM单元的最后结果

答:

该程序是将内部RAM40H中的内容与41H的内容相加,和放在43H,42H中。

指令执行后:

A的内容为01H,42H的内容为5AH,43H的内容为01H。

7、假设在内RAM30H和31H中存放有一个16位的无符号二进制数(高字节在高地址单元),请编写程序对该数乘2,再放回原单元。

ORG1000H

START:

MOVA30H;

MOVB#2;

MULAB;

MOV30HA;

MOV32HB;

MOVA31H;

MOVB#2;

MULAB;

ADDA32H;

MOV31HA;

END

8、写出16位数相加程序,设被加数存放在内RAM20H,21H单元,加数存放在22H,23H单元,并将结果存放在后续单元24H、25H中(要求低位数存放在低地址单元中)。

ORG1000H

START:

CLRC

MOVA20H;

ADDA22H;

MOV24HA;

MOVA21H;

ADDCA23H;

MOV25HA;

END

9、试编写程序:

采用“与”运算,判断内RAM20H单元的8位二进制数是正数还是负数。

试根据30H中的值编写程序判断20H单元中数的两种情况,在30H中存放‘0’代表正数,存放‘1’代表负数。

ORG1000H;

MOVA#80;

ANLA20H;

JZNEXT0;

MOV30H#1;

SJMPNEXT1;

NEXT0:

MOV30H#0;

NEXT1:

SJMP$

END

10、从内RAM40H单元开始的区域内存有10个单字节十进制数(压缩的BCD码)试求它们的累加和,并将结果存放在内部RAM20H和21H单元中。

ORG1000H

START:

MOVR1#40H;

MOVR2#10;

MOV20H#0;

MOV21H#0;

CLRC

LOOP:

MOVA@R1;

ADDA20H;

DAA;

MOV20HA;

MOVA21H;

ADDCA#0;

MOV21HA;

INCR1;

DJNZR2LOOP;

SJMP$

END

11、编写程序,将内RAM从20H开始存放的16个数传送到从18H开始的单元中。

ORG1000H

MOVR0#20H;

MOVR1#18H;

MOVR2#16;

LOOP:

MOVA@R0;

MOV@R1A;

INCR0;

INCR1;

DJNZR2LOOP;

SJMP$

END

12、编写程序,将内RAM从20H开始存放的16个数传送到从28H开始的单元中。

ORG1000H

START:

MOVR0#2FH;

MOVR1#37H;

MOVR2#16;

LOOP:

MOVA@R0;

MOV@R1A;

DECR0;

DECR1;

DJNZR2LOOP;

SJMP$

END

13、编写程序,将片外RAM从2000H开始存放的8个数传送到片内RAM从30H开始的单元中。

ORG1000H

MOVDPTR#2000H;

MOVR1#30H;

MOVR2#8;

LOOP:

MOVXA@DPTR;

MOV@R1A;

INCDPTR;

INCR1;

DJNZR2LOOP;

SJMP$

END

14、已知从外部RAM0040H单元开始存放有20个无符号数,试编制程序,将该数据块搬移到外部RAM从0060H单元开始的存储区域内。

ORG1000H

MOVDPTR#0040H;

MOVR0#60H;

MOVR2#20;

LOOP1:

MOVXA@DPTR;

MOVX@R0A;

INCR0;

INCDPTR;

DJNZR2LOOP1;

SJMP$

END

第四章

一、填空1.保护;恢复2.机器语言3.0500H;0505H;01H;0507H

3.求连续存放在20H中的8个单字节无符号数之和,并求其平均值存放在R2中

解:

ORG0200H

MOVR7,#07H

MOVR3,#0

MOVA,20H

MOVR0,#21H

CLRC

LOOP:

ADDA,@R0

JNCNEXT

INCR3

NEXT:

INCR0

DJNZR7,LOOP

MOV51H,R3

MOV50H,A

MOVR2,#03H

LOOP1:

CLRC

MOVA,51H

RRCA

MOV51H,A

MOVA,50H

RRCA

MOV50H,A

DJNZR2,LOOP1

MOVR2,50H

4.设内部RAM从21H单元开始存有一组带符号数,数据长度存于20H单元,要求把改组中正数,负数分别求和,并存放在寄存器R6和R7中。

MOVR0,#21H

MOVR1,20H

CLRC

MOVR7,#00H

MOVR6,#00H

LOOP:

MOVA,@R0

JBACC.7,STEP

ADDA,R6

MOVR6,A

INCR0

SJMPHERE

STEP:

ADDA,R7

MOVR7,A

INCR0

HERE:

DJNZR1,LOOP

END

5.设内部RAM从LIST单元开始存有一组符号数据,数据个数为30,变成找出其中的最大数,并存入BIG单元中。

解:

LISTEQU42H

BIGEQU41H

ORG0000H

MOVR0,#LIST

MOVBIG,@R0

MOVR2,#30

DECR2

NEXT:

INCR0

MOVA,@R0

CJNEA,BIG,COMP

COMP:

JCCON

MOVBIG,A

CON:

DJNZR2,NEXT

RET

6.设内RAM从20H单元开始存有40H个无符号数,试编制程序将它们按从大到小的顺序排列,结果仍存放在原存贮区域内。

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVR1,#20H

MOVR2,#39

CLR10H

LOOP1:

MOVA,@R1

INCR1

MOV70H,@R1

CJNEA,70H,LOOP2

LOOP2:

JNCLOOP3

MOV@R1,70H

DECR1

MOV@R1,A

INCR1

SETB10H

LOOP3:

DJNZR2,LOOP1

JB10H,MAIN

SJMP

END

7.编写程序把累加器A中的二进制数变换成3位BCD码,并将百位,十位和个位BCD码分别放在内RAM50H,51H和52H单元。

MOVB,#10

DIVAB

MOV52H,B

MOVB,#10

DIVAB

MOV51H,B

MOV50H,A

RET

8.手工汇编下列程序段:

ORG1200H

LabEQU1400H

1200E535MOVA35H

1202C3CLRC

1203940ASUBBA#0AH

12054009JCLab2

1207E536MOVA36H

12094002JCLab1

120B*11400(8100)AJMPLab

120D753500Lab1:

MOV35#00

1210300205Lab2:

JNB02HLab3

1213AE39MOVR639H

12151EDECR6

12168004SJMPLab4

1218AE39Lab3:

MOVR639H

121A0539INC39H

121CC201Lab4:

CLR01H

121E023200LJMP3200H

1221END

第五章

一、填空1.共享2.外部3.PC;PC;外部中断0矢量地址4.外部中断05.电平;边沿

二、选择1.②2.③3.④4.①5.③6.④7.②8.②

三、编程

3.试编写一段对中断系统初始化程序,要求允许外部中断0(电平触发)、T0中断、串行口中断,且使T0为高优先级中断。

ORG0000H

AJMPMAIN

ORG0003H;

AJMPIT_0

ORG000BH;

AJMPIT_T0

ORG0023H;

AJMPIT_S

ORG0100H;

MAIN:

…;

SETBEXO;

CLRITO;

SETBET0;

SETBES;

SETBEA;

SETBPT0;

…;

IT_0:

…;

IT_T0:

…;

IT_S:

…;

END

第六章

一、填空1.16;4;32.中断标志位;查询标志位3.32768us

二、选择1.③2.④

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

当前位置:首页 > 表格模板 > 合同协议

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

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