但是看看妇科指南

上传人:尘*** 文档编号:242984859 上传时间:2024-09-13 格式:PPT 页数:58 大小:888KB
返回 下载 相关 举报
但是看看妇科指南_第1页
第1页 / 共58页
但是看看妇科指南_第2页
第2页 / 共58页
但是看看妇科指南_第3页
第3页 / 共58页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第八章 可编程接口芯片,8.1,计数器,/,定时器电路,8253-PIT,一,. 8253,的结构和功能,计算机系统中,实现定时或延时有三种方法:,软件定时,、,不可编程的硬件定时,、,可编程的硬件定时器,。,8253,为可编程的硬件定时,/,计数器。,1.,主要功能,A,、 具有,3,个,独立,的,16,位,计数器通道;,B,、每个计数器均可按,二进制,或,十进制(,BCD,),计数;,C,、 每个计数器的计数速率高达,2MHz,;,D,、每个通道有,6,种工作方式,,可由程序设置和改变;,E,、 所有的输入输出都与,TTL(,晶体管,-,晶体管逻辑电路的英文缩写,Transister-Transister-Logic,),兼容。,二,.8253,的引线,1,、数据线(,D7D0,),2,、地址线:选择内部寄,存器;,3,、控制线:完成片选和,读写操作。,CLK,:,输入脉冲线;,GATE,:,门控信号输入线;,GATE=0,禁止计数,,GATE=1,允许工作;,OUT,:,输出引脚;,当计数到“,0”,时,,OUT,端输出一信号。,8253,引脚排列图,8253,GATE1,Vcc,WR,RD,CS,A1,CLK2,OUT2,GATE2,CLK1,OUT1,GATE0,D7,D6,D5,D4,D3,D2,D1,D0,CLK0,OUT0,GND,A0,三,. 8253,的内部结构(书,283,页),4,、三个计数器(减法器),计数器的,3,个引脚,3,个独立的,16,位减法器,可作定时,/,计数器使用;,计数器按二,/BCD,方式减法计数,从预常减到零时,,OUT,端输出一信号。,数据总线,缓冲器,计数,器,0,读,/,写,逻辑,控制字,寄存器,计数,器,1,计数,器,2,CLK0,CLK1,CLK2,GATE0,GATE1,GATE2,OUT0,OUT1,OUT2,D7 D0,RD,WR,A0,A1,CS,8253,内部结构,内部数据总线,1,、,数据总线缓冲器,(,传送信息,),写控制字,写时常,,读计数值,2,、读写逻辑,幻灯片,3,3,、控制字寄存器,(,存放控制字,),8253,输入信号组合的功能表(书,284,页表,8.1,),CS,RD,WR,A1,A0,寄存器选择和操作,0,1,0,0,0,写入计数器,0,0,1,0,0,1,写入计数器,1,0,1,0,1,0,写入计数器,2,0,1,0,1,1,写入,控制寄存器,0,0,1,0,0,读计数器,0,0,0,1,0,1,读计数器,1,0,0,1,1,0,读计数器,2,0,0,1,1,1,无操作,(三态),1,*,*,*,*,禁止,(三态),计数器的,3,个引脚,CLK,时钟输入信号,在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减,1,GATE,门控输入信号,控制计数器工作,可分成电平控制和上升沿控制两种类型,OUT,计数器输出信号,当一次计数过程结束(计数值减为,0,),,OUT,引脚上将产生一个输出信号,四,. 8253-PIT,的控制字(书,285,页),00,选择计数器,0,01,选择计数器,1,10,选择计数器,2,11,非法选择,0=,二进制,1=BCD,计数器,读,/,写格式,工作方式,数制,D0,D1,D2,D3,D4,D5,D6,D7,在,8253,的初始化编程中,由,CPU,向,8253,的控制字寄存器写入一个控制字来规定,8253,的工作方式。,00,计数器锁存命令,10,只读,/,写高位有效字节(高八位),01,只读,/,写低位有效字节(低八位),11,先读写低位有效字节然后读写高位有效字节,000,方式,0,001,方式,1,*10,方式,2,*11,方式,3,100,方式,4,101,方式,5,计数器结构示意图,预置寄存器,GATE,CLK,OUT,减,1,计数器,输出锁存器,计数初值存于,预置寄存器,;,在计数过程中,,减法计数器,的值不断递减,,而预置寄存器中的预置不变。,输出锁存器,用于写入锁存命令时,,锁定当前计数值,五、,8253,的工作方式,8253,有,6,种工作方式,由,方式控制字,确定,熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式,每种工作方式的过程类似:,设定工作方式,设定计数初值,硬件启动,计数初值进入减,1,计数器,每输入一个时钟计数器减,1,的计数过程,计数过程结束,方式,0,计数结束中断,GATE,OUT,CLK,0,3,1,2,4,4,方式,0,WR,设,定,工,作,方,式,设,定,计,数,初,值,计,数,值,送,入,计,数,器,计,数,过,程,计,数,结,束,计数开始的时刻,需要注意:,处理器写入,8253,的计数初值只是写入了预置寄存器,之后到来的第一个,CLK,输入脉冲(需,先由低电平变高,再由高变低,)才将预置寄存器的初值送到减,1,计数器。,从,第,二,个,CLK,信号,的,下降沿,,计数器才真正开始减,1,计数。,方式,1,可编程单稳脉冲,设,定,工,作,方,式,设,定,计,数,初,值,硬,件,启,动,计,数,值,送,入,计,数,器,计,数,过,程,计,数,结,束,GATE,OUT,CLK,0,3,1,2,4,4,方式,1,WR,*,CW,写入,,OUT=0,;,*,写入时常,通道开始计数;,* 计数到零,,OUT=1,;,*,计数器只计数一遍;,*,OUT,是,N+1,个,CLK,后变高;,* 计数过程中,,GATE=0,,,计数暂停;,* 计数过程中可改变计数值;(书图,9,6,),1.,方式,0(,书上,287,页,),4,3,2,1,0,FF,OUT,GATE=1,CLK,WR,CW=10,LSB=4,3,2,2,2,0,FF,OUT,GATE,CLK,WR,CW=10,LSB=3,1,置时常,方式,1,(可编程单拍脉冲,)(书上,288,页),* 写入控制字,OUT=1,,,写入常数不计数;,*,GATE,启动计数,,OUT=0,;,*,计数到,,OUT=1,。,*,单拍脉冲宽度为,N,;,*由,GATE,重新启动;,*计数中,可重新启动;,*计数中,可改变计数值,再次启动有效。,3,2,3,0,FF,OUT,GATE,CLK,WR,CW=12,LSB=3,1,3,2,3,0,OUT,GATE,CLK,WR,CW=12,LSB=3,1,2,1,方式,2,(速率发生器分频工作方式),*,写入控制字,OUT=1,;,*,写入常数立即对,CLK,计数;,*,计数到,1,,,OUT=0,;,*,一个,CLK,周期后,,OUT=1,,,重新计数。,*,通道连续工作不需重置时常;,* 计数过程中,,GATE=0,,,计数暂停,,GATE,变高后重新计数;,* 计数过程中可改变计数值;新的计数值在下一次有效。,3,2,OUT,GATE,CLK,WR,CW=14,LSB=3,3,2,1,3,2,3,2,1,OUT,GATE=1,CLK,WR,CW=14,LSB=3,3,2,1,3,方式,3,(方波速率发生器),*,与方式,2,的区别在于:输出为周期是,N,个,CLK,脉冲的方波。,* 若计数值为偶数,每个,CLK,使计数值减,2,,计到,0,,,OUT,改变状态,重装计数值开始新的计数。,*,若计数值为奇数,第一个脉冲先减,1,,以后,每个,CLK,使计数值减,2,,计到,0,时,,OUT,改变状态,重装计数值后,第一个脉冲减,3,,以后,每个,CLK,使计数值减,2,,计到,0,时,,OUT,改变状态。,*,GATE,信号控制计数过程;,*计数过程中写入新的计数值将在半周期结束时装入计数器。,5,4,2,OUT,GATE=1,CLK,WR,CW=16,LSB=5,2,5,4,5,2,5,2,4,2,4,OUT,GATE=1,CLK,WR,CW=16,LSB=4,2,4,2,4,2,例:要求计数器,0,工作于,方式,3,,输出,方波,的,频率为,2KHz,,,计数脉冲的频率为,2.5MHz,,,采用,BCD,计数,试写出初始化程序段。,1.,常数计算:,n =T,OUT,/T,CLK,=,f,CLK,/Fout,=2.5MHz/2KHz=1250,1250H,(,BCD,),MOV AL,37H,OUT 83H,AL,已知:,8253,的端口地址为:,80H,,,81H,,,82H,,,83H,。,00,011,11,1,2. 8253,的方式控制字为:,3.,初始化程序段:,37H,MOV AL,,,50H,OUT 80H,,,AL,MOV AL,,,12H,OUT 80H,,,AL,方式,4,(软件触发选通),* 写入控制字,OUT=1,;,*,写入常数立即对,CLK,计数;,* 计数到,0,,,OUT=0,;,*,一个,CLK,周期后,,OUT=1,,,计数器停止计数。,*,计数器只计数一遍;,*,OUT,是,N+1,个,CLK,后变低;,* 计数过程中,,GATE=0,,,计数暂停;,* 若在计数过程中,改变计数值,则按新的计数值重新开始计数。,3,2,1,OUT,GATE=1,CLK,WR,CW=18,LSB=3,0,FF,FE,FD,3,2,1,OUT,GATE=1,CLK,WR,CW=18,LSB=3,0,1,FF,2,LSB=2,方式,5,(硬件触发选通),*,写入控制字,OUT=1,;,*,写入常数后,由,GATE,的上升沿启动计数;,* 计数到,0,,,OUT=0,;,*,一个,CLK,周期后,,OUT=1,,,计数器停止计数,。,* 计数器只计数一次;,*,OUT,是,N+1,个,CLK,后变低;,* 在 计数过程中出现的,GATE,脉冲,,将使,计数器重新开始计数,对输出状态没有影响;,* 若在计数过程中改变计数值,只要没有,GATE,信号触发,不影响计数过程。有新的,GATE,信号触发则按新的计数值开始计数。,3,2,1,OUT,GATE,CLK,WR,CW=1A,LSB=3,0,FF,3,3,2,1,OUT,GATE,CLK,WR,CW=1A,LSB=3,0,FF,3,2,六,. 8253-PIT,工作方式小结,1.,输出端,OUT,的初始状态,只有方式,0,是在写入控制字后输出为低,其它均为高,;,2.,计数值的设置,任一种方式,只有在写入计数值后才能开始计数,方式,0,、,2,、,3,、,4,在写入计数值后,计数自动开始,方式,1,、,5,需外部触发,才开始计数。,计数值,N,与输出波形的关系,方式,功能,N,与输出波形的关系,0,计完最后一个数中断,写入计数值,N,后,经过,N+1,个,CLK,脉冲输出变高,1,硬件再触发单拍脉冲,单拍负脉冲的宽度为,N,个,CLK,脉冲,2,速率发生器,N,个,CLK,脉冲,输出宽度为一个,CLK,周期的负脉冲,3,方波速率发生器,写入,N,后,输出,N /2,个,CLK,高电平,,N /2,个,CLK,低电平,(,N,为偶数);,(,N+1,),/2,个,CLK,高电平,,(,N-1,),/2,个,CLK,低电平,(,N,为奇数),4,软件触发选通,写入,N,后,过,N+1,个,CLK,,输出宽度为一个,CLK,的负脉冲,5,硬件触发选通,门控触发后过,N+1,个,CLK,,输出宽度为一个,CLK,的负脉冲,各种工作方式的输出波形(,291,),方式,0,方式,1,方式,2,方式,3,方式,4,方式,5,0,N,0,N,0,N,0/,N,1,1,0,N,N/2,N/2,0/,N,0,N,0 1,N,0 1,N,0 1,3.,门控信号的作用,-GATE,输入总是在,CLK,输入时钟的上升沿被采样。在方式,0,,,2,,,3,,,4,中,,GATE,输入是电平起作用。在方式,1,,,2,,,3,,,5,中,GATE,输入是上升沿起作用的。,(,书,300,页表,9,3),GATE,方式,功,能,低或变为低,上升沿,高,0,计完最后一个数中断,禁止计数,_,允许计数,1,硬件再触发单拍脉冲,-,启动计数,下一个,CLK,脉冲,使输出变低,-,2,速率发生器,禁止计数,立即使输出为高,重新装入计数值,启动计数,允许计数,3,方波速率发生器,禁止计数,立即使输出为高,启动计数,允许计数,4,软件触发选通,禁止计数,-,允许计数,5,硬件触发选通,-,启动计数,-,4.,在计数过程中改变计数值,立即有效是写入计数值后的下一个,CLK,脉冲后,新的计数值开始起作用。,5,.,计数到,0,后计数器的状态,计数器减到,0,后并不停止,在方式,0,,,1,,,4,,,5,,计数器减到,0,后从,FFFF/9999,继续计数。方式,2,,,3,是连续计数,计数器自动装入计数值后,继续计数。,方式,功能,改变计数值,0,计完最后一个数中断,立即有效,1,硬件再触发单拍脉冲,外部触发后有效,2,速率发生器,计数到,1,后有效,3,方波速率发生器,外部触发后有效,计数到,0,后有效,4,软件触发选通,立即有效,5,硬件触发选通,外部触发后有效,七,. 8253-PIT,的编程,8253-PIT,初始化编程的步骤:,1.,写入通道控制字,规定通道的工作方式;(,8253,的,A1A0=11,),2.,写入计数值(由控制字的最高两位,D7D6,确定通道号)。,若规定只写入低,8,位,则写入的为计数值的低,8,位,高,8,位自动置,0,;,若规定只写入高,8,位,则写入的为计数值的高,8,位,低,8,位自动置,0,;,若是,16,位计数值,则分两次写入,,先写入低,8,位,再写入高,8,位。,定时系数(计数初值),n,=,定时时间,t,时钟频率,fc,=,定时时间,t,/,时钟脉冲周期,Tc,8253,的控制字编程,;某个,8253,的计数器,0,、,1,、,2,端口和控制端口地址依次是,40H,43H,;设置其中计数器,0,为方式,0,,采用二进制计数,先低后高写入计数值,mov al,30h,;方式控制字:,30H,00,11,000,0B,out,43h,al,;写入控制端口:,43H,8253,的计数初值编程,;,某个,8253,的计数器,0,、,1,、,2,端口和控制端口地址依次是,40H,43H,;设置计数器,0,采用二进制计数,写入计数初值:,1024,(,400H,),mov ax,1024,;计数初值:,1024,(,400H,),;写入计数器,0,地址:,40H,out,40h,al,;写入低字节计数初值,mov,al,ah,out,40h,al,;写入高字节计数,初,值,例:,8253,的地址为,04H,07H,,要使计数器,1,工作在方式,0,,仅用,8,位二进制计,数,计数值为,128,,编制初始化程序。,编程步骤:,1,、确定计数值及数制。,128,0128H(BCD)=80H(,二进制,),2,、确定工作方式及使用的计数器。方式,0,,计数器,1,3,、确定读写格式。如果用,0128H,则即写高位又写低位,用,80H,只写低位,高位自动置,0,,,0080H,。,4,、确定控制字。,01,01,000,0,D0,D1,D2,D3,D4,D5,D6,D7,01,选择计数器,1,01,只读,/,写低位有效字节(低八位),000,方式,0,0=,二进制,50H,5,、确定端口地址。控制口,07H,,计数器,1,的端口地址,05H,MOV AL,50H,OUT 07H,AL,MOV AL,80H,OUT 05H,AL,思考:如果用,BCD,数制呢?,6,、编写初始化程序。先写控制字,再写计数值。针对每个计数器。这里只用,计数器,1,01,11,000,1,D0,D1,D2,D3,D4,D5,D6,D7,01,选择计数器,1,先写低位有效字节(低八位),再写高位有效字节(高八位),000,方式,0,1=BCD,71H,MOV AL,71H,OUT 07H,AL,;先写控制字,MOV AL,28H,OUT,05,H, AL,;再写低八位,计数值:,128,0128H(BCD),MOV AL,01H,OUT,05,H, AL,;最后写高八位,思考:如果端口地址,255,呢?例如,200H,203H,。,MOV DX,203H,MOV AL,71H,OUT,DX,AL,;先写控制字,MOV DX,,,201H,MOV AL,28H,OUT,DX,AL,;再写低八位,MOV AL,01H,OUT,DX,AL,;最后写高八位,例:,8253,的地址为,04H,07H,,要使计数器,0,工作在方式,1,,,BCD,计数,计数值为,3000,,编制初始化程序。,00,10,001,1,D0,D1,D2,D3,D4,D5,D6,D7,00,选择计数器,0,10,只写高位有效字节(高八位),001,方式,1,23H,1=BCD,MOV AL,23H,OUT 07H,AL,;先写控制字,MOV AL,30H,OUT,04,H,AL,;再写高八位,计数值,3000D,3000H,(,BCD,),只写高位,例:,8253,的地址为,04H,07H,,要使计数器,2,工作在方式,2,,二进制计数,计数值为,02F0H,,编制初始化程序。,10,11,010,0,D0,D1,D2,D3,D4,D5,D6,D7,10,选择计数器,2,010,方式,2,0B4H,0=,二进制,MOV AL,0B4H,OUT 07H,AL,;先写控制字,计数值,02F0H,,先写低位,0F0H,,再写高位,02H,先写低位有效字节(低八位),再写高位有效字节(高八位),MOV AL,0F0HH,OUT,06,H,AL,;再写低八位,MOV AL,02H,OUT,06,H,AL,;最后写高八位,习题,1,、某系统中,,8253,芯片的计数器,0,,计数器,1,,计数器,2,及控制端口地址分别为,70H,,,71H,,,72H,,,73H,。若利用计数器,0,对外部事件计数,其,GATE,接高电平,当计数计满,3000,次,向,CPU,发出中断申请;且利用计数器,1,输出频率为,100HZ,的方波,,CLK1=2MHZ,。试编写,8253,的初始化程序。,解:根据题意分析,计数器,0,工作在方式,0,,计数置,3000,次;计数器,1,工作在方式,3,,计数值,n=20000=4E20H,次,8253,的初始化程序片段如下:,MOV AL,,,21H,OUT 73H,,,AL,MOV AL,,,30H,OUT 70H,,,AL,;给计数器,0,送计数初值,MOV AL,,,76H,OUT 73H,,,AL,;设置计数器,1,的控制字,MOV AL,,,20H,OUT 71H,,,AL,MOV AL,,,4EH,OUT 71H,,,AL,注:对每一个计数器,其控制字必须写在它的计数值之前。计数值写入计数器的格式,必须按照控制字的,RL1,,,RL0,的规定格式来写,习题,2,、利用,8253,的,2,计数器周期性地每隔,10ms,产生一次中断,已知,CLK,频率为,2MHz,。试选择工作方式,并编写出相应的初始化程序。(设,8253,的地址为,70H,73H,),解:,要产生周期性的中断信号,可选择方式,2,。计数初值为,n=10ms2MHz=20000=4E20H,初始化程序为,MOV AL,,,10110100B,OUT 73H,,,AL,MOV AL,,,20H,OUT 72H,,,AL,MOV AL,,,4EH,OUT 72H,,,AL,例(,286,),设,8253,芯片的端口地址为,388H,38BH,。,现要求计数器,0,工作在方式,3,,计数初值为,2354,,十进制计数;计数器,1,工作在方式,2,,计数初值为,18H,,,二进制计数。试根据上述要求编写初始化程序及读取计数器,0,当前计数值的程序。,;计数器,0,的初始化程序,MOVDX,,,38BH,;,给计数器,0,送控制字,MOVAL,,,00110111B,OUTDX,,,AL,MOVDX,,,388H,;,送计数初值的低,8,位,MOVAL,,,54H,OUTDX,,,AL,MOVAL,,,23H,;,送计数初值的高,8,位,OUTDX,,,AL,;计数器,1,的初始化程序,MOVDX,,,38BH,;,给计数器,1,送控制字,MOVAL,,,01010100B,OUTDX,,,AL,MOVDX,,,389H,;,计数初值送低,8,位,MOVAL,,,18H,OUTDX,,,AL,;计数器,0,当前计数值读出程序,MOVDX,,,38BH,;,送计数器,0,当前计数值锁存命令,MOVAL,,,00H,OUTDX,,,AL,MOVDX,,,388H,;,读出当前计数值的低,8,位,INAL,,,DX,MOVCL,,,AL,INAL,,,DX,;,读出当前计数值的高,8,位,MOVCH,,,AL,例,1,:某,8253,端口地址为,F8HFBH,,,欲用通道,0,以方式,1,,按,BCD,计数,计数值为,5080,。,1.,确定通道控制字;,2.,计数值的低,8,位为,80,;,3.,计数值的高,8,位为,50,。,0,0,1,1,0,0,1,1,初始化程序为:,MOV AL,,,33H,OUT 0FBH,,,AL,MOV AL,,,80H,OUT 0F8H,,,AL,MOV AL,,,50H,OUT 0F8H,,,AL,在计数过程中,,8253,读计数器现行值的方法:(将计数值存入内部锁存器),MOV AL,,,43H,;,计数器,1,的锁存命令,OUT 0FBH,,,AL,;,写入控制寄存器,IN AL,,,0F9H,;,读低,8,位,MOV CL,,,AL,;,存入,CL,中,IN AL,,,0F9H,;,读高,8,位,MOV CH,,,AL,;,存入,CH,中,第二节,Intel8253-PIT,的应用举例,0,1,0,0,0,0,1,1,例,2,:系统中,8253,芯片的通道,0,至通道,2,和控制端口的地址分别为,0FFF0H,,,0FFF2H,,,0FFF4H,和,0FFF6H,。,1,、通道,0,工作在方式,2,,,CLK0=2MHZ,,要求输出,OUT0=1KHZ,的速率波;,2,、通道,1,工作在方式,0,,其,CLK1,输入外部计数事件,每计满,1000,个向,CPU,发出中断请求。,编写,8253,通道,0,和通道,1,的初始化程序。,1,、,8253,通道,0,的初始化程序为,MOV AL,,,00100101B,MOV DX,,,0FFF6H,OUT DX,,,AL,MOV AL,,,20H,MOV DX,,,0FFF0H,OUT DX,,,AL,2,、,8253,通道,1,的初始化程序为,MOV AL,,,01100001B,MOV DX,,,0FFF6H,OUT DX,,,AL,MOV AL,,,10H,MOV DX,,,0FFF2H,OUT DX,,,AL,1,、,N=2M/1K=2000=2000H(BCD),2,、,N,1000,1000H(BCD),例,3,:编程,将,8253,计数器,0,设置为方式,1,,计数初值为,3000,,,计数器,1,设置为方式,2,,计数初值为,2010H,,,计数器,2,设置为方式,4,,计数初值为,4030H,。,(设,8253,的端口地址为,70H,73H,),MOV AL,,,00100011B,;送计数器,0,控制字,OUT,73,H,,,AL,MOV AL,,,30H,OUT,70,H,,,AL,;送计数器,0,的计数初值,MOV AL,,,01110100B,OUT,73,H,,,AL,;送计数器,1,的控制字,MOV AL,,,10H,OUT,71,H,,,AL,MOV AL,,,20H,OUT,71,H,,,AL,;送计数器,1,的计数初值,MOV AL,,,10111000B,OUT,73,H,,,AL,;送计数器,2,的控制字,MOV AL,,,30H,OUT,72,H,,,AL,MOV AL,,,40H,OUT,72,H,,,AL,;送计数器,2,的计数初值,N0=3000=3000H(BCD),A4,A3,A0,A5,M/IO,A7,A6,A9,A8,G1,G2B,G2A,C,BA,Y4,A2,A1,RD,WR,D7D0,GATE0,OUT0,CLK0,CLK1,CLK2,GATE1,OUT1,GATE2,OUT2,A1,A0,RD,WR,D7D0,CS,1MHz,方波,5V,2KHz,方波,1ms,的负脉冲,单脉冲,8086,CPU,74LS138,例,4,:用,8253,产生各种定时波形。,由图可知:,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,1 1,0 0,0,1 0,*,*,0,端口地址,310H,,,312H,,,314H,,,316H,&,&,&,例,2,:用,8253,产生各种定时波形。要求:,(,1,)通道,0,输出频率为,2KHz,的方波;,(2),通道,1,产生宽度为,1ms,的负脉冲;,(,3,)通道,2,以硬件方式触发,输出单脉冲时常为,26,。,分析图知道:,8253,初始地址为,310H,,,3,通道所用时钟脉冲频率为,1MHz,。,分析:通道,0,工作于,方式,3,,时间常数,N0=1MHz/2KHz=500=0500H(BCD),;,通道,1,工作于,方式,1,,,OUT1,的宽度为时常,时间常数,N1=1ms/0.001ms=1000=1000,H(BCD),;,通道,2,工作于,方式,5,,时间常数,N2=26=0026H(BCD),。,;,通道,0,初始化程序,MOV DX,,,316H,MOV AL,,,00100111B,OUT DX,,,AL,MOV DX,,,310H,MOV AL,,,05H,OUT DX,,,AL,;,通道,1,初始化程序,MOV DX,,,316H,MOV AL,,,01100011B,OUT DX,,,AL,MOV DX,,,312H,MOV AL,,,10H,OUT DX,,,AL,;,通道,2,初始化程序,MOV DX,,,316H,MOV AL,,,10011011B,OUT DX,,,AL,MOV DX,,,314H,MOV AL,,,26H,OUT DX,,,AL,例,5,有如下接口原理如图所示。要求发光二极管,L0,亮,5S,后就熄灭;,L1,在,K1,启动后亮,6S,后就熄灭;,L2,亮,4S,灭,4S,交替进行。写出源程序片段(段定义语句可以省略)。,由译码电路分析知,,8253,计数器,0,、计数器,1,、计数器,2,及控制端口的地址分别为,91H,,,93H,,,95H,,,97H,。,8253,的计数器,0,应该工作在方式,0,,计数初值,N0=51000,5000,;,计数器,1,应工作在方式,1,(门控信号触发),,N1=61000,6000,;,计数器,2,应工作在方式,3,,,N2=,(,4,4,),1000,8000,。,根据以上分析,可以编写出,8253,初始化程序片段。,;初始化计数器,0,MOV AL,,,21H,;,00100001B,OUT 97H,,,AL,MOV AL,,,50H,OUT 91H,,,AL,;初始化计数器,1,MOV AL,,,63H,;,01100011B,OUT 97H,,,AL,MOV AL,,,60H,OUT 93H,,,AL,;初始化计数器,2,MOV AL,,,0A7H,;,10100111B,OUT 97H,,,AL,MOV AL,,,80H,OUT 95H,,,AL,例,6,:接口原理图如图所示。要求发光二极管,L1,在,K1,启动后亮,3S,就熄灭;发光二极管,L2,亮,2S,灭,2S,交替进行。编写简化源程序。,根据译码电路,,8253,的端口地址为,0B3H,,,0B7H,,,0BBH,,,0BFH,。,根据题目要求,经分析得出:,计数器,1,工作在方式,1,,计数初值,N,6000,;,计数器,2,工作在方式,3,,计数初值,N,8000,。,初始化程序片段为:,MOV AL,,,01100011B,OUT 0BFH,,,AL,MOV AL,,,60H,OUT 0B7H,,,AL,MOV AL,,,10100111B,OUT OBFH,,,AL,MOV AL,,,80H,OUT 0BBH,,,AL,例,7.,某系统中,,8253,芯片的计数器,0,,计数器,1,,计数器,2,及控制端口地址分别为,0130H,,,0131H,,,0132H,,,0133H,。若利用计数器,1,对外部事件计数,其,GATE,接高电平,当计数计满,3200,次,向,CPU,发出中断申请;且利用计数器,2,输出高电平为,0.005S,,低电平为,0.005S,交替变换的方波,,CLK2=2MHz,。试编写,8253,的初始化程序。,解:根据题意分析,计数器,1,工作在方式,0,,计数置,3200,次;计数器,2,工作在方式,3,,计数值,n=20000=4E20H,次。,8253,的初始化程序片段如下:,MOV DX,,,0133H,MOV AL,,,61H,OUT DX,,,AL,MOV DX,,,0131H,MOV AL,,,32H,OUT DX,,,AL,MOV DX,,,0133H,MOV AL,,,0B6H,OUT DX,,,AL,MOV DX,,,0132H,MOV AL,,,20H,OUT DX,,,AL,MOV AL,,,4EH,OUT DX,,,AL,例,8,编程将,8253,的计数器,0,设置为方式,1,,计数初值为,3000H,;计数器,1,设置为方式,2,,计数初值为,2010H,;计数器,2,设置为方式,4,,计数初值为,50,。,8253,的端口地址为,3B0H,3B3H,。,ADDR EQU 3B0H,MOV DX,,,ADDR+3,;控制寄存器地址,MOV AL,,,00110010B,;计数器,0,设置为方式,1,,二进制计数,OUT DX,,,AL,MOV DX,,,ADDR,;计数器,0,地址,MOV AL,,,0,OUT DX,,,AL,;设置,0,初值低,8,位,MOV AL,,,30H,OUT DX,,,AL,;设置,0,初值高,8,位,MOV DX,,,ADDR+3,MOV AL,,,01110100B,;计数器,1,设置为方式,2,,,二进制计数,OUT DX,,,AL,MOV DX,,,ADDR+1,;计数器,1,地址,MOV AL,,,10H,OUT DX,,,AL,MOV AL, 20H,OUT DX,,,AL,MOV DX,,,ADDR+3,MOV AL,,,10011001B,;计数器,2,设置为方式,4,,,十进制计数,OUT DX,,,AL,MOV DX,,,ADDR+2,MOV AL,,,50H,OUT DX,,,AL,;设置,2,初值低,8,位,8.1.5 8253,应用举例,例,8.2,使用,8253,计数器,2,产生频率为,40 kHz,的方波,设,8253,的端口地址为,0040H,0043H,,,已知时钟端,CLK,2,输入信号的频率为,2 MHz,。,试设计,8253,与,8088,总线的接口电路,并编写产生方波的程序。,8253,与,8088,总线的接口电路如图,8.12,所示。,为了使计数器,2,产生方波,应使其工作于方式,3,,输入的,2 MHz,的,CLK,2,时钟信号进行,50,次分频后可在,OUT,2,端输出频率为,40 kHz,的方波,因此,对应的控制字应为,10010111B,,,计数初值为十进制数,50,。程序如下所示:,MOVAL,,,10010111B,;,对计数器,2,送控制字,MOVDX,,,0043H,OUTDX,,,AL,MOVAL,,,50H,;,送计数初值,50,MOVDX,,,0042H,OUTDX,,,AL,图,8.12 8253,与,8088,总线的连接,例,8.3,8253,在,IBM PC/XT,机中的应用。,图,8.13 8253,在,IBM PC/XT,机中的连接,可以看出,要使,8253,的片选信号,CS,有效,应使,A,9,A,8,A,7,A,6,A,5,=00010,,,由于,A,4,A,3,A,2,未参加译码,这三位为任意状态均可使,8253,选中,因此,8253,的端口地址为,40H5FH,,,若取,A,4,A,3,A,2,=000,,,则,8253,计数器,0,、计数器,1,、计数器,2,以及控制寄存器的端口地址分别为,40H,、,41H,、,42H,和,43H,。,如图中所示,,8253,三个计数器使用相同的时钟频率,它们是由,8284,时钟发生器输出时钟信号,PCLK,,,再经过,D,触发器,74LS175(,图中未画出,),二分频后得到的,频率为,1.19 MHz,,,8253,的,GATE,0,和,GATE,1,接,+5 V,,,始终处于选返状态,,GATE,2,接,8255,的,PB,0,。,1),计数器,0,该计数器向系统日历时钟提供定时中断,工作方式为方式,3,,设置的控制字为,36H,。,门控,GATE,0,接,+5V,为常启状态,计数器计数初值预置为,0(,即,65536),。因此,,OUT,0,输出方波的频率为,1.19 MHz/65536=18.21Hz,,,即每秒产生,18.2,次中断,或者说每隔,55ms,申请一次日历时钟中断。其程序如下:,MOVAL,,,36H,;,设置计数器,0,为工作方式,3,,采用二进制计数,OUT43H,,,AL,;,写入控制字,MOVAL,,,0,;,计数值,OUT40H,,,AL,;,写入低字节计数值,OUT40H,,,AL,;,写入高字节计数值,2),计数器,1,该计数器向,DMA,控制器定时发送动态存储器刷新请求,它选用方式,2,工作,设置的控制字为,54H,。,门控,GATE,1,接,+5V,为常启状态。,OUT,1,输出从低电平变为高电平使触发器置,1,,,Q,端输出一个正电平信号,作为内存刷新的,DMA,请求信号,DRQ,0,。,DRAM,每个单元要求在,2 ms,内必须刷新一次。实际芯片每次刷新完成,512,个单元的刷新,故经过,128,次刷新操作就能将全部芯片的,64 KB,个单元刷新一遍。,由此可以算出每隔,2 ms/128=15.6,s,进行一次刷新操作,将能保证每个单元在,2ms,内都刷新一遍。为实现上述要求,将计数器,1,设置为工作方式,2,,计数初值取为,18,,这样,每隔,18,1/1.19= 15.126,s,就可产生一次,DMA,请求,从而可满足,DRAM,的刷新要求。其程序如下:,MOV AL,,,54H,;,选择计数器,1,,方式,2,,只写入低,8,位,二进制计数,MOV43H,,,AL,OUTAL,,,12H,;,预置计数初值,18,OUT41H,,,AL,3),计数器,2,该计数器控制扬声器发声,作为机器的报警信号或伴音信号,选用方式,3,工作。计数器,2,输出的方波经电流驱动器,75477,放大后驱动扬声器发声。门控,GATE,2,接,8255,的,PB,0,,,用它控制计数器,2,的计数过程。输出,OUT,2,经过一个与门,这个与门受,PB,1,控制,所以扬声器由,PB,0,和,PB,1,来控制发声。,在,IBM PC/XT,机的,BIOS,中有一个声响子程序,BEEP,,,它将计数器,2,设置为工作方式,3,,作为方波发生器输出约,1 KHz,的方波,经滤波驱动后推动扬声器发声。程序如下所示:,BEEP PROC,MOVAL,,,10110110B,;,设计数器,2,为方式,3,,二进制计数,OUT43H,,,AL,;,按先低后高顺序写入,16,位计数初值,MOVAX,,,0533H,;,初值为,0533H=1331,,,1.19MHz/1331=896Hz,OUT42H,,,AL,;,写入低,8,位,MOVAL,,,AH,OUT42H,,,AL,;,写入高,8,位,INAL,,,61H,;,读,8255,的,B,口原输出值,MOVAH,,,AL,;将,B,口原值送,AH,保存,ORAL,,,03H,;使,PB,1,和,PB,0,位均为,1,OUT61H,,,AL,;,输出使扬声器发声,SUBCX,,,CX,G7,:,LOOPG7,;,延时,DECB1,;,B1,为控制发声长短的入口条件,JNZG7,;,B1=6,为长声,,B1=1,为短声,MOVAL,,,AH,OUT61H,,,AL,;,恢复,8255,的,B,口原值,停止发声,RET,BEEPENDP,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


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

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


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