搜档网
当前位置:搜档网 › 《单片机原理及应用》课后习题答案

《单片机原理及应用》课后习题答案

第2章 MCS-51的基本结构
2.1 MCS-51单片机内部包含那些主要逻辑功能部件?各个功能部件的最主要的功能是什么?
2.2 MCS-51的EA端有何用途?
2.3 MCS-51单片机外部总线结构是怎样的?
2.4 MCS-51单片机存储器的组织结构是怎样的?
2.5 MCS-51系列单片机的存储器可划分为几个空间?各自的地址范围和容量是多少?在使用上有什么不同?
2.6 8051如何确定和改变当前工作寄存器组?
2.7 MCS-51单片机的程序存储器中0000H、0003H、000BH、0013H、001BH和0023H这几个地址具有什么特殊的功能?
2.8 8051单片机有哪几个特殊功能寄存器?可位寻址的SFR有几个?
2.9 程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?
2.10 (SP)=30H 指什么?
2.11 MCS-51系列单片机的P0、P1、P2和P3口各有什么特点?
2.12 ALE信号有何功用?一般情况下它与机器周期的关系如何?在什么条件下ALE信号可用作外部设备的定时信号。
2.13 有那几种方法能使单片机复位?复位后各寄存器的状态如何?复位对内部RAM有何影响?
2.14 MCS-51的时钟振荡周期、机器周期和指令周期之间有何关系?
2.1 MCS-51单片机内部包含那些主要逻辑功能部件?各个功能部件的最主要的功能是什么?
答案:MCS-51单片机内部主要包括以下几个部分:
1.一个8位微处理器CPU
MCS-51单片机中有一个8位的CPU,包括运算器和控制器两个部分,并且增加了面向控制的处理功能,不仅可以处理字节数据还可以进行位变量的处理,如位处理、查表、状态检测、中断处理等。
2.数据存储器RAM和特殊功能寄存器SFR
片内具有128Bytes(52系列为256Bytes)的数据存储器,,片外最多可以扩展64KB。数据存储器用来存储单片机运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等。
3.内部程序存储器ROM
内部具有4KB(51系列)/8KB(52系列)的程序存储器(FLASH),用来存储用户程序。如果片内程序存储器容量不够可以外部扩展程序存储器,最多可以扩展64KB。
4.两个定时/计数器
MCS-51单片机内部具有2个16位的定时器/计数器。在使用中,这两个定时器/计数器既可以进行精确的计时,又可以对外部事件进行计数,是最常用和最基本的部件。
5.四个8位可编程的I/O(输入/输出)并行端口
四个8位的并行端口,其中P0为双向口,P1~P3为准双向口。
6.一个串行通信端口
一个全双工的串行口,具有四种工作方式。可以用来进行串行异步通信,与PC机或者多个单片机主从通信或者构成多机系统实现更强大的功能。
7.中断控制系统
MCS-51单片机具有5个固定的可屏蔽中断源,3个在片内

,2个在片外,它们在程序存储器中有各自固定的中断入口地址,由此进入中断服务程序。5个中断源有两个中断优先级,可形成中断嵌套。
8.内部时钟电路
单片机的时钟信号用来提供单片机片内各种微操作的时间基准。

2.2 MCS-51的EA端有何用途?
答案:EA 访问外部程序存储器控制信号。对8051和8751,它们片内有4KB的程序存储器,当EA 为高电平时,分两种情况。若访问的地址空间在0-4K范围内,CPU访问片内程序存储器。访问的地址超出4K时,CPU将自动执行外部程序存储器,即访问外部ROM。当EA接低电平时,CPU只访问外部EPROM/ROM,而不管是否有片内程序存储器。对8031,EA必须接地。
2.3 MCS-51单片机外部总线结构是怎样的?
答案:1.地址总线(AB):
地址总线宽度为16位,由P0口经地址锁存器提供低8位地址(A0-A7);P2口直接提供高8位地址(A8~A15)。地址信号是由CPU发出的,故地址总线是单方向的。
2.数据总线(DB):
数据总线宽度为8位,用于传送数据和指令,由P0口提供。
3.控制总线(CB):
控制总线随时掌握各种部件的状态,并根据需要向有关部件发出命令。
其中地址总线和数据总线,以及控制总线和IO都有部分功能上的重叠,也就是有些口线既是地址总线也是数据总线,而有些控制总线也是IO。

2.4 MCS-51单片机存储器的组织结构是怎样的?
答案:MCS-51单片机的存储器采用的是哈佛(Harvard)结构,即程序存储器和数据存储器分开编址,在空间上是各自独立的,两种存储器有自己的寻址方式和寻址空间。
2.5 MCS-51系列单片机的存储器可划分为几个空间?各自的地址范围和容量是多少?在使用上有什么不同?
答案:MCS-51的存储器空间可以划分为以下4种,分别是:
程序存储器;内部数据存储器;内部特殊功能寄存器;外部数据存储器;
对89S51来说,程序存储器分为片内程序存储器和片外程序存储器,片内程序存储器地址范围为0000H-0FFFH,4KB;片外程序存储器地址范围0000H~FFFFH,64KB。内部程序存储器与外部程序存储器统一编址,当EA为高电平时,从内部程序存储器开始读取程序,达到4KB后跳到片外程序存储器的1000H开始读取程序;当EA为低电平时,直接从片外程序存储器的0000H开始处读取程序。
内部数据存储器地址范围为00H~7FH,128B,在程序中做通用存储器使用。
内部特殊功能寄存器地址范围80H~FFH,128B,专用于控制、管理片内算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等功能模块的工作。
外部数据存储器地址范围0000H~FFFFH,64KB,又称为外部数据RAM,当单片机内

部128个字节的数据RAM不能满足系统工作的需要时,可以通过它的外部总线扩展外部数据存储器。
2.6 8051如何确定和改变当前工作寄存器组?
答案:状态寄存器PSW中RS1,RS0两位进行寄存器组选择,
0 0 组0(00H-07H)
0 1 组1(08H-0FH)
1 0 组2(10H-17H)
1 1 组3(18H-1FH)

2.7 MCS-51单片机的程序存储器中0000H、0003H、000BH、0013H、001BH和0023H这几个地址具有什么特殊的功能?
答案:0000H:单片机复位后,PC=0000H,程序从0000H开始执行
指令,故系统必须从0000H单元开始取指令,执行程序。
0003H:外部中断0入口地址。
000BH:定时器0中断入口地址。
0013H:外部中断1入口地址。
001BH:定时器1中断入口地址。
0023H:串行口中断入口地址。
在系统中断响应之后,将自动转到各中断入口地址处执行程序。
2.8 8051单片机有哪几个特殊功能寄存器?可位寻址的SFR有几个?
答案:8051有21个特殊功能寄存器 ,包括:
A—累加器,B—寄存器, PSW—程序状态字, SP——堆栈指针 ,DPTR——数据指针寄存器 ,PC——程序计数器(16位) ,P0~P3——I/O端口 ,IP——中断优先级控制寄存器,IE——中断允许控制寄存器,TMOD——定时器/计数器方式控制寄存器,TCON——定时器/计数器控制寄存器,TH0,TL0——定时器/计数器0,TH1,TH1——定时器/计数器1,SCON——串行端口控制寄存器,SBUF——串行数据缓冲器,PCON——电源控制寄存器。
可位寻址的SFR有11个。

2.9 程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?
答案:PSW—程序状态字。主要起着标志寄存器的作用。常用标志位及其作用如下:
Cy——进(借)位标志,其主要作用是保存算术运算的进或借位并在进行位操作时做累加器。
在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。在算术运算中它可作为进位标志,在位运算中,它作累加器使用,在位传送、位与和位或等位操作中,都要使用进位标志位。
AC——辅助进位标志,当进行以A为目的的运算时,运算结果从D3位产生进位或借位时AC=1,另外可用于BCD码调整。
进行加法或减法操作时,当发生低四位向高四位进位或借位时,AC由硬件置位,否则AC位被置0。在进行十进制调整指令时,将借助AC状态进行判断。
F0——用户标志,是用户可以使用的位变量,可以随PSW被保存。
该位为用户定义的状态标记,用户根据需要用软件对其置位或清零,也可以用软件测试F0来控制程序的跳转。
RS1,RS0——寄存器组选择,
OV——溢出标志位,在有符号数运算结果超出

允许范围OV=1,否则OV=0。
P——奇偶标志位,主要作用是在每个机器周期根据累加器A中的内容的奇偶性由硬件置/复位,当A中1的个数为奇P=1,否则为P=0。

2.10 (SP)=30H 指什么?
答案:指的是将堆栈基地址指向30H。
2.11 MCS-51系列单片机的P0、P1、P2和P3口各有什么特点?
答案:P0口是一个三态双向口,可作为地址/数据分时复用口;也可作为通用I/O接口。
P1口为准双向口 ,输出驱动部分由场效应管T与内部上拉电阻组成。当其某位输出高电平时,可以提供拉电流负载,不必像P0口那样需要外接上拉电阻。P1口是具有输出锁存的静态口。P1口在作为引脚读入前,必须先对相应端口写入1 。
P2端口除了可以作为准双向通用IO外;还用作输出地址总线的高8位,所以P2端口在功能上兼有P0端口和P1端口的特点。P2端口是动态的IO端口,输出数据虽然被锁存,但不是稳定地出现在端口线上。
P3口为双功能口,当P3口作为通用I/O口使用时,它为静态准双向口,且每位都可定义为输入或输出口,其工作原理同P1口类似;当处于第二功能时,锁存器输出1,通过第二输出功能线输出特定的第二功能信号,在输入方面,既可以通过缓冲器读入引脚信号,也可以通过第二输入功能读入片内的特定第二功能信号。
2.12 ALE信号有何功用?一般情况下它与机器周期的关系如何?在什么条件下ALE信号可用作外部设备的定时信号。
答案:ALE是地址锁存使能信号,是机器周期的二倍。当不使用单字节双周期的指令,如MOVX类指令时,可以作为外部设备的定时信号。

2.13 有那几种方法能使单片机复位?复位后各寄存器的状态如何?复位对内部RAM有何影响?
答案:可以有上电复位、手动复位和专用芯片复位三种方式。
复位操作使单片机进入初始化状态,PC初始化为0000H,使MCS-51单片机从0000H开始执行程序 。
(PSW)=00H,由于RS1(PSW.4)=0,RS0(PSW.3)=0,复位后单片机选择工作寄存器0组。
(SP)=07H,复位后堆栈在片内RAM的08H单元处建立。
TH1、TL1、TH0、TL0的内容为00H,定时器/计数器的初值为0。
(TMOD)=00H,复位后定时器/计数器T0、T1为定时器方式0,非门控方式。
(TCON)=00H,复位后定时器/计数器T0、T1停止工作,外部中断0、1为电平触发方式。
(T2CON)=00H,复位后定时器/计数器T2停止工作。
(SCON)=00H,复位后串行口工作在移位寄存器方式,且禁止串行口接收。
(IE)=00H,复位后屏蔽所有中断。
(IP)=00H,复位后所有中断源都设置为低优先级。
P0~P3口锁存器都是全1状态,说明复位后4个并行接口设置为输入口。
复位不影响内部RAM的状态(包括通

用寄存器Rn) 。

2.14 MCS-51的时钟振荡周期、机器周期和指令周期之间有何关系?
答案:时钟周期是单片机的基本时间单位。若晶振的振荡频率为12MHz,则时钟周期为1/12MHz=0.0833us。CPU完成一个基本操作所需要的时间称为机器周期(MC)。 MCS-51单片机每12个振荡周期为一个机器周期。晶振频率为12MHz时,机器周期为12/12MHz=1us。指令周期是执行一条指令所需的时间,可以包括1,2,4个机器周期。
第3章 MCS-51单片机指令系统与汇编语言程序设计
1.什么是寻址方式?MCS-51单片机有哪几种寻址方式?
答案:寻址方式就是寻找地址的方式。包括指令的寻址方式和操作数的寻址
方式。
指令的一个重要的组成部分是操作数,指令给出参与运算的数据的方
式称为操作数的寻址方式。
MCS-51系列单片机共有7种操作数的寻址方式:立即寻址、直接寻
址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。

2.什么是指令系统?MCS-51单片机共有多少种指令?
答案:CPU所能执行的各种指令的集合称为指令系统。MCS-51系列单片机的指令系统是一种简明易掌握、效率较高的指令系统。在MCS-51系列单片机的指令系统中共使用了7种寻址方式、42种助记符,这些助记符与寻址方式组合起来,共形成111条指令,完成数据传送、算术运算、逻辑运算、控制转移以及位操作等方面的工作。
3.汇编语言的语句格式是什么?使用标号有什么限制?注释段起什么作用?
答案: MCS-51汇编语言的语句格式应符合下列结构:
【标号:】 操作码 【操作数】【;注释】
标号位于语句的开始,由以字母开头的字母和数字组成,它代表该语句
的地址。标号与操作码之间要用“:”隔开,标号与“:”之间不能有空格,“:”与
操作码之间可以有空格。
注释在语句的最后,以“;”开始,是说明性的文字,与语句的具体功能
无关。

4.MCS-51汇编语言有哪几条常用伪指令?各起什么作用?
答案:
ORG:汇编程序起始地址,用来说明其后程序段在存储器中存放的起始
地址;
EQU:赋值指令,用来给变量标号赋予一个确定的数值;
DB:定义数据字节,指令按字节数的形式把数据存放在存储单元中;
DW:定义数据字,按字(双字节)的形式把数据存放在存储单元中;
DS:定义存储区,从指定的地址单元开始,保留一定数量的存储单元;
BIT:位定义,其功能是把位地址赋给字符名称;
END:汇编结束,表明汇编语言程序结束。
5.汇编语言程序设计分哪几步?各步骤的任务是什么?
答案: ①分析问题

,抽象出描述问题的数学模型;
②确定解决问题的算法或解题思想;
③绘制流程图和结构图;
④分配存储空间和工作单元;
⑤编制程序;
⑥程序静态检查,上机调试;
⑦编写相关说明。

6.将累加器A中的压缩BCD码分为两个字节,形成非压缩BCD码,放入20H和21H单元中,写出源程序。
解:由题意,可将累加器A中的低4位保留,高4位清零放入20H;高4位保留,低4位清零,半字节交换后存入21H单元中。程序如下。
MOV R0,A
ANL A,#0FH
MOV 20H,A
MOV A,R0
ANL A,#0F0H
SWAP A
MOV 21H,A
7.已知内部RAM的20H和21H单元中各有一个无符号8位二进制数,试编程比较它们的大小,并把大数送到30H单元。
解:
MOV A,20H
CJNE A,21H,LOOP
LOOP: JNC LOOP1
MOV A,21H
LOOP1:MOV 30H,A
RET
8.编制一段程序,要求在端口线P1.0和P1.1上分别产生周期为200us和400us的方波。设单片机的晶振频率为12MHz。
解: ORG 0000H
AJMP START
ORG 000BH
AJMP IT0
ORG 001BH
AJMP IT1
ORG 0100H
START: MOV TMOD,#03H ;定时器0工作在方式3
MOV TL0,#9CH
MOV TH0,#38H
MOV TCON,#50H ;TR0、TR1=1
MOV IE,#8AH ;全局中断和定时器0、定时器1中断允许
SJMP $
ORG 0130H
IT0: MOV TL0,#9CH
CPL P1.0
RETI
IT1: MOV TH0,#38H
CPL P1.1
RETI
END
9.试编写一段程序,将外部数据RAM中从地址2000H开始的100个补码数逐一取出,若为正数则放回原单元,若为负数则求反后放回原单元。
解:
START: MOV DPTR,#2000H
MOV R0,#64H
LOOP: MOVX A,@DPTR
MOV 20H,A
JNB ACC.7,NEXT
MOV A,20H
CPL A
MOVX @DPTR,A
NEXT: INC DPTR
DJNZ R0,LOOP
SJMP $
10.试编写一段延时程序,延时时长为1s。设单片机的晶振频率为12MHZ。
MAIN: MOV R3,#64H
MOV R4,#OAH
DELAY:MOV R2,#OFAH
LOOP: NOP
NOP
DJNZ,R2,LOOP
DJNZ,R3, DELAY
DJNZ,R4, DELAY
RET
一、填空题
1.锁存,三态缓冲 2.三态控制 3.统一编址方式 4.无条件传送,查询,中断 5.中断方式 6. PC,PC,程序存储器 7. TF1,查询的状态 8. 8192*4=32768μs 9. 1--8192 10. 起始,数据,奇偶校检,停止 11. 单工,全工,半双工 12. 同步移位,并行输出,并行输入 13. 一样 14. 2,自动重新加载
二、简答题
1. 答:有5个中断源:2个外部中断源、2个定时器

中断源和一个串行口中断源,具有两个中断优先级,可实现两级中断服务程序嵌套。
2. 答:常用的I/O编址方式有两种:独立编址方式和统一编址方式。独立编址方式中,I/O和存储器分开编址,有各自独立的地址空间,采用不同的控制总线,使用不同的指令分别寻址。
第4章 输入/输出、中断、定时与串行通信
3. 答:GATE=0,用TR1的状态控制T1的工作:TR1=1,开关模拟闭合,允许T1计数;TR1=0,模拟开关打开,停止T1计数。
当GATE=1,TR1=1时,T1能否计数由INT1引脚的输入状态控制。当 INT1=0,T1不计数;INT1=1时,允许T1计数。如果定时/计数器工作在定时方式,当INT1由0变1时启动T1,当INT1由1变为0时,停止T1,则可以对INT1输入高电平脉冲宽度进行测量。
4.解:利用定时器T0作1ms定时,每次中断在中断服务程序中使P1.0的状态取反输出。定时器初值计算:设T0为工作方式1,则1ms对应的机器周期数为1000/2(12/6)=500D=1F4H, 定时器初值为(1F4H)求补(即216-1F4H)=FE0CH
程序如下:
ORG 0000H
SJMP START
ORG 000BH
AJMP IST0
ORG 0030H
START: MOV TMOD, #01H ;T0工作方式1
MOV TL0, #0CH ;T0定时器初值
MOV TH0, #0FEH
MOV TCON, #10H ;打开T0
SETB ET0 ;允许T0中断
SETB EA ;允许全局中断
SJMP $
IST0: MOV TL0, #0CH ;重置T0定时器初值
MOV TH0, #0FEH
CPL P1.0 ;P1.0取反
RETI
5. 解:定时方式0:X=213-150=8042 二进制:1111101101010 TL0=01010,TH0=11111011
定时方式1:X=216-150=65386 二进制:1111111101101010 TL0=01101010,TH0=11111111
定时方式2:X=28-150=106 二进制:01101010 TL0=01101010,TH0=01101010
6.解:方式0:2μs--16384μs 方式1:2μs--131072μs 方式2:2μs--510μs
7.解:最高:62500 最低:122.55 (详见102页题目后)
8.解:程序如下:
ORG 0000H
LJMP INITOUT ;转到初始化程序
ORG 0023H
LJMP ERVE ;串行口中断服务程序入口
ORG 0050H
INITOUT:MOV TMOD,#20H ;定时器T1初始化
MOV TH1,#0F3H
MOV TL1,#0F3H
MOV SCON,#50H ;串行口初始化
MOV PCON,#80H ;SMOD=1
SETB TR1 ;启动定时器T1
SETB EA ;开中断
SETB ES ;允许串行口中断
LJMP MAIN ;转主程序
……
SERVE: CLR EA ;关中断
CLR RI ;清接收中断标志
PUSH DPH ;保护现场
PUSH DPL
PUSH A

RECEIVE: MOV A,SBUF ;接收PC机发过来的数据

SENDBACK:MOV SBUF,A ;将数据回送给PC机

WAIT: JNB TI,WAIT ;发送器不空则循环等待

CLR TI
RETURN: POP A ;恢复现场
POP DPL
POP DPH
SETB EA ;开中断
RETI ;返回
第5章

MCS-51单片机的系统扩展
1.容量为4K×8b的存储器各有多少条数据线和地址线?
答案: 8条数据线、12条地址线
2.画出单片机扩展片外16K字节程序存储器27128 EPROM的接线图。
答案:
3.说明单片机扩展I/O端口常用的选址方法。
答案:线选法:把单独的地址线(通常是P2口的某一根线)接到外围芯片的片选端上,只要该地址线有效(通常为低电平),就选中该芯片。
全地址译码法:将低位地址线作为芯片的片内地址,用译码器对高位地址线进行译码,译出的信号作为片选线。
4.画出单片机扩展片外数据RAM 6116的接线图,并将6116中前20个数据送入单片机内以30H起始的数据单元,写出源程序。
答案:

程序如下:
MOV R1,#20
MOV R0,#30H
MOV DPTR,#0000H
LOOP:MOVX A,@DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ R1,LOOP
第6章 MCS-51单片机接口技术
1.解:利用T0作定时器,定时20ms。
ORG 0000H
AJMP START
ORG 000BH
AJMP T0_INT
ORG 0030H
START:MOV SP,#60H
MOV TMOD,#01H ;TO工作在方式1
MOV TH0,#9EH
MOV TL0,#58H
MOV DPTR, #7006H
MOV A,#90H ;8255方式控制字(A口入,B口出)
MOVX @DPTR,A
SETB EA
SETB ET0
SETB TR0
AJMP $
T0_INT:MOV TH0,#9EH
MOV TL0,#58H
MOV DPTR,#7000H
MOVX A,@DPTR
MOV DPTR,#7002H
MOVX @DPTR,A
RET
END
2.解:
ORG 0000H
AJMP START
ORG 0030H
START:MOV DPTR,#8003H
MOV A,#90H
MOVX @DPTR,A
LOOP: MOV DPTR,#8000H
MOVX A,@DPTR
MOV DPTR,#8001H
MOVX @DPTR,A
AJMP LOOP
END

相关主题