单片机原理及接口技术课后习题答案胡健主编机械工业出版社Word下载.docx
- 文档编号:19475512
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:14
- 大小:22.93KB
单片机原理及接口技术课后习题答案胡健主编机械工业出版社Word下载.docx
《单片机原理及接口技术课后习题答案胡健主编机械工业出版社Word下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术课后习题答案胡健主编机械工业出版社Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
(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;
程序存储器8、DPTR;
SP;
MOVX9、直接;
立即10、80H11、68H12、68H13、62H;
68H;
36H14、41H;
39H;
88H15、BFH;
0;
016、2EH;
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
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;
ADDA32H;
MOV31HA;
END
8、写出16位数相加程序,设被加数存放在内RAM20H,21H单元,加数存放在22H,23H单元,并将结果存放在后续单元24H、25H中(要求低位数存放在低地址单元中)。
CLRC
MOVA20H;
ADDA22H;
MOV24HA;
MOVA21H;
ADDCA23H;
MOV25HA;
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;
11、编写程序,将内RAM从20H开始存放的16个数传送到从18H开始的单元中。
ORG1000H
MOVR0#20H;
MOVR1#18H;
MOVR2#16;
LOOP:
MOVA@R0;
MOV@R1A;
INCR0;
12、编写程序,将内RAM从20H开始存放的16个数传送到从28H开始的单元中。
ORG1000H
START:
MOVR0#2FH;
MOVR1#37H;
DECR0;
DECR1;
13、编写程序,将片外RAM从2000H开始存放的8个数传送到片内RAM从30H开始的单元中。
MOVDPTR#2000H;
MOVR1#30H;
MOVR2#8;
MOVXA@DPTR;
INCDPTR;
14、已知从外部RAM0040H单元开始存放有20个无符号数,试编制程序,将该数据块搬移到外部RAM从0060H单元开始的存储区域内。
MOVDPTR#0040H;
MOVR0#60H;
MOVR2#20;
LOOP1:
MOVX@R0A;
INCDPTR;
DJNZR2LOOP1;
第四章
一、填空1.保护;
恢复2.机器语言3.0500H;
0505H;
01H;
0507H
3.求连续存放在20H中的8个单字节无符号数之和,并求其平均值存放在R2中
解:
ORG0200H
MOVR7,#07H
MOVR3,#0
MOVA,20H
MOVR0,#21H
ADDA,@R0
JNCNEXT
INCR3
NEXT:
INCR0
DJNZR7,LOOP
MOV51H,R3
MOV50H,A
MOVR2,#03H
MOVA,51H
RRCA
MOV51H,A
MOVA,50H
DJNZR2,LOOP1
MOVR2,50H
4.设内部RAM从21H单元开始存有一组带符号数,数据长度存于20H单元,要求把改组中正数,负数分别求和,并存放在寄存器R6和R7中。
MOVR0,#21H
MOVR1,20H
MOVR7,#00H
MOVR6,#00H
LOOP:
MOVA,@R0
JBACC.7,STEP
ADDA,R6
MOVR6,A
INCR0
SJMPHERE
STEP:
ADDA,R7
MOVR7,A
HERE:
DJNZR1,LOOP
END
5.设内部RAM从LIST单元开始存有一组符号数据,数据个数为30,变成找出其中的最大数,并存入BIG单元中。
LISTEQU42H
BIGEQU41H
ORG0000H
MOVR0,#LIST
MOVBIG,@R0
MOVR2,#30
DECR2
NEXT:
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:
JB10H,MAIN
SJMP
END
7.编写程序把累加器A中的二进制数变换成3位BCD码,并将百位,十位和个位BCD码分别放在内RAM50H,51H和52H单元。
MOVB,#10
DIVAB
MOV52H,B
MOVB,#10
DIVAB
MOV51H,B
MOV50H,A
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;
外部中断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;
…;
SETBEXO;
CLRITO;
SETBET0;
SETBES;
SETBEA;
SETBPT0;
…;
IT_0:
IT_T0:
IT_S:
第六章
一、填空1.16;
32.中断标志位;
查询标志位3.32768us
二、选择1.③2.④
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 接口 技术 课后 习题 答案 主编 机械工业 出版社