《单片机原理与接口技术》课后答案段晨东主编详尽版.docx
《《单片机原理与接口技术》课后答案段晨东主编详尽版.docx》由会员分享,可在线阅读,更多相关《《单片机原理与接口技术》课后答案段晨东主编详尽版.docx(147页珍藏版)》请在冰豆网上搜索。
《单片机原理与接口技术》课后答案段晨东主编详尽版
第一章复习思考题答案
一、选择题
1:
B2:
C3:
B4:
A5:
B6:
D7:
D8:
C9:
B10:
B
二、思考题
1.简述微型计算机的组成和工作原理。
微型计算机主要由微处理器CPU、存储器、输入设备和输出设备组成。
当使用计算机解决某个具体问题时,首先,根据解决问题的方案,编写出一系列解决这个问题的程序;然后,把程序输入到计算机中,命令计算机按照这些事先拟定步骤顺序执行。
CPU包括控制器和运算器。
CPU是计算机中最重要的部件,由它实现程序控制、操作控制、时序控制、数据加工、输入与输出控制、对异常情况和请求的处理等等。
存储器是计算机中的记忆部件,用来存储编写的程序,存放程序所用的数据以及产生的中间结果。
由输入设备把程序和数据送入计算机内部的“存储器”中保存,程序处理完毕把结果通过“输出设备”输出,以便人们识别。
接通电源后,CPU会自动地从存储器中取出要执行的程序代码,通过译码解析出代码所赋予的功能,如果进行数据运算,则从存储器中提取运算所需要的数据,再进行运算操作,并把运算结果存储到程序指定的存储区域,结束本次执行操作;如果执行转移操作,则提取程序代码中的转移信息,计算出程序转移的目标地址,然后跳转。
紧接着,CPU再从存储器中提取下一次要执行的代码,不断地重复上述操作过程。
2.简述单片机在结构上与微型计算机的区别与联系。
微型计算机是以微处理器为基础,配以内存储器及输入输出(I/0)接口电路和相应的辅助而构成。
单片机是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等集成到一块芯片上的微型计算机。
3.单片机与微处理器有什么不同?
单片机也称微控制器,它集成CPU、ROM、RAM、存储器、I/O口等,而微处理器是是CPU,它仅集成了运算器和控制器,没有存储器和接口。
4.把下列十进制数转换为二进制数、八进制和十六进制数。
(1)32768
(2)23.156(3)-56.8125(4)59
解:
(1)(32768)10=(1000000000000000)2=(100000)8=(8000)16
(2)(23.156)10=(10111.00100111)2=(27.116)8=(17.27)16
(3)(-56.8125)10=(-111000.1101)2=(-70.64)8=(-38.D)16
(4)(59)10=(111011)2=(73)8=(3B)16
5.把下列二进制数转换为十进制数、十六进制数:
(1)10001010111
(2)10110.11101
解:
(1)(10001010111)2=(1111)10=(457)16
(2)(10110.11101)2=(22.90625)10=(16.E8)16
6.求下列数据的原码、反码、补码(以8位表示)
(1)73
(2)23(3)-1(4)-109
解:
(1)[73]原=01001011[73]反=01001011[73]补=01001011
(2)[23]原=00010111[23]反=00010111[23]补=00010111
(3)[-1]原=10000001[-1]反=11111110[-1]补=11111111
(4)[-109]原=11101101[-109]反=10010010[-109]补=10010011
7.求下列数据的原码、反码、补码(以16位表示)
(1)-12137
(2)0(3)-1(4)23679
解:
(1)[-12137]原=1010111101101001[-12137]反=1101000010010110
[-12137]补=110100*********1
(2)[+0]原=0000000000000000[+0]反=0000000000000000[+0]补=0000000000000000
[-0]原=1000000000000000[-0]反=111111*********1[+0]补=0000000000000000
(3)[-1]原=1000000000000001[-1]反=1111111111111110[-1]补=111111*********1
(4)[+23679]原=0101110001111111=[+23679]反=[+23679]补
8.把下列十进制数转换为二进制、十六进制数,并把它们用BCD码表示:
(1)128
(2)7891(3)819(4)21
解:
(1)(128)10=(10000000)2=(80)16=(000100101000)BCD
(2)(7891)10=(1111011010011)2=(1ED3)16=(0111100010010001)BCD
(3)(819)10=(1100110011)2=(333)16=(100010010001)BCD
(4)(21)10=(10101)2=(15)16=(00100001)BCD
9.写出下列数据的定点小数和浮点数,定点小数的小数部分为1个字节,浮点数为3字节浮点数格式。
(1)-76.25
(2)3789(3)-32767
(2)1.109375
解:
(1)定点数11001100.00100000浮点数879840H
(2)定点数111011001101.00000000浮点数0CECD0H
(3)定点数111111*********1浮点数8FFFFEH
(4)定点数0001.00011011浮点数018D80H
10.请把下列字符串用ASCII码表示。
(1)WWW.CCTV.COM
(2)Wo123_Password:
0
解:
(1)5757572E434354562E434F4D
(2)576F3132335F50617373776F72643A30
第二章复习思考题答案
一、选择题
1:
B2:
B3:
A4:
D5:
C6:
C7:
A8:
B9:
B10:
B
11:
B12:
D13:
B14:
A15:
B16:
C17:
B18:
C19:
C20:
B
21:
C22:
D23:
C24:
C25:
B26:
A27:
A28:
D29:
D30:
C
31:
A32:
B33:
C34:
D35:
B36:
D37:
A38:
A39:
B40:
C
二、简答题
1.MCS-51单片机芯片包含哪些主要逻辑功能部件?
各有什么功能?
中央处理器CPU:
完成运算和控制操作。
存储器:
内部数据存储器RAM用于存放程序的机器代码和常数;内部程序存储器用于存放可读写的数据。
特殊功能寄存器用于存放相应功能部件的控制命令、状态和数据。
并行口:
P0~P3除了可以作为基本的I/O功能之外,P3口的第二功能还提供了串行口、外部中断、外部计数等功能以及访问外部数据存储器和外部I/O口的控制信号。
串行口:
用于串行通信。
定时/计数器:
2个16位定时器/计数器,具有多种工作模式,用于计数、定时和产生串行通信的波特率。
中断系统:
单片机有5个中断源,分别为2个外部中断、2个定时器/计数器溢出中断、1个串行口接收/发送中断,提供2个中断优先级。
实现实时控制等。
2.MCS-51的控制总线信号有哪些?
它们各起什么作用?
ALE——地址锁存控制信号,输出。
ALE用于锁存地址总线的低八位。
该信号频率为振荡器频率的1/6,可作为外部定时或时钟使用。
——外部程序存储器读选通信号,输出,
为低电平时,CPU从外部程序存储器的单元读取指令。
——内、外程序存储器选择控制端,输入,当
接地(
=0)时,CPU对程序存储器的操作仅限于单片机外部。
当
接高电平(
=1)时,CPU对程序存储器的操作从单片机内部开始,并可延伸到单片机的外部。
RESET——复位信号。
在RESET引脚上保持2个机器周期以上的高电平,单片机复位。
3.MCS-51单片机的
信号有什么功能?
在使用8031时,
引脚应如何处理?
为内、外程序存储器选择控制端,当
接地(
=0)时,CPU对程序存储器的操作仅限于单片机外部。
当
接高电平(
=1)时,CPU对程序存储器的操作从单片机内部开始,并可延伸到单片机的外部。
8031无片内ROM,所以
必须接地。
4.程序计数器PC的作用是什么?
程序计数器PC是一个16位的寄存器,用来存放下一条即将执行指令的地址。
CPU每取一次机器码,PC的内容自动加1,CPU执行一条指令,PC的内容自动增加该指令的长度(指令的字节数)。
CPU复位后,PC的内容为0000H,它意味着程序从头开始执行。
5.MCS-51单片机有哪些控制信号需要芯片引脚以第二功能的方式提供?
(1)串行口:
P3.0作为串行口数据的接收端RXD;P3.1作为串行口数据的发送端TXD;
(2)外部中断触发信号的输入
P3.2作为外部中断
的中断触发信号的输入端;
P3.3作为外部中断
的中断触发信号的输入端;;
(3)外部计数脉冲的输入端
P3.4作为定时/计数器T0外部计数信号的输入;
P3.5作为定时/计数器T1外部计数信号的输入;
(4)访问外部RAM的读写控制信号
P3.6作为外部数据存储器写控制信号
;
P3.7作为外部数据存储器读控制信号
6.MCS-51单片机的存储器地址空间如何划分?
各个空间的地址范围和容量是多少?
MCS-51单片机的存储器地址空间可分为以下5类:
程序存储器,最大空间64K;片内数据存储器,128个单元;特殊功能寄存器,共21个;位寻址空间,211位;外部数据寄存器,最大空间64K。
7.简述内部RAM的功能分区?
说明各部分的使用特点。
片内RAM分为3个区域:
(1)00~1FH:
32个单元为工作寄存器区,包含4个工作寄存器组。
(2)20~2FH:
16个单元为位寻址区。
CPU可以对每一位按位地址直接操作。
(3)30~7FH:
80个单元为数据缓冲区。
数据缓冲区作为数据缓冲、数据暂存、作为堆栈区使用;这些单元只能按单元访问。
8.如何选择MCS-51单片机的当前工作寄存器组?
单片机当前工作寄存器组是由程序状态寄存器PSW中的RS1、RS0的状态决定:
当RS1、RS0=00时,选择工作寄存器组0区,R0~R7对应单元地址为00H~07H;
当RS1、RS0=01时,选择工作寄存器组1区,R0~R7对应单元地址为08H~0FH;
当RS1、RS0=10时,选择工作寄存器组2区,R0~R7对应单元地址为10H~17H;
当RS1、RS0=11时,选择工作寄存器组3区,R0~R7对应单元地址为18H~1FH;
9.堆栈有哪些功能?
堆栈指针SP是多少位的寄存器?
SP的作用是什么?
在应用系统程序设计时,为什么要对SP重新赋值?
堆栈的功能是保护CPU执行程序的现场(如子程序调用、中断调用等);
堆栈指针SP是8位寄存器;其作用是指出栈顶位置;
对SP重新赋值是为了避免堆栈向上生成时覆盖所存储的有效数据和标志,一般情况下,把堆栈区设在30H单元之后的区域。
10.MCS-51单片机有多少个可以寻址的特殊功能寄存器(SFR)?
简要介绍它们的功能。
共21个,其中与CPU相关的有:
ACC,B,PSW,SP,DPTR(DPH,DPL)。
与并行I/O口相关的有:
P0,P1,P2,P3。
与串行口相关的有:
SCON,SBUF,PCON。
与定时器/计数器相关的有:
TCON,TMOD,TH0,TL0,TH1,TL1。
与中断系统相关的有:
IP,IE。
B寄存器,用于乘除法运算,其他情况作为缓冲寄存器使用;
ACC:
累加器,用于算数运算,逻辑运算,移位运算以及传送运算;
PSW:
程序状态寄存器,用于反映累加器ACC参与运算时的一些特征,指出当前工作寄存器组;
DPTR可作为访问外部RAM的地址指针或作为访问程序存储器的基地址寄存器。
堆栈指针SP指出栈顶位置;
P0~P3作为I/O口,P0和P2还可以作为地址和数据总线,P3可提供第二功能。
中断优先级寄存器IP用于设置中断源的优先级;中断控制寄存器IE控制中断开放和禁止,串行口控制寄存器SCON用于定义串口工作方式,控制数据的接收和发送,记录工作状态标志。
:
定时/计数器控制寄存器TCON记录中断标志,控制定时/计数器。
11.在MCS-51单片机中,CPU对特殊功能寄存器(SFR)访问有什么特点?
CPU访问这些SFR只能采用直接寻址方式,即按单元地址访问的模式。
12.简单说明MCS-51单片机PSW寄存器各个标志位的意义。
Cy进位位。
在运算过程中,最高位D7有(借)进位时,(Cy)=1,否则,(Cy)=0;
AC辅助进位位。
用于十进制数(BCD)运算。
在运算过程中,当D3向D4位(即低四位向高四位)进(借)位时,(AC)=1,否则,(AC)=0;OV溢出标志位。
在运算过程中,对于D6、D7两位,如果其中有一位有进(借)位而另一位无进(借)位时,(OV)=1,否则,(OV)=0;
P奇偶校验位。
运算结束时,如果ACC中1的个数为奇数,(P)=1,否则,(P)=0。
F0用户标志位,用户在编程时可作为自己定义的测试标志位。
RS0、RS1寄存器组选择位,选择当前工作寄存器组。
。
13.简述MCS-51单片机的位寻址空间的构成?
由两部分构成,一部分是内部RAM位寻址区20H~2FH单元的128位,位地址范围为00H~7FH,另一部分是11个单元地址尾数为0和8的SFR构成的位寻址区,共83位,位地址范围为80H~FFH。
14.MCS-51单片机的P0~P3口在结构上有何不同?
在使用上各有什么特点?
MCS-51系列单片机的P0~P3并行口在结构上基本相同,每个并行口包含1个锁存器(特殊功能寄存器P0~P3)、1个输出驱动器和1个输入缓冲器。
P0当作为通用的I/O口使用时,输出电路是漏极开路的,因此,需要外接上拉电阻。
另外,用作输入时,应先向输出口的锁存器写1,然后再读相应的引脚。
P0可用作地址/数据总线,口的每位输出可以驱动8个TTL负载。
P1、P2、P3口的输出电路含有内部上拉电阻,口的每一位能驱动4个TTL负载,在作为输入口时,必须先对相应的锁存器写1,即进行设置输入口的操作。
15.把P1.4作为输入,外接一个开关,如果要读取开关的状态,如何操作?
当将P1.4作为输入之前,必须先向锁存器写入1,当P1.4输入数据时,“读引脚”信号有效,打开输入缓冲器,使数据进入内部总线,完成P1.4输入。
16.MCS-51单片机的时钟电路有几种实现方式?
请分别给出相应的电路。
两种方式,内部方式和外部方式。
内部方式利用单片机芯片上提供的反相放大器电路,在XTAL1,XTAL2引脚之间外接振荡源构成一个自激振荡器,自激振荡器与单片机内部时钟发生器构成单片机的时钟电路;如图1.1所示。
外部方式实现单片机的时钟电路时,单片机的时钟直接由外部时钟信号源提供,即单片机使用外部振荡器。
如图1.2所示。
17.什么是时钟周期、机器周期和指令周期?
如何计算机器周期?
晶振频率为12MHz时,计算时钟周期、机器周期。
时钟周期:
振荡器信号的周期。
机器周期:
CPU完成一个基本操作所用的时间。
指令周期:
执行一条指令需要的时间。
计算公式:
,其中
为晶振频率。
当晶振频率为
=12MHZ时,时钟周期:
。
机器周期:
TM=1
。
18:
MCS-51单片机的复位条件是什么?
在应用系统设计时,实现单片机的复位有几种方法?
请给出相应的电路原理图。
单片机复位条件是在单片机RESET引脚上保持2个机器周期以上的高电平。
有两种复位方式,上电自动复位电路,如图1.3所示;按钮开关及上电自动复位电路,如图1.4所示;
图1.3上电自动复位电路图1.4按钮开关及上电自动复位电路
19.简述MCS-51单片机复位后的状态。
单片机复位后,程序计数器PC内容为0000H;累加器A、B寄存器、数据指针DPTR被清0;程序状态字寄存器PSW的内容为00H,P0~P3寄存器中所有的位被置1,I/O口P0~P3的锁存器内容为0FFH;除了串行口数据缓冲器SBUF的内容不确定外,其他与定时器/计数器、中断系统、串行口有关的特殊功能寄存器(SFR)中的有效位为全部被清0。
20.MCS-51单片机运行出错或程序进入死循环时,采用强制复位摆脱困境。
在这种情况下,单片机内部RAM和特殊功能寄存器(SFR)的状态与复位前相比有什么变化?
在单片机由于某种原因被强制复位时,内部RAM单元的内容不会受复位的影响,会保持复位以前的状态。
对于位寻址空间来说,单片机工作过程中的强制复位,不会影响位于内部RAM的20~2FH单元中的位的状态,而SFR中的可寻址位却被遗失了。
特殊功能寄存器A、B、DPTR被清0;PSW的内容为00H,P0~P3寄存器中所有的位被置1,I/O口P0~P3的锁存器内容为0FFH;除了串行口数据缓冲器SBUF的内容不确定外,其他与定时器/计数器、中断系统、串行口有关的特殊功能寄存器(SFR)中的有效位为全部被清0。
第三章复习思考题答案
一、选择题
1.B2.D3.D4.C5.A6.A7.D8.E9.B10.C
11.D12.C13.A14.B15.A16.C17.C18.D19.D20.A21.C22.B23.C24.B25:
B26.D27.A28.B29.D30.C
二、思考题
1.寻址方式是CPU执行指令时获取操作数的方式。
MSC-51单片机有7种不同的寻址方式:
立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、位寻址和相对寻址。
2.(A)=25H,(R0)=50H,(50H)=00H,(51H)=25H
3.(DPTR)=25F0H
4.(A)=30H,(B)=20H
5.(A)=80H
6.XCH:
字节交换指令,将源操作数与A累加器的内容互换,源操作数必须是工作寄存器、SFR或内部RAM的存储单元。
XCHD:
半字节交换指令,把指定单元内容的低4位与累加器A的低4位互换,而二者的高4位保持不变。
SWAP:
高低四位互换指令,将累加器A的高4位和低4位互换。
7.MOVCA,@A+DPTR:
常数所在存储单元的地址由DPTR和累加器A的内容之和确定。
常数表可以放在程序存储器64K的任何区域,最大长度可以是64KB。
MOVCA,@A+PC:
常数所在存储单元的地址由程序计数器PC和累加器A的内容之和确定。
常数表紧随该指令存放,最大长度不能超过256个字节。
8.1030H
9.8140H
10.(SP)=62H,60H单元内容不变,(61H)=30H,(62H)=70H
11.(SP)=60H,60H单元内容不变,(61H)=50H,(62H)=7AH,(DPTR)=7A50H
12.(A)=34H,(Cy)=1,(AC)=1,(OV)=1,(P)=1
13.(A)=83H,(Cy)=1,(AC)=1,(OV)=0,(P)=1
14.(A)=00H,(R3)=10H,(30H)=F1H,(R0)=01H
15.(A)=23H,(Cy)=1
16.20H、30H和31H单元进行了加法运算,结果存放在31H单元
17.ADD:
不带进位位的加法指令。
ADDC:
带进位位的加法指令。
18.DA:
其功能就是在用加法指令完成BCD码加法运算之后,对运算结果进行处理,把运算结果转换为BCD码形式。
使用方法:
必须与加法指令联合使用;
19.(A)=0EH,(R7)=18H,(30H)=0FFH,(R1)=40H,(41H)=0FDH
20.20H和30H单元参与减法运算,程序的结果存储在2FH单元。
21.(A)=00H,(B)=32H,(Cy)=0,(OV)=1
22.(A)=0DH,(B)=11H,(Cy)=0,(OV)=0
23.0CBH
24.
(1)(A)=00H,(R5)=0AAH
(2)(A)=0FFH,(R5)=0AAH
(3)(A)=0FFH,(R5)=0AAH
25.
26.LCALL指令在调用前,先把下一条指令的地址推入堆栈保留,以便执行子程序返回指令RET时能找到返回地址,实现正确返回;而转移指令LJMP指令不需要保护返回地址。
27.转移到REDO处
28.当ACC.7为1时,执行JB指令程序转移到LABEL处,执行JBC指令程序转移到LABEL处并将ACC.7淸0。
29.RET:
子程序返回指令,子程序的最后一条指令必须是RET,它标志子程序结束。
RETI:
中断返回指令,令专用于中断处理程序,是中断处理结束的标志。
RETI指令与RET指令的区别在于RETI指令在实现中断返回的同时,重新开放中断使CPU能够接收同优先级的另外一个中断请求。
30.
,执行时间为:
1
+125×
+2
=753
ms
三、程序设计
1.把内部RAM的20H、21H、22H单元的内容依次存入2FH、2EH和2DH中。
MOV2FH,20H
MOV2EH,21H
MOV2DH,22H
2.把外部RAM的2040H单元内容与3040H单元内容互换。
方法一:
MOVDPTR,#2040H
MOVXA,@DPTR
MOV20H,A
MOVDPTR,#3040H
MOVXA,@DPTR
MOV21H,A
PUSH20H
PUSH21H
POP20H
POP21H
MOVDPTR,#2040H
MOVA,20H
MOVX@DPTR,A
MOVDPTR,#3040H
MOVA,21H
MOVX@DPTR,A
方法二:
MOVDPTR,#2040H
MOVXA,@DPTR
MOV20H,A
MOVDPTR,#3040H
MOVXA,@DPTR
XCHA,20H
MOVX@DPTR,A
MOVDPTR,#2040H
MOVA,20H
MOVX@DPTR,A
3.把内部RAM的40H单元与5000H单元的低四位互换。
MOVDPTR,#5000H
MOVXA,@DPTR
MOVR1,#40H
XCHDA,@R1
MOVX@DPTR,A
4.已知一个2维数据表格如下,存储在程序存储器中,编程实现自动查表。
X
0
1
2
3
4
…
0B
0C
0D
0E
0F
Y
11
12
01
AD
DD
…
AB
24
4B
7C
AA
MOVDPTR,#5000H
MOVCA,@A+DPTR
RET
5000HDB11H
5001HDB12H
5002HDB01H
......
500EHDB7CH
500FHDBAAH
5.已知二进制数X和Y,X被