微机控制器优秀课件

上传人:仙*** 文档编号:253155488 上传时间:2024-11-29 格式:PPT 页数:61 大小:382.50KB
返回 下载 相关 举报
微机控制器优秀课件_第1页
第1页 / 共61页
微机控制器优秀课件_第2页
第2页 / 共61页
微机控制器优秀课件_第3页
第3页 / 共61页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,微机控制器,第,6,章 控制器接口,6.1,中断控制器,8259A,6.2 DMA,控制器,8237A,6.3,定时,/,计数器,8253,6.1.1 8259A,的功能,Intel 8259A,中断控制器是把,中断源识别、中断优先权排队、中断屏蔽、中断向量提供,等功能集于一身的,专用于微机系统中断管理的大规模集成电路芯片。,管理,8,个,具有优先权的中断,通过级连可以,扩展至,64,个,。,每个中断都可以设定,屏蔽或开放,。,有多种,中断优先权排队模式,。,当中断响应时,可提供相应的,中断类型号,,中断类型号可以由用户设定。,可以通过编程设定或变更,8259A,的各种,工作方式,。,6.1.2 8259A,的内部结构和管脚,CAS,0,CAS,1,CAS,2,SP/EN,数据总线,缓冲器,D,7,D,0,读/写,控制,逻辑,级连缓冲,/比较器,中断,服务,寄存器,(,ISR,),中断,优先级,裁决器,(,PR,),中断屏蔽寄存器,(,IMR,),IR,0,IR,7,中断,请求,寄存器,(,IRR,),INTA INT,控 制 逻 辑,初始化命令,寄存器组,操作命令,寄存器组,RD,WR,CS,A,0,8259A,的工作过程,中断源在中断请求输入端,IR,0,IR,7,上产生中断请求。,中断请求被锁存在,IRR,中,并经,IMR,屏蔽,/,允许,其结果送给优先权判优电路,PR,判优。,优先权电路检出当前优先权最高的中断请求位,设置,ISR,中的对应位。,控制逻辑接受,ISR,的中断请求,向,CPU,发出中断请求,INT,信号。,当,CPU,从,INTR,管脚接受,8259A,的,INT,信号,进入,2,个连续中断响应周期。第,1,个响应周期通知,8259A,作响应准备,第,2,个响应周期,8259A,将响应的,中断类型号,输出到数据总线,DB,上。,CPU,读取该,中断类型号,,转移到相应的,中断处理程序,。,8259A,的管脚及其功能,D,7,D,0,:双向三态数据线,直接和系统数据总线的,8,位相连。,IR,0,IR,7,:中断请求输入线,通常,IR,0,为最高优先权,,IR,7,为最低优先权。,INT,:中断请求输出线,与,CPU,的,INTR,中断请求端连接。,INTA,:中断允许线,接受来自,CPU,的中断响应信号。,CS,,,RD,,,WR,:分别是片选、读命令、写命令信号线,它们相互配合实现对,8259A,中不同寄存器的读或写操作。,A,0,:端口地址线。,A,0,=0,,为,8259A,偶地址端口,,A,0,=1,为,8259A,奇地址端口。,CAS,2,CAS,0,:级连信号线,对于主片,8259A,,它是输出线;而对于从片,8259A,,它是输入线。它们用于多片,8259A,的级连控制。,SP/EN,:主从,/,允许缓冲线,具有双向功能。,/,作为输入还是输出,取决于,8259A,是否采用缓冲方式。,6.1.3 8259A,的中断管理方式,1,优先级设置方式,2,中断屏蔽方式,3,中断结束方式,4,与系统总线的连接方式,5,中断请求的引入方式,6,中断查询方式,8259A,中断优先级设置方式,全嵌套方式,全嵌套方式是,8259A,最常用的一种工作方式。如果,8259A,初始化后没有设置其他优先级方式,那么就按全嵌套方式工作。全嵌套方式可以把与它同级或优先权更低的中断请求屏蔽,只有优先权比它高的中断请求才被开放,实现中断嵌套。此时中断优先权的级别是固定的,按,IR,0,IR,7,逐级次之。,特殊全嵌套方式,特殊全嵌套方式可以响应同级的中断请求,从而实现一种对同级中断请求的特殊嵌套。特殊全嵌套方式一般用于,8259A,的级连情况。主片则必须采用特殊全嵌套方式,而从片可采用全嵌套方式。,8259A,中断优先级设置方式,优先权自动循环方式,优先权自动循环方式一般用于有多个相同优先权中断的场合。当某个中断受到中断服务后,它的优先权就自动降为最低,而与之相邻的优先级就升为最高。,8259A,在设置优先权自动循环方式时,总是先自动规定,IR,0,优先权最高,,IR,7,最低。,优先权特殊循环方式,优先权特殊循环方式与优先权自动循环方式相比仅有一点不同,就是在优先权特殊循环方式下,一开始的最低优先权是由编程确定的,而不是自动规定,从而也就确定了最高优先权。,8259A,中断屏蔽方式,普通屏蔽方式,普通屏蔽方式通过编程将屏蔽字写入,IMR,而实现。若屏蔽位为,“,1,”,,中断请求被屏蔽,为,“,0,”,,中断请求被开放。,特殊屏蔽方式,特殊屏蔽方式是在执行较高级的中断服务时,希望开放较低级的中断请求场合下使用的。采用特殊屏蔽方式,先设置特殊屏蔽方式,然后用屏蔽字对,IMR,中某一位置,“,1,”,时会同时使,ISR,中对应位清,“,0,”,,这样不但屏蔽了当前被服务的中断级,同时真正开放了其他优先权较低的中断级。这样就可以开放所有未被屏蔽的中断请求,包括优先权较低的中断请求。,8259A,中断结束方式,自动中断结束方式(,AEOI,),AEOI,方式是一种最简单的中断结束处理方式,用在单,8259A,,且多个中断不嵌套的情况。这种方式在,8259A,进入后一个中断响应周期信号的后沿,自动将,ISR,中被响应中断级的对应位清,“,0,”,。,非自动中断结束方式(,EOI,),EOI,方式是一般的中断结束方式。这种方式从中断程序返回前,用输出中断结束(,EOI,)命令把,ISR,当前优先权最高的对应位清,“,0,”,,结束中断。,若,8259A,在特殊全嵌套方式下,就用,特殊的中断结束,EOI,命令,。因为此时,8259A,不能确定刚才服务的中断源等级,只有通过设定特殊中断结束命令,在命令中指出到底要对哪一个中断级清,“,0,”,。,8259A,与系统总线连接方式,缓冲方式,在多片,8259A,级联系统,,8259A,通过总线驱动器和数据总线相连,这就是缓冲方式。缓冲方式下,,8259A,的,SP/EN,作为输出端,(,低电平,),,和总线驱动器的允许端相连,可作为总线驱动器的启动信号。,非缓冲方式,在单片,8259A (,或只有极少数几片级联,),系统,将,8259A,直接连接到数据总线上。此时,,8259A,的,SP/EN,作为输入端,接高电平或低电平。单片系统,SP/EN,端接高电平,级联系统主片,SP/EN,端接高电平,从片,SP/EN,端接低电平。,8259A,中断请求引入方式,电平触发方式,8259A,将中断请求输入端,IR,i,出现的高电平作为中断请求信号,因此在,IR,i,的高电平持续期间,请求信号总是有效的。但是,,IR,i,的中断请求被响应后,必须及时将它清除。否则,该输入端仍然为高电平,可能引起同一个中断请求被响应多次,这是应该避免的。,边沿触发方式,边沿触发方式下,,8259A,将中断请求输入端,IR,i,上出现的上升沿作为中断请求信号。该中断请求得到触发后可以一直保持高电平。,8259A,中断查询方式,查询方式:,8259A,可以不向,CPU,发,INT,信号,而是靠程序查询方式,读取查询字,判断有无中断请求。若有,便根据查询字提供的请求服务的编码,转移到对应的服务程序去。,设置查询方式的过程,:系统先关中断,然后把查询方式命令字(,OCW,3,的,D,2,D,1,D,0,为,0000,)写到,8259A,,再对,8259A,执行一条读指令,,8259A,便将一个,8,位的查询字送到数据总线上。,查询字数据位含义,(,D,6,D,3,未用):,D,7,:表示是否有中断请求标识位。,D,7,为,1,有中断请求,,D,7,为,0,无中断请求。,D,2,D,1,D,0,:表示,8259A,请求服务的最高优先级编码。,6.1.4 8259A,的编程设置,8259A,的编程设置分为两部分,:,初始化编程,8259A,工作之前,必须设置,24,个字节的初始化命令字,ICW,,使,8259A,处于初始化工作方式的就绪状态。,工作编程,8259A,初始化设置之后,根据需要可以向,8259A,设置相关操作命令字,OCW,,实现,8259A,的相关操作。,8259A,的初始化命令字,ICW,初始化命令字,ICW,1,芯片控制字,ICW,1,对,8259A,复位,给出是单片还是多片级连等设定。,初始化命令字,ICW,2,中断类型号命令字,ICW,2,设定,8259A,管理的,8,个中断类型号的高,5,位。,初始化命令字,ICW,3,主,/,从片初始化字,ICW,3,定义,8259A,级连系统中主,/,从片的级连信息。,初始化命令字,ICW,4,方式控制字,ICW,4,给出,8259A,的工作系统,中断程序是否需要输出,EOI,命令等设定。,8259A,的初始化设置流程,注意,:,ICW,1,应写入,8259A,的,偶地址,端口(,A,0,=0,),ICW,2,,,ICW,3,,,ICW,4,应写入,8259A,的,奇地址,端口(,A,0,=1,),No,写,ICW,1,(,A,0,=0,),写,ICW,2,(,A,0,=1,),级连,?,写,ICW,3,(,A,0,=1,),要,ICW,4,?,写,ICW,4,(,A,0,=1,),初始化结束,No,Yes,Yes,操作命令字,OCW,1,屏蔽操作命令字,OCW,1,用来设置,/,清除对中断源的屏蔽。若,OCW,1,的,D,i,为,1,,则对应的中断被屏蔽;若,D,i,为,0,,则对应的中断被开放。,操作命令字,OCW,2,中断方式命令字,OCW,2,用来设置优先级是否进行循环、循环的方式,以及中断结束的方式。,操作命令字,OCW,3,状态操作命令字,OCW,3,用来设置查询方式、特殊屏蔽方式,以及用来读,8259A,的中断请求寄存器,IRR,、中断服务寄存器,ISR,的当前状态等。,8259A,的操作命令字,OCW,8259A,的,ICW,和,OCW,操作功能表,类型,CS,WR,RD,A,0,功能,特征标志或流程,写,命,令,0,0,1,0,数据总线,ICW,1,ICW,1,的,D,4,为,1,0,0,1,0,数据总线,OCW,2,OCW,2,的,D,4,D,3,为,00,0,0,1,0,数据总线,OCW,3,OCW,3,的,D,4,D,3,为,01,0,0,1,1,数据总线,OCW,1,(IMR),无,0,0,1,1,数据总线,ICW,2,ICW,4,ICW,设置流程,读,状,态,0,1,0,0,IRR,数据总线,OCW,3,的,D,2,D,1,D,0,为,010,0,1,0,0,ISR,数据总线,OCW,3,的,D,2,D,1,D,0,为,011,0,1,0,0,中断标识码,数据总线,OCW,3,的,D,2,D,1,D,0,为,100,0,1,0,1,IMR,数据总线,无,初始化命令字,ICW,设置例,【,例,6.1】,IBM PC/XT,系统,单片,8259,的初始化设置。,8259,的端口地址:,20H,(偶地址),,21H,(奇地址),MOV AL,,,13H,;设置,8259,单片、边沿触发、要,ICW,4,OUT,20H,,,AL,;,写,ICW,1,MOV AL,,,08H,;设置中断类型号高,5,位(,08H0FH,),OUT,21H,,,AL,;,写,ICW,2,MOV AL,,,09H,;设置全嵌套、非缓冲、,EOI,结束,OUT,21H,,,AL,;,写,ICW,4,操作命令字,OCW,设置例,IN AL,,,21H,;读,IMR,(总是有效),OR AL,,,83H,;,屏蔽,IR,0,,,IR,1,,,IR,7,,保留其他的,(或,AND AL,,,83H,),;,开放,IR,2,IR,6,,保留其他的,OUT,21H,,,AL,;写,OCW,1,(,屏蔽字,),MOV AL,,,20H,;设置,OCW,2,的,EOI,命令字,OUT,20H,,,AL,;写,OCW,2,IRET,;必须在中断结束前设置,EOI,MOV AL,,,0AH,;设置,OCW,3,的读,IRR,命令字,OUT,20H,,,AL,;写,OCW,3,IN AL,,,20H,;读,IRR,(一次性有效),DMA,方式接口中的,8237A,系统总线,CPU,存储,器,总线请求,(,HLOD),总线允许,(,HLDA),DMA,控制器,8237,A,DMA,请求,(,DACK),DMA,允许,(,DREQ),I/O,接,口,I/O,设,备,6.2.1 8237A,基本特点,Intel 8237A,是高性能的可编程,DMA,控制器,有,四个独立的,DMA,通道,,可以实现存储器与,I/O,设备之间、存储器到存储器的,DMA,传输。,8237A,是一个接口电路,可以和其他接口一样接受,CPU,对它进行,DMA,传输的初始化设置。此时,,8237A,为,从控组态,。,8237A,在得到系统总线控制权后,可以利用系统总线完成三种类型(读、写、校验)的,DMA,传输。此时,,8237A,为,主控组态,。,8237A,必须与一片,8,位锁存器,一起使用,才能完成,DMA,传输。,8237A,可以多片级连使用,扩大通道数(最多可达,16,个,)。,8237A,的,DMA,传输速度可以高达,1.6MB/,秒,,一次数据块传输最多可以达到,64KB,。,DMA,传送中的,8237A,第一步:,对,8237A,初始化设置,CPU,对,8237A,编程设置,,8237A,为,从控工作模式(组态),。,第二步:,8237A,控制,DMA,传送过程,8237A,控制,DMA,数据传送,,8237A,为,主控工作模式(组态),。,DMA,传送过程,:,DMA,请求,(,I/O,接口,8237A, CPU,),DMA,响应,(,CPU ,8237A, I/O,接口),DMA,传送,(,M I/O,接口,或,I/O,接口,M,),DMA,结束,(,8237A, CPU,),6.2.2 8237A,的内部结构和管脚,命令控制逻辑,模式寄存器,当前地址寄存器,基地址寄存器,当前字节计数器,基本字节计数器,请求触发器,屏蔽触发器,通道0,通道1,通道2,通道3,控制寄存器,状态寄存器,暂存器,时序,与,读/写,控制,逻辑,CLK,RESET,READY,EOP,MEMR,MEMW,IOR,IOW,AEN,ADSTB,CS,HRQ,HLDA,DREQ,0, DREQ,3,DACK,0, DACK,3,数据,/地址,缓冲器,DB,7,DB,(,A,15,A,8,),A,7,A,4,A,3,A,0,地址,缓冲器,优先级,控制,逻辑,8237A,的管脚及其功能,CLK,:,8237A,的工作时钟,频率为,3MHz5MHz,。,RESET,:复位信号,高电平有效。,READY,:存储器或外设准备就绪信号。,CS,:片选信号,低电平有效。,MEMR,,,MEMW,:存储器读信号、写信号,均低电平有效。,IOR,,,IOW,:输入,/,输出设备读信号、写信号,是双向的。,EOP,:,DMA,传输结束信号,使,8237A,内部寄存器复位。该信号是双向的,当由外部输入时,,DMA,传输被强迫性结束;当,8237A,任一通道计数结束时,输出该信号,表示,DMA,传输结束。,DREQ,0,DREQ,3,:分别是,4,个通道的,DMA,请求信号。,DACK,0, DACK,3,:分别是,4,个通道的,DMA,响应信号。,HRQ,,,HLDA,:总线请求信号,总线响应信号。分别接系统总线的,HOLD,,,HLDA,。,A,3,A,0,:低,4,位地址线,双向地址信号。,8237A,作为从模块时,,A,3,A,0,输入,对,8237A,的内部寄存器寻址;,8237A,作为主模块时,,A,3,A,0,输出,提供当前地址寄存器中最低,4,位地址。,A,7,A,4,:高,4,位地址线,输出或者浮空状态。,8237A,作为主模块时,提供当前地址寄存器中,A,7,A,4,地址。,DB,7,DB,0,:,8,位双向数据线。,8237A,作为从模块时,,CPU,通过,DB,7,DB,0,,对,8237A,读,/,写操作,进行编程设置;,8237A,作为主模块时,,DB,7,DB,0,输出当前地址寄存器中的高,8,位地址,A,15,A,8,。,ADSTB,:地址选通输出信号,高电平有效。把当前地址寄存器的高,8,位地址,A,15,A,8,锁存到,DMA,外部锁存器。,AEN,:地址允许输出信号,高电平有效。把外部锁存器的高,8,位地址和,8237A,直接输出的低,8,位地址送到地址总线,A,15,A,0,,共同组成内存单元的,16,位偏移地址。,8237A,的管脚及其功能,6.2.3 8237A,的工作方式,8237A,的工作组态,(,模式,) :,8237A,作为从控模块,8237A,与其他接口一样,必须要接受,CPU,对它进行,DMA,传输方式的设置,即,CPU,通过相关端口地址对,8237A,进行一系列读,/,写操作的,初始化设置,。此时,,8237A,同于一般的接口电路,,是系统总线的从控模块,。,8237A,作为主控模块,8237A,在得到总线控制权以后,进入,DMA,总线周期,,控制整个,DMA,传输过程,,即,8237A,提供一系列,DMA,传输的控制信息, 操纵外设接口和存储器之间数据的传输。此时,,8237A,又不同于一般的接口电路,相当于具有,CPU,的功能,,是系统总线的主控模块,。,8237A,控制,DMA,传输的过程,当某个,DMA,通道要求进行,DMA,操作时,向,8237A,发出,DMA,请求信号,DREQ,。,8237A,内部优先权控制逻辑电路,接收最高优先级通道上的外设请求信号,并向,CPU,发出总线请求信号,HRQ,。,CPU,接到,8237A,的,HRQ,信号,如果允许发出,DMA,响应信号,HLDA,,让出对总线的控制,即,8237A,控制了总线。同时,,8237A,对最高优先级的,DMA,通道发出响应信号,DACK,,进入,DMA,传输周期。,在,DMA,传输期间,,8237A,发送访问内存单元的,16,位,地址信号,,以及相应的存储器和,I/O,设备的,读,/,写控制信号,,控制外设与所寻址的内存单元传输数据。,8237A,通道的地址寄存器和字节计数器,初始化时已设置了内存首地址和传输字节数。,DMA,每传输,1,个字节,自动对,地址寄存器和字节计数器的值修改,。当字节计数器的值减为,0,时,发计数结束信号,EOP,,表示,DMA,过程结束。,DMA,传输过程结束时,,8237A,向,CPU,撤消,DMA,请求信号,DREQ,,将总线控制权还给,CPU,。,8237A,的,DMA,传输方式,单字传输方式:,单字传输方式是每进行,1,个字的,DMA,传输,就释放总线。,成组传输方式:,成组传输方式一次连续进行多个字的传输,当一组数据传输完成(计数为,0,),或者从外部接收到一个结束信号时,就释放总线,结束,DMA,传输。,请求传输方式:,请求传输方式在成组传输过程中,每进行,1,个字的传输均测试,DMA,请求是否有效,决定是否继续进行,DMA,传输。,级联传输方式:,级联传输方式是用,2,片以上的,8237A,构成主从式,DMA,控制系统。主从式的,8237A,最多可扩展为,16,个,DMA,通道。,8237A,的,DMA,传输类型,在单片或多片级联的,DMA,系统,每个通道的,DMA,传输可以选择以下三种类型之一。,DMA,读:,输出和有效信号,,I/O,设备读取存储器的数据。,DMA,写:,输出和有效信号,,I/O,设备的数据写到存储器。,DMA,校验:,这是一种伪,DMA,传送,目的是对内部读,/,写功能进行校验。,DMA,校验同上述两种传输类型一样产生地址信号、字节计数值,以及对的响应,但禁止了存储器和,I/O,接口的读,/,写控制信号,即不传送数据。,6.2.4 8237A,的寄存器及其编程应用,4,个独立通道的寄存器,模式寄存器,(,8,位),模式寄存器用来设置工作方式、决定地址增减、选择是否使用自动预置功能、选择传输类型及选择通道号等。,基地址寄存器,和,当前地址寄存器,(均为,16,位),基地址寄存器用来存放本通道,DMA,传输的地址初值,在,8237A,初始化时写入,同时,初值也写入当前地址寄存器。当前地址寄存器的值在每次,DMA,传输时自动加,1,或减,l,(取决于模式字,D,5,位)。,CPU,可以随时用输入指令分两次(每次,8,位)读出当前地址寄存器的值,而基地址寄存器中的值不能被读出。若通道选择为自动预置(取决于模式字的,D,4,位),则在结束成批数据传输产生时,当前地址寄存器恢复到与基地址寄存器同值,即预置的初始值。,4,个独立通道的寄存器,基本字节计数器,和,当前字节计数器,(均为,16,位),基本字节计数器存放,DMA,传输字节数的初值(比实际传输的字节数少,l,),在,8237A,初始化时写入,同时,初值也写入当前字节计数器。在,DMA,传输时,每传输,1,个字节,当前字节计数器的值自动减,l,,当由,0,减到,FFFFH,时,产生计数结束信号。当前字节计数器的值也可以分两次读出。若通道选择为自动预置,则在有效的同时,当前字节计数器恢复到与基字节计数器同值,即预置的初始值。,请求触发器,和,屏蔽触发器,每个通道都配备,1,位的,DMA,请求触发器和,1,位的,DMA,屏蔽触发器。它们分别用来设置本通道的,DMA,请求标志和屏蔽标志位。在物理上,,4,个请求触发器对应,1,个,4,位的,DMA,请求寄存器,,4,个屏蔽触发器对应,1,个,4,位的屏蔽寄存器。,公用的寄存器和命令字,控制寄存器,(,8,位):控制寄存器决定,DACK,及,DREQ,的有效电平、是否扩展写信号、通道的优先级方式、时序类型、启动,/,停止,8237A,工作、数据传输目标等。,状态寄存器,(,8,位):状态寄存器表示各通道是否有,DMA,请求和计数结束状态。,暂存寄存器,(,8,位),DMA,请求寄存器,(,8,位):在,DMA,请求寄存器中写入请求字节,实现对某个通道,DMA,请求标志的设置。,DMA,屏蔽寄存器,(,8,位):在,DMA,屏蔽寄存器中写入屏蔽字节,实现对某个通道,DMA,屏蔽标志的设置。也可以使用综合屏蔽命令一次完成对,4,个通道的屏蔽设置。,清除先,/,后触发器命令,复位命令(综合清除命令),:使屏蔽寄存器置位,其他所有寄存器和触发器都清,0,。,8237A,寄存器,/,命令字的读,/,写操作,A,3,A,2,A,1,A,0,(,16,#,),通 道,写操作,(,IOW=0,),读操作,(,IOR=0,),0H,2H,4H,6H,0,1,2,3,基地址与当前地址寄存器,当前地址寄存器,1H,3H,5H,7H,0,1,2,3,基本字节与当前字节计数器,当前字节计数器,8H,公共,控制寄存器,状态寄存器,9H,请求寄存器,AH,屏蔽寄存器,(,单屏蔽位命令,),BH,模式寄存器,CH,清除先,/,后触发器命令,DH,复位命令,暂存器,EH,清屏蔽寄存器命令,FH,全屏蔽位命令,8237A,初始化编程步骤,写复位命令字;, 写基地址和当前地址寄存器(先写低,8,位,后写高,8,位);, 写基本字节和当前字节寄存器(先写低,8,位,后写高,8,位);, 写模式字,指定通道的工作方式;, 写屏蔽字,将通道的屏蔽开放;, 写控制字,设置具体操作,并启动,8237A,工作。,8237A,的编程,应用,例,1,【,例,1】,8237A,的存储器到存储器的,DMA,传输。,利用,8237A,的,通道,0,和,通道,1,实现存储器,(0:4000H),到存储器,(0:3000H),的,10,个字节数据传送。,DMA,方式的,存储器到存储器,的数据传送, 是通过软件请求(请求命令字)启动,DMA,传输工作,使,8237A,由空闲状态转到控制状态,当传送完成,则自动转到空闲状态。,8237A,端口地址为,00H0FH,。,应用例,1,程序,OUT,0DH,,,AL,;8237复位,MOV AL,,,00H,OUT,00H,,,AL,MOV AL,,,40H,OUT,00H,,,AL,;设置,通道0,基地址,MOV AL,,,00H,OUT,02H,,,AL,MOV AL,,,30H,OUT,02H,,,AL,;设置,通道1,基地址,MOV AL,,,0AH,OUT,01H,,,AL,MOV AL,,,00H,OUT,01H,,,AL,;设置,通道0,计数值,MOV AL,,,0AH,OUT,03H,,,AL,MOV AL,,,00H,OUT,03H,,,AL,;设置,通道1,计数值,MOVAL,,,88H,OUT,0BH,,,AL,;设置,通道0,模式,MOVAL,,,85H,OUT,0BH,,,AL,;设置,通道1,模式,MOVAL,,,81H,OUT,08H,,,AL,;设置命令字(,MM,方式),MOVAL,,,00H,OUT,0FH,,,AL,;设置综合屏蔽命令,MOVAL,,,04H,OUT,09H,,,AL,;设置通道0请求字(启动),A1: JMP A1,8237A,的编程,应用例,2,【,例,6.4】,以,IBM PC/XT,系统中,8237A,的应用,说明编程寄存器和命令的使用。,8237A,的,通道,0,用于动态,RAM,刷新,,通道,1,提供网络通信传输功能,,通道,2,和通道,3,分别用来进行软盘驱动器和硬盘驱动器与内存之间的数据传输。采用固定优先级。,4,个,DMA,请求和应答信号中,只有,DREQ,0,,,DACK,0,直接和系统主板相连的,,DREQ,1,DREQ,3,和,DACK,1,DACK,3,接总线扩展槽,分别与对应的网络接口板、软盘接口板、硬盘接口板相关信号连接。,IBM PC/XT,系统的,8237A,端口地址为,00H0FH,。,例,2,的初始化程序段,MOVAL,,,04H,OUT,08H,,,AL,;控制命令,关闭8237,A,MOVAL,,,00H,OUT,0DH,,,AL,;复位命令,MOVDX,,,0,;取通道0 地址寄存器的端口地址,MOVCX,,,4,MOVAL,,,0FFH,LOP1,:,OUT,DX,,,AL,;,0FFH,写入低8位,OUT,DX,,,AL,;,0FFH,写入高8位,ADDDX,,,2,LOOP,LOP1,;4个通道的地址寄存器均设置为0,FFFFH,MOVAL,,,58H,OUT,0BH,,,AL,;设置通道0模式,MOVAL,,,41H,OUT,0BH,,,AL,;设置通道1模式,MOVAL,,,42H,OUT,0BH,,,AL,;设置通道2模式(同通道1),MOVAL,,,43H,OUT,0BH,,,AL,;设置通道3模式(同通道1),MOVAL,,,00H,OUT,0FH,,,AL,;设置综合屏蔽命令,MOVAL,,,00H,OUT,08H,,,AL,;设置控制命令,例,2,的通道测试程序段,对通道1通道3地址寄存器的值进行测试的程序段:,MOVDX,,,02H,;取通道1 地址寄存器的端口地址,MOVCX,,,3,LOP2,:,INAL,,,DX,;读低8位值,MOVAH,,,AL,INAL,,,DX,;读高8位值,CMPAX,,,0FFFFH,;比较读的值与0,FFFFH,是否相等,JNZ,error,;若不等,转测试出错处理,ADDDX, 2,LOOP,LOP2,;对通道1通道3地址寄存器测试,;测试的后续处理,6.3.1,定时,/,计数器工作原理,计数器,/,定时器,是一个具有可编程的计数功能的专用芯片。,计数器,/,定时器的结构,:,计数功能实现过程,:,在预先设置好计数初值后,便开始对外部给的,触发脉冲,做,减,“,1,”,计数,,当计数值减为,“,0,”,时,输出一个,“,计数到,”,的信号。,D,7, D,0,触发,脉冲信号,(,CLK,),门控信号,(,GATE,),计数状态信号,(,OUT,),计数初值寄存器,D,7, D,0,减1计数器,计数值锁存器,“,写”,“,读”,计数器和定时器的差别,触发计数减,1,功能的信号必须是,触发脉冲信号,。,计数器,的触发脉冲信号可以是,周期恒定,的,也可以是,周期随意,的,仅当计数值减到,“,0,”,时,给出一个表示,计数结束的输出信号,。,定时器,的触发脉冲信号必须是,周期恒定的时钟信号,,在计数值减到,“,0,”,时,输出一个表示计数为,“,0,”,的信号;并把计数初值自动重新装入,再继续重复做减,“,1,”,计数,从而获得一个,恒定的周期性输出信号,。,计数器,/,定时器的应用,定时,/,计数器通常应用在:,在,多任务的,分时系统,中产生定时中断信号,实现程序的切换;,产生精确的计数,/,定时信号,实现,定时数据采集,或,实时控制,;,作为一个可编程的,波特率发生器,。,6.3.2 8253,的内部结构和管脚,Intel 8253,定时/计数器的功能:,有,3个,独立的16位计数器通道,既可做,16位计数器,,也可做,8位计数器,使用。,每个计数器可以选择按,二进制数,或十进制数,(,BCD,码数)计数。,每个计数器最高计数速率可达,2.6,MHz,。,每个计数器都可以编程设定,6种工作方式,之一。,所有输入/输出均与,TTL,电平,兼容。,8253,的内部结构,数据总线,缓冲器,D,7,D,0,计数器0,控制寄存器,计数器1,计数器2,初值寄存器,输出锁存器,减1计数器,CLK,0,GATE,0,OUT,0,CLK,1,GATE,1,OUT,1,CLK,2,GATE,2,OUT,2,读/写,控制,逻辑,RD,WR,CS,A,1,A,0,8253,的管脚及其功能,D,7,D,0,:,8,位、双向、三态数据线,直接和系统数据总线相连。读,/,写,16,位数据则分两次进行。,CS,:片选信号,低电平有效。,RD,,,WR,:读信号,写信号,低电平时有效。,A,1,,,A,0,:,8253,端口选择线。,0010,分别选择计数器,02,,,11,选择控制端口。,CLK,0,CLK,2,:分别是计数器,02,计数脉冲输入端,决定计数的速率。,GATE,0,GATE,2,:分别是计数器,02,门控输入端,作为对计数允许,/,禁止的控制 。,OUT,0,OUT,2,:分别是计数器,02,的输出端,反映计数器的计数状态 。,8253,操作的控制逻辑,CS,RD,WR,A,1,A,0,操作说明,0,0,1,0,0,计数器,0,数据总线,0,0,1,0,1,计数器,1,数据总线,0,0,1,1,0,计数器,2,数据总线,0,0,1,1,1,非法状态,0,1,0,0,0,数据总线计数器,0,0,1,0,0,1,数据总线计数器,1,0,1,0,1,0,数据总线计数器,2,0,1,0,1,1,数据总线控制寄存器,1,D,7,D,0,呈高阻状态,方式,0,计数结束产生中断,方式,1,可重复触发的单稳态(脉冲)触发器,方式,2,频率发生器(分频器),方式,3,方波频率发生器,方式,4,软件触发选通信号发生器,方式,5,硬件(,GATE,)触发的选通信号发生器,6.3.3 8253,的工作方式,8253,的控制字,8253,控制字,可以选择计数器、工作方式、计数的数制(二进制或者十进制,BCD,码)以及,CPU,访问计数器的读,/,写方法等。,8253,控制字格式,(,8,位),:,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,SC,1,SC,0,RW,1,RW,0,M,2,M,1,M,0,BCD,计数器选择,0 0: 计数器0,0 1: 计数器1,1 0: 计数器2,1 1: 无意义,读/写方法,0 0:锁存计数值,0 1:只读/写低8位,1 0:只读/写高8位,1 1:先低8位后高8位,读/写16位,工作方式选择,0 0 0:方式0,0 0 1:方式1,1 0:方式2,1 1:方式3,1 0 0:方式4,1 0 1:方式5,数制选择,0:二进制,1:,BCD,码,8253,的,编程,设置原则,计数器工作必须,先设置控制字,,,后设置计数初值,,在门控(,GATE,)有效时启动减,1,计数。,设置计数初值,要符合控制字的计数器位数规定。若用低位字节或用高位字节,,8,位计数初值一次写;若高、低位字节都用,,16,位计数初值分两次写入,先写低字节,后写高字节。,0,是计数器所能容纳的最大计数初值。,读取计数器当前值,,可以了解计数动态情况。在读计数值之前,必须用,锁存命令,(控制字的,D,5,D,4,为,00,)把计数值锁存到计数输出寄存器,然后再读。否则读数时,计数输出寄存器随减,1,计数寄存器动态变化,得不到稳定值。当,CPU,将锁定计数值读走之后,锁存功能自动失锁,计数输出寄存器又随减,1,计数寄存器动态变化。,8253,方式,0,方式,5,的输出波形,(正常计数的,OUT,状态),方式0,OUT,减1计数器的值,CLK,写控制字 写,N=4,WR,4 3 2 1,。,方式1,OUT,方式2,OUT,方式3,OUT,方式4/5,OUT,未定态 计数初态 计数态 结束态,/,计数态,8253,门控信号,GATE,的性能,方式,低电平或下降沿,上升沿,高电平,方式,0,禁止计数,允许计数,方式,1,开始计数,,方式,2,禁止计数,,输出变为低电平,允许计数,方式,3,输出变为高电平,重新设置初值,,允许计数,方式,4,禁止计数,,开始计数,允许计数,方式,5,输出变为高电平,开始计数,8253,六种工作方式的共同点,:,每一种工作方式不仅与计数初值有关,而且受,CLK,信号和,GATE,信号控制。,CLK,信号确定计数器减,1,的速率,,GATE,信号允许,/,禁止计数器工作或计数器启动。,写入计数初值之后,并不马上开始计数,只有检测到,GATE,信号有效,经过一个,CLK,周期,把计数初值送到减,1,计数寄存器,才开始作减,1,操作。,OUT,端随着工作方式的不同和当前计数状态的不同,一定有电平输出变化。,OUT,的输出波形在写控制字之前为未定态,在写了控制字之后到计数之前为计数初态,再之后有计数态、暂停态、结束态等。,对于给定的工作方式,门控信号,GATE,的触发条件是有具体规定的,或电平触发,或边沿触发,或两者均可。,8253,六种工作方式比较,8253,六种工作方式比较,8253,六种工作方式的不同点:,方式,0,和方式,4,都是软件触发,(,写入计数初值,),启动计数,无自动重装入计数初值能力。,GATE,高电平时,减,1,计数器减,1,,否则停止计数。它们的区别:方式,0,在计数过程中,OUT,输出为低电平,计数结束时变为高电平,并一直保持;方式,4,在计数过程中,OUT,输出为高电平,计数结束时输出一个宽度为一个,T,CLK,的负脉冲,以后又保持高电平。,方式,1,和方式,5,均是硬件触发,(GATE,上升沿,),启动计数。写入初值之后,,GATE,的上升沿触发,把初值写入减,1,计数寄存器,开始计数。它们的区别:方式,1,在计数过程中,OUT,输出一个宽度为计数初值乘以,T,CLK,的单相负脉冲;方式,5,是在计数结束后,OUT,输出一个宽度为一个,T,CLK,的负脉冲。,方式,2,和方式,3,的共同点是具有自动重装入计数初值的能力,都是频率发生器,(,分频器,),。它们的区别:方式,2,输出占空比为,(,n,-1):1,的矩形波信号,而方式,3,输出方波信号。,6.3.4 8253,的应用例,【,例,6.5】,某,8253,端口地址为,30H,33H,,要求从计数器,0,的,OUT,端得到,400Hz,方波信号,计数器,1,利用这,400Hz,方波,从,OUT,端得到,20Hz,的连续单拍负脉冲信号,系统提供的计数脉冲源为,200kHz,。,计数器,0,的输出为连续方波,应工作在,方式,3,。,计数器,1,的输出为连续单拍负脉冲,应工作在,方式,2,。,8253,的硬件连接,:,GATE,0,和,GATE,1,接,+5V,,,CLK,0,接系统提供的时钟源,200kHz,,,OUT,0,输出接到,CLK,1,输入,,OUT,1,输出就是所要求的,20Hz,的连续单拍负脉冲信号。,计数器,0,的计数初值,:,200000 /400=500=01F4H,。,计数器,1,的计数器初值,:,400 /20=20=14H,。,例,6.5,初始化程序,;,8253,端口地址为,30H,33H,MOVAL,,,36H,;,计数器,0,方式,3,,,16,位二进制计数,OUT,33H,,,AL,MOVAL,,,54H,;,计数器,1,方式,2,,,8,位二进制计数,OUT,33H,,,AL,MOVAX,,,01F4H,;取,计数器,0,计数初值,OUT,30H,,,AL,;,写计数初值低,8,位,MOVAL,,,AH,OUT,30H,,,AL,;,写计数初值高,8,位,MOVAL,,,14H,;,取计数器,1,计数初值,OUT,31H,,,AL,;,写计数初值,8253,应用例,6.6,【,例,6.6】,IBM PC/XT,系统板上,8253,的,3,个计数器的使用。,IBM PC/XT,系统板上,8253,的接口电路,:,D,7,D,0,CLK,0,RD CLK,1,WR,CLK,2,8253,CS,OUT,0,A,1,OUT,1,A,0,GATE,2,GATE,1,OUT,2,GATE,0,IR,0,(8259),Q,D,+5,V,DREQ,0,(8237),与,PB,1,(8255),放大器,扬声器,(8284),PCLK,Q D,Q,(,DB),IOR,IOW,(8255),PB,0,+5V,地址,译码,(,AB),例,6.6,编程要点,PCLK,来自时钟发生器,8284A,的输出时钟,频率为,2.38MHz,,经二分频后作为,8253,的,3,个计数器的时钟输入,时钟频率为,1.19318MHz,。,计数器,0,为方式,3,,,GATE0,固定为高电平,,OUT0,输出作为中断请求接到中断控制器,8259A,的,IR0,,用于系统报时时钟和磁盘驱动器的马达定时中断(约,55ms,)。,计数器,1,为方式,2,,,GATE1,固定为高电平,,OUT1,输出作为对,DMA,控制器,8237A,通道,0,的,DMA,请求,DREQ0,,用于定时(约,15s,)启动刷新动态存储器,DRAM,。,计数器,2,为方式,3,,,1KHz,的方波输出。,GATE2,由,8255A,的,PB0,控制,,OUT2,输出经过与门,并滤掉高频分量后送到扬声器发声。与门控制信号为,8255A,的,PB1,。可用,PB1,,,PB0,同时为“高”的时间来控制发声时间。长声时间为,3s,,短声时间为,0.5s,。,8253,的端口地址为,40H43H,,,8255A,的端口地址为,60H63H,。,例,6.6,初始化程序,计数器,0,用于定时(约,55 ms,)中断,MOVAL,,,36H,;方式,3,,,16,位二进制计数,OUT,43H,,,AL,MOVAL,,,0,;计数值,0000,,即为最大值,65536,OUT,40H,,,AL,;,1/1.19318 MHz,840 ns,OUT,40H,,,AL,;,840 ns,65536,55 ms,计数器,1,用于定时(约,15s,),DMA,请求,MOVAL,,,54H,;方式,2,,低,8,位二进制计数,OUT,43H,,,AL,MOVAL,,,12H,;计数值,18,OUT,41H,,,AL,;,840ns1815s,,,2ms,内可刷新,132,次,例,6.6,发声子程序,BEEPPROC NEAR,MOV AL,,,0B6H,;方式,3,,,16,位二进制计数,OUT,43H,,,AL,MOVAX,,,0533H,;计数值,1331,(,0533H,),OUT,42H,,,AL,MOVAL,,,AH,OUT,42H,,,AL,INAL,,,61H,;读,8255,的端口,B,原输出值,MOVAH,,,AL,;保存在,AH,ORAL,,,03H,;使,PB1,,,PB0,均为,1,OUT,61H,,,AL,;输出使扬声器发声,SUBCX,,,CX,;,CX=0,,最大循环计数65536,GT,:,LOOPGT,;循环延时,DECBL,;,BL,为发声长短的入口参数,,JNZGT,;,BL=6,发长声,,BL=1,发短声,MOVAL,,,AH,;取回保存在,AH,中端口,B,的输出值,OUT,61H,,,AL,;恢复8255,A,的端口,B,,停止发声,RET,BEEPENDP,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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