度慢,近年来在单片机应用领域中也得到广泛应用。
∑-?式A/D转换器具有积分型与逐次逼近型ADC的双重优点,它对工业现场的串模干扰具有较强的抑制能力,不亚于双积分型ADC,它比双积分型ADC有较高的转换速度。与逐次逼近型ADC相比,有较高的信噪比,分辨率高,线性度好,不需要采样保持电路。
8.在DAC和ADC的主要技术指标中,“量化误差”、“分辨率”和“精度”有何区别?
答:对DAC来说,分辨率反映了输出模拟电压的最小变化量。而对于ADC来说,分辨率表示输出数字量变化一个相邻数码所需输入模拟电压的变化量。 量化误差是由ADC的有限分辨率而引起的误差,但量化误差只适用于ADC,不适用于DAC。
精度与分辨率基本一致,位数越多精度越高。严格讲,精度与分辨率并不完全一致。只要位数相同,分辨率则相同。但相同位数的不同转换器,精度会有所不同。
9.在一个由AT89C51单片机与一片ADC0809组成的数据采集系统中,ADC0809的8个输入通道的地址为7FF8H~7FFFH,试画出有关接口的电路图,并编写每隔1分钟轮流采集一次8个通道数据的程序,共采样50次,其采样值存入片外RAM中以2000H单元开始的存储区中。
答:接口电路可参见图11-17。参考程序如下:
MAIN: MOV R0,#20H
MOV R1,#00H MOV R2,#00H MOV R3,#50 MOV R8,#08H
LOOP: MOV DPTR,#7FF8H LOOP1: MOVX @DPTR,A
MOV R6,#0AH
DELAY: NOP
NOP NOP
DJNZ R6,DELAY MOVX A,@DPTR INC DPTR MOV R2,DPL MOV DPH,R0 MOV DPL,R1 MOVX @DPTR,A INC DPTR MOV R0,DPH MOV R1,DPL MOV DPH,#7FH MOV DPL,R2 DJNZ R7,LOOP1
LCALL DELAY1M ;延时1分钟 DJNZ R3,LOOP ???????
第12章 单片机的串行扩展技术
1.I2C总线的优点是什么?
答:I2C总线的优点是各外围器件的连接仅需2条I/O口线(SDA线和SCL线),极大地简化了器件间的连接,进而提高了可靠性。I2C串行接口器件体积小,因而占用电路板的空间小,仅为并行接口器件的10%,明显减少了电路板空间和成本。在标准I2C普通模式下,数据的传输速率为100kbit/s,高速模式下可达400kbit/s。除上述优点外,还有工作电压宽、抗干扰能力强、功耗低、数据不易丢失等特点。
2.I2C总线的起始信号和终止信号是如何定义的? 答:(1)起始信号S的规定如下:
在SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号,只有在起始信号以后,其他命令才有效。 (2)终止信号P的规定如下:
在SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。随着终止信号的出现,所有外部操作都结束。
起始和终止信号都是由主器件发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号出现后,总线就处于空闲状态。
3.I2C总线的数据传输方向如何控制?
答:在单片机应用系统的I2C串行总线扩展系统中,通常是主器件由单片机来担当,其他外围接口器件为从器件的单主器件情况。I2C串行总线上的数据传输方向由主器件控制。I2C总线的数据传输方向是由单片机发给各从器件的寻址字节中的数据方向位(R/W*)来决定的。寻址字节的格式如下所示:
寻址 字节
DA3 DA2 DA1 DA0 A2 A1 引脚地址 A0 R/W 器件地址 方向位 最低位的数据方向位(R/W*)规定了总线上的单片机(主器件)与外围器件(从器件)的数据传送方向。R/W*=1,表示接收(读)。R/W*=0,表示发送(写)。
4.单片机如何对I2C总线中的器件进行寻址?
答:I2C总线所有扩展器件都有规范的器件地址。器件地址由7位组成,第8位数据的传送方向位(R/W*)的作用已在上题介绍。这8位共同构成了I2C总线器件的寻址字节。寻址字节的格式如上图所示。
器件地址(DA3、DA2、DA1、DA0)是I2C总线外围器件固有的地址编码,器件出厂时就已经给定。
引脚地址(A2、A1、A0)是由I2C总线外围器件所指定的地址端口,A2、A1、A0在电路中接高电平或接地,形成地址编码。
5.I2C总线在数据传送时,应答是如何进行的?
答:利用I2C总线进行数据传送时,传送的字节数(数据帧)没有限制,但是每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随1位应答位(即一帧共有9位)。
在接收器件收到一个完整的数据字节后,有可能需要完成一些其他工作(如从器件正在进行实时性的处理工作而无法接收总线上的数据),不需要立刻接收下一字节,这时接收器件可以将SCL线拉成低电平,从而使主器件处于等待状态。直到接收器件准备好接收下一字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行。
如果主器件对从器件进行了应答,但在数据传送一段时间后无法继续接收更多的数据,从器件可以通过对无法接收的第1个数据字节的“非应答”通知主器件,主器件则应发出终止信号以结束数据的继续传送。
当主器件接收数据时,它收到从器件发出的最后一个数据字节后,必须向主器件发出一个结束传送的信号。这个信号是由对从器件的“非应答”来实现的。然后,从器件释放SDA线,以允许主器件产生终止信号。
第13章 AT89C51单片机应用系统的设计与调试
1.下列 项说法是正确的。
A.AT89C51单片机P0~P3口的驱动能力是相同的
B.AT89C51单片机P0~P3口在口线输出为高电平的驱动能力和输出为低电平的驱动能力是相同的
C.AT89C51单片机扩展的外围芯片较多时,需加总线驱动器,P2口应加单向驱动器,P0口应加双向驱动器
D.AT89C51单片机最小系统可对温度传感器来的模拟信号进行温度测量 答:A.错;B.错;C.对;D.错。
2.为什么单片机应用系统的开发与调试离不开仿真开发系统? 答:当一个单片机应用系统完成了用户样机的硬件和软件设计开发后,在用户样机的程序存储器中放入编写好的应用程序,系统即可运行。但程序运行一次性成功几乎是不可能的,多少会存在一些软件、硬件上的错误,这就需要借助单片机的仿真开发工具进行调试,发现错误并加以改正。AT89C51单片机只是一个芯片,既没有键盘,又没有CRT、LED显示器,也无法运行系统开发软件(如编辑、汇编、调试程序等),因此,必须借助仿真开发工具(也称为仿真开发系统)所提供的开发手段来进行。
3.仿真开发系统由哪几部分组成?
答:常用通用机仿真开发系统由PC机外加在线仿真器的仿真开发系统组成,在线仿真器必须与PC的并行口、串行口或USB口相连,才能完成开发任务。
还有另一种结构的仿真开发系统:独立型仿真器。该类仿真器采用模块化结构,配有不同外设,如外存板、打印机、键盘/显示板等,用户可根据需要选用。在没有通用计算机支持的场合,利用键盘/显示板也可在工业现场完成仿真调试
工作。
4.利用仿真开发系统对用户样机软件调试,需经哪几个步骤?各个步骤的作用是什么?
答:用户样机的软件调试,可分为以下4个步骤。
(1)建立用户源程序。用户使用开发系统的键盘、CRT显示器及开发系统的编辑软件,按照汇编语言源程序要求的格式、语法规定,把源程序输入到开发系统中,并保存在磁盘上。
(2)在开发系统机上,利用汇编程序对第(1)步输入的用户源程序进行汇编,直至语法错误全部纠正为止。如无语法错误,则进入下一个步骤。 (3)动态在线调试。这一步对用户的源程序进行调试。上述的步骤(1)、步骤(2)是一个纯粹的软件运行过程,而在这一步,必须要有在线仿真器配合,才能对用户源程序进行调试。用户程序中分为与用户样机硬件无关的程序以及与其用户样机硬件紧密关联的程序。
对于与用户样机硬件无关的程序,如计算程序,虽然已经没有语法错误,但可能存在逻辑错误,使计算结果不正确,此时必须借助于在线仿真器的动态在线调试手段,如单步运行、设置断点等,发现逻辑错误,然后返回到步骤(1)修改,直至逻辑错误纠正为止。
对于与用户样机硬件紧密相关的程序段(如接口驱动程序),一定要先把在线仿真器的仿真插头插入用户样机的仿真插座中,进行在线仿真调试,仿真开发系统提供单步、设置断点等调试手段,来对用户样机进行调试。
有关部分程序段运行有可能不正常,可能是软件逻辑上有问题,也可能是硬件有故障,必须先通过在线仿真调试程序提供的调试手段,把硬件故障排除以后,再与硬件配合,对用户程序进行动态在线调试。对于软件的逻辑错误,则返回到第(1)步进行修改,直至逻辑错误消除为止。在调试这类程序时,硬件调试与软件调试是不能完全分开的。许多硬件错误是通过软件的调试而发现和纠正的。 (4)将调试完毕的用户程序通过编程写入器(也称烧写器),固化写入到程序存储器中。
5.用软件仿真开发工具能否对用户样机中硬件部分进行调试与实时在线仿真? 答:尽管软件仿真开发工具具有开发效率高,不需要附加的硬件开发装置成本。但是软件模拟器是使用软件来模拟硬件,且不能完全准确地模拟用户样机硬件电路的实时性,因此不能进行用户样机硬件部分的诊断与实时在线仿真。