您的位置: 网站首页 > 电子与嵌入式 > 单片机原理与应用 > 附录A 练习题参考答案 > 【第8章 单片机的输入/输出接口】

第8章 单片机的输入/输出接口

 

1I/O接口和I/O端口有什么区别?I/O接口的功能是什么?

解:I/O端口简称I/O口,常指I/O接口电路中具有端口地址的寄存器或缓冲器。I/O接口是指单片机与外设间的I/O接口芯片。

I/O接口的功能:实现和不同外设的速度匹配;输出数据缓存;输入数据三态缓冲。

2)常用的I/O端口编址有哪两种方式?它们各有什么特点?MCS-51I/O端口编址采用的是哪种方式?

解:独立编址方式。独立编址方式就是I/O地址空间和存储器地址空间分开编址。独立编址的优点是I/O地址空间和存储器地址空间相互独立,界限分明。但是,需要设置一套专门的读写I/O的指令和控制信号。统一编址方式。这种编址方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强大。MCS-51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。

3I/O数据传送有哪几种传送方式?分别在哪些场合下使用?

解:同步传送方式:同步传送又称为无条件传送。当外设速度可与单片机速度相比拟时,常常采用同步传送方式,最典型的同步传送就是单片机和外部数据存储器之间的数据传送。查询传送方式:查询传送方式又称为有条件传送,也称异步传送。单片机通过查询得知外围设备准备好后,再进行数据传送。异步传送的优点是通用性好,硬件连线和查询程序十分简单,但是效率不高。为了提高单片机的工作效率,通常采用中断方式。中断传送方式:中断传送方式是利用MCS-51本身的中断功能和I/O接口的中断功能来实现I/O数据的传送。单片机只有在外围设备准备好后,发出数据传送请求,才中断主程序,而进入与外围设备进行数据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。因此,采用中断方式可以大大提高单片机的工作效率。

4MCS-51的并行接口的扩展有多种方式,在什么情况下采用扩展8155H比较合适?什么情况下采用扩展8255A比较适合?

解:8255A具有38位的并行I/O口,3种工作方式,可通过编程改变其功能,因而使用灵活方便,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。8155H芯片内包含有256BRAM(静态),两个可编程的8位并行口PAPB1个可编程的6位并行口PC,以及114位减法定时器/计数器,所以它经常用作单片机的外围接口芯片。

5)假设8155HTIMERIN引脚输入的脉冲频率为1MHz,请编写出在8155HTIMEROUT引脚上输出周期为10ms的方波的程序。

解:1MHz的脉冲改变为10ms的方波,这就让我们想到了在数字电路里面学到的分频器。计算得出分频前后频率之比为10 0001,这样我们只要将定时器初值设置为64H就可以了(假设I/O口地址为7F00H7F05H)。

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,定时器/计数器在工作方式012下,其最大的定时时间为多少?

答:因为机器周期 ,所以定时器/计数器工作方式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,占空比为101的矩形脉冲。

答:根据题意,从P1.0输出的矩形脉冲的高低电平的时间为101,则高低电平的时间分别为363.63ms36.37ms。如果系统采用6MHz晶振的话,Tcy=2ms,因此高低电平输出取整,则约为364ms36ms

编写程序如下:

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引脚的电平负跳变时,停止计数,并将计数值写入R0R1(高位存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解:①正确,②正确,③错误,④错误。

14LED的静态显示方式与动态显示方式有何区别?各有什么优缺点?

解:静态显示时,数据是分开送到每一个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/OD/A送入数字量。

参考电源。

D/A转换中,参考电压源是唯一影响输出结果的模拟参量,是D/A转换接口中的重要电路,对接口电路的工作性能、电路结构有很大影响。