1、单片机原理及其应用扬州大学1单片机原理及其应用(Principle and Application of Single Chip Microcomputer)单片机原理及其应用扬州大学2第1章 概述第2章 MCS-51单片机硬件结构第3章 MCS-51寻址方式和指令系统第4章 MCS-51汇编程序设计第5章 中断系统第6章 定时器/计数器及串行口第7章 存储器扩展第8章 接口电路扩展第9章 应用举例单片机原理及其应用扬州大学3第7章 MCS-51单片机系统扩展技术7.1 MCS-51单片机系统扩展的基本概念7.2 存储器地址空间分配7.3 程序存储器扩展技术7.4 数据存储器扩展技术7.5 存
2、储器混合扩展技术7.6 E2PROM的扩展技术7.7 输入/输出口扩展技术单片机原理及其应用扬州大学47.1 MCS-51单片机系统扩展的基本概念7.1.1 MCS-51单片机最小应用系统7.1.2 MCS-51单片机的外部扩展性能单片机原理及其应用扬州大学57.1.1 MCS-51单片机最小应用系统 18051/8751最小应用系统(如图7-1所示)。 由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点是:(1)全部I/O口线均可供用户使用。(2)内部存储器容量有限(只有4KB地址空间)。(3)应用系统开发具有特殊性。图7-1 8051/8751最小应用系统单片机原理及其应
3、用扬州大学628031最小应用系统 8031片内无程序存储器,其最小应用系统应在片外扩展EPROM。图7-2为用8031外接程序存储器构成的最小系统。图7-2 8031最小应用系统PSEN单片机原理及其应用扬州大学77.1.2 MCS-51单片机的外部扩展性能1MCS-51单片机的片外总线结构 MCS-51单片机片外引脚可以构成如图7-3所示的三总线结构: 所有外部芯片都通过这三组总线进行扩展。图7-3 MCS-51系统扩展哈佛结构:程序存储器与数据存储器空间独立冯诺伊曼结构(普林斯顿结构):程序存储器与数 据存储器空间合用单片机原理及其应用扬州大学8图7-4 8031单片机总线构造2. 构造
4、系统总线 单片机原理及其应用扬州大学9(1)P0口作为低8位地址/数据总线(2)P2口作为高8位地址总线图7-5 地址总线扩展单片机原理及其应用扬州大学10(3)控制总线ALE: 低8位地址锁存信号/PSEN: 程序存储器读信号/EA: 内/外部程序存储器选择信号/RD: 外部数据存储器读信号/WR: 外部数据存储器写信号单片机原理及其应用扬州大学113MCS-51单片机的系统扩展能力* 当系统要大量配置外围设备(扩展较多的I/O口)时,将占去大量的RAM地址。* 串行扩展技术:用并行3总线扩展是单片机应用中的主要方法。但是,扩展时,连线多,器件占据电路板空间较大。串行接口器件体积小,连线少(
5、34根),可以简化器件的连接。串行接口有三线的SPI, 双线的 I2C。* 当应用系统存储扩展容量或扩展I/O口地址超过单片机地址总线范围时,可用换体法解决。如图7-6所示。 单片机原理及其应用扬州大学12图7-6 用I/O线来控制片外存储器换体32kB32kB32kB32kBP2.7P1.01Y01Y11Y21Y31A1B1G单片机原理及其应用扬州大学137.2 存储器地址空间分配7.2.1 存储器读写控制EPROM: 只读,读引脚 /OE 通常接 /PSEN。RAM: 可读可写,读引脚 /OE 接 /RD, 写引脚 /WE 接 /WR。7.2.2 存储器地址空间分配 扩展多片存储器、I/O
6、接口:区分各个存储器芯片和接口芯片是单片机扩展应用时要解决的问题。 存储空间的分配,使一个存储单元对应一个地址, 把ROM、RAM、I/O分配在不同的地址范围。 单片机原理及其应用扬州大学141)线选法扩展存储器 线选法:直接用高位地址作为存储器(I/O芯片)的片选信号。把选中的地址线与存储器的片选端相连即可。 优点:电路简单、不用地址译码芯片。缺点:可寻址的器件数目受限、地址空间不连续、存储单元地址不唯一,只用于简单的系统。 单个存储器芯片容量小于存储空间容量时,选存储单元分为选片和选片内单元两种选择。通常用地址高位选片子(片选),地址低位作片内单元选择。 片选信号是对地址总线进行译码获得的
7、。 译码方法有: 线(性)选法 和 (地址)译码法两种形式。单片机原理及其应用扬州大学15某单片机系统需扩展8KB的EPROM(27322), 4KB的RAM(61162)。地址连线见下图。图7-7 线选法举例2732有12根地址线,6116有11根地址线,连接低位地址。各片片选端接分别接高四位地址。单片机原理及其应用扬州大学16地址范围确定 P2.7 P2.02732(1): 0 1 1 1-0 0 0 0 0 0 0 0 0 0 0 0 (7000H) 0 1 1 1-1 1 1 1 1 1 1 1 1 1 1 1 (7FFFH) P2.6 P2.02732(2): 1 0 1 1-0 0
8、 0 0 0 0 0 0 0 0 0 0 (B000H) 1 0 1 1-1 1 1 1 1 1 1 1 1 1 1 1 (BFFFH) P2.4 P2.06116(1): 1 1 1 0-0 0 0 0 0 0 0 0 0 0 0 0 (E000H) 1 1 1 0-0 1 1 1 1 1 1 1 1 1 1 1 (E7FFH) P2.4 P2.06116(1): 1 1 1 0-1 0 0 0 0 0 0 0 0 0 0 0 (E800H) 1 1 1 0-1 1 1 1 1 1 1 1 1 1 1 1 (EFFFH)6116(2): (D000HD7FFH) (D800HDFFFH)单片
9、机原理及其应用扬州大学172)译码法扩展存储器 用译码器对高位地址进行译码,分配存储空间。译码器输出作为芯片的片选信号。它能有效利用存储空间,适用于大容量多芯片存储器扩展。 常用译码器芯片:74LS138(3-8译码器)单片机原理及其应用扬州大学18扩展8片8KB的RAM6264, 只需将64KB分成8个8KB空间。 图中可见所有的地址线都参与了地址译码,称为全地址译码。各个存储单元有惟一的地址。图7-8 64KB地址空间分配单片机原理及其应用扬州大学19如何把64KB划分成每块4KB的空间? 4832KB, 需15根地址参加译码。12根用于片内单元译码,3根用于片选译码。P2.7未参与译码,
10、但它决定了选择前32KB还是后32KB。可能造成空间重叠。 下图用P2.7控制138,选择了前32KB空间。图7-9 32KB地址空间分配单片机原理及其应用扬州大学207.2.2 外部地址锁存器1.74LS373 74LS373是三态8D锁存器。/OE: 输出允许G: 输入锁存选通锁存2. 74LS573 功能与74LS373一样,引脚排列不同。图7-10 373引脚与结构图7-11 573引脚单片机原理及其应用扬州大学217.3 程序存储器扩展技术7.3.1 程序存储器简介7.3.2 程序存储器操作时序7.3.3 EPROM扩展电路单片机原理及其应用扬州大学227.3.1 程序存储器简介1.
11、 程序存储器的类型 程序存储器一般在工作时是只读的(ROM)(1) 掩模ROM (2) PROM仅用于批量生产。 仅一次可编程。(3) EPROM可多次编程,紫外线擦除。(4) E2PROM可多次编程, 电擦除。写入速度慢。(5) Flash ROM可多次编程, 电擦除。写入速度快。可替代E2PROM。很多单片机已将Flash ROM做在片内。单片机原理及其应用扬州大学232. 常用EPROM芯片 27系列Vcc: 工作电压 Vpp: 编程电压Im: 最大静态电流 Is: 维持电流TRM: 最大读取时间单片机原理及其应用扬州大学24/CE: 片选 /OE: 输出允许读出:/CE=0 ,未选中:
12、 /CE=1, /OEX 图7-12 常用EPROM芯片引脚图单片机原理及其应用扬州大学25图7-13 外部程序存储器操作时序7.3.2 程序存储器操作时序 /PSEN接EPROM的/OE端。 每机器周期,ALE出现两次,下降沿锁存PCL。 /PSEN变低时,读入指令。单片机原理及其应用扬州大学26图7-14 外部程序存储器操作时序 /PSEN接EPROM的/OE端。 第一个机器周期S2时, ALE下降沿锁存PCL。S3时,读入指令。S5时 ALE下降沿锁存低数据地址。第二个机器周期总线给数据存储器用。 执行一次MOVX指令将丢失一次ALE脉冲。单片机原理及其应用扬州大学27GOE7.3.3
13、EPROM扩展电路12764A EPROM扩展电路地址范围:0 0000 0000 0000H1 1111 1111 1111H=0000H1FFFH图7-15 2764 EPROM扩展电路单片机原理及其应用扬州大学28227128 EPROM扩展电路地址范围:00 0000 0000 0000H11 1111 1111 1111H=0000H3FFFH图7-16 27128 EPROM扩展电路单片机原理及其应用扬州大学29地址分配:27128(1) : 0000H3FFFH 27128(2) : 4000H7FFFH 27128(3) : 8000HBFFFH 27128(4) : C000
14、HFFFFH3四片27128 EPROM扩展电路(1)(2)(3)(4)图7-17 多片EPROM扩展电路单片机原理及其应用扬州大学307.4 数据存储器扩展7.4.1 常用静态RAM芯片7.4.2 数据存储器操作时序7.4.3 静态RAM扩展电路单片机原理及其应用扬州大学31 常用的静态RAM芯片有6116(2k8),6264(8k8),62128 (16k8),62256(32k*8)等。7.4.1 常用静态RAM芯片/CE: 片选/OE: 读选通/WE: 写允许CS: 6264片选图7-18 常用RAM引脚图单片机原理及其应用扬州大学327.4.2 数据存储器操作时序1. ALE高电平期
15、间,地址变为有效。下降沿锁存低8位地址。2. 在第一周期S6状态,P0浮空。3. 在第二周期S1状态起,/RD有效。存储器指定地址单元送出数据,进入P0。S2状态CPU读入数据。4. S3状态末 /RD变无效。S4S2S5S6S1S3第一机器周期第二机器周期图7-19 片外RAM操作时序单片机原理及其应用扬州大学331. ALE高电平期间,地址变为有效。下降沿锁存低8位地址。2. 在第一周期S6状态,P0浮空。3. 在第二周期S1状态起,/WR有效。CPU输出数据到P0,在地址译码和/WR作用下,P0上数据进入相应的存储单元。4. S3状态末 /WR变无效。图7-20 片外RAM操作时序单片机
16、原理及其应用扬州大学347.4.3 静态RAM扩展电路1单片6264静态RAM扩展地址范围:00 0000 0000 0000H01 1111 1111 1111H0000H1FFFH, 2000H3FFFH 图7-21 6264扩展图单片机原理及其应用扬州大学35IC1地址:1100 0000 0000 00001101 1111 1111 1111 (C000HDFFFH)IC2地址:1010 0000 0000 00001011 1111 1111 1111 (A000HBFFFH)IC3地址:0110 0000 0000 00000111 1111 1111 1111 (6000H7F
17、FFH)2多片6264静态RAM扩展图7-22 线选法3片6264扩展图单片机原理及其应用扬州大学36IC1地址: 0000 0000 0000 00000011 1111 1111 1111 (0000H3FFFH)IC2地址: 0100 0000 0000 00000111 1111 1111 1111 (4000H7FFFH)IC3地址: 1000 0000 0000 00001011 1111 1111 1111 (8000HBFFFH)IC4地址: 1100 0000 0000 00001111 1111 1111 1111 (C000HFFFFH)3多片62128静态RAM扩展图7
18、-23 译码器法片外存储器扩展图单片机原理及其应用扬州大学377.5 存储器混合扩展技术 前面分别介绍了程序存储器和数据存储器的单独扩展技术。在实际应用中往往ROM和RAM都要扩展。 ROM读用/PSEN控制,RAM读写用/RD和/WR控制。1. 线选法扩展2片6264和2片2764 选片直接用高位地址。2. 译码法扩展2片6264和2片2764 选片用译码器的输出。单片机原理及其应用扬州大学382764(1)地址: x100 0000 0000 0000 x101 1111 1111 11112764(2)地址: x010 0000 0000 0000 x011 1111 1111 1111
19、6264(1)地址: x100 0000 0000 0000 x101 1111 1111 11116264(2)地址: x010 0000 0000 0000 x011 1111 1111 1111图7-24 片外存储器综合扩展图(线选法)单片机原理及其应用扬州大学392764(1)地址: 0000 0000 00000000 0001 1111 111111112764(2)地址: 0010 0000 00000000 0011 1111 111111116264(3)地址: 0100 0000 00000000 0101 1111 111111116264(4)地址: 0110 0000
20、 00000000 0111 1111 11111111图7-25 片外存储器综合扩展图(译码器法)单片机原理及其应用扬州大学40(1)ROM读指令 复位,PC=0000H。 取指令期间,PCL送P0, 经373锁存得地址A7A0,直连2764低8位地址。PCH送P2得地址A15A8。其中A12A8与2764相应地址直连,A15A13接译码器。 0000H地址选中2764(1)的第一个地址,当/PSEN有效时,程序代码就从P0口读到单片机的指令译码器,进行译码,决定作何种操作。 此后PC自动加一,取下一个单元的程序代码。3. 外扩存储器电路工作原理单片机原理及其应用扬州大学41(2)RAM读写
21、 在使用MOVX类指令时,就是对外部RAM进行读写。例MOV DPTR, #5000HMOVX A, DPTRMOV 50H, A 执行第二条指令时,DPL送P0, 并被373锁存,DPH送P2。根据译码器以及片内译码选中6264(1)的5000H单元,当/RD有效时,5000H单元的内容进入P0, 并送到A。 MOVXDPTR, A 是执行存储器写,与存储器读的过程类似。 MOVX A, Ri 和 MOVX Ri, A也是执行对外部RAM读写。Ri的内容送P0,形成低8位地址,P2口的内容形成高位地址。单片机原理及其应用扬州大学42【例7-1】(8-4) 编程将程序存储器TAB为首地址的32
22、个单元内容依次传送到外部RAM7000H开始的区域。MOVP2, #70H;外部RAM高8位地址MOVDPTR, #TABMOVR0, #0AGIN: MOVA, R0;查表偏移量MOVCA, A+DPTRMOVXR0, A;存入外部RAMINCR0CJNER0, #32, AGINHERE: SJMPHERETAB:DB,单片机原理及其应用扬州大学437.6 E2PROM扩展技术 E2PROM是一种电擦除可编程只读存储器,其主要特点是能在线擦除和改写,并在断电的情况下保持修改的结果。在智能化仪器、仪表、控制装置等领域得到普遍采用。 E2PROM既可当ROM用也可作RAM用。与RAM比,写入速
23、度很慢。擦除/写入寿命有限。 常用的E2PROM芯片主要有Intel 2816/2816A, 2817/2817A、2864A等。单片机原理及其应用扬州大学44/CE: 片选/OE: 输出允许/WE: 写允许RDY/BUSY:写入状态图7-26 常用E2PROM引脚图单片机原理及其应用扬州大学45单片机原理及其应用扬州大学4612817A E2PROM扩展写操作时忙(16ms)特性:写入字节时自动擦除。 写入期间, RDY/BUSY变低,数据线呈现高阻态。图7-27 2817A 引脚图单片机原理及其应用扬州大学47地址范围:0 000 0000 0000H0 111 1111 1111H000
24、0H07FFH, 0800H0FFFH 图7-28 2817A 与8031 接口图单片机原理及其应用扬州大学48WR1: MOV DPL, R3MOV DPH, R4MOVX A, DPTR ;取源数据INC DPTRMOV R3, DPL;保存源数据指针MOV R4, DPHMOV DPL, R1; 取2817A地址MOV DPH, R2MOVX DPTR, A ;写入2817AWAIT: JNB P1.0, WAIT;等待字节写完INC DPTRMOV R1, DPL;保存2817A地址MOV R2, DPHDJNZ R0, WR1 ;未完,继续RET子程序入口参数:R0: 写入的字节数R
25、2R1: 2817A地址R4R3: 源数据地址对2817A写操作的程序单片机原理及其应用扬州大学4922864A E2PROM 扩展图7-29 2864A 引脚图单片机原理及其应用扬州大学502864A有四种工作方式:(1)维持方式:/CE=1, 进入低功耗维持, 数据线呈高阻态。(2)读出方式:/CE=0, /OE=0, /WE=1, 与普通存储器相同。 (3)写入方式:页写入(16字节/页),数据先写入页缓冲器(页 装载),满后再写到相应地址单元(页存储)。 芯片要求写入一字节数据的时间: 3us TBLW 20us。这个时间由限时定时器计算,在每个/WE下降沿开始启动。一旦装载完毕,没有
26、了/WE信号,限时定时器溢出,页存储操作开始。 字节写入 (4)数据查询方式:软件检测页存储周期是否完成。在页存储期间,执行读2864A操作,读出的是最后写入的字节。若页存储未完成,读出的数据最高位是写入字节最高位的反码。单片机原理及其应用扬州大学51地址范围: 00 0000 0000 000001 1111 1111 11110000H1FFFH, 2000H3FFFH 图7-30 2864A 与8031接口图单片机原理及其应用扬州大学52WR2: MOVXA, DPTR;取数据MOVR2, A ;暂存备查MOVXR0, A ;写入2864AINCDPTRINCR0CJNER0, #0, NEXT ; 低地址未到零,转INCP2;已到零,高位地址增1NEXT:DJNZR1, WR2;页面未装完,继续DECR0 ;退到最后一个写入的数地址LOOP:MOVXA, R0;读2864AXRLA, R2; 异或检查JBACC.7, LOOP;最高位不等,继续查RET;一页写完,返回子程序入口参数:R1: 写入的字节数(16)P2R0: 2864A地址DPTR: 源数据区地址对2864A装载一个页面的程序