• 4.84 MB
  • 2022-04-29 14:05:39 发布

单片机原理及应用参考答案.doc

  • 62页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'思考题与习题部分参考答案《单片机原理及应用》思考题与习题参考答案绪论0.1解:单片微型计算机(Single-ChipMicrocomputer),简称单片机。就是将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)和其他多种功能器件集成在一块芯片上的微型计算机。单片机的主要特点有:(1)可靠性高(2)便于扩展(3)控制功能强(4)低电压、低功耗(5)片内存储容量较小,除此之外,单片机还具有集成度高、体积小、性价比高、应用广泛、易于产品化等特点0.2解:当前单片机的主要产品有:Intel的8051系列、Motorola的M68HC系列、Philips(飞利浦)的80C51系列、台湾义隆公司(EMC)EM78系列单片机、美国Microchip公司的PIC单片机系列、Atmel公司的AT90系列单片机Ubicom公司的Scenix单片机、日本爱普生科技公司的Epson单片机、Zilog公司的Z86系列、美国国家半导体公司NSCOP8单片机、台湾Winbond(华邦)的W78系列等。MCS-51为主流产品。MSP430的功能较强。是一种特低功耗的Flash微控制器。主要用于三表及超低功耗场合。EM78系列单片机采用高速CMOS工艺制造,低功耗设计为低功耗产品,价格较低。具有三个中断源、R-OPTION功能、I/O唤醒功能、多功能I/O口等。具有优越的数据处理性能,采用RISC结构设计。Microship单片机是市场份额增长较快的单片机。它的主要产品是PIC系列8位单片机。CPU采用RISC结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。Motorola是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。AVR是增强RISC内载Flash的单片机,单片机内部32个寄存器全部与ALU直接连接,突破瓶颈限制,每1MHz可实现1MIPS的处理能力,为高速、低功耗产品。端口有较强的负载能力,可以直接驱动LED。支持ISP、IAP,I/O口驱动能力较强。Scenix单片机除传统的I/O功能模块如并行I/O、UART、SPI、I2C、A/D、PWM、PLL、DTMF等,增加了新的I/O模块(如USB、CAN、J1850、虚拟I/O等)。其特点是双时钟设置,指令运行速度较快,具有虚拟外设功能,柔性化I/O端口,所有的I/O端口都可单独编程设定。Epson单片机主要为日本爱普生科技公司生产的LCD配套。其单片机的特点是LCD驱动部分性能较好,低电压、低功耗。Z8单片机是Zilog公司的主要产品,采用多累加器结构,有较强的中断处理能力。价格低。COP8单片机片内集成了16位A/D,内部使用了抗电磁干扰EMI(ElectroMagnetic9 思考题与习题部分参考答案Interference)电路,在看门狗电路及单片机的唤醒方式上都有独到之处。程序加密控制功能也比较好。W78系列与标准的8051兼容,W77系列为增强型51系列,对8051的时序作了改进,在同样时钟频率下,速度提高2.5倍。FlashROM容量从4KB到64KB,有ISP功能。0.3解:(1)第一阶段(1974—1976年):制造工艺落后,集成度低,而且采用了双片形式。典型的代表产品有Fairchild公司的F8系列。其特点是:片内只包括了8位CPU,64B的RAM和两个并行口,需要外加一块3851芯片(内部具有1KB的ROM、定时器/计数器和两个并行口)才能组成一台完整的单片机。(2)第二阶段(1977—1978年):在单片芯片内集成CPU、并行口、定时器/计数器、RAM和ROM等功能部件,但性能低,品种少,应用范围也不是很广。典型的产品有Intel公司的MCS-48系列。其特点是,片内集成有8位的CPU,1KB或2KB的ROM,64B或128B的RAM,只有并行接口,无串行接口,有1个8位的定时器/计数器,中断源有2个。片外寻址范围为4KB,芯片引脚为40个。(3)第三阶段(1979—1982年):8位单片机成熟的阶段。其存储容量和寻址范围增大,而且中断源、并行I/O口和定时器/计数器个数都有了不同程度的增加,并且集成有全双工串行通信接口。在指令系统方面增设了乘除法、位操作和比较指令。其特点是,片内包括了8位的CPU,4KB或8KB的ROM,128B或256B的RAM,具有串/并行接口,2个或3个16位的定时器/计数器,有5~7个中断源。片外寻址范围可达64KB,芯片引脚为40个。代表产品有Intel公司的MCS-51系列,Motorola公司的MC6805系列,TI公司的TMS7000系列,Zilog公司的Z8系列等。(4)第四阶段(1983年至今):16位单片机和8位高性能单片机并行发展的时代。16位机的工艺先进,集成度高,内部功能强,运算速度快,而且允许用户采用面向工业控制的专用语言,其特点是,片内包括了16位的CPU,8KB的ROM,232B的RAM,具有串/并行接口,4个16位的定时器/计数器,有8个中断源,具有看门狗(Watchdog),总线控制部件,增加了D/A和A/D转换电路,片外寻址范围可达64KB。代表产品有Intel公司的MCS-96系列,Motorola公司的MC68HC16系列,TI公司的TMS9900系列,NEC公司的783××系列和NS公司的HPC16040等。然而,由于16位单片机价格比较贵,销售量不大,大量应用领域需要的是高性能、大容量和多功能的新型8位单片机。近年来出现的32位单片机,是单片机的顶级产品,具有较高的运算速度。代表产品有Motorola公司的M68300系列和Hitachi(日立)公司的SH系列、ARM等。0.4解:面对工控领域对象,嵌入到工控应用系统中,实现嵌入式应用的计算机称之为嵌入式计算机系统,简称嵌入式系统。单片机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,能最好的满足对控制对象、应用系统的嵌入、现场的可靠运行以及非凡的控制品质要求。0.5解:选择原则:主要从指令结构、运行速度、程序存储方式和功能等几个方面选择单片机。MCS-51为主流产品。9 思考题与习题部分参考答案Motorola是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。Microship单片机是市场份额增长较快的单片机。它的主要产品是PIC系列8位单片机。其特点是运行速度快,低价位,适用于量大、档次低、价格敏感的产品。美国德州仪器(TI)公司生产的MSP430系列单片机是一种特低功耗的Flash微控制器。主要用于三表及超低功耗场合。在嵌入式系统低端的单片机领域,Intel公司的MCS-51形成了既具有经典性又不乏生命力的一个单片机系列。许多半导体厂家、电器公司以MCS-51系列中的8051为基核,推出了许多兼容性的CHMOS单片机----80C51系列。此外,还有Zilog、EM78、Senix、NEC、Epson、NS、三星、富士通、华邦、Philips、ARM等单片机。第1章1.1解:MCS-51为主流产品。MSP430的功能较强。是一种特低功耗的Flash微控制器。主要用于三表及超低功耗场合。EM78系列单片机采用高速CMOS工艺制造,低功耗设计为低功耗产品,价格较低。具有三个中断源、R-OPTION功能、I/O唤醒功能、多功能I/O口等。具有优越的数据处理性能,采用RISC结构设计。PIC系列8位单片机是Microship公司的产品。CPU采用RISC结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。Motorola是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。AVR是增强RISC内载Flash的单片机,单片机内部32个寄存器全部与ALU直接连接,突破瓶颈限制,每1MHz可实现1MIPS的处理能力,为高速、低功耗产品。端口有较强的负载能力,可以直接驱动LED。支持ISP、IAP,I/O口驱动能力较强。1.2解:MCS-51单片机在片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O接口、串行I/O接口和中断系统等几大单元。CPU是整个单片机的核心部件,由运算器和控制器组成。运算器可以完成算术运算和逻辑运算,其操作顺序在控制器控制下进行。控制器是由程序计数器PC(ProgramCounter)、指令寄存器IR(InstructionRegister)、指令译码器ID(InstructionDecoder)、定时控制逻辑和振荡器OSC等电路组成。CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号。程序存储器(ROM)用于存储程序、常数、表格等。数据存储器(RAM)用于存储数据。9 思考题与习题部分参考答案8051内部有两个16位可编程序的定时器/计数器T0和T1,均为二进制加1计数器。可用于定时和对外部输入脉冲的计数。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。可实现对5个中断源的管理。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。其中,IE用于控制5个中断源中哪些中断请求被允许向CPU提出,哪些中断源的中断请求被禁止;IP用于控制5个中断源的中断请求的优先权级别。I/O接口是MCS-51单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力。可分为串行和并行I/O接口。1.3解:80C51单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0~P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。1.4解:控制线一共有6条:(1)ALE/:地址锁存允许/编程线,配合P0口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7~P0.0引脚上输出片外存储器低8位地址的同时在ALE/上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051自动在ALE/上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。(2)/Vpp:允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是使用片外ROM。若=0,则允许使用片内ROM;若=1则允许使用片外ROM。(3):片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下线均为高电平封锁状态。(4)RST/VPD:复位/备用电源线,可以使8051处于复位工作状态。1.5解:指令:人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。程序:一系列指令的有序集合称为程序。程序在计算机中是按序执行的,CPU通过程序计数器PC控制程序的执行顺序,一般情况下程序是按序执行的,当执行转移、调用、返回等指令时,程序转移到相应的目的地址处执行。CPU根据程序计数器PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID9 思考题与习题部分参考答案译码后的信号进行分时,产生执行本条指令所需的全部信号,完成本条指令的执行。1.6解:(1)80C51在结构上的特点80C51采用将程序存储器和数据存储器截然分开,分别寻址的结构,称为Harvard结构。(2)在物理和逻辑上的地址空间存储器上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。(3)访问格式访问片内RAM采用MOV格式访问片外RAM采用MOVX格式1.7解:堆栈是一个特殊的存储区。主要功能是暂时存放数据和地址,通常用来保护断点和现场。它的特点是按照“先进后出”的存取数据。堆栈指针SP是一个8位寄存器,是用于指示堆栈的栈顶地址的寄存器,它决定了堆栈在内部RAM中的物理位置。1.8解:8051有21个特殊功能寄存器(PC除外),它们被离散地分布在内部RAM的80H~FFH地址单元中,共占据了128个存储单元,其中有83位可以位寻址。特殊功能寄存器SFR的分布和功能见教材P18表1.2.2。1.9解:8051单片机的4个I/O口在结构上是基本相同的,但又各具特点。这四个端口都是8位双向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器。在无片外扩展存储器的系统中,这四个端口的每一位都可以作为双向通用I/O端口使用。在作为一般的通用I/O输入时,都必须先向锁存器写入“1”,使输出驱动场效应管FET截止,以免误读数据。各自特点如下:(1)P0口为双向8位三态I/O口,它既可作为通用I/O口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。作为通用I/O口时,输出数据可以得到锁存,不需外接专用锁存器;输入数据可以得到缓冲,增加了数据输入的可靠性。每个引脚可驱动8个TTL负载。(2)P1口为8位准双向I/O口,内部具有上拉电阻,一般作通用I/O口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置1。每个引脚可驱动4个TTL负载。(3)P2口为8位准双向I/O口,内部具有上拉电阻,可直接连接外部I/O设备。它与地址总线高8位复用,可驱动4个TTL负载。一般作为外部扩展时的高8位地址总线使用。(4)P3口为8位准双向I/O口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个TTL负载。作为通用I/O口时,功能与P1口相同,常用第二功能。作为第二功能使用时,各位的作用见教材P23表1.2.5所示。9 思考题与习题部分参考答案1.10解:数据指针DPTR是16位的专用寄存器,它由两个8位的寄存器DPH(高8位)和DPL(低8位)组成。专门用来寄存片外RAM及扩展I/O口进行数据存取时的地址。编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用(即高位字节寄存器DPH和低位字节寄存器DPL)。DPTR主要是用来保存16位地址,当对64KB外部数据存储器寻址时,可作为间址寄存器使用,1.11解:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:PSW.7(Cy):进位标志位。PSW.6(AC):辅助进位标志位,又称为半进位标志位。PSW.5(F0):用户标志位。PSW.4、PSW.3(RS1和RS0):寄存器组选择位。PSW.2(OV):溢出标志位。PSW.1(空缺位):此位未定义。PSW.0(P):奇偶校验位。1.12解:开机复位后,CPU使用的是第0组工作寄存器。它们的地址是00H-07H。CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。1.13解:8051片内数据存储器有256B寻址空间。存储器空间的地址范围为:00H—-FFH在这个存储器空间又可分为:基本的数据存储区:00H—-7FH,可划分为工作寄存器、位寻址区、堆栈与数据缓冲区。SFR空间:80H——FFH1.14解:片内RAM低128单元划分及主要功能如下:(1)工作寄存器组(00H——1FH)这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0——R7。(2)位寻址区(20H——2FH)16个字节单元,共包含128位,这16个字节单元既可以进行字节寻址,又可以实现位寻址。主要用于位寻址。(3)堆栈与数据缓冲区(30H——7FH)用于设置堆栈、存储数据。1.15解:程序存储器通过/Vpp引脚选择。若=0,则允许使用片内ROM;若9 思考题与习题部分参考答案=1则允许使用片外ROM。数据存储器通过指令区分:访问片内RAM采用MOV指令,访问片外RAM采用MOVX指令。1.16解:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。时钟周期又称为节拍(用P表示)。时钟周期是时序中的最小单位。一个状态有两个节拍,机器周期定义为实现特定功能所需的时间。MCS-51的机器周期由12个时钟周期构成。执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51的指令可能包括1~4个不等的机器周期。当MCS-51的主频为12MHz时,一个机器周期为1ms。执行一条指令需要的最长时间为4ms。1.17解:8051单片机复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其它一些特殊功能寄存器有影响,它们的复位状态如下:寄存器复位时内容寄存器复位时内容PC0000HTCON0×000000BACC00HTL000HB00HTH000HPSW00HTH100HSP07HTH100HDPTR0000HSCON00HP0—P3FFHSBUF不确定TMOD××000000BPCON0×××0000B单片机复位方法有:上电自动复位,按键电平复位和外部脉冲三种方式。第2章2.1解:8051的指令系统由111条指令组成。如果按字节数分类,有49条单字节指令46条双字节指令和16条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有64条单周期指令、45条双周期指令和2条四周期指令,以单周期指令为主。8051的指令系统具有以下特点:(1)存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行I/O口中的内容传送到内部RAM单元中而不必经过累加器A或工作寄存器Rn。这样可以大大提高传送速度和缓解累加器A的瓶颈效应。9 思考题与习题部分参考答案(2)用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A中。这为编成翻译算法提供了方便。(3)在算术运算指令中设有乘法和除法指令(4)指令系统中一些对I/O口进行操作的指令具有“读——修改——写”的功能。这一功能指:在执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2度入内部,进行修改、改变,然后重新写到锁存器中去。这种类型指令包含所有的逻辑操作和位操作指令。(5)8051单片机内部有一个布尔处理器,对为地址空间具有丰富的位操作指令。布尔操作类指令有17条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转移指令。2.2解:MCS-51单片机指令系统按功能可分为5类:(1)数据传送指令 (2)算术运算指令 (3)逻辑运算和移位指令 (4)控制转移指令(5)位操作指令MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表: 寻址方式使用的变量    寻址范围立即寻址程序存储器直接寻址内部RAM低128个字节;特殊功能寄存器SFR寄存器寻址R0~R7;A、B、DPTR、C寄存器间接寻址@R0、@R1、SP内部RAM、堆栈指针SP@R0、@R1、@DPTR外部RAM变址寻址@A+PC、@A+DPTR程序存储器相对寻址PC+偏移量程序存储器位寻址内部RAM低128B位寻址区可位寻址的特殊功能寄存器位2.3解:访问特殊功能寄存器,应采用直接寻址、位寻址方式。访问外部数据存储器,应采用寄存器间接寻址方式。在0~255B范围内,可用寄存器R0、R1间接寻址:MOVXA,@R0或MOVXA,@R1MOVX@R0,A或MOVX@R1,A在0~64KB范围内,可用16位寄存器DPTR间接寻址:MOVXA,@DPTRMOVX@DPTR,A2.4解:这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DAA”指令即可。9 思考题与习题部分参考答案2.5解:虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。9思考题与习题部分参考答案MOVC,bitMOVbit,CCLRbitSETBbitCPLbitANLC,bitANLC,/bitJBbit,relJNBbit,rel9思考题与习题部分参考答案2.6解:在实际应用中,可从寻址范围和指令长度两个方面来选择长跳转指令LJMP和短跳转指令AJMP、长调用指令LCALL和短调用指令ACALL。长跳转LJMP在64KB范围内转移,而短跳转AJMP只能在2KB空间转移。长调用LCALL调用位于64KB程序空间的子程序,而短调用ACALL调用位于2KB程序空间范围的子程序。AJMP、ACALL指令代码长度为2个字节;LJMP、LCALL指令代码长度为3个字节。2.7解:指令的转移范围不同。SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。2.8解:MOVCA,@A+DPTR:访问外部程序存储器指令,功能为程序存储器内容送累加器。MOVXA,@DPTR:访问外部数据存储器指令,功能为外部数据存储器内容送累加器指令.2.9解:使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。2.10解:结果为:(A)=30H(R0)=50H(50H)=00H(51H)=30H2.11解:结果为:(61H)=24H(62H)=10H(30H)=00H(31H)=0FFHDPTR=2410H  SP=60H2.12解:指令源操作数的寻址方式执行指令后的结果MOVA,40H直接寻址(A)=50HMOVR0,A寄存器寻址(R0)=50HMOVP1,#80H立即寻址(P1)=80HMOV@R0,20H寄存器间接寻址(50H)=30HMOVDPTR,#2000H立即寻址(DPTR)=2000HMOV40H,30H直接寻址(40H)=40HMOVR0,30H直接寻址(R0)=40HMOVD0H,R0直接寻址(D0H)=40H62 思考题与习题部分参考答案MOV10H,#10H立即寻址(10H)=10HMOVA,@R0寄存器间接寻址(A)=50HMOVP2,P1寄存器寻址(P2)=80H2.13解:(1)R1的内容传送到R0;MOVA,R1MOVR0,A(2)片外RAM20H单元内容送R0;MOVDPTR,#0020HMOVXA,@DPTRMOVR0,A(3)片外RAM20H单元的内容送片内RAM20H单元;MOVDPTR,#0020HMOVXA,@DPTRMOV20H,A(4)片外RAM1000H单元的内容送片内RAM20H单元;MOVDPTR,#1000HMOVXA,@DPTRMOV20H,A(5)ROM2000H单元的内容送R0单元;MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOVR0H,A(6)ROM2000H单元的内容送片内RAM20H单元;MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOV20H,A(7)ROM2000H单元的内容送片外RAM20H单元。MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOVDPTR,#0020HMOVX@DPTR,A62 思考题与习题部分参考答案2.14解:62思考题与习题部分参考答案ORG0000HLJMPSTARTORG0030HSTART:MOVA,22HADDA,32HDAAMOV42H,AMOVA,23HADDCA,33HDAAMOV43H,ASJMP$END62思考题与习题部分参考答案2.15解:62思考题与习题部分参考答案ORG0000HLJMPMAINORG0030HMAIN:MOVR7,#20HMOVR1,#40HMOVDPTR,#3000HLOOP:MOVA,@R1MOVX@DPTR,AINCR1INCDPTRDJNZR7,LOOPSJMP$END62思考题与习题部分参考答案2.16解:62思考题与习题部分参考答案ORG0000HLJMPMAINORG0030HMAIN:MOVR0,#30HMOVR1,#00HMOVR2,#00HMOVR3,#07HLP2:MOVA,@R0ADDA,R2MOVR2,AJNCLP1INCR1LP1:INCR0DJNZR3,LP2MOVR3,#03HLP3:CLRCMOVA,R1RRCAMOVR1,AMOVA,R2RRCAMOVR2,ADJNZR3,LP3MOV3AH,R2SJMP$END62思考题与习题部分参考答案2.17解:62思考题与习题部分参考答案ORG0000HLJMPSTARTORG0030HSTART:MOVDPTR,#2001HMOVXA,@DPTRMOV30H,AMOVDPTR,#2002HMOVXA,@DPTRADDA,30HMOVB,AMULABMOVR1,ACJNEA,#10,NET1MOVDPTR,#2000HMOVX@DPTR,ASJMPNET3NET1:JNCNET2CLRCMOVA,R1SUBBA,#10MOVDPTR,#2000HMOVX@DPTR,ASJMPNET3NET2:MOVA,R1ADDA,#10MOVDPTR,#2000HMOVX@DPTR,ANET3:SJMP$END62 思考题与习题部分参考答案2.18解:62思考题与习题部分参考答案ORG0000HLJMPMAINORG0030hMAIN:MOVDPTR,#2000HMOVA,#OFFHMOVX@DPTR,AMOVDPTR,#2100HMOVA,#34HMOVX@DPTR,AMOVDPTR,#2008HMOVA,#33HMOVX@DPTR,AMOVDPTR,#2108HMOVA,#44HMOVX@DPTR,AMOVDPTR,#200EHMOVA,#0EEHMOVX@DPTR,AMOVDPTR,#210EHMOVA,#32HMOVX@DPTR,AMOVDPTR,#2000HMOVR1,#30HMOVR2,#15LOOP:MOVXA,@DPTRMOV@R1,AINCDPTRINCR1DJNZR2,LOOPMOVR1,#30HMOVDPTR,#2100HMOVR2,#15MOVR0,#40HLOOP2:MOVXA,@DPTRCLRCADDCA,@R1INCLOOP1MOV@R0,@01SJMPLOOP4LOOP1:MOV@R0,#00LOOP4:INCR0MOV@R0,AINCR1INCDPTRINCR0DJNZR2,LOOP2MOVR0,#40HMOVDPTR,#2200HMOVR2,#30LOOP3:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR2,LOOP3SJMP$END62思考题与习题部分参考答案2.19解:62思考题与习题部分参考答案ORG0000HLJMPMAINORG0030HMAIN:MOVR2,#100MOVR3,#00HMOVR4,#00HMOVR5,#00HMOVDPTR,#2000HLOOP:MOVXA,@DPTRCJNEA,#00H,NET1INCR3INCDPTRDJNZR2,LOOPSJMPNET3NET1:JCNET2INCR462 思考题与习题部分参考答案INCDPTRDJNZR2,LOOPSJMPNET3NET2:INCR5INCDPTRDJNZR2,LOOPNET3:SJMP$END62思考题与习题部分参考答案2.20解:62思考题与习题部分参考答案ORG0000HLJMPMAINORG0030HMAIN:MOVDPTR,#1000HMOVA,#22HMOVX@DPTR,AMOVDPTR,#1030HMOVA,#33HMOVX@DPTR,AMOVDPTR,#1000HMOVR2,#31HMOVR0,#30HLOOP:MOVXA,@DPTRMOV@R0,AINCDPTRINCR0DJNZR2,LOOPMOVDPTR,#1000HMOVA,#00MOVR2,#31HLOOP1:MOVX@DPTR,AINCDPTRDJNZR2,LOOP1SJMP$END62思考题与习题部分参考答案2.21解:62思考题与习题部分参考答案62思考题与习题部分参考答案ORG0000HLJMPMAINORG0100HMAIN:MOVDPTR,#2040HMOVR2,#50CLR7FHDECR2LS:MOVXA,@DPTRMOV20H,AINCDPTRMOVXA,@DPTRMOV21H,AMOVA,20HCJNEA,21H,LOOPLOOP:JNCLOOP1MOVA,20HMOVX@DPTR,ADECDPTRMOVA,21HMOVX@DPTR,AINCDPTRSETB7FHLOOP1:DJNZR2,LSJB7FH,MAINSJMP$END62思考题与习题部分参考答案2.22解:62思考题与习题部分参考答案ORG0000HLJMPMAINORG0030HMAIN:LCALLSUBONEAJMP$;SUBONEusedptr,a,30h,31hSUBONE:MOVDPTR,#2000HLOOP:MOVXA,@DPTRXRLA,#41H62 思考题与习题部分参考答案JNZTTMOVA,30HMOVDPTR,#20A0HMOVX@DPTR,AMOVDPTR,#20A1HMOVA,31HMOVX@DPTR,ARETTT:INCDPTRMOV30H,DPHMOV31H,DPLMOVA,31HCJNEA,@00H,LOOPRETEND62思考题与习题部分参考答案2.23解:62思考题与习题部分参考答案62思考题与习题部分参考答案ORG0000HLJMPMAINORG0030HMAIN:MOVR2,#20MOVR1,#30HMOVDPTR,#2000HTT:MOVXA,@DPTRCLRCSUBBA,#30HSWAPAMOV41H,AINCDPTRMOVXA,@DPTRCLRCSUBBA,#30HMOV@R1,AMOVA,41HXCHDA,@R1MOV@R1,AINCR1INCDPTRDJNZR2,TTMOVDPTR,#3000HMOVR1,#30HMOVR2,#0AHTT1:MOVA,@R1MOVX@DPTR,AINCR1INCDPTRDJNZR2,TT1SJMP$END62思考题与习题部分参考答案62思考题与习题部分参考答案2.24解:62思考题与习题部分参考答案ORG0000HLJMPMAINORG0030HMAIN:MOVDPTR,#2400HMOVA,#07HMOVX@DPTR,AMOVDPTR,@2450HMOVA,#06HMOVX@DPTR,AMOV30H,#24HMOV31H,#00HMOV32H,#25HMOV33H,#00HMOVR2,#51HLOOP:MOVDPH,30HMOVDPL,31HMOVXA,@DPTRMOVDPH,32HMOVDPL,33HMOVX@DPTR,AINC31HINC33HDJNZR2,LOOPAJMP$END62思考题与习题部分参考答案62 思考题与习题部分参考答案2.25解:62思考题与习题部分参考答案ORG0000HLJMPMAINORG0030HMAIN:MOVDPTR,#2030HMOVA,#03HMOVX@DPTR,AMOVDPTR,#2031HMOVA,#05HMOVX@DPTR,AMOVDPTR,#2030HMOVXA,@DPTRLCALLSQRMOVR1,AMOVDPTR,#2031HMOVXA,@DPTRLCALLSQRADDA,R1MOVDPTR,#2040HMOVX@DPTR,AAJMP$SQR:INCAMOVCA,@A+PCRETTAB:DB0,1,4,9,16,25DB36,49,64,81,100DB121,144,169,196,225END62 思考题与习题部分参考答案第3章3.1解:当CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理,CPU暂时中止当前的工作,转去处理所发生的事件,处理完该事件以后,再回到原来被中止的地方,继续原来的工作。这种过程为中断,实现这种服务的部件称为中断系统。功能:①实时处理,能对外界异步发生的事件作出及时的处理。②完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率。③实现实时控制。3.2解:中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是:(1)先响应优先级高的中断请求,再响应优先级低的中断请求。(2)如果一个中断请求己被响应,同级的其他中断请求将被禁止。(3)如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。单片机内部自然优先级顺序(由高到低)为:外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断。3.3解:(1)80C51有以下中断源:①外部中断0()请求,低电平有效。②外部中断1()请求,低电平有效。③T0:定时器/计数器0溢出中断请求。④T1:定时器/计数器1溢出中断请求。⑤TI/RI:串行接口中断请求。(2)通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等操作,可实现对各种中断的控制功能。3.4解:中断系统的初始化步骤如下:(1)开相应中断源的中断允许;(2)设定所用中断源的中断优先级;(3)若为外部中断,则应规定中断触发方式(低电平或负边沿触发)。3.5解:单片机一旦响应中断请求,就由硬件完成以下功能:(1)根据响应的中断源的中断优先级,使相应的优先级状态触发器置1;(2)执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈,62 思考题与习题部分参考答案保护断点,寻找中断源;(3)清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);(4)把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。(5)中断返回,程序返回断点处继续执行。3.6解:(1)由中断源提出中断请求,由中断控制允许控制决定是否响应中断,如果允许响应中断,则CPU按设定好的优先级的顺序响应中断。如果是同一优先级的中断,则按单片机内部的自然优先级顺序(外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断)响应中断。CPU响应中断请求后,就立即转入执行中断服务程序。保护断点、寻找中断源、中断处理、中断返回,程序返回断点处继续执行。(2)由中断允许寄存器IE控制开放和禁止中断。欲开放某一中断,则应先开放总中断允许(EA置1),然后开放相应中断的中断允许(相应位置1);若要要禁止中断,则EA置O即可。(3)由中断优先级控制寄存器IP控制中断优先级,相应位置1,则设为高级中断,置0则为低级。其中:PS为串行中断优先级,PTl(0)为定时中断1(0)优先级,PXl(0)外部中断1(0)优先级。3.7解:(1)有中断源发出中断请求。(2)中断总允许控制位EA=l,CPU开放总中断。(3)申请中断的中断源的中断允许位为1,即该中断没有被屏蔽。(4)无同级或更高级中断正在服务。(5)当前指令周期已经结束。(6)若现行指令为RETI或访问IE或IP指令时,读指令以及紧接着的另一条指令已执行完毕。满足以上条件,则CPU响应响应中断元的中断请求。3.8解:为低电平触发的中断系统初始化程序如下:ORG0000HLJMPMAINORG0013HLJMPINTN1ORG0100HMAIN:SETBEASETBEX1 ;开中断CLRPX1;令为低优先级CLRIT1;令为电平触发SJMP$END62 思考题与习题部分参考答案3.9解:中断服务程序的入口地址如下表:中断源中断矢量外部中断0()0003H定时器T0中断000BH外部中断1()0013H定时器T1中断001BH串行口中断0023H3.10解:(1)符合以下6个条件可响应新的中断请求:①有中断源发出中断请求。②中断总允许控制位EA=l,CPU开放总中断。③申请中断的中断源的中断允许位为1,即中断没有被屏蔽。④无同级或更高级中断正在被服务。⑤当前的指令周期已结束。⑥若现行指令为RETI或访问IE或lP指令时,该指令以及紧接着的另一条指令已执行完。(2)如果新的中断请求"优先级"低于正在执行的中断请求或与其同级,则不能被响应。3.11解:有两种方式:电平触发和边沿触发。(1)电平触发方式:CPU在每个机器周期的S5P2期间采样外部中断引脚的输人电平。若为低电平,便置IEl(IEO)为“1”,申请中断;若外部中断引脚为高电平,则IEl(IEO)清零。(2)边沿触发方式:CPU在每个机器周期的S5P2期间采样外部中断请求引脚的输人电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断请求为高电平,接着下一个机器周期采样到外部中断请求为低电平,则使IEl(IEO)置1,申请中断;否则,IEl(1E0)置0。3.12解:可以。在相应的中断源的中断程序入口地址处,用一条长跳转指令(LJMP Add16),转到相应64K程序存储器的任意地址(Add16)处,执行相应的中断程序。3.13解:将3个中断源的中断请求经过与门连接到MCS-51的外部中断0的输入引脚上。3、2、1中断源的输入引脚分别接到P1.0、P1.1、P1.2引脚上,以备查询。程序如下:X1EQU2000H;定义中断源1的入口地址X2EQU2100HH;定义中断源2的入口地址X3EQU2200H;定义中断源3的入口地址ORG0000HLJMPSTARTORG0003HLJMPINT00START:……62 思考题与习题部分参考答案……INT00:JBP1.0,LP1;查询中断源,若此中断源无中断则转LP1LJMP2200H;转入相应的中断服务LP1:JBP1.1,LP2;查询中断源,若此中断源无中断则转LP2LJMP2100H;转入相应的中断服务LP3:LJMP2000H;转入相应的中断服务……X1:……RETIX2:……RETIX3:……RETI3.14解:80C51单片机片内设有2个定时器/计数器:定时器/计数器T0和定时器/计数器T1,T0由TH0、TL0组成,T1由TH1、TLl组成。T0、T1由特殊功能寄存器TMOD、TCON控制。3.15解:作定时器用时,计数脉冲来自单片机内部,其频率为振荡频率的1/12。作计数器用时,计数脉冲来自单片机的外部,即P3.4(T0)和P3.5(T1)两个引脚的输入脉冲。3.16解:作定时器用时,其定时时间与定时器的工作模式、定时器的定时初值以及单片机的晶振频率有关。作计数器用时,外界计数脉冲的频率不能高于振荡脉冲频率的1/24。3.17解:(1)工作方式O:13位定时器/计数器工作方式。工作方式0由TH0的全部8位和TL0的低5位构成13位加1计数器,此时TL0的高3位未用。在计数过程中,当TL0的低5位溢出时,都会向TH0进位,而全部13位计数器溢出时,则计数器溢出标志位TF0置位。(2)工作方式l:16位的定时器/计数器方式。工作方式1由TH0作为高8位,TL0为低8位,在计数过程中,当全部16位计数器溢出时,则计数器溢出标志位TF0置位。(3)工作方式2:自动重新装入计数初值的8位定时器/计数器工作方式。工作方式2的16位定时器/计数器被拆成两个8位寄存器TH0和TL0,CPU在对它们初始化时必须装入相同的定时器/计数器初值。定时器/计数器启动后,TL0按8位加1计数器计数,当TL0计数溢出时,置位TF0的同时又从预置寄存器TH0中重新获得计数初值并启动计数。如此反复。适合于需要重复计数的应用场合,也可以当做串行数据通信的波特率发生器使用。(4)工作方式3:两个8位定时器/计数器(仅适用于T0)。在工作方式3时,定时器/计数器0被拆成两个独立的8位计数器TL0和TH0。其中,TL0既可以作计数器使用,也可以作为定时器使用,定时器/计数器062 思考题与习题部分参考答案的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。TH0只能作为简单的定时器使用,只能借用定时器/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。一般情况下,只有在T1以工作方式2运行(当波特率发生器用)时,才允许T0工作于方式3。TMOD用于控制定时器/计数器T0和T1的工作方式,M1M0为工作方式选择位。M1M0=00方式0,13位定时器/计数器;M1M0=01方式1,16位定时器/计数器;M1M0=10方式2,自动重新装入计数初值的8位定时器/计数器;M1M0=11方式3,两个8位定时器/计数器(仅适用于T0)。为定时方式/计数方式选择位。若设定=0,则选择定时器工作方式;若设定=1,则选择计数器工作方式。一个定时器/计数器同一时刻或者作定时用,或者作计数用,不能同时既作定时又作计数用。GATE:门控位。它的状态决定了定时器/计数器启/停控制取决于TR0还是取决于TR0和引脚两个条件的组合。若GATE=0,则只由TCON中的启/停控制位TR0控制定时器/计数器的启/停。此时,只要TR0=1,则接通模拟开关,使计数器进行加法计数,定时器/计数器启动工作。而如果TR0=0,则断开模拟开关,定时器/计数器停止工作。若GATE=1,由外部中断请求信号和TCON中的启/停控制位TR0组合状态控制定时器/计数器的启/停。只有TR0=1,且引脚也是高电平,才能启动定时器/计数器工作,否则,定时器/计数器停止工作。定时器/计数器的定时器/计数器范围为:工作方式0:13位定时器/计数器方式,因此,最多可以计到213,也就是8192次。工作方式1:16位定时器/计数器方式,因此,最多可以计到216,也就是65536次。工作方式2和工作方式3:都是8位的定时器/计数器方式,因此,最多可以计到28,也说是256次。3.18解:设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从而得到较长的时间。3.19解:选用定时器/计数器T0作定时器,输出为P1.0引脚,2ms的方波可由1ms的高低电平相间隔而成,因而只要每隔1ms对P1.0取反一次即可得到这个方波。程序如下:ORG0000HLJMPSTARTORG000BHLJMPT0INT;T0中断入口62 思考题与习题部分参考答案ORG0030HSTART:MOVSP,#60H;初始化程序MOVTH0,#0FEH;T0赋初值MOVTL0,#0BHMOVTMOD,#01H;定时器/计数器0工作于方式1SETBTR0;启动T0SETBET0;开T0中断SETBEA;开总允许中断SJMP$T0INT:CPLP1.0MOVTL0,#0BHMOVTH0,#0FE0HRETIEND3.20解:程序如下:ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HMOVTMOD,#02HMOVTH0,#0E7HMOVTL0,#0E7HCLRP1.2SETBTR0HIGH0:SETBP1.2HIGH1:JBCTF0,LOW0;50μs到清TF0,转LOW0AJMPHIGH1;50μs未到,转HIGH1等待LOW0:MOVR7,#7;350μs=7×50μsCLRP1.2;P1.2=0输出350μs低电平LOW1:JBCTF0,LOW2;50μs到清TF0,LOW2AJMPLOW1LOW2:DJNZR7,LOW1;7次未到转LOW1AJMPHIGH0;7次到转HIGH0END3.21解:选择T0工作于方式1定时500μsfosc=12MHz(216-X)×1μS=500μsX=65036=0FE0CH程序如下:ORG1000HMOVTMOD,#01HMOVTH0,#0FEHMOVTL0,#0CHSETBTR0DEL:MOVR7,#4;2ms=4×500μsD500:JBCTF0,D2;500μs到清TF0,转移62 思考题与习题部分参考答案AJMPD500;50μs未到,等待D2:CPLP1.0MOVTH0,#0FEH;重装初值MOVTL0,#0CHDJNZR7,D500;4次未到,转D500CPLP1.1AJMPDEL;4次到,转DELSJMP$END3.22解:程序如下:ORG0000HLJMPSTARTORG0030HSTART:MOVTMOD,#09H;设T0为方式1,GATE=1MOVTL0,#00HMOVTH0,#00HMOVR0,#4EHJBP3.2,$;等待P3.2变低SETBTR0;启动T0工作JNBP3.2,$;等待P3.2变高JBP3.2,$;等待P3.2再次变低CLRTR9;停止计数MOV@R0,TL0;存放计数的二进制数低字节入4EHINCR0MOV@R0,TH0;存放计数的二进制数高字节入4EHMOVR1,#50H;BCD码首址MOVR5,#3;BCD码字节数CLRALOOP1:MOV@R1,A;清存BCD码单元INCR1DJNZR5,LOOP1MOVR7,#10H;二进制数位数LOOP2:MOVR0,#4EH;二进制数首址MOVR6,#2;二进制数字节数CLRCLOOP3:MOVA,@R0RLCAMOV@R0,AINCR0DJNZR6,LOOP3;2字节二进制数左移1位MOVR5,#3;BCD码字节数MOVR1,#50HLOOP4:MOVA,@R1ADDCA,@R1;BCD码乘2加C运算DAAMOV@R1,AINCR1DJNZR5,LOOP4DJNZR7,LOOP2SJMP$62 思考题与习题部分参考答案END3.23解::为了衡量串行通信的速度,应该有一个测量单位,在数据通信中,描述数据传送速度的方式有3种:波特率定义为每秒传送信号的数量,单位为波特(Baud)。比特率定义为每秒传送二进制数的信号数(或每秒传送二进制码元的个数),单位是bps(bitpersecond)或写成b/s(位/秒)。数据传送速率(或字符传送速率)定义为每秒传送多少个字符(或单位时间内平均数据传移速率,单位是字符/秒。在串行通信中,传送的信号可能是二进制、八进制或十进制等。只有在传送的信号是二进制信号时,波特率才与比特率数值上相等。而在采用调制技术进行串行通信时,波特率是描述载波信号每秒钟变化为信号的数量(又称为调制速率)。在这种情况下,波特率与比特率在数值上可能不相等。3.24解:异步通信中,接收器和发送器有各自的时钟,数据常以字符为单位组成字符帧传送,用一帧来表示一个字符,其字符帧的数据格式为:在一帧格式中,先是一个起始位“0”(低电平),然后是5~8个数据位,规定低位在前,高位在后,接下来是1位奇偶校验位(可以省略),最后是1~2位的停止位“1”(高电平)。异步通信的优点是不需要传送同步脉冲,可靠性高,所需设备简单;缺点是字符帧中因包含有起始位和停止位而降低了有效数据的传输速率。3.25解:MCS-51单片机的串行接口由发送缓冲器SBUF、发送控制器、接收缓冲器SBUF、输入移位寄存器、接收控制器、波特率发生器等部件组成。发送缓冲器SBUF用于存放将要发送的数据,接收缓冲器SBUF用于存放接收的数据,输入位移寄存器用于接收缓冲并实现串/并转换,发送/接收控制寄存器用于控制串行口的工作,波特率发生器用于控制串行口发送/接收数据的速度。3.26解:随着传输距离的增加,误码率增加,出现重传增加,数据传输速率降低。3.27解:串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器SBUF进行读或写的。当向SBUF发"写"命令时(执行"MOVSBUF,A"指令),即向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完使发送中断标志位TI=1。在满足串行接口接收中断标志位RI(SCON.O)=0的条件下,置允许接收位REN(SCON.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使R1=1。当发读SBUF命令时(执行"MOVA,SBUF"指令),便从接收缓冲器SBUF读取信息通过80C5l内部总线送CPU。3.28解:串行口有四种工作方式:方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位异步收发),方式3(11位异步收发)。62 思考题与习题部分参考答案字符帧的数据格式为:在一帧格式中,先是一个起始位“0”(低电平),然后是5~8个数据位,规定低位在前,高位在后,接下来是1位奇偶校验位(可以省略),最后是1~2位的停止位“1”。两个字符帧之间可以有空闲位,也可以无空闲位。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率(T1溢出信号的频率)控制。各种方式的通信波特率如下:①方式0的波特率固定为系统晶振频率的1/12,其值为fosc/12。其中:fosc——系统主机晶振频率②方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:波特率=(2SMOD/64)×fosc即:当SMOD=1时,波特率为fosc/32,当SMOD=0时,波特率为fosc/64③方式1和方式3的波特率由定时器T1的溢出率控制。因而波特率是可变的。定时器T1作为波特率发生器,相应公式如下:波特率=(2SMOD/32)×定时器T1溢出率T1溢出率=T1计数率/产生溢出所需的周期数=(fosc/12)/(2K-TC)式中:K——定时器T1的位数TC——定时器T1的预置初值3.29解:当一片80C51(主机)与多片80C51(从机)通信时,①主机的SM2位置0,所有从机的SM2位置1,处于接收地址帧状态。②主机发送一地址帧,其中,8位是地址,第9位为地址/数据的区分标志,该位置1表示该帧为地址帧。③所有从机收到地址帧后,都将接收的地址与本机的地址比较。对于地址相符的从机,使自己的SM2位置0(以接收主机随后发来的数据帧),并把本站地址发回主机作为应答;对于地址不符的从机,仍保持SM2=1,对主机随后发来的数据帧不予理睬。④从机发送数据结束后,要发送一帧校验和,并置第9位(TB8)为1,作为从机数据传送结束的标志。⑤主机接收数据时先判断数据接收标志(RB8),若接收帧的RB8=0,则存储数据到缓冲区,并准备接收下帧信息。若RB8=1,表示数据传送结束,并比较此帧校验和,若正确则回送正确信号00H,此信号命令该从机复位(即重新等待地址帧);若校验和出错,则发送0FFH,命令该从机重发数据。⑥主机收到从机应答地址后,确认地址是否相符,如果地址不符,发复位信号(数据帧中TB8=1);如果地址相符,则清TB8,开始发送数据。⑦从机收到复位命令后回到监听地址状态(SM2=1)。否则开始接收数据和命令。3.30解:在微机与单片机构成的测控网络信中,62 思考题与习题部分参考答案对于串行口数据传输接口的抗干扰能力,在不超过接口标准指定的适用范围时,都具有一定的抗干扰能力,以保证信号传输的可靠性。但在一些工业测控系统中,通信环境往往十分恶劣,就必须充分考虑通信的抗干扰能力,以保证通信的可靠性。(1)选择合适的通信标准。例如:长距离传输采用RS-485标准能有效抑制功模干扰,采用20Ma电流环可以降低信号对各种电器噪声的敏感程度。(2)在高噪声环境下使用光纤传输介质在高噪声环境下可以有效减少噪声干扰。(3)采用光电隔离技术可以提高系统的安全性和可靠性(4)在发送器输出接口采用限流电路或在发送器输出端外接电容器,可以有效抑制数据传输过程中的串扰。(5)采取降低发送端数据速率的方法可以减少接收端接收数据益处的错误。3.31解:11(位)×3600(字符/分钟)=39600b/分钟=660b/s(方式3为每个字符11位)。3.32解:主程序框图如下:串口初始化FFH送SBUF设标志调延时程序标志位取反标志为零标志为1FF送SBUF标志为零OOH送SBUF程序如下:ORG0040HMOVSCON,#00HMOVSBUF,#0FFHSETBCMOV00H,CAA:ACALLDELAYCPL00H62 思考题与习题部分参考答案MOVC,00HJCBBMOVSBUF,#00HSJMPCCBB:MOVSBUF,#0FFHCC:AJMPAADELAY:MOVR7,#8D1:MOVR6,#250D2:MOVR5,#250D3:DJNZR5,D3DJNZR6,D2DJNZR7,D1RETEND3.33解:采用查询方式编写发送程序如下:ORG0000HLJMPSTARTORG0030HSTART:MOVSCON,#80H;设定方式2发送MOVPCON,#80HMOVR0,#20H;给待发送数据块地址指针R0置初值MOVR7,#16;给数据块长度计数器R7置初值LS:MOVA,@R0;取一字节数据送AMOVC,PMOVTB8,C;P随A变,P→TB8MOVSBUF,A;启动发送JNBTI,$;查询发送标志,等待一字节发送完CLRTI;清TI标志位DJNZR7,LSRETEND3.34解:程序如下:ORG0000HLJMPSTARTORG0100HSTART:MOVTMOD,#20H;设定T1为模式2定时MOVTH1,#0F3H;送时间常数MOVTL1,#0F3HSETBTR1;启动定时器T1MOVSCON,#0D0H;串行接口设定为方式3,并允许接收MOVR0,#30HMOVR7,#16JNBRI,$;查询等待接收CLRRI62 思考题与习题部分参考答案MOVA,SUBF;从串行接口中读取数据JNBP,PN;对该字节进行查错处理若P=RB8无错,否则有错JNBRB8,PER;若P=1,RB8=0,有错,转出错处理LJMPRIG;若P=1,RB8=1,无错,转保存数据PN:JBRB8,PER;若P=0,RB8=1,有错,转出错处理RIG:MOV@R0,A;若P=0,RB8=0,无错,保存接收到的数据INCR0DJNZR7,LOOP;16字节未接收完,则继续CLR7F;正确接收完16位数据,清出错标志位7FSJMP$PER:SETB7F;校验有错,置位7FSJMP$END第4章4.1解:MCS-51系列单片机具有很强的外部扩展功能。其外部引脚可构成三总线结构,即地址总线、数据总线和控制总线。单片机所有的外部扩展都是通过三总线进行的。(1)地址总线(AB)地址总线用于传送单片机输出的地址信号,宽度为16位,可寻址的地址范围为216=64KB。地址总线是单向的,只能由单片机向外发出。P0口提供低8位地址,P2口提供高8位地址。由于P0口既做地址线又做数据线,分时复用,所以,P0口提供的低8位地址是由P0口经锁存器提供的。锁存信号是由CPU的ALE引脚提供的。(2)数据总线(DB)数据总线是由P0口提供的,宽度为8位。P0口是双向三态口,是单片机应用系统中使用最频繁的通道。P0口提供的数据总线上要连接多个扩展的外围芯片,而某一时刻只能有一个有效的数据传输通道。具体哪一个芯片的数据通道有效,是由各个芯片的片选信号控制选择的。欲使CPU与某个外部芯片交换数据,则CPU必须先通过地址总线发出该芯片的地址,使该芯片的片选信号有效,则此时P0口数据总线上的数据只能在CPU和该芯片之间进行传送。(3)控制总线(CB)控制总线实际上是CPU输出的一组控制信号。每条控制信号都是单向的,但是由多条不同的控制信号组合而成的控制总线则是双向的。MCS-51系列单片机中用于系统扩展的控制信号有,,,ALE和。4.2解:接口(也称为I/O接口)是指连接CPU与外部输入/输出设备之间的部件,这些部件是CPU与外设之间进行信息传送的媒介。每个I/O接口芯片都有一个或几个端口,一个端口对应于接口芯片内部的一个寄存器或一组寄存器,计算机系统要为每个端口分配一个地址,各个端口的地址是唯一的,不能重复。在信息传送过程中,接口起着数据锁存、数据缓冲、输入/输出、联络、数据转换、中断管理、时序控制、可编程、电器特征匹配等作用。62 思考题与习题部分参考答案4.3解:CPU与外设之间传输数据的控制方式通常有三种:程序方式、中断方式和DMA方式。程序方式:指用输入/输出指令,来控制信息传输的方式,是一种软件控制方式,根据程序控制的方法不同,又可以分为无条件传送方式和条件传送方式。无条件传送方式接口简单,适用于那些能随时读写的设备。条件传送方式(查询方式)的特点是接口电路简单,CPU利用率低(程序循环等待),接口需向CPU提供查询状态。适用于CPU不太忙,传送速度要求不高的场合。要求各种外设不能同时工作,外设处于被动状态。中断方式:当外设准备好时,由外设通过接口电路向CPU发出中断请求信号,CPU在允许的情况下,暂停执行当前正在执行的程序,响应外设中断,转入执行相应的中断服务子程序,与外设进行一次数据传送,数据传送结束后,CPU返回继续执行原来被中断的程序。其特点是CPU的利用率高,外设具有申请CPU中断的主动权,CPU和外设之间处于并行工作状态。但中断服务需要保护断点和恢复断点(占用存储空间,降低速度),CPU和外设之间需要中断控制器。适用于CPU的任务较忙、传送速度要求不高的场合,尤其适合实时控制中的紧急事件处理。存储器直接存取方式(DMA):外设利用专用的接口(DMA控制器)直接与存储器进行高速数据传送,并不经过CPU(CPU不参与数据传送工作),总线控制权不在CPU处,而由DMA控制器控制。其特点是接口电路复杂,硬件开销大。大批量数据传送速度极快。适用于存储器与存储器之间、存储器与外设之间的大批量数据传送的场合。4.4解:在计算机系统中,凡需要进行读写操作的部件都存在编址的问题。存储器的每个单元均有自己的地址,对于I/O接口,则需要对接口中的每个端口进行编址。通常采取两种编址方法:一种是独立编址,另一种是统一编址。统一编址又称“存储器映射方式”。在这种编址方式下,I/O端口地址置于存储器空间中,在整个存储空间中划出一部分空间给外设端口,端口和存储单元统一编址。其优点是无需专门的I/O指令,对端口操作的指令类型多,从而简化了指令系统的设计。缺点是端口占用存储器的地址空间,使存储器容量更加紧张,同时端口指令的长度增加,执行时间较长,端口地址译码器较复杂。独立编址又称“I/O映射方式”。这种方式的端口单独编址构成一个I/O空间,不占用存储器地址空间。其优点是端口所需的地址线较少,地址译码器较简单,采用专用的I/O指令,端口操作指令执行时间少,指令长度短。缺点是输入输出指令类别少,一般只能进行传送操作。MCS-51单片机采用了统一编址方式,即I/O端口地址与外部数据存储单元地址共同使用0000H~FFFFH(64KB)。因此,MCS-51单片机应用系统扩展较多外部设备和I/O接口时,要占去大量的数据存储器的地址。4.5解:62 思考题与习题部分参考答案所谓的全地址译码法是利用译码器对系统地址总线中未被外扩芯片用到的高位地址线进行译码,以译码器的输出作为外围芯片的片选信号。全地址译码法芯片的地址范围确定方法是:以外部扩展的全部芯片未用到的地址线作为地址译码器的输入,译码器的输出作为片选信号接到外部扩展芯片上。全地址译码法优点是存储器的每个存储单元只有惟一的一个系统空间地址,不存在地址重叠现象;对存储空间的使用是连续的,能有效地利用系统的存储空间;利用同样的高位地址线,全地址译码法编址产生的选片线比线选法多,为系统扩展提供了更多的冗余条件。其缺点是所需地址译码电路较多,尤其在单片机寻址能力较大和所采用的存储器容量较小时更为严重。全地址译码法是单片机应用系统设计中经常采用的方法。部分地址译码法是指单片机的未被外扩芯片用到的高位地址线中,只有一部分参与地址译码,其余部分是悬空的。在部分地址译码方式下,无论CPU使悬空的高位地址线上的电平如何变化,都不会影响它对外部存储单元的选址,故存储器每个存储单元的地址不是惟一的,存在地址重叠现象。因此,采用部分地址译码法时必须把程序和数据存放在基本地址范围内(即悬空的高位地址线全为低电平时存储芯片的地址范围),以避免因地址重叠引起程序运行的错误。部分地址译码法的优点是可以减少所用地址译码器的数量。4.6解:P2口用作扩展存储器的高8位地址总线以后,即使没有全部占用,空余的几根也不宜用作I/O口,否则会给软件编写及使用带来不必要的麻烦。主要是时序上处理比较困难。4.7解:程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由和信号控制,而程序存储器由读选通信号控制,这些信号在逻辑上时序上不会产生冲突,因此,两者虽然共处于同一地址空间,但由于控制信号不同,所以不会发生总线冲突。4.8解:硬件连接图如下图所示。图4.8题硬件连接电路图各芯片的地址范围为:2732:E000H~EFFFH6116:D800H~DFFFH8255:BFFCH~BFFFH4.9解:硬件连接电路图如图4.9所示。各芯片的地址范围为:2764(1#):0000H~1FFFH2764(2#):2000H~3FFFH6264(1#):4000H~5FFFH6264(2#):6000H~7FFFH62 思考题与习题部分参考答案图4.94.9题硬件连接电路图4.10解:(1)并行总线扩展的方法(2)串行口扩展方法(3)I/O端口模拟串行方法(4)通过单片机内I/O的扩展方法4.11解:8255A有3种工作方式:方式0、方式1和方式2。①方式0(基本输入/输出方式)。这种方式不需要任何选通信号,适合于无条件传输数据的设备,数据输出有锁存功能,数据输入有缓冲(无锁存)功能。②方式1(选通输入/输出方式)。这种工作方式下,A组包括A口和C口的高四位(PC7~PC4),A口可由程序设定为输入口或输出口,C口的高四位则用来作为输入/输出操作的控制和同步信号;B组包括B口和C口的低四位(PC3~PC0),功能和A组相同。③方式2(双向I/O口方式)。仅A口有这种工作方式,B口无此工作方式。此方式下,A口为8位双向I/O口,C口的PC7~PC3用来作为输入输出的控制和同步信号。此时,B口可以工作在方式0或方式1。4.12解:程序如下:MOVDPTR,#7F03HMOVA,#10010100BMOV@DPTR,A4.13解:写入控制端口的控制字的最高位为1则为方式控制字,否则为C口置位/复位控制字。4.14解:8155输入时钟的周期=1/500×103=2×10-6(s),8155定时器/计数器的初值=20×10-3/2×10-6=10000=2170H。由于定时器/计数器按方式1工作,所以写入定时器/计数器的初值为62 思考题与习题部分参考答案6170H。程序如下:ORG0000HLJMPSTARTORG0100HSTART:MOVDPTR,#7F04H;写定时器/计数器的初值MOVA,#70HMOVX@DPTR,AINCDPTRMOVA,#61HMOVX@DPTR,AMOVDPTR,#7F00H;写命令字,启动定时器/计数器工作MOVA,#0C5HMOVX@DPTR,ASJMP$END4.15解:设8155有关寄存器端口地址为:20H命令寄存器24H定时器低字节25H定时器高字节在8155的TIMEROUT引脚上输出10mS方波的程序如下:ORG1000HMOVR0,#25HMOVA,#58HMOVX@R0,ADECR0MOVA,#0F0HMOVX@R0,AMOVR0,#20HMOVX@R0,ASJMP$4.16解:电路连接图如图4.16所示。图4.164.16题硬件连接电路图62 思考题与习题部分参考答案其中,PB0~PB3接红色发光二极管,PB4~PB7接绿色发光二极管。设MCS-51单片机主频为1MHz。程序如下:ORG1000HSTART:MOVDPTR,#7FFFH;数据指针指向8255A控制口MOVA,#80HMOVX@DPTR,A;工作方式字送8255A控制口MOVDPTR,#7FFDH;数据指针指向8255A的B口LP1:MOVA,#0FH;置红色发光二极管亮MOVX@DPTR,A;置红色发光二极管亮LCALLDELAY;调用1S延时子程序MOVA,#0F0HMOVX@DPTR,A;置绿色发光二极管亮LCALLDELAYLJMPLP1;循环执行DELAY:MOVR7,#8;1S延时子程序D1:MOVR6,#250D2:MOVR5,#250D3:DJNZR5,D3DJNZR6,D2DJNZR7,D1RETSJMP$END4.17解:RS-232C采取不平衡传输方式,是为点对点(即只用一对收、发设备)通信而设计的,采用负逻辑,其驱动器负载为3kW~7kW。由于RS-232C发送电平与接收电平的差仅为2~3V,所以其共模抑制能力差,再加上双绞线上的分布电容,因此,RS-232C适用于传送距离不大于15m,速度不高于20kb/s的本地设备之间通信的场合。RS-422由RS-232发展而来,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到1220m(速率低于100kb/s时),并允许在一条平衡总线上最多连接10个接收器。RS-422是一种单机发送、多机接收的单向、平衡的通信总线标准。RS-485是在RS-422的基础上制定的标准,增加了多点、双向通信能力,通常在要求通信距离为几十米至上千米时,广泛采用RS-485总线标准。它采用平衡发送和差分接收,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成TTL电平。具有较高的灵敏度,能检测低至200mV的电压,具有抑制共模干扰的能力,数据传输可达千米以上。RS-232的双机通信接口电路如图4.17-1所示。62 思考题与习题部分参考答案图4.17-14.17-1题硬件连接电路图RS-422和RS-485的双机通信接口电路如图4.17-2所示。图4.17-24.17-2题硬件连接电路图4.18解:DS12C887是美国Dallas公司生产的实时日历时钟芯片,采用CMOS技术,与MC146818B和DS1287管脚兼容,可直接替换。内含一个锂电池,在断电情况下运行十年以上不丢失数据。具有秒、分、时、星期、日、月、年计数功能,对于一天内的时间记录,有12小时制和24小时制两种模式。在12小时制模式中,用AM和PM区分上午和下午,可实现闰年调整。时间的表示方法有两种,二进制数和BCD码表示方法。内部有128字节RAM,其数据具有掉电保护功能。可以选择Motorola和Intel总线时序。用户可对DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。工作电压为4.5~5.5V,工作电流为7~15mA。DS12C887具有功耗低、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。DS12C887内部有128B的存储器,系统占用15B,用户可用113B,具体分布情况如下表所示。地址功能取值范围二进制十进制00H秒00~3BH00~5901H秒报警00~3BH00~5902H分00~3BH00~5903H分报警00~3BH00~5962 思考题与习题部分参考答案04H时,12小时模式0~0CHAM,81~8CHPM01-12AM,81-92PM时,24小时模式00~17H00~2305H时报警,12小时模式0~0CHAM,81~8CHPM01-12AM,81-92PM时报警,24小时模式00~17H00~2306H星期,星期日=101~07H01~0707H日01~1FH01~3108H月01~0CH1~1209H年00~63H00~990AH控制寄存器A0BH控制寄存器B0CH控制寄存器C0DH控制寄存器D32H世纪13H,14H19,200EH~31H,33H~7FH用户数据区4.19解:MAX692A是美国Maxim公司的系统监控芯片产品,具有后备电池切换、电压监视器、“看门狗”监控等功能。4.20解:“看门狗(WDT)”,也称为程序监视定时器。WDT的作用是通过不断监视程序每周期的运行事件是否超过正常状态下所需要的时间,从而判断程序是否进入了“死循环”,并对进入“死循环”的程序作出系统复位处理。在程序中设置适当的指令,清WDT,就可监视微处理器的工作。例如在主程序开始时,将WDT置位,如果主程序执行过程中产生死循环,就无法清WDT,超过WDT的定时时间时,WDT就会对微处理器发出复位信号。从而实现对系统程序的监控。4.21解:I2C总线是由串行数据线SDA和串行时钟线SCL构成的,可发送和接收数据。它允许若干兼容器件共享总线。所有挂接在I2C总线上的器件和接口电路都应具有I2C总线接口,且所有的SDA/SCL同名端相连。总线上所有器件要依靠SDA发送的地址信号寻址,不需要片选线。I2C总线最主要的优点是其简单性和有效性。占用的空间小,降低了互连成本。总线的长度可高达7.6m,并且能够以10kbps的最大传输速率支持40个组件。支持多主控器件,其中,任何能够进行发送和接收的设备都可以成为主器件。主控能够控制信号的传输和时钟频率。当然,在某时刻只能有一个主控器件。在单片机控制系统中,广泛使用I2C器件。如果单片机自带I2C总线接口,则所有I2C器件对应连接到该总线上即可;若无I2C总线接口,则可以使用I/O口模拟I2C总线。使用单片机I/O口模拟I2C总线时,硬件连接非常简单,只需两条I/O口线即可,在软件中分别定义成SCL和SDA。MCS-51单片机实现I2C总线接口电路如图4.21所示。图4.214.21题硬件连接电路图电路中单片机的P1.0引脚作为串行时钟线SCL,P1.162 思考题与习题部分参考答案引脚作为串行数据线SDA,通过程序模拟I2C串行总线的通信方式。I2C总线适用于通信速度要求不高而体积要求较高的应用系统。第5章5.1解:传感器是将电量或非电量转换为可测量的电量的检测装置,是由敏感元件和转换元件组成的。国际电工委员会IEC将传感器定义为:传感器是测量系统中的一种前端部件,它将各种输入变量转换成可供测量的信号。5.2解:(1)输入通道的特点:①输入通道要靠近拾取对象采集信息,以减少传输损耗,防止干扰;②输入通道工作环境因素严重影响通道的方案设计,没有选择的余地;③传感器的输出往往是模拟信号、微弱信号输出,转换成计算机要求的信号电平时,需要使用一些模拟电路技术,因此输入通道通常是模拟、数字等混杂电路;④传感器、变送器的选择和环境因素决定了输入通道电路设计的繁简,因为在输入通道中必须将传感器、变送器的输出信号转换成能满足计算机输入要求的TTL电平,输入通道中传感器、变送器输出信号与计算机逻辑电平的相近程度影响着输入通道的繁简程度;⑤传感器输出信号一般比较微弱,为便于计算机拾取,常需要放大电路,这也是计算机系统中最容易引入干扰的渠道,所以输入通道中的抗干扰设计是非常重要的。(2)输出通道的特点:①小信号输出,大功率控制;②输出伺服驱动控制信号,在伺服驱动系统中的状态反馈信号,作为检测信号输入至输入通道;③输出通道接近被控对象,环境复杂恶劣,电磁和机械干扰较为严重。5.3解:D/A转换器(DigittoAnalogConverter)是将数字量转换成模拟量的器件,通常用DAC表示,它将数字量转换成与之成正比的电量,广泛应用于过程控制中。5.4解:D/A转换器的主要性能指标有:(1)分辨率:单位数字量所对应模拟量增量,即相邻两个二进制码对应的输出电压之差称为D/A转换器的分辨率。它确定了D/A产生的最小模拟量变化,也可用最低位(LSB)表示。(2)精度:精度是指D/A转换器的实际输出与理论值之间的误差,它是以满量程VFS的百分数或最低有效位(LSB)的分数形式表示。(3)线性误差:D/A转换器的实际转换特性(各数字输入值所对应的各模拟输出值之间的连线)与理想的转换特性(始、终点连线)之间是有偏差的,这个偏差就是D/A的线性误差。即两个相邻的数字码所对应的模拟输出值(之差)与一个LSB所对应的模拟值之差。常以LSB的分数形式表示。62 思考题与习题部分参考答案(4)转换时间TS(建立时间):从D/A转换器输入的数字量发生变化开始,到其输出模拟量达到相应的稳定值所需要的时间称为转换时间。5.5解:D/A转换芯片的主要结构特性为:(1)数字输入特性数字输入特性包括接收数的码制、数据格式以及逻辑电平等。目前批量生产的D/A转换芯片一般都只能接收自然二进制数字代码。(2)模拟输出特性目前多数D/A转换器件均属电流输出器件,手册上通常给出的输入参考电压及参考电阻之下的满码(全l)输出电流I0。另外还给出最大输出短路电流以及输出电压允许范围。(3)锁存特性及转换控制D/A转换器对数字量输出是否具有锁存功能将直接影响与CPU的接口设计。如果D/A转换器没有输入锁存器,通过CPU数据总线传送数字量时,必须外加锁存器,否则只能通过具有输出锁存功能的I/O给D/A送入数字量(4)参考电源D/A转换中,参考电压源是唯一影响输出结果的模拟参量,是D/A转换接口中的重要电路,对接口电路的工作性能、电路的结构有很大影响。5.6解:①8位并行D/A转换;②片内二级数据锁存,提供数据输入双缓冲、单缓冲、直通三种工作方式;③电流输出型芯片,电流稳定时间1us。通过外接一个运算放大器,可以很方便地提供电压输出;④DIP20封装、单电源(+5V~+15V,典型值+5V);⑤只需在满量程下调整其线性度;⑥单一电源供电(十5V~+15V),⑦低功耗,200mW。⑧与MCS-51连接方便。5.7解::片选输入线,低电平有效。ILE:数据锁存允许输入,高电平有效。:写1信号输入,低电平有效。当,ILE,=010时,数据写入DAC0832的第一级锁存。:写2信号输入,低电平有效。:数据传输信号输入,当,=00时,数据由第一级锁存进入第二级锁存,并开始进行D/A转换。5.8解:62 思考题与习题部分参考答案(1)D/A转换器的数字输入是由数据线引入的,而数据线上的数据是变动的,为了保持D/A转换器输出的稳定,就必须在微处理器与D/A转换器输入口之间增加锁存数据的功能,即必须有锁存器。(2)有锁存器和无锁存器的D/A转换器与80C51接口的电路有显著不同。①内部无锁存器的D/A转换器,如DAC80(8位)、AD7520(10位)、AD7521(12位)。它们的结构简单,内部不带锁存器。对于这一类D/A转换器,最适合与单片机80C51的P1、P2等具有输出锁存功能的I/O口直接接口。但是当它们与P0口相接口时,则需在器输入端增加锁存器。②内部有锁存器的D/A转换器,不仅具有数据锁存器,而且还提供地址译码电路,有些包含双重,甚至多重的数据缓冲结构,如DAC0832、DAC1230、AD7542以及AD7549等。这种类型的D/A转换器以高位的居多。它们以与80C51中的P0口相接口较为合适,一般只是是需要占用多根口线。5.9解:逐次逼近式A/D转换器的转换原理即“逐位比较”,如图5.9所市,它由N位寄存器、D/A转换器、比较器和控制逻辑等部分组成,N位寄存器代表N位二进制数码。图5.9逐次逼近式A/D转换器原理图当模拟量Vx送入比较器后,启动信号通过控制逻辑电路启动A/D开始转换。首先,置N位寄存器最高位(Dn-1)为“1”,其余位清“0”;N位寄存器的内容经D/A转换后得到整个量程一半的模拟电压VN,与输入电压Vx比较。若Vx≥VN时,则保留Dn-1=1;若Vx