微机原理与接口技术清华大学出版社2013年4月24日计算机最新可编程接口芯片及应用微机原理与接口技术清华大学出版社2013年4月24日主要内容7.1可编程定时/计数器82537.2串行接口芯片8251a及其应用7.3并行接口芯片8255a及应用7.4d/a、a/d转换接口微机原理与接口技术清华大学出版社2013年4月24日概述微机与外设交换信息,都必须通过接口电路来实现。随着大规模集成电路技术的发展,现已生产了各种各样通用的可编程接口芯片,不同系列的微处理器都有其标准化、系列化的接口芯片可供选用。因此,学会典型通用接口芯片的工作原理和使用方法,是掌握微机接口技术的重要基础。本章主要介绍Intel系列的8255a、8250、8253、8259a等几种典型通用的接口芯片。微机原理与接口技术清华大学出版社2013年4月24日7.1可编程定时/计数器82537.1.18253的结构7.1.28253的工作方式与初始化7.1.38253在PC机上的应用微机原理与接口技术清华大学出版社2013年4月24日7.1.18253的结构一、定时技术1)软件产生定时利用CPU执行某一指令需要一定机器周期的原理,在软件编程时循环执行一段指令,从而产生累积的定时,2)硬件产生定时利用硬件计数器构成,计数脉冲触发硬件计数器计数,如果计数脉冲的周期固定,则计数同时产生定时。3)软硬件结合微机原理与接口技术清华大学出版社2013年4月24日二、8253内部结构图7-18253内部结构微机原理与接口技术清华大学出版社2013年4月24日1、数据总线缓冲器8253与CPU之间的数据接口,它由8位双向三态缓冲存储器构成,是CPU与8253之间交换信息的必经之路。2、读/写控制逻辑读/写控制分别连接系统的IOR#和IOW#,接收CPU送入的读/写控制信号,并完成对芯片内部各功能部件的控制功能,因此,它实际上是8253芯片内部的控制器。3.控制字寄存器在8253初始化编程时,由CPU写入控制字,以决定计数器的工作方式。此寄存器只能写入,不能读出。4、计数通道0#、1#、2#:8253有3个独立的,结构相同的计数器/定时通道,每一个通道饱含一个16位的计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器微机原理与接口技术清华大学出版社2013年4月24日三、8253外部引脚数据总线D7~D0:片选线读信号写信号地址线A1A0计数时钟信号CLKi计数器门控选信号GATEi计数器输出信号OUTiVCC及GND:微机原理与接口技术清华大学出版社2013年4月24日(1)数据总线D7~D0:三态输入/输出线。用于将8253与系统数据总线相连,是8253与CPU接口数据线,供CPU向8253进行读写数据、传送命令和状态信息。(2)片选线CS:为输入信号,低电平有效。当为低电平时,CPU选中8253,可以向8253进行读/写;当为高电平时,CPU未选中8253。由CPU输出的地址码经译码产生。(3)读信号RD:输入引脚,低电平有效。由CPU发出,用于对8253进行读操作。(4)写信号WR:输入引脚,低电平有效。由CPU发出,用于对8253进行写操作。(5)地址线A1A0:这两根线接到系统地址总线的A1A0上,当8253被选中时,A1A0用来选择8253内部寄存器,以便对其进行读写操作。具体的控制关系如表7-2所示。微机原理与接口技术清华大学出版社2013年4月24日当8253被选中时,A1A0用来选择8253内部寄存器,以便对其进行读写操作。CSA1A0寄存器的选择和操作000000001011110000ⅹ100001111ⅹ100110011xx01010101xx写入计数器#0写入计数器#1写入计数器#2写入控制寄存器读入计数器#0读入计数器#1读入计数器#2无操作(三态)禁止(三态)无操作(三态)WRRDCS微机原理与接口技术清华大学出版社2013年4月24日7.1.28253的工作方式与初始化一、8253的控制字读/写指示SC1SC0RW1RW0M2M1M0BCD1BCD0二进制×11模式3100模式4101模式5×10模式2计数值格式000模式0001模式2模式选择10只读/写计数器高字节11读/写计数器16位数00计数器锁存01只读/写计数器低字节计数制计数10计数器200计数器001计数器1计数器选择11非法操作微机原理与接口技术清华大学出版社2013年4月24日二.8253的初始化编程要使用8253,必须首先进行初始化编程,初始化编程包括设置通道控制字和送通道计数初值两个方面,控制字写入8253的控制字寄存器,而初始值则写入相应通道的计数寄存器中。初始化编程包括如下步骤:(1)写入通道控制字,规定通道的工作方式(2)写入计数值,若规定只写低8位,则高8位自动置0,若规定只写高8位,则低8位自动置0。若为16位计数值则分两次写入,先写低8位,后写高8位。D0:用于确定计数数制,“0”,二进制;“1”,BCD码微机原理与接口技术清华大学出版社2013年4月24日【例7.1.1】设8253的端口地址为:04H~0AH,要使计数器1工作在方式0,仅用8位二进制计数,计数值为128,进行初始化编程。控制字为:01010000B=50H初始化程序:MOVAL,50HOUT0AH,ALMOVAL,80HOUT06H,AL微机原理与接口技术清华大学出版社2013年4月24日【例7.1.3】读取8253通道中的计数值分析:8253可用控制命令来读取相应通道的计数值,由于计数值是16位的,而读取的瞬时值,要分两次读取,所以在读取计数值之前,要用锁存命令,将相应通道的计数值锁存在锁存器中,然后分两次读入,先读低字节,后读高字节。当控制字中,D5、D4=00时,控制字的作用是将相应通道的计数值锁存的命令,锁存计数值在读取完成之后,自动解锁。如要读通道1的16位计数器,编程如下:地址F8H~FEH。MOVAL,40H;OUT0FEH,AL;锁存计数值INAL,0FAHMOVCL,AL;低八位INAL,0FAH;MOVCH,AL;高八位微机原理与接口技术清华大学出版社2013年4月24日三、8253的工作方式方式0—计数结束产生中断方式1—可重触发的单稳触发器方式2—分频器方式3—方波发生器方式4—软件触发选通方式5—硬件触发选通微机原理与接口技术清华大学出版社2013年4月24日8.4.2方式0—计数结束产生中断微机原理与接口技术清华大学出版社2013年4月24日①计数器只计一遍,当计数到0时,不重新开始计数保持为高,直到输入一新的计数值,OUT才变低,开始新的计数;②计数值是在写计数值命令后经过一个输入脉冲,才装入计数器的,下一个脉冲开始计数,因此,如果设置计数器初值为N,则输出OUT在N+1个脉冲后才能变高;③在计数过程中,可由GATE信号控制暂停。当GATE=0时,暂停计数;当GATE=1时,继续计数;④在计数过程中可以改变计数值,且这种改变是立即有效的,分成两种情况:若是8位计数,则写入新值后的下一个脉冲按新值计数;若是16位计数,则在写入第一个字节后,停止计数,写入第二个字节后的下一个脉冲按新值计数。主要特点:微机原理与接口技术清华大学出版社2013年4月24日方式1—可重触发的单稳触发器所谓的单稳是指这样的电路,它有两种状态,但只能稳定在一种状态,在一定的外界作用下,它能从这一种状态进入到另一种状态,但经过一定的时间后,又自动恢复到原来的状态。这个时间参数一般是由外加电阻、电容的值决定的,8253的方式1就是模拟单稳电路,其处于非稳态的时间可通过程序进行设置。一旦8253的某计数器被设置成方式1后,其OUT变为高电平,装入初始值后,仍保持高电平,等待门控上升沿的到来。门控为高电平后的第一个CLK下降沿时OUT变为低电平,初始值又被重新装入一次,并开始计数,每来一个计数脉冲,计数器的值减1。当减到0时OUT变为高电平。此后门控的上升沿可再次启动此过程。如图7-5所示。微机原理与接口技术清华大学出版社2013年4月24日①输出OUT的宽度为计数初值的单脉冲;②输出受门控信号GATE的控制,分三种情况:–计数到0后,再来GATE脉冲,则重新开始计数,OUT变低;–在计数过程中来GATE脉冲,则从下一CLK脉冲开始重新计数,OUT保持为低;–改变计数值后,只有当GATE脉冲启动后,才按新值计数,否则原计数过程不受影响,仍继续进行,即新值的改变是从下一个GATE开始的。③计数值是多次有效的,每来一个GATE脉冲,就自动装入计数值开始从头计数,因此在初始化时,计数值写入一次即可。方式1特点:微机原理与接口技术清华大学出版社2013年4月24日方式2—分频脉冲发生器方式2用来对输入脉冲(即计数脉冲CLK)N分频(N为预置的初值),在输出信号周期中低电平的时间为一个CLK周期。设置此方式后,OUT变高电平,装入初值后便自动开始计数,减到1时OUT变低电平。经过一个CLK周期,OUT恢复高电平,且计数器又自动装入初值,重新开始计数。如此循环下去。如图7-6所示是工作在方式2的示意图。在上述过程中GATE应一直保持高电平。若GATE变低电平将禁止计数,并使输出为高电平。在GATE再次变高电平时,计数器将重新装入预置的初值,并开始计数。微机原理与接口技术清华大学出版社2013年4月24日①通道可以连续工作;②GATE可以控制计数过程,当GATE为低时暂停计数,恢复为高后重新从初值;(注意:该方式与方式0不同,方式0是继续计数)③重新设置新的计数值即在计数过程中改变计数值,则新的计数值是下次有效的,同方式1。从头计数,因此在初始化时,计数值写入一次即可。方式2特点:微机原理与接口技术清华大学出版社2013年4月24日方式3—方波发生器微机原理与接口技术清华大学出版社2013年4月24日①通道可以连续工作;②关于计数值的奇偶,若为偶数,则输出标准方波,高低电平各为N/2个;若为奇数,则在装入计数值后的下一个CLK使其装入,然后减1计数,(N+1)/2,OUT改变状态,再减至0,OUT又改变状态,重新装入计数值循环此过程,因此,在这种情况下,输出有(N+1)/2个CLK个高电平,(N-1)/2个CLK个低电平;③GATE信号能使计数过程重新开始,当GATE=0时,停止计数,当GATE变高后,计数器重新装入初值开始计数,尤其是当GATE=0时,若OUT此时为低,则立即变高,其它动作同上;④在计数期间改变计数值不影响现行的计数过程,一般情况下,新的计数值是在现行半周结束后才装入计数器。但若中间遇到有GATE脉冲,则在此脉冲后即装入新值开始计数。方式3特点:微机原理与接口技术清华大学出版社2013年4月24日方式4—软件触发选通微机原理与接口技术清华大学出版社2013年4月24日①当计数值为N时,则间隔N+1个CLK脉冲输出一个负脉冲(计数一次有效);②GATE=0时,禁止计数,GATE=1时,恢复继续计数;③在计数过程中重新装入新的计数值,则该值是立即有效的(若为16位计数值,则装入第一个字节时停止计数,装入第二个字节后开始按新值计数)。方式4特点:微机原理与接口技术清华大学出版社2013年4月24日方式5—硬件触发选通微机原理与接口技术清华大学出版社2013年4月24日①在这种方式下,若设置的计数值是N,则在GATE脉冲后,经过(N+1)个CLK才一个负脉冲;②若在计数过程中又来一个GATE脉冲,则重新装入初值开始计数,输出不变,即计数值多次有效;③若在计数过程中修改计数值,则该计数值在下一个GATE脉冲后装入开始按此值计数。方式5特点:微机原理与接口技术清华大学出版社2013年4月24日(1)方式2、4、5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲,但方式2连续工作,方式4由软件触发启动,方式5由硬件触发启动。(2)方式5与方式1工作过程相同,但输出波