单片机课后答案

第1章 单片机技术基础

1. 填空题

(1) 微控制器、嵌入式微控制器。

(2) CPU 、存储器和I/O接口,总线。

(3) 地址总线,第二功能。

(4) 外部程序存储器选通信号输出引脚,复位引脚,外部。

(5) 5,0003H ,000BH ,0013H ,001BH ,0023H 。

(6) 地址,数据,总线复用。

(7) 0000H ,FFH ,00H ,07H 。

(8) 28H ,D7。

(9) 2,10H 、17H 。

(10) 内,8。

(11) 2。

(12) XTAL1,XTAL2。

2. 选择题

(1) D (3) C (5) C (7) B (9) A

(2) B (4) D (6) B (8) B (10) B

3. 简答题

(1) 8051单片机内部都集成了哪些主要功能部件?这些功能部件都有什么作用? 答:

主要集成了CPU 、存储器、I/O接口、时钟振荡电路、中断系统、定时/计数器等功能部件;CPU 是整个单片机的控制核心,完成数据的运算和各种控制功能,存储器用于存储数据或者程序,I/O接口主要用于数据的输入和输出,时钟振荡电路用于提供单片机工作所需要的时钟信号,中断系统用于实现单片机的中断功能,定时/计数器用于实现单片机的定时和计数功能。

(2) 8051单片机内部RAM 可以划分成几个区域?各自特点和功能是什么? 答:

8051单片机内部RAM 可以划分成4个区域,分别为工作寄存器组区、位寻址区、用户RAM 区和特殊功能寄存器区;工作寄存器组区用于存储工作寄存器的数值,位寻址区同时支持位数据和字节数据的存储,用户RAM 区用于存储单片机的各种临时数据,特殊功能寄存器区用于存放各种特殊功能寄存器的参数。

(3) 何谓PC ?它属于特殊功能寄存器吗?其主要作用是什么?

答:

PC 称为程序计数器,不属于特殊功能寄存器,作用在于存储程序在存储器中的存放地址,并具有自动加1功能,保证能够连续取指令。

(4) 何谓堆栈和堆栈指针?8051单片机如何设置堆栈?

答:

堆栈是内存中设置的一段地址连续的存储区域,用于保存现场信息、断点地址等重

要数据,堆栈指针是一个能永远指向堆栈顶部的指针。单片机的堆栈可以采用系统默认(07H )的方式设置,也可以通过对堆栈指针赋值的方式来设置。

(5) 程序状态字PSW 的作用是什么?包含哪些标志位?分别作用是什么? 答:

程序状态字PSW 的作用是用于反应CPU 运行状态或者控制CPU 运行的寄存器。主要包含:进位标志位CY ,用于显示数据运算时最高位是否有进位(借位);辅助进位标志位AC ,用于显示数据运算时低4位是否有向高4位进位(借位);溢出标志位OV ,用于指示数据运算后是否溢出;奇偶标志位P 用于指示运算结果中1的个数是奇数个还是偶数个;工作寄存器选择控制位RS1、RS0,用于设置工作寄存器组安排在哪个区域;用户标志位F0,留给程序设计人员存储相应标志位用。

(6) 8051单片机内部有哪些区域支持位寻址?

答:

主要包含位寻址区和地址能够被8整除的特殊功能寄存器。

(7) 8051单片机内部RAM 和ROM 容量各为多少?外部最大能扩展多大存储空间?

答:

8051单片机内部RAM 和ROM 容量分别为256B 和4KB ,外部最大能扩展的RAM 和ROM 存储空间分别为64KB 。

(8) 8051单片机的四个I/O端口在结构上有什么特点?分别作用是什么?

答:

8051单片机的四个I/O端口的结构特点见书1.4节,P0口可作为地址/数据复用总线,P2口可提供高8位地址总线,P3口可作为第二功能用,除此之外,4个并行口均可作为普通I/O口用。

(9) 8051单片机如何复位?主要有几种复位方法?

答:

8051单片机复位时,需要在RST 引脚上输入时间大于2个机器周期宽度的高电平,结合实际应用情况,通常采用手动复位、自动复位和二者结合的方式进行复位。

(10) 单片机都有哪些工作方式?这些工作方式分别应用于哪些场合?不同的工作方式之间是如何切换的?

答:

单片机都有复位方式、程序运行方式、掉电方式和低功耗方式等工作方式,复位方式主要用于系统上电或者程序飞车的情况下;程序运行方式是单片机最主要的工作方式,在实现检测和控制时都属于该工作方式;掉电方式是指单片机系统主电源掉电后被迫进入省电工作方式,备用电源用于维持RAM 供电,保证数据不丢失;低功耗方式是单片机完成相关任务空闲后,为了降低系统功耗,主动进入省电模式。通过设置电源控制器PCON 来进入掉电和低功耗方式,通过中断等方式退出掉电和低功耗方式。

第2章指令系统和汇编语言

1. 填空题(指出下列指令中源操作数的寻址方式)

(1) 直接寻址

(2) 立即寻址

(3) 间接寻址

(4) 基址加变址寻址

(5) 寄存器寻址

(6) 基址加变址寻址

(7) 位寻址

(8) 相对寻址

2. 程序分析题

(1) 指出下面程序段执行后的结果。

(2) 已知(A)=74H ,(R0)=9BH,CY=1,写出执行指令后结果。

ADDC A ,R0

(3) 分析下面程序段运行结果。

MOV A, #88H

XRL A, #0FFH

ANL A, #0FH

ORL A, #20H

(4) 已知片内RAM (20H )=11H ,(CY)=1,分析下列程序段运行结果。

则:(A)= 12H , (CY)= 1 。

3. 判断题(判断下列指令的正误,对的打“√”,错的打“×”。)

(1) √ (3) × (5) × (7) × (9) √

(2) × (4) √ (6) × (8) × (10) ×

4. 编程题

(1) 将内部RAM 50H-60H单元内容清零。

答: MOV R0,#50H

MOV A,#00H

MOV R7,#17

NEXT: MOV @R0,A

INC R0

DJNZ R7,NEXT

RET

(2) 将内部RAM 40H单元中的16进制数转换成十进制数,百位存于52H 中,十位存于51H 中,个位存于50H 中。

答:

MOV A,40H

MOV B,#100

DIV AB

MOV 52H,A

MOV A,B

MOV B,#10

DIV AB

MOV 51H,A

MOV 50H,B

(3) 将内部RAM 50H 单元中的组合BCD 码转换成非组合BCD 码,分别存于51H (低位)和52H (高位)单元中。

答: MOV A,50H

ANL A,#0FH

MOV 51H,A

MOV A,50H

SW AP A

AN D A,#0FH

MOV 52H,A

(4) 将片外RAM 1000H单元中的数据传送到片内RAM 30H单元中。

答: MOV DPTR,#1000H

MOVX A,@DPTR

MOV 30H,A

(5) 将片外ROM 3000H单元中的数据传送到片外RAM 1000H单元。

答: MOV DPTR,#3000H

MOV A,#00H

MOVC A,@A+DPTR

MOV DPTR,#1000H

MOVX @DPTR,A

(6) 将外部RAM 2000H单元中的高2位取反,低4位清零,其余位保持不变。 答: MOV DPTR,#2000H

MOVX A,@DPTR

MOV 40H,A

ANL A,#11000000B

CPL A

MOV 41H,A

MOV A,40H

ANL A,#00110000

ORL A,41H

MOVX @DPTR,A

(7) 将内部RAM 60H单元中数据的中间4位取反,其余位保持不变。

答: MOV A,60H

CPL A

ANL A,#00111100

MOV 61H,A

MOV A,60H

ANL A,#11000011

ORL A,61H

MOV 60H,A

第3章 KEIL C51

1. 填空题

(1) bit ,sfr(sfr16),sbit 。

(2) 头文件中。

(3) data ,bdata ,程序存储器类型,xdata 。

2. 简答题

(1) 汇编语言和C 语言的各有何优缺点?在程序设计时,选择的主要依据是什么? 答:

汇编语言的特点是:代码执行效率高; 占用存储空间少;可读性差,调试、维护困难;可移植性差。

C 语言的特点是:可读性强;编程及调试效率高;函数结构的程序,结构规范易于移植;库函数包含许多标准子程序,可直接调用,开发周期缩短;寄存器的分配、存储器的寻址以及数据类型等细节可由编译器来管理。

在程序设计时,通常汇编语言和C 语言都能完成设计要求,但是对于程序执行时间要求非常精确时,通常采用汇编语言,而对于复杂计算代码设计通常选用C 语言。

(2) 简要说明C51与标准C 的主要区别。

答:

C51是在标准C 语言的基础上发展起来的,专用于51系列单片机的程序设计,其根据51系列单片机硬件特点扩展了许多相关的编译特性,C51提供了包括C 编译器、宏汇编、连接器、库管理和功能强大的仿真调试器等在内的完整开发方案,是目前流行的51系列单片机开发软件。

(3) C51中如何访问8051单片机的特殊功能寄存器?

答:

C51编译器可以利用扩展的关键字sfr 和sfr16对特殊功能寄存器进行访问,格式为:sfr 特殊功能寄存器名 = 特殊功能寄存器地址常数

(4) C51中对指定地址的内部RAM 、外部RAM 以及ROM 的访问方法有哪些? 答:

所谓对指定地址的存储器访问是指将数据存放在指定地址的存储器中,也称为对存储器的绝对地址访问。51系列单片机有不同的存储区,可以利用绝对地址访问头文件“absacc.h ”中的函数来对不同的存储区进行访问。

如:C51中要将60H 这个数存储在地址为50H 的内部RAM 单元中,那么可以采用如下方法。

#include

#include

main()

{ DBYTE[0x50]=0x60 ;

while(1){};

}

(5) 简要说明C51中断服务函数的设置方法。

答:

8051单片机C51程序结构也有固定的结构,其中断服务函数的一般结构形式为: 函数类型 函数名()[interrupt n] [using i],C51编译器扩展增加了关键字interrupt ,使用这个关键字可以将一个函数定义成中断服务函数,其中,n 为中断类型号,取值范围为n=0~4,用以区分5个中断源,C51还扩展了关键字using ,i 的取值范围为n=0~3,分别对应工作寄存器组的0区~3区,即指明将工作寄存器组安排在哪个区域,

(6) 简要说明汇编语言和C 语言混编的主要方法和步骤。

答:

C51程序中嵌入汇编程序段的常用混合编程方法,可以通过语句“# pragma asm”和“# pragma endasm”包含嵌入的汇编语言程序段。程序段编译前进行相应设置,方法是:选中C 源文件,选择右键菜单“option for file „”,将“properties ”中三个可选项的“Generate Assembler SRC File ”和“Assemble SRC File ”分别选中,“Link Public Only ”选项取消选中。

3. 编程题(用C51实现)

(1) 将8051单片机内部RAM 50H单元中的内容加“1”。

答:#include

#include

main()

{

while(1)

{

DBYTE[0x50]++ ;

}

}

(2) 将十六进制数0xB0存储于外部RAM 1000H单元中。

答:#include

#include

main()

{

XBYTE[0x1000]=0xb0 ;

}

(3) 读取外部RAM 2000H单元中的内容,取反后存储于内部RAM 60H单元中。 答:#include

#include

unsigned char data xyz;

main()

{ xyz=XBYTE[0x2000];

xyz=~xyz;

DBYTE[0X60]=xyz;

}

(4) 将内部RAM 40H 单元中的十六进制数转换成十进制数,按照高位到低位的顺序分别存于内部RAM 50H开始的单元中。

答:

#include

#include

unsigned char data xyz;

main()

{ xyz=DBYTE[0x40];

DBYTE[0x50]=xyz/100;

DBYTE[0x51]=xyz%100/10;

DBYTE[0x52]=xyz%100%10;

}

(5) 读取P1口的引脚状态,将其取反后,存储于外部RAM 3000H单元中。 答:

#include

#include

unsigned char data xyz;

main()

{ xyz=P1;

xyz=~xyz;

XBYTE[0x3000]=xyz;

}

第4章 单片机与PROTEUS 仿真

1. 填空题

(1) ISIS ,ARES 。

(2) 原理图编辑窗口,sheet size。

(3) 元件,虚拟仪器,端子。

(4) 光电器件,运算放大器,TTL 74 Series。

(5) 热点,右键。

(6) 图标仿真。

2. 简答题

(1) 通常在哪些场合下使用网络标号?

答:

为了简化电路图,在连接线路较远或电路复杂走线比较困难时,利用网络标号代替实际走线可简化电路图;总线连接时在总线分支处必须标上相应的网络标号,才能达到各导线之间的电气连接关系和目的;层次式电路或多重式电路中各个模块电路之间的电气连接。

(2) ISIS 元件库中都有哪些类型的元件库,查找元件可以通过哪些方法实现? 答:

共有28种不同类型的元件库,详见4.2.2(ISIS 元件库)通常查找元器件的方法有两种,一种方法是输入元件名称后直接进行查找,该方法要求使用者能熟练记忆元件名称;另一种方法是按类进行查询。

(3) 如何在ISIS 中对元件进行方向的旋转或者调整?

答:

将鼠标光标指向要调整的元件,单击鼠标右键,在弹出的浮动菜单中选择(逆时针旋转)或者(顺时针旋)均可让R2

由水平放置变成垂直放置。如果需要还可以选择进行水平镜像,或者进行垂直镜像。

(4) 在ISIS 中如何实现图表仿真功能?

答:

在要分析的电路中设置电压或者电流探针;选择图表仿真的类型,可以有模拟、数字和音频等多种类型可供选择,选择好图表仿真类型后,在原理图中拖动生成仿真波形的图表框;给绘制的图表框选择要分析探测点;添加好对应的探针后,可以通过右键弹出的浮动菜单选择Simulate Ttaces选项生成仿真波形。

3. 操作题

(1) 在Proteus 中随意绘制一个模拟电路,在不同的位置点处添加电压和电流探针,实现电压电流检测功能。

答:

略。

(2) 在Proteus 中利用555定时器设计一个多谐振荡器,输出频率为1Hz 的方波。 答:

略。

(3) 在Proteus 中利用8051单片机设计一个电子钟电路,编制对应程序,要求能够显示时、分、秒信息。

答:

略。

(4) 在Proteus 中利用8051单片机设计一个外部事件脉冲计数器,要求显示个数范围为0~200,假设脉冲频率不高于1KHz ,并以虚拟计数器进行计数校验。 答:

略。

(5) 在Proteus 中利用8051单片机设计一个PWM 信号发生器,要求占空比可调,并用虚拟示波器观察波形。

答:

略。

第5章 单片机中断系统

1. 填空题

(1) 5,2,外部中断0、定时/计数器0、外部中断1、定时、计数器1、串行口。 (2) 0003H ,001BH 。

(3) 电平触发和边沿触发,IT0、IT1。

(4) 当优先级寄存器IP=00010100B时,外部中断1,定时/计数器1。 (5) PC ,断点地址,PC 。 (6) 堆栈,PC 。 2. 选择题 (1) D 。 (2) D 。 (3) A 。 (4) D 。 3. 简答题

(1) 为什么8051在很多时候不能立即响应中断?通常中断响应时间范围是多少? 答:

因为CPU 从采样到确认中断申请有效需1个机器周期,然后执行1个硬件调用子程序后转入中断服务程序需要2个机器周期,因此从产生中断请求到运行中断服务程序至快也需要3个机器周期,所以说不能立即响应。一个单级的中断系统,通常响应的时间在3-8个机器周期之间。

(2) 单片机正在执行RETI 指令时能否立即响应中断?为什么? 答:

不能,则要在该指令后再运行一条指令才响应,通常需要4-5个机器周期。 (3) 外部中断1的控制主要涉及到哪几个寄存器?分别作用是什么?

答:TCON 、IE 和IP ,作用分别是设置触发方式、是否允许中断和中断优先级设置。 (4) 什么是中断系统的断点?中断服务子程序的现场保护需要保护哪些信息? 答:

所谓断点就是CPU 响应中断后下一条指令的地址,也称为断点地址;现场保护时主要需要保护中断子程序中被使用的寄存器和存储单元等。 (5) 外部中断触发方式有哪几种?它们的区别是什么? 答:

外部中断触发方式主要由电平触发和边沿触发方式两种;区别有是否把中断请求置位标志寄存器,中断请求的检测方式,和中断响应后中断标志是否清除等几个方面。 (6) 外部中断采用电平触发方式时,为什么触发信号持续时间不能过短和过长? 答:

电平触发方式时,如果触发信号持续时间过短,CPU 有可能检测不到触发信号;如果触发时间过长,CPU 响应中断后,有可能再次触发中断请求。

(7) 哪些中断请求标志位可自动清除?哪些需要手动清除?为什么? 答:

外部中断、定时/计数器中断等中断源的中断请求标志位可以自动清除;但是串行口中断的标志位需要手动清除,因为串行口接收和发送数据中断使用用一个中断向量,如

果系统自动清除,用户将无法判断是接收中断还是发送中断。 4. 综合题

(1) 为8051单片机设计一套支持8个外部中断源的中断控制系统,给出对应的硬件电路,并编写相应的控制程序。

答:电路图如下所示,相应的控制程序如下:

ORG 0000H JNB ACC.7,IRQ8 AJMP STRAT JNB ACC.6,IRQ7 ORG 0003H ………… AJMP WB0 NEXT: NOP

START: SETB EX0 RETI SETB IT0 IRQ8: …… SETB EA LJMP NEXT AJMP $ END WB0: MOV A,P1

(2) 根据图5-5所示的电路图,请编写程序实现“按键1次点亮1个LED ,按键2次点亮2个LED ,….按键8次点亮所有LED ,按键9次关闭所有LED ”的功能。 答:

程序略,参见正文5.5节。

第6章 定时/计数器

1. 填空题

(1) 内部振荡周期的12分频(机器周期);外部,加法。 (2) T0,1,0,1。

(3) 方式0、1、2,方式1。 2. 简答题

(1) 8051单片机定时/计数器都有哪些工作方式,分别有何特点? 答:

方式0:13位的工作方式,不能自动重装入初值;

方式1:16位的工作方式,不能自动重装入初值,定时时间最长; 方式2:8位的工作方式,可自动重装入初值,定时最为精确;

方式3:8位的工作方式,可自动重装入初值,定时最为精确,只用T0具有该方式。 (2) 简述8051单片机定时/计数器的基本工作原理。 答:

两个定时/计数器的工作原理基本一致,以下以T0工作在16位的工作方式下为例来说明定时/计数器的工作原理。16位工作方式下,TH0和TL0组成了16位的定时计数器,当两个寄存器初值均为“0”时,如果启动T0工作后,T0会对特定的脉冲信号进行计数工作,计数的本质就是每来一个计数脉冲计数器自动加1。当低8位TL0由“0”计至最大值255时,再来一个计数脉冲,TL0会自动清“0”,同时往高8位TH0进位;依此类推,直到高8位也清“0”,此时称为T0溢出。T0溢出后会自动置“1”溢出标志位,CPU 会定期检查溢出标志位是否为“1”来判断是否溢出。

(3) 8051单片机定时/计数器定时和计数模式的主要区别?

答:两种模式的主要区别在于计数器的计数脉冲不同,一个是内部时钟信号(机器周期大小),另一个是外部输入的脉冲信号。

(4) 给出8051单片机初值计算公式,说明各参数含义。 答:

n

定时模式公式:N =2-

t T CY

,计数模式公式:N =2-X ,

n

其中:N 为定时/计数器初值;n 为选用的工作方式下计数器位数(方式0:13,方式1:16,方式2:8);t 为需要的定时时间(为了统一,单位为μS );T CY 为一个机器周期时间;X 为需要计数的次数。 (5) 使用定时/计数器时,为什么要让计数器在给定初值基础上计数,而不直接从“0”开始计数? 答:

如果是从初值为0的基础上计数的,想要知道定时时间是否到了,需要不断的判断计数次数,检测和控制程序相对比较麻烦。

如果计数是在初值的基础上计数,那么就可以查询溢出标志位是否为“1”来判断定

时时间是否到了,当然也可采用中断方式直接申请中断。 (6) 通常T0在什么情况下才选用工作方式3? 答:

通常在定时/计数器1用作波特率发生器时,为了弥补定时/计数器个数的减少,把T0设置在工作方式3,变成两个独立的8位定时/计数器。 (7) 什么叫做脉宽调制(PWM ),常用的调制方法有哪些? 答:

PWM 调制技术方法主要有定频调宽、定宽调频和调频调宽三种,定频调宽是保持脉冲信号的周期不变,通过控制高电平时间的方法来调节占空比;定宽调频是保持高电平的时间不变,改变脉冲周期(频率)的方法来实现的;调频调宽方法是同时改变脉冲信号的周期和高电平时间。

(8) 若f osc 为12MHz ,利用8051单片机定时/计数器对外部脉冲计数时,对脉冲信号频率有何要求? 答:

采样计数脉冲过程是在2个机器周期中进行的,因此外部输入的脉冲频率不能高于晶振频率的1/24,如晶振频率为12MHz ,要求输入信号的频率低于0.5MHz 。 3. 综合题(本大题中晶振频率均为12MHz )

(1) 利用T0实现100μS 的定时,计算出不同工作方式下的初值,给出计算过程。 答:

只给出方式2下的初值计算过程,其他相同。

N =2n -

t T CY

=28-100/1=256-100=156=9CH

(2) 利用8051单片机T0产生频率为38KHz 的方波信号,编制相关程序,并在Proteus 中利用示波器观察信号。 答:

频率为38KHz ,可知其周期为1/38K=26μS ,所以定时时间为13μS 。根据计算公式可知:N=256-13=F3H。设利用P1.0引脚产生方波,具体汇编语言程序如下:

ORG 0000H AJMP START ORG 000BH AJMP DS0

START: MOV TMOD,#02H MOV TL0,#F3H SETB ET0 SETB EA SETB TR0 AJMP $ DS0: CPL P1.0

RETI END

(3) 编写程序实现方波信号的频率测量,要求频率测量范围为100Hz~100KHz。

ORG 0000H WB0: SETB TR0 AJMP START CLR EX0 ORG 0003H JB P3.2 $ AJMP WB0 CLR TR0

START: MOV TMOD,#01H MOV 50H,TH0

MOV 51H,TL0 MOV TH0,#00H

LCALL CACULATE MOV TL0,#00H

SETB EX0 RETI SETB IT0 CACULATE: 程序省略,倒数为频率 SETB EA END AJMP $

(4) 编写程序实现矩形波的占空比测量,已知信号频率为10KHz ,要求占空比测量范围为20%~80%。 答: 因为频率为10K ,所以周期为100微秒。只需要测量出高电平的试卷就可以知道占空比。具体实现程序如下:

ORG 0000H WB0: CLR EX0 AJMP START JNB P3.2,$ ORG 0003H SETB TR0 MOV TMOD,#02H JB P3.2,$

CLR TR0 MOV TH0,#00H

MOV A,TL0 MOV TL0,#00H

SETB EX0 LCALL CACULATE SETB IT0 RETI SETB EA CACULATE:占空比计算,程序省略。 AJMP $ END

第7章 串行通信技术

1. 填空题

(1) 4,1,3,0023H 。

(2) 单工、半双工、全双工。 (3) 2500。 (4) 240。

(5) SBUF ,独立。

(6) RI ,TI ,接收,发送,程序(指令)。 2. 选择题 (1) C 。 (2) A 。 (3) C 。 (4) D 。 (5) C 。 3. 简答题

(1) 同步通信和异步通信相比较各有何优缺点? 答:

同步通信方式通常用于通信数据量大,通信速度要求高的场合。由于要求同步时钟来实现发送和接收的同步,对同步时钟的相位一致性要求很高,因此硬件设备复杂,成本较高,应用相对较少;异步通信的数据发送接收是一帧一帧进行的,不要求数据传输的连续性,数据的传输可以间断,并随时结束或开始,不受时间限制,因此,异步通信简单灵活,对于同步时钟要求较低。同时,由于其格式固定,每帧数据需要附加位,因而数据传输速度和效率比同步通信低,一般应用于传输信息量不大的场合。 (2) 异步串行通信的工作方式有几种?它们分别应用于何种场合? 答:

8051单片机串行口共有4中工作方式,方式0用于同步移位寄存器使用,方式1、2、3主要用于异步串行通信场合。

(3) 为什么8051单片机串行口方式0没有起始位和停止位? 答:

对于方式0,其本质是同步方式,通过专门的同步时钟(TXD )信号实现双方同步,因此不需要起始位和停止位来表示数据通信的开始和结束。

(4) 8051单片机的串行口工作方式0与方式1的帧格式有何区别? 答:

方式0为8位帧格式,方式1为9位帧格式。

(5) 异步串行通信的方式1的波特率是否可变?波特率如何设置? 答:

f ⨯2SMOD

波特率可变,波特率的大小取决于T1的溢出率。B =n

(2-X) ⨯12⨯32

(6) 为什么定时器T1作波特率发生器用时,通常选择工作方式2,给出方式2下波特率计算公式。 答:

因为定时/计数器工作在方式2下,可以自动重装人初值,定时准确,并且可以连续定时,波特率计算公式为:

f ⨯2SMOD

,其中X 为T1的初值。 B =8

(2-X ) ⨯12⨯32

(7) 简述8051单片机多机通信的基本工作原理。 答:

在方式2和方式3中,当接收到一帧数据时,只有符合下列条件之一数据才会被保留,否则将被丢弃:① RI = 0 且SM2 = 0 ② RI = 0且第九位数据为1

要求SM2=1,此时要求第9位数据为1。约定主机发出地址信息第9位为1,而数据信息第9位为0,

主机先向各从机发出地址信息,地址信息第9位为1,符合条件②,各从机均能接收到地址信息,同时与自己的地址相比较,接收到的地址信息与本机地址相同,则使SM2=0,准备接收数据信息。

随后主机向总线发出数据,第9位为0,地址不符合的从机接收后均不符合条件②,数据丢弃;只有地址相符的从机由于SM2=0符合条件①而保存接收到的数据信息,从而实现了点对点的多机通讯。数据通信结束后,主机应当发送一个结束标志,通知从机,从机接收到该命令后,把SM2重新置1,或者从机接收完数据后自动判断,如果确认数据传送结束后,自动把SM2重新置1,恢复初始状态。

(8) 为什么进行距离较远的串行通信时,要采用RS-232或者RS-485总线,而不直接采用TTL 电平标准通信? 答:

当双机间的距离很近,通常在1~2米之内时,双机串口的连接可以直接采用相TTL 电平方式。这种连接方式适用于近距离,抗干扰要求较低的场合。当但传输距离较远时导致传输速率降低,而且长通信线路也容易出现串扰问题。所以通常采用RS-232或者RS-485总线。 4. 综合题

(1) 假设8051单片机串行口工作在方式2,待发送数据存于内部RAM 50H单元中,编程实现利用TB8实现奇偶标志位的传送。 答:

MOV SCON, #80H ; 选串行口方式2,传送11位数据

MOV A, 50H ; 待发送数据送A ,该指令影响奇偶标志P MOV C , PSW.0(P ) ; 奇偶标志送C ,奇为1、偶为0

MOV TB8 , C ; 奇偶标志送TB8 ,为发送的第9位数据 MOV SBUF , A ; 启动一次发送共11位数据 LOOP: JBC TI ,OK ;TI = 1时,数据发送成功 SJMP LOOP

(2) 假设8051单片机外接晶振频率为6MHz ,波特率选用125波特,要利用8051串行口实现11位帧格式数据的发送和接收,请配置串行口的工作方式,并计算T1初值,

同时给出相应的初始化程序。 答:

分析:(1)串口方式2和方式3可发送接收11位数据。若选方式2:B = f×2SMOD /64 = 6×106×2SMOD /64

当SMOD = 0时,B = 93750波特;当SMOD = 1时,B = 187500波特。可知方式2均不满足125波特,因此只能选方式3。

f ⨯2SMOD

根据计算公式:B =8,可以计算出X=6。

(2-X ) ⨯12⨯32

初始化程序如下: MOV SCON , # 0D0H MOV PCON , # 80H MOV TMOD , # 00100000B MOV TL1 , # 06H SETB EA SETB ES SETB TR1

; 串行口方式3,允许接收 ;SMOD = 1 ;T1方式2定时

; 设置波特率125波特 ; 允许CPU 中断 ; 允许串行口中断 ; 启动T1发出波特率

第8章 单片机外围扩展

1. 填空题 (1) (2) (3) (4) (5) (6) 2. 选择题

16KB ,3FFFH 。

8KB ,26(14根地址线、8根数据线,2根电源线、读写控制线各1根)。 读操作、编程操作,读操作。

全地址译码,部分地址译码,部分地址译码,线选法。 主/从式,漏极开路。 4Kbit 。

(1) A (2) A (3) C (4) C (5) D 3. 简答题

(1) 单片机系统的外围扩展主要涉及哪些内容? 答:

单片机系统的外围扩展主要涉及存储器扩展和I/O接口扩展,具体的说主要是地址总线、数据总线和控制总线的扩展。

(2) 按照存储器的读写工作方式分,存储器可以分为哪几类?分别有什么特点? 答:

按照存储器的读写工作方式分,可以分为随机存储器和只读存储器。随机存储器的一个主要特点就是掉电之后,存储的数据丢失;只读存储器的特点是信息写入后,存储单元中的内容就不能改变,断电后信息也不丢失。

(3) 存储器的地址译码方式有哪些?分别有什么特点? 答:

存储器的地址译码方式有全地址译码和部分地址译码两种。全地址译码要求剩余的高位地址线都参与译码,译码电路结构相对复杂,不会产生地址重叠区,适应于地址空间资源相对紧缺的场合;部分地址译码使用剩余高位地址线的部分进行译码,会产生地址重叠区,译码电路结构相对简单,通常在地址空间相对富余的场合使用。 (4) 8051单片机系统扩展时,为什么P2口的剩余的引脚不能再作一般I/O口使用? 答:

系统扩展时,P2口通常提供高8位的地址线用,单片机在执行MOVX 指令输出时,P2口不断送出新地址,所以剩余口线通常不再作一般I/O口使用。 4. 综合题

(1) 已知8051单片机和6264接口电路如图8-24所示,回答下列问题: 1) 地址线A0~A12的作用是什么?

2) 译码电路是全地址译码还是部分地址译码方式?为什么? 3) 计算6264的地址,地址是否唯一?

答:

(1):地址线A0-A12的作用为6264片内具体单元的选择; (2):全地址译码,因为剩余的3根高位地址线全部参与译码。

(3):6264的地址范围为:C000H~DFFFH,地址唯一。

(2) 利用2764和6264芯片为8051单片机分别扩展16KB 的外部程序和数据存储空间,给出每个芯片的地址范围,要求不出现地址重叠区,绘制相应的电路图。 答:

第1片6264的地址空间为0000H~1FFFH,第2片6264的地址空间为2000H~3FFFH。

第9章 单片机系统接口扩展及应用

1. 填空题

(1) 独立式,行列式(矩阵式),抖动,软件消抖法,硬件消抖法。 (2) 动态显示接口,静态显示接口,共阳极。 (3) 软件译码,硬件译码。 (4) 模拟量,数字量。

(5) 模拟量,A-D (模拟-数字),D-A (数字-模拟)。 (6) 位数,5mV 。 2. 选择题 (1) C 。 3. 简答题

(2) B 。

(3) D 。

(1) 何谓键盘的抖动,消除键盘抖动的方法有哪些? 答:

键盘的抖动是指键盘闭合和断开的过程中由于接触不良或者毛刺等原因出现的电平抖动情况,常用的键盘消抖方法有软件消抖法和硬件消抖法。

(2) 简要说明行列式键盘的识别有哪些方法?分别是如何实现的? 答:

行列式键盘的识别方法主要由扫描法和线路反转法两种。扫描法的基本原理是首先判断是否有键按下,有键按下后进行、列扫描,找出按下键所在的行和列,从而获取键值;线路反转法的基本原理是让输出口和输入口状态变化,分别读入输入口数据组合后判断按键的方法。

(3) 何谓共阴极和共阳极数码管,数码管显示接口有哪些?各自的特点是什么? 答:

共阴极和共阳极数码管是分别把数码管的阴极或者阳极并联在一起作为公共端;数码显示接口主要包含动态显示接口和静态显示接口。静态显示接口优点是显示无闪烁,亮度较高,并且软件控制简单;缺点是数码管位数较多时,比较浪费I/O资源,显示电路电能消耗较大,对电源功率要求较高;动态显示接口优点是占用的I/O口资源较少。缺点是需要不断的给数码管发送数据,否则将无法显示,耗费CPU 时间较多;并且软件控制麻烦,扫描频率设置不合适时,还容易出现闪烁现象。

(4) 目前主要有哪几种类型的液晶显示模块,分别用于什么场合? 答:

按照其显示数据类型可以分为字段型、点阵字符型和点阵图形型等。字段型只能显示数字、西文字母或者一些字符等;点阵字符型液晶不仅能显示字段型液晶能显示的各种数据,还可以显示汉字和简单的图形等;点阵图形型分辨率最高,可以显示各种数字、字符、汉字和漂亮的图形。

(5) 在进行A/D和D/A转换器选型时,通常需要考虑方面的内容?

答:在进行A/D和D/A转换器选型时,通常需要考虑的方面有:接口方式、分辨率、转化精度、转换时间等参数。

(6) 简述DAC0832直通、单缓冲和双缓冲工作方式的特点和用途。

答:

直通式是指两个寄存器数据输入不受单片机控制,当数据总线上输入数字量后,直接通过两个输入寄存器进入D/A转换器中进行转换;单缓冲方式是指用单片机控制任意一个寄存器数据的输入,只有单片机给出有效信号后,数据才能进入D/A转换器中进行转换;双缓冲方式是指单片机同时控制两个寄存器数据的输入,通常用于存在多个DAC0832,并且要求多个DAC0832同步输出的场合。

4. 综合题 (1) 图9-25中74LS373连接有一个共阳极的7段数码管,连接顺序为:Q0~a,Q1~b,…. ,Q7~dp,若要显示字符“F ”,74LS373 输入端(D 端)输入的数据应为什么,同时编程实现数码管显示按键号的功能并在Proteus 中进行仿真。 答:

输入的数据为:8EH ,程序如下: START: MOV DPTR,#0FE00H MOV DPTR#DDSEG

MOV A,@DPTR MOVC A,@A+DPTR MOV R0,#00H MOV DPTR,#0FE00H

NEXT: INC R0 MOVX @DPTR,A

RRC A AJMP START JC NEXT DDSEG: DB 0C0H,0F9H,0A4H,0B0H,99H, DEC R0 92H, 82H, 0F8H, 80H, 90H MOV A,R0

(2) 在Proteus 中利用8051单片机和A/D转换器设计一套8路温度巡检系统,假设所有输入信号都为标准信号(1~5V),具有温度显示和越限报警功能,完成电路和程序设计并进行系统仿真。 答:

电路图如上,程序略。

(3) 已知8051单片机的晶振频率为12MHz ,ADC0808基地址为BFF0H ,采用中断

工作方式,实现8路标准电压信号(0-5V )巡检功能,转换结果存入以50H 为首地址的内RAM 中。请画出该8路采集系统的电路图,并编写相应程序。

答:

根据题目要求,基地址为0BFF0H ,如果采用线选法,可将P1.6引脚控制器件选通,具体电路图如上,实现上述功能的程序如下:

ORG 0000H WB0: MOVX A,@DPTR AJMP START MOV @R0,A ORG 0003H INC R0 AJMP WB0 INC DPTR START: MOV R0,#50H DJNZ R7,NEXT MOV R7,#07H MOV R0,#50H MOV DPTR,#0BFF0H MOV R7,#07H SETB EX0 MOV DPTR,#0BFF0H SETB EA NEXT: MOVX @DPTR,A MOVX @DPTR,A RETI AJMP $ END

(4) 已知DAC0832的地址为7FFFH ,输出电压为0-5V ,编程实现DAC0832输出占空比为25%的矩形波。 答:

根据题目要求,地址为7FFFH ,所以可以采用P2.7进行线选法确定地址,具体电路图如下所示,实现功能的程序如下:

#include "reg51.h" #include

#define uchar unsigned char

#define uint unsigned int

#define DACADDR XBYTE[0X7FFF] //定义DAC0832的端口地址为7FFFH main() { uchar j; while(1)

{ DACADDR=255; for (j=0;j

DACADDR=255; for (j=0;j

第10章 单片机串行扩展和功率接口技术

1. 填空题

(1) 窃取电源技术。 (2) 寻址操作,地址。 (3) 光电耦合器。

(4) 感性,续流二极管。 2. 简答题

(1) 简要说明单总线和SPI 总线的主要特点。 答:

单总线是一种新型总线标准, 仅通过一条数据线便可以完成主机对多个器件的通信和控制。其主要特点有:通过一根信号线传送地址信息、控制信息和数据信息;可采用寄生电源模式通过信号线为器件供电;每个单总线器件有全球惟一的一个序列号,系统主机通过此序列号来区分器件,总线上挂接多个器件组成小规模通信网络;单总线器件引脚极少,系统接口构建简单。

SPI 总线系统是一种同步串行外设接口,它可以使MCU 与各种外围设备以串行方式进行通信以交换信息。其主要特点有:全双工通信方式;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。 (2) 简要说明DS18B20数字温度传感器的主要优点。 答:

DS18B20数字温度计的主要优点有:具有非易失性、上下触发门限用户可编程的报警功能;直接输出数字温度,位数9-12位可选;与微控制器通信电路接口简单;-55°C 至+100°C 的工作温度范围,在-10°C 至+85°C 温度范围内精度为±0.5°C ;可直接从数据线获取电源(寄生电源) ,无需外部工作电源

(3) 何谓单片机功率接口?光电隔离的主要优点是什么? 答:

单片机是微电子器件,输出的信号功率很小,无法直接驱动和控制电动机、泵等高电压,大电流的大功率设备,因此需要通过各种驱动电路和开关电路来实现,这些驱动和开关电路称为功率接口电路。

光电隔离的主要优点有:信号单向传输,输入端与输出端完全实现了电气隔离;输出信号对输入端无影响,抗干扰能力强;工作稳定,无触点,使用寿命长,传输效率高。 (4) 继电器、电动机等大电感量的感性元件或者设备掉电时,通常采用什么方法来抑制反电动势? 答:

上述感性元件在断电时会瞬间产生电压很大的反向电动势,反向电动势有可能击穿继电器电路的三极管能元器件,因此通常在继电器线圈反接一个二极管来对反向电动势进行泄放。

3. 综合题

(1) 利用DS18B20实现4路温度采集功能,设计硬件接口电路,并编写控制程序。

答:

(2) 为8051单片机设计一套声光报警电路,报警条件触发后,电路进行声光报警提示,利用定时器T0控制报警持续时间为10S 。 答:

略。


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn