(1)I/O接口和I/O端口有什么区别?I/O接口的功能是什么?
解:I/O端口简称I/O口,常指I/O接口电路中具有端口地址的寄存器或缓冲器。I/O接口是指单片机与外设间的I/O接口芯片。
I/O接口的功能:①实现和不同外设的速度匹配;②输出数据缓存;③输入数据三态缓冲。
(2)常用的I/O端口编址有哪两种方式?它们各有什么特点?MCS-51的I/O端口编址采用的是哪种方式?
解:①独立编址方式。独立编址方式就是I/O地址空间和存储器地址空间分开编址。独立编址的优点是I/O地址空间和存储器地址空间相互独立,界限分明。但是,需要设置一套专门的读写I/O的指令和控制信号。②统一编址方式。这种编址方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强大。MCS-51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。
(3)I/O数据传送有哪几种传送方式?分别在哪些场合下使用?
解:①同步传送方式:同步传送又称为无条件传送。当外设速度可与单片机速度相比拟时,常常采用同步传送方式,最典型的同步传送就是单片机和外部数据存储器之间的数据传送。②查询传送方式:查询传送方式又称为有条件传送,也称异步传送。单片机通过查询得知外围设备准备好后,再进行数据传送。异步传送的优点是通用性好,硬件连线和查询程序十分简单,但是效率不高。为了提高单片机的工作效率,通常采用中断方式。③中断传送方式:中断传送方式是利用MCS-51本身的中断功能和I/O接口的中断功能来实现I/O数据的传送。单片机只有在外围设备准备好后,发出数据传送请求,才中断主程序,而进入与外围设备进行数据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。因此,采用中断方式可以大大提高单片机的工作效率。
(4)MCS-51的并行接口的扩展有多种方式,在什么情况下采用扩展8155H比较合适?什么情况下采用扩展8255A比较适合?
解:8255A具有3个8位的并行I/O口,3种工作方式,可通过编程改变其功能,因而使用灵活方便,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。8155H芯片内包含有256B的RAM(静态),两个可编程的8位并行口PA和PB,1个可编程的6位并行口PC,以及1个14位减法定时器/计数器,所以它经常用作单片机的外围接口芯片。
(5)假设8155H的TIMERIN引脚输入的脉冲频率为1MHz,请编写出在8155H的TIMEROUT引脚上输出周期为10ms的方波的程序。
解:将1MHz的脉冲改变为10ms的方波,这就让我们想到了在数字电路里面学到的分频器。计算得出分频前后频率之比为10 000∶1,这样我们只要将定时器初值设置为64H就可以了(假设I/O口地址为7F00H~7F05H)。
START: MOV DPTR,#7F04H ;指针指向定时器低8位
MOV A,#64H ;送初值给A
MOVX @DPTR,A ;初值送给低8位
INC DPTR ;指向高8位
MOV A,#40H ;定时器方波输出
MOVX @DPTE,A
MOV DPTR,#7F00H ;指向命令/状态口
MOV A,#0C2H ;设定控制字
MOVX @DPTE,A ;启动定时器
END
(6)如果采用的晶振的频率为3MHz,定时器/计数器在工作方式0、1、2下,其最大的定时时间为多少?
答:因为机器周期 ,所以定时器/计数器工作方式0下,其最大定时时间为:
TMAX=213×Tc=213×4×10-6=8.192ms
同样可以求得方式1下的最大定时时间为262.144ms,方式2下的最大定时时间为1024ms。
(7)定时器/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?
答:定时器/计数器作定时器时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关。
(8)定时/计数器用作定时器时,对外界计数频率有何限制?
答:由于确认1次负跳变要花两个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
(9)采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。定时1ms后,又转为计数方式,如此循环不止。假定MCS-51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写出程序。
答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一个标志位识别下一轮定时器/计数器T0的工作方式。
编写程序如下:
ORG0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2
MOV TL0,#156 ;计数100个脉冲的初值赋值
MOV TH0,#156
SETB GATE ;打开计数门
SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
SETB EA ;CPU开中断
CLR F0 ;设置下一轮为定时方式的标志位
WAIT: AJMP WAIT
IT0P: CLR EA ;关中断
JB F0,COUNT ;F0=1,转计数方式设置
MOV TMOD,#00H ;定时器/计数器T0为定时方式0
MOV TH0,#0FEH ;定时1ms初值赋值
MOV TL0,#0CH
SETB EA
RETI
COUNT: MOV TMOD,#06H
MOV TL0,#156
SETB EA
RETI
(10)定时器/计数器的工作方式2有什么特点?适用于哪些应用场合?
答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。
(11)编写程序,要求使用T0,采用方式2定时,在P1.0输出周期为400ms,占空比为10∶1的矩形脉冲。
答:根据题意,从P1.0输出的矩形脉冲的高低电平的时间为10∶1,则高低电平的时间分别为363.63ms和36.37ms。如果系统采用6MHz晶振的话,Tcy=2ms,因此高低电平输出取整,则约为364ms和36ms。
编写程序如下:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: MOV TMOD,#02H ;定时器/计数器T0为定时方式2
MOV TL0,#4AH ;定时364ms初值赋值
SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
SETB EA ;CPU开中断
SETB P1.0
WAIT: AJMP WAIT
IT0P: CLR EA
CLR P1.0 ;关中断
MOV R0,#9
DLY: DJNZ R0,DLY ;延时26ms
MOV TL0,#4AH ;定时364ms初值赋值
SETB P1.0
SETB EA
RETI
(12)编写一段程序,功能要求为:当P1.0引脚的电平正跳变时,对P1.1的输入脉冲进行计数;当P1.2引脚的电平负跳变时,停止计数,并将计数值写入R0、R1(高位存R1,低位存R0)。
答:将P1.1的输入脉冲接入INT0,即使用T0计数器完成对P1.1口的脉冲计数。
编写程序如下:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: JNB P1.0,MAIN
MOV TMOD,#05H ;定时器/计数器T0为计数方式1
SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
SETB EA ;CPU开中断
WAIT: JB P1.2,WAIT
CLR EA
CLR TR0
MOV R1,TH0
MOV R0,TL0
AJMP $
IT0P: INC R2
RETI
(13)解:①正确,②正确,③错误,④错误。
(14)LED的静态显示方式与动态显示方式有何区别?各有什么优缺点?
解:静态显示时,数据是分开送到每一个LED上的。而动态显示则是数据先送到每一个LED上,再根据位选线来确定是被哪一个LED显示。静态显示亮度很高,但口线占用较多。动态显示则好一点,适于用在显示位数较多的场合。
(15)说明矩阵式键盘按键按下的识别原理。
解:按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V上,无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平亦为高。将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。
(16)键盘有哪3种工作方式,它们各自的工作原理及特点是什么?
解:①编程扫描方式。当单片机空闲时,才调用键盘扫描子程序,反复扫描键盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。②定时扫描工作方式。单片机对键盘的扫描也可用定时扫描方式,即每隔一定的时间对键盘扫描一次。③中断工作方式。只有在键盘有键按下时,才执行键盘扫描子程序并执行该按键功能程序,如果无键按下,单片机将不理睬键盘。
(17)什么是D/A转换器?
解:D/A转换器(Digit to Analog Converter)是将数字量转换成模拟量的器件,通常用DAC表示,它将数字量转换成与之成正比的电量,广泛应用于过程控制中。
(18)简述D/A转换器的主要技术指标。
解:D/A转换器的主要性能指标如下。
① 分辨率:单位数字量所对应的模拟量增量,即相邻两个二进制码对应的输出电压之差称为D/A转换器的分辨率。它确定了D/A产生的最小模拟量变化,也可用最低位(LSB)表示。
② 精度:精度是指D/A转换器的实际输出值与理论值之间的误差,它是以满量程VFS的百分数或最低有效位(LSB)的分数形式表示的。
③ 线性误差:D/A转换器的实际转换特性(各数字输入值所对应的各模拟输出值之间的连线)与理想的转换特性(始、终点连线)之间是有偏差的,这个偏差就是D/A的线性误差,即两个相邻的数字码所对应的模拟输出值(之差)与一个LSB所对应的模拟值之差,常以LSB的分数形式表示。
④ 转换时间TS(建立时间):从D/A转换器输入的数字量发生变化开始,到其输出模拟量达到相应的稳定值所需要的时间称为转换时间。
(19)简述D/A转换芯片的主要结构特性。
解:D/A转换芯片的主要结构特性如下。
① 数字输入特性。
数字输入特性包括接收数的码制、数据格式以及逻辑电平等。目前批量生产的D/A转换芯片一般都只能接收自然二进制数字代码。
② 模拟输出特性。
目前多数D/A转换器件均属电流输出器件,手册上通常给出的是输入参考电压及参考电阻之下的满码(全l)输出电流。另外,还给出最大输出短路电流以及输出电压的允许范围。
③ 锁存特性及转换控制。
D/A转换器对数字量输出是否具有锁存功能将直接影响与CPU的接口设计。如果D/A转换器没有输入锁存器,通过CPU数据总线传送数字量时,必须外加锁存器,否则只能通过具有输出锁存功能的I/O给D/A送入数字量。
④ 参考电源。
D/A转换中,参考电压源是唯一影响输出结果的模拟参量,是D/A转换接口中的重要电路,对接口电路的工作性能、电路结构有很大影响。