欢迎来到人人文库网! | 帮助中心 人人文档renrendoc.com美如初恋!
人人文库网
全部分类
  • 图纸下载>
  • 教育资料>
  • 专业文献>
  • 应用文书>
  • 行业资料>
  • 生活休闲>
  • 办公材料>
  • 毕业设计>
  • ImageVerifierCode 换一换
    首页 人人文库网 > 资源分类 > PPT文档下载  

    单片机原理与应用第8章

    • 资源ID:7343450       资源大小:3.45MB        全文页数:176页
    • 资源格式: PPT        下载积分:20积分
    扫码快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
    二维码
    微信扫一扫登录

    手机扫码下载

    请使用微信 或支付宝 扫码支付

    • 扫码支付后即可登录下载文档,同时代表您同意《人人文库网用户协议》

    • 扫码过程中请勿刷新、关闭本页面,否则会导致文档资源下载失败

    • 支付成功后,可再次使用当前微信或支付宝扫码免费下载本资源,无需再次付费

    账号:
    密码:
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源(1积分=1元)下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机原理与应用第8章

    ,第八章 单片机系统扩展,8.1 片外总线结构和最小应用系统8.2 外围扩展 8.3 应用接口扩展 8.4 可编程器件的扩展简介 思考练习题,8.1 片外总线结构和最小应用系统MCS-51系列单片机一块芯片本身就是一个基本的计算机,可以完成计算机的一些基本功能。但在实际系统应用中,它的功能可能不够,还需要进行外部扩展。扩展是通过总线方式等实现的。8.1.1 80C51片外总线结构我们知道,CPU内部和外部电路都采用总线结构。所谓扩展,就是通过CPU的外部总线连接外部电路和CPU一起工作,增加CPU的功能。80C51单片机的外部扩展可通过地址总线、数据总线和控制总线进行,但由于受到管脚限制,数据线和地址线低8位复用,且与I/O口线兼用,如图8-1所示。,图8-1 MCS-51片外三总线,1地址总线(AB)80C51地址总线由16位构成:由P0口经地址锁存器(如74373)提供低8位地址(A0A7),P2口提供高8位地址(A8A15),用于传送单片机输出的地址信号,决定操作的存储单元或I/O口。地址总线是单向总线,只能由单片机送出。可直接访问的存储单元为216,即通常所说的寻址范围为64KB。对外部寻址时,P0口是低8位地址和8位数据的复用线,P0口首先将低8位的地址发送出去,当ALE由高变低时,用锁存器(74373)将先送出的低8位地址锁存后再传送数据,在下一次ALE变高时,和P2口高8位地址共同作用寻址。,2数据总线(DB)数据总线宽度为8位,由P0口提供,用于单片机与存储器或I/O端口之间传送数据。它与单片机处理数据的字长是一致的,所以我们通常也称MCS-51为8位机,即指其每次处理8位数据。数据总线是双向的,可以进行两个方向的数据传送。,8.1.2 总线驱动能力及扩展 单片机在外部扩展时,根据芯片的生产厂家、工艺等的不同及所带负载的类型和数量,要考虑设计的电路是否能稳定可靠工作。因此在应用系统设计时要遵循一些基本原则。1TTL电路和CMOS电路的带负载问题在单片机应用系统中,经常会遇到TTL与CMOS两种电路并存的情况,这就存在将两种器件互相对接的问题。例如,早期的8031是用双极型晶体管工艺制造的,而现在生产的89C51(87C51)采用CMOS工艺。无论是用TTL电路驱动CMOS电路还是用CMOS电路驱动TTL电路,驱动门必须能为负载门提供合乎标准的高、低电平和足够的驱动电流,这样电路才能协调一致地工作,也就是必须同时满足下列各式:,VOH(min)VIH(min) (8-1)VOL(max)VIL(max) (8-2)IOH(max) (8-3)IOL(max) (8-4),上面各式就是电路连接时必须满足的条件。这样,我们就可以根据电路的具体参数来确定电路的连接原则。实际上,式(8-1)、式(8-2)用于解决接口电平的匹配问题,而式(8-3)、式(8-4)用于解决能带多少负载的问题。为便于对照比较,表8-1中列出了常用的TTL和CMOS两种电路的输入、输出特性参数。因为电流条件是任何电路都要满足的,即使同一种电路也有带多少负载的问题,所以我们这里主要考虑电平匹配问题。当TTL与CMOS两种电路并存时,我们主要解决两类问题:一是TTL电路驱动CMOS电路的问题,还有一类是CMOS电路驱动TTL电路的问题。应该说,现在4000(包括4000B)系列CMOS电路应用已经不多,而且它的特性和电源有关,所以我们这里主要针对高速CMOS电路进行讨论。,表8-1 TTL、CMOS电路的输入、输出特性参数,1) TTL电路驱动CMOS电路(1) 用TTL电路驱动74HC系列CMOS电路。根据表8-1给出的数据可知,无论是用74系列TTL电路作驱动门还是用74LS系列TTL电路作驱动门,只有式(8-1)不能满足。74HC系列CMOS电路的VIH(min)=3.5V,而74系列TTL电路(包括74LS系列)的VOH(min)=2.4V图8-2 接上拉电阻提高TTL电路输出的高电平(2.7V),因此,必须设法将TTL电路输出的高电平提升到3.5V以上才能满足要求。解决方法一般是在TTL电路的输出端与电源之间接入上拉电阻Ru,如图8-2所示。当TTL电路的输出为高电平时,其输出级的驱动管截止,负载管导通,故有:VOH=VDDRu×(nIIHI0) (8-5),图8-2 接上拉电阻提高TTL电路输出的高电平,式中的I0为TTL电路输出高电平时的拉电流。由于I0和nIIH近似相等,所以流过Ru的电流很小,只要Ru的阻值不是特别大,输出高电平将被提升至VOHVDD,这样就可以满足要求。(2) 用TTL电路驱动74HCT系列CMOS电路。为了能方便地实现直接驱动,厂家又生产了74HCT系列高速CMOS电路。通过改进工艺和设计,使74HCT系列的VIH(min)值降至2V。这样,TTL电路的输出可以直接接到74HCT系列电路的输入端而无需外加任何元器件,使电路设计应用更加简单、方便。,2) CMOS电路驱动TTL电路当用74HC/74HCT系列CMOS电路驱动TTL电路时,根据表8-1给出的数据可知,无论负载是74系列TTL电路还是74LS系列TTL电路,都可以直接用74HC或74HCT系列CMOS电路直接驱动,可驱动负载的数目不难从表8-1的数据中求出。,2单片机总线驱动扩展在单片机扩展应用中,由于CPU是通过总线与数片存储器芯片及若干个I/O接口芯片相连接的,而且这些芯片可能是TTL器件,也可能是CMOS器件,所以当构成系统时,CPU总线能否支持其负载是必须考虑的问题。当CPU总线上连接的器件均为CMOS器件且数量不多时,因为CMOS器件功耗低,所以一般不会超载。当总线上连接的器件使CPU超载时,就应该考虑总线的驱动问题。这时需在总线上增加缓冲器和驱动器,以增加CPU总线的带负载能力。,虽然都是MCS-51系列单片机,但各个厂家采用的生产工艺不同(TTL或CMOS),产品不同,端口不同,驱动的外部负载电路不同,则带负载能力也不一样。在设计单片机外围扩展电路时都要考虑其是否能驱动所有负载正常工作。特别是外围扩展电路较多时,更要考虑这一问题。在实际系统设计中,首先要详细了解所用芯片的电气指标(高、低电平,输入、输出电流等),如果是TTL和CMOS电路混合系统,不但要考虑电流,还要考虑电平。然后,根据指标要求,考虑单片机是否能驱动所要扩展的所有外围电路,如果不行,则需要进行驱动扩展。,1) 地址和控制总线驱动扩展我们知道,单片机的地址线和控制线都是单向的(单向输出驱动外部设备),因此选用的驱动器也应为单向驱动器。而且由于驱动器是在总线上应用的,所以其要具有三态功能。常用的驱动器有74244和74240(带反向输出),它们都是8位总线驱动器,应用比较简单:输入端接单片机端口,输出端接负载。当然,还要考虑74244本身的带载问题。,2) 数据总线驱动扩展对单片机系统来说,数据是双向传输的,所以数据总线的驱动器也为双向驱动器。对MCS-51来说,因为外设和外部数据存储器共同占用64KB空间,所以理论上可以外接64K个外部设备(当然实际不会)。一般常用的双向驱动器有74245,它是8位双向总线驱动器,有数据传输方向控制端,在单片机控制下可以实现数据的双向传输。,8.1.3 外部扩展芯片的地址译码选择 单片机对外部的访问操作首先要寻址,也就是要找到本次操作的源和目的地址,然后才能进行相应的读写等操作。这样,扩展的外部设备就要有一个唯一的地址,单片机才能对其访问。在计算机中,凡需要进行读写操作的部件都存在编址问题。MCS-5l单片机使用统一编址方式,就是把系统中的外部数据存储器和I/O接口统一编址。在这种编址方式中,I/O接口中的寄存器(端口)与存储器中的存储单元等同对待,具有一个统一的地址空间,不需设置I/O指令和专用信号。具体地讲,就是I/O端口地址与外部数据存储器单元地址共同使用0000HFFFFH这64KB地址空间。,由于外部程序存储器与外部RAM或I/O端口的读操作使用不同的指令和控制信号,所以允许它们的地址重复,因此程序存储器的64KB单元地址的寻址范围也是0000HFFFFH。一般来说,扩展的芯片都有一个片选控制端以控制芯片的工作,为实现对其的访问,单片机首先要选定一些地址线连接到片选控制端,这样,当这些地址线有效时也就实现了对该芯片的访问。一片存储器芯片包含若干个存储单元,对应于若干个单元地址。同样,一片I/O接口芯片也包含多个(端)口,例如数据口、状态口、命令口等,因此一片I/O接口芯片也对应着多个端口地址。存储器需要对存储单元进行编址,而I/O接口则需要对其中的端口进行编址。,外部扩展芯片的地址选择方法(即芯片片选线与地址总线的连接)主要有下面两种。 1线选法一般当外部扩展电路较少时采用这种方法,它简单直观,直接把一位高位地址线连到扩展芯片的片选端,当该位地址线有效时(一般为低电平)即实现了单片机对它的访问。例如扩展两个芯片,芯片1的片选端接地址线A15,芯片2的片选端接地址线A14,都是低电平有效,芯片1的地址范围为4000H7FFFH,芯片2的地址范围为8000HBFFFH。不管芯片内有多少个单元,它们所占的地址空间大小是相同的,都是16KB。,如果芯片内部有若干个单元,则一般用低位地址来控制访问。例如,设芯片1内部有4个单元,可以用A0、A1来控制对它们的访问,这4个单元的地址为A15=0,A14=1,A13A2任意为0或1,A1A0=00、01、10、11,写成二进制为01xx xxxx xxxx xx0001xx xxxx xxxx xx11只要上面地址有效,单片机就能实现对芯片1内部4个单元的访问。可以看到,虽然芯片地址不唯一,但内部单元的地址还是由A1A0确定的。,2全地址译码法线选法简单直观,但是地址空间浪费严重,每个芯片要占用16KB字节空间。当扩展较多RAM及I/O设备时,一般采用全地址译码法。常用的地址译码器有74138(3-8译码器)、74139(双2-4译码器)等。例如在线选法中用A15和A14来控制两个芯片的片选端,用74139进行译码,输入还是A15和A14,但输出可以产生4个选片信号,即可以控制对4个芯片的访问,每个芯片占用地址为16KB;如选用74138作为译码器,输入为A15、A14和A13,则可以产生8个选片信号,每个芯片占用地址为8KB。,应该说,这两种方法是最基本的方法。实际应用中,扩展的RAM、I/O和外部设备的数量及型号、用法不同,所采用的译码方式也不同,如采用分级译码,译码中有控制线、地址线然后从中选择等多种方式。要灵活选择译码方式,尽量不使地址重叠。8.1.4 最小应用系统单片机的最小应用系统是指其在最少外接电路的情况下能正常工作。单片机本身就是一个独立的计算机,所以其应用系统可以非常简单。,图8-3 89C51单片机的最小应用系统,图8-4 8031单片机的最小应用系统,应该看到,最小应用系统仅使单片机系统能正常工作,实际应用中一般要通过I/O口输出控制外部设备,否则没有实际意义。,8.2 外 围 扩 展单一的单片机在实际应用中往往不能满足要求,需要进行外围扩展。外围扩展一种是功能的扩展,如存储器容量不够、I/O口不够等;还有一种是接口的扩展,通过接口使单片机与外部设备协调工作,如与低速设备(打印机)协调工作、对模拟信号进行处理等。市场上可提供的外围设备种类很多,扩展方式各种各样,要遵循经济、适用、稳定、可靠的原则,尽量选用常用器件。单片机系统的有些功能可以由硬件实现,也可以由软件实现,要综合分析,找出最佳方案。,8.2.1 TTL或CMOS芯片扩展的简单I/O接口在单片机应用系统中,常采用TTL或CMOS数字集成电路构成各种类型的简单接口。TTL或CMOS三态门、寄存器、三态缓冲寄存器等电路具有数据缓冲或锁存功能,但自身仅有数据的输入或输出以及选通端或时钟端,没有地址线和读写控制线,其扩展方法与I/O接口芯片不同。它们的选通端或时钟端应与地址线和控制线的逻辑组合的输出相连,数据线与数据总线相连,但数据线数量不必要求一定与MCS-5l单片机的数据总线数相等,可以少于8根数据线,视具体情况而定。用其扩展的I/O接口具有电路简单、成本低、配置灵活方便等特点,在单片机应用系统中被广泛采用。,1寄存器扩展的简单输出接口寄存器(由触发器或锁存器构成)用于寄存微处理器送出的数据和命令。只要是寄存器,都可以用来存储数据。常用的寄存器有7474(2×1位)、74175(4位)和74273(8位)等。设计时,要根据具体要求选择相应的电路。例如74273 8D触发器如图8-5所示,8个数据输入端D0D7与单片机的数据总线相连,8个数据输出端Q0Q7与外设相连。加到74273时钟端CLK的脉冲信号的上升沿将出现在D0D7上的数据写入该触发器寄存,寄存的数据可由上的脉冲下降沿清除。该触发器寄存数据的过程是由单片机执行MOVX指令完成的。执行MOVX指令时,微处理器发出写寄存器信号,该信号通常是由端口地址与写信号,图8-6 74273线选扩展图,2三态缓冲器扩展的输入接口单片机是通过总线方式进行外部扩展的,而三态缓冲器因为具有高阻态,可以在总线上应用,所以应用很多,也很方便。在使用三态缓冲器扩展时,首先要确定数据的传输方向。我们知道,74244是单向的,可以向外送数据,也可以接收数据,但只能单方向传送。74245是双向三态缓冲器,可以双向传输数据。因此,在设计中首先要根据应用的要求确定数据传输方式,然后再选择相应的器件。设从外设输入数据和状态信号,通过数据输入三态缓冲器或三态总线驱动器经数据总线传送给微处理器,可选用74244 8位三态总线驱动器,如图8-7所示。,图8-7 74244三态总线驱动器,用线选法扩展74244作为输入接口的电路如图8-8所示。如Ai=A7,74244的端口地址用DPTR间接寻址为FF7FH(高8位00FFH,低8位007FH),则将输入设备的数据读入累加器A的程序段如下:MOV DPTR,#0FF7FHMOVX A,DPTR,图8-8 74244线选扩展,3三态缓冲寄存器扩展输入/输出接口三态缓冲寄存器由三态缓冲器和寄存器组成,所以具有寄存器和三态缓冲器的特点。数据进入寄存器寄存后并不直接从寄存器输出,要经过三态缓冲器才能输出。三态缓冲寄存器既可以作为数据输入寄存器,又可以作为数据输出寄存器。寄存器既可以由触发器构成,也可以由锁存器构成。触发器与锁存器是有差别的,锁存器有一锁存允许信号端,当加到该端的信号为有效电平时,Q端随D端变化,这时锁存器好像一个“直通门”。当锁存允许信号变为无效时,锁存器将此变化前一瞬间D端的输入信号锁存起来,此后D端的变化不再影响Q端。,将三态缓冲锁存器的锁存允许端接有效电平,三态缓冲锁存器即为三态缓冲器;将三态缓冲锁存器的输出允许端接有效电平,三态缓冲锁存器即为锁存器。74373是三态缓冲锁存器,74374是三态缓冲触发器,它们的引脚排列相同,如图8-9所示。应该注意到,它们都是单向数据传输的。传输数据可以采用中断、查询等多种方式。,图8-9 74373和74374三态缓冲寄存器,8.2.2 程序存储器扩展我们知道,在MCS-51系列单片机中,程序空间内外统一编址,最大为64KB。8031片内没有程序存储器,而基本的8051/8751/8951内部的程序存储空间为4KB(当然现在也有64KB产品),所以,如果在我们的应用系统中选用8031或程序量超过4KB时,就要在外部扩展程序存储器。从应用角度考虑,尽量采用内部含有ROM(EPROM/EEPROM)的产品,这样会使系统简单可靠(包括选用超过4KB ROM的产品)。而且随着电子技术的迅速发展,内部有ROM的产品与8031价格已接近。ROM为厂家定制产品,由用户把程序编好后由生产CPU的厂家在生产时写入,不可更改,但成本低,保密性好,工作可靠,适用于大批量成熟产品的生产。,EPROM产品应用比较广泛,程序可擦除修改,但需要专门的擦除器和写入器。现在EEPROM产品应用非常广泛,它具有在线多次擦除、写入的特点,写入速度快。另外,现在市场上已很难买到小容量的EPROM产品,所以读者在扩展时可直接选用27512,价格也便宜,如程序量不满,将相应的高位地址线不用即可,具体应用见图8-10。如果是8751/ 8951产品,要接高电平,而且因为程序存储空间内外统一编址,所以片外程序要从4KB以上存放,这样当执行程序超过4KB时自动访问外部程序存储器。当然,在这种情况下也可将接低电平,作8031使用,程序全部放在外部程序存储器中。应该说,现在单片机产品内部程序存储器的容量有多种选择,故在实际应用中已很少扩展片外程序存储器。,图8-10 8031片外扩展64 KB EPROM和32 KB RAM系统,8.2.3 数据存储器扩展基本的MCS-51单片机片内RAM的容量只有128 B(80C52有256B),当系统计算比较多,工作过程中有大量数据时,片内RAM就不够用了,此时就需片外扩展数据存储器RAM,最大可扩展64KB(特殊应用可不受此限制)。由于单片机面向控制,对于一般实际需要,扩展容量不大,若需要具有随机读写功能,则采用静态RAM较方便,如6116为2K×8位RAM,6264为8K×8位RAM,62256为32K× 8位RAM等,与程序存储器同样道理,一般可直接选用62256。与动态RAM相比,静态RAM无需考虑保持数据而设置有刷新电路,故扩展电路较简单。,1静态RAM的扩展静态RAM存储器有读出、写入、维持三种工作方式,这些工作方式的操作控制见表8-2。扩展应用62256,就是根据62256的工作方式,由单片机在读出、写入和维持数据时在相应的地址处发出对应的控制信号,完成对62256的操作。,表8-2 62256(6264等)的操作控制,图8-10所示为采用大容量存储器芯片27512和62256为8031片外扩展64KB EPROM和32KB RAM的原理电路图。其中8031要接地,如为8751/8951而不扩展程序存储器可直接将27512去掉,这时接高电平。图中62256的片选端接8031的P2.7,P2.7输出为0时,才能选通62256,所以它的地址为0000H7FFFH。27512的接地,为常选通,地址为0000HFFFFH。如选用其它RAM芯片,则仅是地址线数目和个别引脚有些差别。,2EEPROM的扩展EEPROM即电擦除可编程只读存储器,它突出的优点是能够在线擦除和改写,不像EPROM必须用紫外线照射才能擦除。EEPROM既具有ROM的非易失性的优点,又能像RAM一样随机地进行读写,每个单元可重复进行1万次改写,保留信息的时间长达20年,不存在EPROM在日光下信息缓慢丢失的问题。过去,EEPROM产品在写数据时需要比较高的编程电压(12.5V),但现在一般EEPROM产品在写入时能自动完成擦除,且不再需要专用的编程电源,可以直接用单片机系统的5V电源来完成,这大大方便了用户,使EEPROM产品的应用更加广泛。,在芯片的引脚设计上,2KB的EEPROM 2816与同容量的EPROM 2716和静态RAM 6116是兼容的,8KB的EEPROM 2864A与同容量的EPROM 2764A和静态RAM 6264也是兼容的,因此可以直接作为数据存储器和程序存储器使用。上述这些特点使硬件电路的设计和调试更加方便。现在EEPROM产品主要有两类:一类采用并口操作,如上面所说的28××系列;还有一类采用串口操作,如ATMEL的24C××等,只能做RAM扩展。,在调试程序中也可用EEPROM代替仿真RAM,既可方便修改程序,又能保存调试好的程序。当然,与RAM芯片相比,EEPROM的写操作速度很慢;另外,它的擦除/写入是有寿命限制的,虽然有一万次之多,但也不宜用于数据频繁更新的场合。因此,应注意平均地使用各单元,不然有些单元可能提前就结束寿命了。EEPROM的取数时间与相同容量的EPROM速度相当,均为250ns,甚至还快一些,但写入的时间较长,一般为10ms。由于EEPROM多用于在工作情况下改写存储单元中的内容,即在程序运行中进行改写,因此需在软件设计时充分考虑这一特点。,图8-11 2864A DIP引脚图,表8-3 2864A的工作方式,应该说,EEPROM产品不同,工作方式也有一些差别(如并行、串行,页操作等)。2864A的工作方式如表8-3所示,有4种工作方式。,3) 写方式2864A写方式分为字节写入和页写入两种。16个字节为1页,页写入操作就是每次连续对EEPROM中16个单元进行写入。不论是字节写入还是页写入,写操作都由页装载和页存储两步完成:第一步由CPU(即单片机)向2864A中的页缓冲器写入数据,这一步称为页装载,与一般的静态RAM写操作是一样的。第二步在最后一个字节(即第16个字节)写入到页缓冲器后20ns自动开始,把页缓冲器中的内容写到EEPROM阵列中对应地址的单元中,这一步称为页存储。2864A中有一个16字节的静态RAM用作页缓冲器。EEPROM阵列由512页组成,地址线A3A0选择页缓冲器中的16个字节,A12A4选择512页中的1页。,图8-12 8031外扩2864A系统,*入口参数:N=写入字节数(16)Byte=写入EEPROM的地址(低位)Page =写入EEPROM的地址(高位)Pt=源数据区首址*,int S_DATA, F_DATA, C_DATA, N;XDATAByte低地址;XDATAPage高地址;for(N=0;N<16;N+)S_DATA=*Pt;/取数据Byte=S_DATA;/写入2864ADPTR+;Byte+;,if(Byte=0)Page+;/高位地址加1Byte=Byte-;/数据查询和最后一个字节的原始数据比较ACC7=1;while(ACC7=1)F_DATA=Byte;C_DATA=S_DATAF_DATA;,在应用中要注意EEPROM中程序区和数据区的区分,一定不要重叠,否则会产生灾难性后果。应该说,由于8031已很少使用,图8-12的实用价值并不大,而且很不可靠。但略加变化,将CPU改为8751/8951,2864作为数据存储器使用保存掉电不丢失的数据还是很实用的。8.2.4 人机通道接口随着单片机应用系统功能的增多,在系统运行前和运行中人进行数据输入和工作状态控制已非常普遍。而且,人也希望了解系统运行的实时状态和结果。这样,键盘、显示器等就成为人机交互的良好渠道。因此,人机通道接口设计是单片机应用设计的一个重要方面。,1. 显示接口通过显示接口,显示器可以向人们提供系统参数、运行状态和结果等信息。从电路组成来看,一是要根据显示信息的要求选择合适的显示器件;二是要完成单片机与显示器件的连接,即接口电路的设计。当然,提供所要求的信息还需要有软件的支持。从显示器件来看,可以只采用发光二极管来显示状态,其设计简单,成本低,但显示状态少;也可以使用液晶显示器显示比较复杂的图形等,此设计相对复杂,成本高(有段式、点阵字符式和点阵图形式等显示方式,一般有驱动芯片)。现在单片机应用系统使用最多的LED数码显示器具有设计方便,使用灵活,成本低等特点,已被广泛采用。,1) LED显示器简介通常所说的LED显示器也称为七段LED显示器,其排列形状如图8-13所示,由7个发光二极管构成字型“8”的各个笔画(段)ag。此外,显示器中还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。当在某段发光二极管上施加一定的正向电压时,该段发光二极管(该段笔画)即点亮。这样,通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。通常称控制发光二极管的8位数据位为段选位,显示器共阴极或共阳极的公共连接点为位选位。,图8-13 七段LED显示器,LED显示器中的发光二极管有两种连接方法。(1) 共阳极接法。把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V或位控制端。这样,阴极端输入低电平段(位控制端选通)的发光二极管就导通点亮,而输入高电平的则不点亮。(2) 共阴极接法。把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地或位控制端。这样,阳极端输入高电平段(位控制端选通)的发光二极管就导通点亮,而输入低电平的则不点亮。使用LED显示器时要区分这两种不同的接法。为了显示数字或符号,要为LED显示器提供代码,因为这些代码是与显示字形相对应的,因此称之为字形代码,如表8-4所示。,表8-4 七段LED显示器显示字形编码表,2) LED显示器的工作方式(1) 静态显示。所谓静态显示,就是当显示器显示某一个字符时,相应的段(发光二极管)恒定地导通或截止,直到显示下一个字符为止。例如七段显示器的a、b、c、d、e、f段导通,g段截止,则显示“0”。当b、c段导通而其它段截止时显示“1”。这种显示方式每一位显示器都需要有一个8位输出口控制。当显示器位数较少时,采用静态显示的方法是适合的;当位数较多时,用静态显示所需的I/O口太多,这时一般采用动态显示方法。,(2) 动态显示。实际使用的LED显示器一般都是多位的,为了简化电路,降低成本,可将所有LED显示器的段选线并联在一起,由一个8位I/O口控制,每一个LED显示器的公共端由相应的I/O线控制,实现各位的分时选通。对多位LED显示器,通常都采用动态扫描的方法进行动态显示,即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。为了实现LED显示器的动态扫描,除了要给显示器提供段(字形代码)的输出之外,还要对显示器位加以控制,这就是通常所说的段控和位控。,因此,多位LED显示器接口电路需要有两个输出口,其中一个用于输出8条段控线(有小数点显示);另一个用于输出位控线,位控线的数目等于显示器的位数。对于显示器的每一位来说,每隔一段时间依次点亮。显示器的亮度既与导通电流有关,又与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。,3) 显示扩展应用例8-1 用输出寄存器74273接8个七段显示器(共阴极),试设计接口电路和控制程序。解 因显示器较多(8个),所以采用动态显示方式。8个七段显示器的接口电路需要两片74273,一个段控,一个位控,接口电路如图8-14所示。段选地址为7FFFH(A15=0,A14=1),因为74273输出接有反向器,所以输出低电平有效,相应的段码亮。其中dp没有使用,所以只使用了D6D0 7根数据线。位选的地址为BFFFH(A15=1,A14=0),74273输出高电平有效,三极管打开,选中相应的数码显示器。,虽然图中使用的是共阴极器件,但存储的是共阳极段选码(74273输出接反向器),而且dp不用,为0。DB区数据如程序所示。,图8-14 两片74273接口8个七段显示器的接口电路,*入口参数disbuffer8=源数据区*void delay(uinti);void display(void);void delay(uint i)uint j;for (j=0; j<i; j+),2键盘接口键盘是单片机应用系统中最简单常用的输入设备。操作员通过键盘输入数据或命令,实现简单的人机通信,控制系统的工作状态及向系统输入数据。键盘是一组按键的集合,按键通常是一种常开型按钮开关,平时按键的两个触点处于断开(开路)状态,按下后闭合(短路)。键盘上闭合键的识别由专用硬件实现的,称为编码键盘;靠软件实现的,称为非编码键盘。,过去单片机系统采用的按键开关多为机械弹性开关,由于机械触点的弹性作用,开关在按下闭合时并不能马上稳定,断开时也不会马上断开,因而开关在闭合和断开瞬间均伴随有一连串的抖动。抖动的时间长短由按键开关的机械特性及按键的人为因素所决定,一般为520ms。如果对按键抖动处理不当,可能会引起一次按键被处理多次。为了确保CPU对一次按键仅做一次处理,必须做消除按键抖动处理,在按键闭合稳定后再读取按键的状态。消除按键抖动可用硬件或软件方法。当按键数较少时可采用RC电路、RS触发器、施密特触发器等硬件电路去除抖动。,如果按键数较多,为降低成本,简化电路,一般采用软件方法去除抖动,即当检测到按键状态发生变化时执行一个520ms的延时,待抖动消除后再检测按键的状态是否真正发生变化。随着电子技术和电路加工工艺水平的发展,现在很多单片机应用系统(特别是产品类,量比较大)都使用薄膜开关。薄膜开关是由具有一定柔性的绝缘材料层和导电材料层组成的一种多层结构非自锁按键开关,它集按键开关、面板、功能标记、读数显示窗、指示灯透明窗、开关内连线、开关电路引出线以及常规面板上要标注的文字、符号、装饰内容为一体,从而构成整个电子操纵系统,带来了电子产品外观及操作系统的根本变革。,薄膜开关装置中有许多种不同形式和结构的按键。按键的基本性能例如行程、操作力和机械寿命主要由按键类型和材料决定,其中包括单片线路开关和双片线路开关,具有金属弹片按键、聚脂按键和无感按键等形式。这种开关由厂家根据用户的要求直接定做,具有体积小,美观大方,工作可靠和寿命长等特点,当量大、键数多时成本也很低,所以现在应用也很普遍。,键盘有独立式和行列式(矩阵式)两类。1) 独立式键盘独立式键盘的各键相互独立,每一个按键接一条数据线。这种键盘结构简单,当任何一个键按下时,与之相连的输入数据线状态就会发生变化(如由高变低)。因为单片机具有位处理指令,所以判别并处理这种按键操作非常方便。当键数较多时,这种工作方式要占用较多的I/O口线(每一个键一条),所以其应用范围有限。,2) 行列式键盘当键数较多时,为减少键处理的I/O口线数量,通常将键排成行列矩阵形式。按键接在行列的交叉点,行线和列线平时不通,当键按下时接通。N条行线和M条列线可以组成N×M个按键的键盘,需要N+M条I/O口线。4×4的键盘结构如图8-15所示,N=M=4,共16个键,需要N+M=8条I/O口线(图中由74373和74244扩展)。CPU对74373的操作是输出,对74244的操作是读入。图中列线通过电阻接+5V电源,74373行线上输出低电平有效。当键盘上没有键闭合时,所有的行线和列线断开,则在列线读的D7D4都呈高电平。当键盘上某一个键闭合时,则该键所对应的行线与列线短路。,例如,6号键按下闭合时,行线Q2(D2)和列线D5短路,此时D5的电平由Q2的电平所决定。在CPU的控制下,使行线Q0(D0)为低电平0,其余三根行线Q1、Q2、Q3都为高电平。然后CPU通过74244读列线的状态,如果D7D4都为高电平,则Q0这一行上没有键闭合,如果读出的列线状态不全为高电平,则为低电平的列线和Q0相交的键处于闭合状态。如果Q0这一行上没有键闭合,接着使行线Q1为低电平,其余行线为高电平,用同样的方法检查Q1这一行线上有无键闭合,依此类推,最后使行线Q3为低电平,其余的行线为高电平,检查Q3这一行上是否有键闭合。6号键按下闭合后,当Q2等于0时会读得D5为0,则CPU可以确定是6号键按下。,这种逐行逐列检查键盘状态的过程称为对键盘的一次扫描。如不采用中断方式,CPU可以先确定是否有键按下。这时可以向键盘送(输出)扫描字,然后读键盘状态来确定。例如图8-15中,首先向74373的D3D0输出全0,读74244状态。如果不全为高,则必有键按下,再逐行检查具体哪一个键按下。如果读的状态全高,则没有键按下,不需要逐行扫描,此次检查完毕。这样CPU处理速度更快。因此,实际上单片机对按键的处理工作分两步:首先通过送扫描字或通过中断确定是否有键按下,然后再逐行(或逐列)扫描确定具体是哪一个键按下。,当然,也可以行线通过电阻接高电平,列线分别置低检查行线的状态。如果不通过74373和74244扩展,有一个8位口也可完成。但当键多时,如64个键,就需要两个8位口,用简单的集成电路扩展还是很方便的。,图8-15 4×4键盘及其接口电路,CPU对键扫描处理一般有三种方式:第一,可以采取程序控制的查询方式,CPU空闲时扫描键盘;第二,可以采取定时控制方式,利用单片机内部定时器产生定时中断,这样每隔一定时间,CPU对键盘扫描一次,CPU可随时响应键盘输入请求,其电路与程序控制方式相同;第三,也可以采用中断方式,当键盘上有键闭合时,向CPU请求中断,CPU响应键盘输入中断请求,对键盘进行扫描,以识别哪一个键处于闭合状态,并对键输入信息做出相应处理。CPU对键盘上闭合键键号的确定,可以根据行线和列线的状态计算求得,也可以根据行线和列线状态查表求得。,例8-2 用输出寄存器和输入缓冲器接4×4非编码键盘,设计接口电路并编写向单片机输入0F 16个十六进制数字的控制程序。解 在单片机应用系统中,非编码键盘是一种常用的输入设备,用74373和74244接口的4×4键盘及其接口电路如图8-15所示。,表8-5 4×4键盘编码对应表,按对应关系和十六进制数的顺序,将按键的编码排成数据表,放在程序存储器的数据区中。再根据这种编码规则将扫描键盘的列值和行值组合成代码,将该代码与程序存储器数据区中的键值表进行比较,即可确定闭合的键。按上述思路确定闭合键所代表的十六进制数字,并将其送A的程序如下:,8.3 应用接口扩展用单片机组成的测控系统,一部分是前向通道,即系统采集现场的各种信号并进行处理;还有一部分是后向通道,输出控制信号对被控对象进行控制。即使是测量系统,也要有前向通道并对采集的信息进行显示等输出。单片机系统的前向通道和后向通道设计是单片机应用的一个很重要的方面。单片机控制系统的硬件电路通常由单片机、检测器件、A/D或D/A转换器、功率驱动电路等组成。一个典型的单片机控制系统硬件结构如图8-16所示。,图8-16 单片机控制系统硬件结构,这是一个典型的闭环控制系统。其中键盘用于进行给定值输入、系统启停、特殊操作等;LED显示器用于显示给定值、系统实时状态及其它所需显示的信息;对象状态检测由传感器完成,用于测试被控对象的现行工作状态;信号放大器通常是微信号放大器,检测器所输出的信号很小,往往是微伏级或毫伏级的,信号放大器把这种微信号放大成A/D转换器所需的05V直流信号;A/D转换器把05V模拟信号转换成数字信号,再送入单片机的I/O口;D/A转换器把单片机I/O口的数字信号转换成模拟信号;功率放大电路把D/A转换器的输出信号进行功率放大,从而去驱动被控对象工作,实现用小信号控制大功率设备工作的目的;,单片机是核心部件,完成数据处理、算法计算等功能并协调整个控制系统进行正常工作。如没有状态检测部分,则该系统是开环控制系统,在开环控制系统中是没有反馈回路的。如果该系统是测量系统,则没有输出控制部分。我们知道,单片机只能处理数字形式的信息,但在实际工程中大量遇到的是连续变化的物理量,如温度、压力、流量、光通量、位移量以及连续变化的电压、电流等。对于这些非电信号的物理量,必须先由传感器进行检测,并且转换为电信号,然后经过放大器放大为05V电平的模拟量。很多执行机构也需要由模拟量控制,如电机等。,模拟通道接口的作用就是实现模拟量和数字量之间的转换,模/数(A/D)转换器是把输入的模拟量变为数字量的专用器件,转换结果再供单片机处理,而数/模(D/A)转换器将单片机处理后的数字量再转换为模拟量输出。为了保证数据处理结果的准确性,A/D转换器和D/A转换器必须有足够的转换精度。同时,为了适应快速过程的控制和检测的需要,A/D转换器和D/A转换器还必须有足够快的转换速度。因此,转换精度和转换速度是衡量A/D转换器和D/A转换器性能优劣的主要指标。,8.3.1 前向通道扩展无论是单片机测量系统还是控制系统,各种现场被测量的数据都要通过前向通道传到单片机中进行处理。如果被测信号是模拟量,则前向通道主要应包括传感器、放大器和A/D转换器等功能部件。,1传感器传感器是将被测的物理量(一般是非电量,如温度、压力和速度等)转换成为与之对应的电量或电参量(如电压、电流等)输出的一种装置。传感器是单片机应用系统中很重要的部件,是单片机获取信息的源头。没有传感器或传感器发生错误,单片机也就不能进行正确的处理和判断。传感器的种类很多,根据被测量的不同可分为温度、湿度、压力、流量、位移、应变、速度和加速度传感器等。根据被测信号的大小,每一种传感器又有不同的量程和精度。在实际应用中要根据实际被测信号来选择合适的传感器。,2放大器一般来说,传感器输出的电信号的幅值都很小,如压力传感器输出电压可能是mV或mV级,所以首先要对这些很小的模拟信号进行放大处理。过去,一般采用三极管和场效应管放大电路放大信号,随着电子技术的发展,现在一般采用集成运算放大器(简称运放),电路简单又便于调试,放大倍数高,稳定性也比较好。集成运算放大器是一种输入阻抗高、输出阻抗低并且设计、调试方便的优质放大器,开环放大倍数可达到104,应用中可以看成理想运放。在构成闭环负反馈放大电路时,其电压放大倍数由外加电阻值的比值决定,,与运放本身参数无关,设计调试十分简单方便,常用的有mA741、324、386等运放芯片。具体应用时可根据放大参数要求等选择合适的运放。3A/D(模/数)转换模/数转换器完成从模拟量到数字量的转换,这样单片机才能对信号进行处理。,在A/D转换器中,因为输入的模拟信号在时间上是连续的,而输出的数字信号是离散的,所以转换只能在一系列选定的瞬间对输入的模拟信号取样,然后再把这些取样值转换成输出的数字量。因此,A/D转换的过程是首先对输入的模拟电压信号取样,取样结束后进入保持时间,在这段时间内将取样的电压量转化为数字量,并按一定的编码形式给出转换结果。然后,再开始下一次取样。因此,A/D转换就是取样、保持、量化和编码输出的过程。选用A/D转换器要考虑以下指标:,(1) 转换精度(用分辨率来描述)。分辨率以输出二进制数或十进制数的位数表示,它说明A/D转换器对输入信号的分辨能力。从理论上讲,n位二进制数字输出的A/D转换器应能区分输入模拟电压的2n个不同等级大小,能区分输入电压的最小差异为1/2n FSR(满量程输入的l/2n)。例如A/D转换器的输出为10位二进制数,最大输入信号为5V,那么这个转换器的输出应能区分出输入信号的最小差异为5 V/210= 4.88mV。(有时也用转换误差来描述转换精度)。,(2) 转换速度(转换时间)。转换时间指转换器完成一次模拟量与数字量转换所花费的时间。这个参数直接影响到系统的速度。A/D转换器的转换速度主要取决于转换电路的类型,不同类型A/D转换器的转换速度相差甚为悬殊。,(3) 量化误差。量化误差是由转换器转换分辨率直接造成的。如具有8位分辨率的A/D转换器,当输入05V电压时,对应的数字输出为00HFFH,即输入电压每变化0.0196V时,输出数字量就变化1。由于输入模拟量是连续变化的,只有当它的值为0.0196V的整数倍时,模拟量值才能准确地转换成对应的数字量,否则模拟量将被“四舍五入”后由相近的数字量输出。例如0.025V被转换成01H输出,0.032V被转换成02H输出,最大误差为1/2个最低有效位,这就是量化误差。,这样,我们就可以根据系统的精度、速度等要求选择合适的A/D转换器。1) 8位逐次逼近式A/D转换芯片ADC0809(1) ADC0809的内部结构。ADC0809芯片是用CMOS工艺制成的双列直插式28引线的8位A/D转换器。片内有8路模拟量开关及地址锁存与译码电路、8位A/D转换器和三态输出锁存器,如图8-17所示。,图8-17 ADC0809内部结构,各引线信号含义如下。IN0IN7:8路模拟通道输入,由ADDA、ADDB和ADDC三条线选择。ADDA、ADDB、ADDC:模拟通道选择线,可接计算机的地址线,也可接数据线。ADDA接低位线,ADDC接高位线。D7D0:8位数字量三态输出,由OE输出允许信号控制。OE:输出允许信号,该引线上的高电平打开三态缓冲器,将转换结果放到D0D7上。,ALE:地址锁存允许,其上升沿将ADDA、ADDB和ADDC三条引线的信号锁存,经译码器选择对应的模拟通道。START:转换启动信号,在模拟通道选通之后,由START上的正脉冲启动A/D转换过程。EOC(End of Conversion):转换结束信号。在START信号之后,A/D开始转换。EOC输出低电平,表示转换在进行中。转换结束,数据已锁存在输出锁存器之后,EOC变为高电平。EOC可作为被查询的状态信号,亦可用来申请中断。VR(+)、VR():基准电压输入。CLK:时钟输入,时钟频率最高为640kHz。,ADC0809芯片在最高时钟频率下转换速度约为100ms,CPU对它的控制采用查询方式或中断方式。8位模拟量开关的功能表见表8-6。,表8-6 8位模拟量开关功能表,(2) ADC0809与单片机的接口。由于ADC0809芯片内部集成了数据锁存三态缓冲器,其数据输出线可以直接与单片机的数据总线相连。所以,设计ADC0809与单片机的接口,主要应注意模拟通道的选择、转换启动的控制和读取转换结果的控制等方面的设计。一种ADC0809与单片机的接口电路如图8-18所示。电路中,如果采用中断方式,可将EOC输出经反向器(因为EOC变高转换结束)接到80C51的外中断。例8-3 用ADC0809对8路模拟信号进行转换,转换结果存入片内RAM 30H开始单元中。,图8-18 ADC0809的接口电路,2) 双积分式A/D转换器因为采用积分方法的A/D转换器积分时间比较长,所以A/D转换速度慢,但精度较高,抗干扰性能也好。常用的双积分式A/D转换器如MC14433,是CMOS工艺的3 1/2位(精度相当于11位二进制数)双积分A/D转换器,广泛应用于低速数据采集系统。其转换精度为±1/1999的分辨率,转换速度为310次/秒,时钟频率为50150kHz;具有自动连续转换功能,每次转换结束在EOC脚输出正脉冲,经反向后可以作为80C51的外部中断请求信号,使用非常方便,在转换速度要求不高时可以选用。,3) Sigma-Delta A/D转换器随着技术的进步,人们对于数据转换的精度要求越来越高,例如高保真音频系统和计算机通信领域都对A/D转换器提出了很高的要求,即A/D转换器必须具有16位(bit)以上甚至20位(bit)的分辨率。而采用传统的A/D转换原理,如双积分、逐次逼近等,很难达到如此高的精度。Sigma-Delta A/D转换器以其分辨率高、线性度好和成本低等特点获得越来越广泛的应用。,Sigma-Delta A/D转换器以很低的采样分辨率(1位)和很高的采样速率将模拟信号数字化,通过使用过采样、噪声整形和数字滤波等方法增加有效分辨率,然后对ADC输出采样抽取处理以降低有效采样速率。其电路由非常简单的模拟电路(一个比较器、一个开关、一个或几个积分器及模拟求和电路)和十分复杂的数字信号处理电路构成。随着超大规模集成电路制造水平的提高,现在很多公司生产这类产品。随着人们需求的不断增加,技术的飞速发展,以及MEMS(微机械电子系统)的出现,将传感器、放大器和A/D转换器集成在一块芯片中已成为可能,这大大方便了单片机的设计和应用,也增加了系统的可靠性。,8.3.2 后向通道扩展单片机控制系统的功能是根据要求实现对被控对象的控制操作,使系统稳定可靠地工作。后向通道就是单片机对被检测的现场信号判断处理后按一定的控制规则(如PID控制、模糊控制和自适应控制等)将信号传送到被控制对象的输出接口。一般常见的被控对象有电机、开关等装置,因此后向通道具有弱电控制强电、小信号控制大功率装置的特点,在应用设计中要考虑这些特性。,一般来说,后向通道包括I/O口扩展(如果单片机I/O口不够用或驱动能力达不到要求)、数/模转换器D/A(把单片机输出的数字信号转换为模拟信号)和功率放大等部分。I/O口扩展以前已讲述,功率放大部分比较复杂,在下一节讲述,这里主要介绍数/模转换部分。,当D/A转换器与单片机接口时,单片机是靠指令输出数字量供D/A转换之用,而指令送出的数据在数据总线上的时间是短暂的(P0口分时共用),所以D/A与单片机间需要数据寄存器来保存单片机输出的数据,供D/A转换用。目前生产的D/A芯片可分为两类:一类芯片内部设置有数据寄存器,不需外加电路就可直接与单片机接口;另一类芯片内部没有数据寄存器,输出信号(电流或电压)随数据输入线的状态变化而变化,因此不能直接与单片机接口,必须通过并行接口扩展再与单片机接口。,18位数/模转换芯片DAC0832的结构DAC0832是具有20条引线的双列直插式CMOS器件,内部具有两级数据寄存器,完成8位电流D/A转换。其结构框图及信号引线如图8-19所示。引线信号可分为3类。(1) 输入、输出信号。D7D0:8位数据输入线。,图8-19 DAC0832内部结构框图和引线,(3) 电源。VCC:工作电源,范围为515V。VREF:参考输入电压,范围为10+l0V。AGND:模拟信号地。DGND:数字信号地。2DAC0832的工作方式由于DAC0832内部有输入寄存器和DAC寄存器,所以它不需要外加其它电路便可以与单片机的数据总线直接相连。根据DAC0832的5个控制信号的不同连接方式,它可以有3种工作方式。,(3) 双缓冲方式:将两个寄存器都处于受控的锁存方式。为了实现两个寄存器的可控,应当给它们各分配一个端口地址,以便能按端口地址进行操作。D/A转换采用两步写操作来完成。在DAC转换输出前一个数据的同时,可将下一个数据送到输入寄存器,以提高D/A转换速度。双缓冲方式可用于多路D/A转换系统,以实现多路模拟信号同步输出的目的。,

    注意事项

    本文(单片机原理与应用第8章)为本站会员(咸****下)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    网站客服QQ:2881952447     

    copyright@ 2020-2024  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

    备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!