1、1第第8章章 PCH中的常规接口中的常规接口 2提供的时间基准。提供的时间基准。内部定时、外部定时。内部定时、外部定时。8.1 定时与计数技术定时与计数技术3 通过软件指令周期方法定时,如执行循环程序。通过软件指令周期方法定时,如执行循环程序。增加增加CPU负担,通用性差,一般用于短延时。负担,通用性差,一般用于短延时。采用中小规模采用中小规模IC构成。构成。不增加不增加CPU负担,成本低,定时值不可改变。负担,成本低,定时值不可改变。采用可编程计数器完成,软件可改变计数值。采用可编程计数器完成,软件可改变计数值。实质上定时和计数本质上都是脉实质上定时和计数本质上都是脉冲计数器,定时计的是内部
2、基准时钟源产生的脉冲,冲计数器,定时计的是内部基准时钟源产生的脉冲,计数是计外部脉冲。计数是计外部脉冲。4 3个独立的个独立的16位定时位定时/计数器(计数器(T/C););每个每个T/C功能:功能:可按二、十进制(可按二、十进制(BCD)计数;)计数;有有6种不同的工作方式;种不同的工作方式;最高频率最高频率10MHz;(82801BA中的为中的为14.31818MHz)有读回状态功能。有读回状态功能。(8253没有没有)5 写工作方式、计数初值、当前写工作方式、计数初值、当前计数值计数值616位当前计数值锁存器位当前计数值锁存器OL16位减位减1计数器计数器CE16位计数初值寄存器位计数初
3、值寄存器CROUT(减(减1至至0时)时)MSBLSB锁存后读出当前值锁存后读出当前值MSBLSB装入装入/读出初值读出初值&CLKGATE16位位 CPU写入写入两次两次、清零、清零16位位 通过通过CR写入、计数、写入、计数、输出输出16位位 先锁存再读出先锁存再读出8位位 先锁存再读出先锁存再读出 GATE信号的作用与应用,重写信号的作用与应用,重写CR的效果。的效果。N=fCLKi/fOUTi,在不同工作方式及定时在不同工作方式及定时/计计数时的应用不同。数时的应用不同。7 CS#与与A1A0:RD#、WR#;88254提供四个端口提供四个端口(使用使用A1A0);初始化初始化设置工作
4、方式、设置计数器初值设置工作方式、设置计数器初值 操操 作作重写计数器初值、取状态命令重写计数器初值、取状态命令当前计数值、工作方式及当前状态。当前计数值、工作方式及当前状态。写工作方式与写读取状态命令采用特征位方法;写工作方式与写读取状态命令采用特征位方法;读取当前计数值或读取状态采取时序方法。读取当前计数值或读取状态采取时序方法。9操操 作作特征位特征位时序时序D D7 7D D6 60 1 0 0 0计数初值写入计数初值写入0#计数器计数器*无无0 1 0 0 1计数初值写入计数初值写入1#计数器计数器*无无0 1 0 1 0计数初值写入计数初值写入2#计数器计数器*无无0 1 0 1
5、1向控制字寄存器写控制字向控制字寄存器写控制字0010无无写写“读计数值读计数值/状态状态”命命令令11无无0 0 1 0 0读读0#计数器当前计数值计数器当前计数值无无前一命令前一命令A1A0=11时,时,D D7 7D D6 6为为11且且D D5 5为为0 0或或D D7 7D D6 6为非为非11且且D D5 5D D4 4为为00时,时,读取的是当前计数值;读取的是当前计数值;D D7 7D D6 6为为11且且D D4 4为为0 0读取读取的是状态。的是状态。读读0#计数器状态计数器状态无无0 0 1 0 1读读1#计数器当前计数值计数器当前计数值无无读读1#计数器状态计数器状态无
6、无0 0 1 1 0读读2#计数器当前计数值计数器当前计数值无无读读2#计数器状态计数器状态无无0 0 1 1 1无操作无操作1 *禁止访问禁止访问0 1 1 *无操作无操作 CS#RD#WR#A1 A010 D7D6=0010、D5D4=0111;:00T/C0;01T/C1;10T/C2 :01只写低字节;只写低字节;10只写高只写高字节;字节;11先写低字节再写高字节(先写低字节再写高字节(16位)位):000101六种工作方式。六种工作方式。:0二进制方式;二进制方式;1BCD码方式。码方式。MOV AL,01110100B;T/C1,先低后高字节,先低后高字节 OUT,AL ;方式;
7、方式2,二进制方式,二进制方式11 (1)不同通道的计数初值写到不同地址中;不同通道的计数初值写到不同地址中;(2)每次写入一个字节;每次写入一个字节;(3)根据控制字定义,决定高、低字节写入方法。根据控制字定义,决定高、低字节写入方法。(4)初始值的范围是:初始值的范围是:12 (1)写工作方式控制字写工作方式控制字 (2)设置计数初值设置计数初值MOV AL,01110101B;OUT,ALMOV AX,2000H;OUT,AL ;MOV AL,AHOUT,AL ;MOV AL,00010110B;OUT,ALOUT ,50H ;注意:注意:(1)每个使用的每个使用的T/C均要初始化;均要
8、初始化;(2)计数初值的设置与计数初值的设置与T/C的的CLK密切相关;密切相关;(3)计数初值的设置方法由控制字决定。计数初值的设置方法由控制字决定。13工作方式控制字工作方式控制字(A1A0=11)D7D60001,D5D4=00 (a)锁存当前计数值或禁止计数锁存当前计数值或禁止计数 (b)读取当前计数值读取当前计数值 MOV AL,010101B;T/C1,锁存锁存 ;先低后高字节;先低后高字节,方式方式2,BCD OUT ,AL IN AL,MOV AH,AL IN AL,XCHG AH,AL;AX为为T/C1当前计数值当前计数值14 D7D6=11。锁存状态锁存状态D5D4=10;
9、锁存计数值锁存计数值D5D4=01;锁存状态与计数值锁存状态与计数值 D5D4=00。(先读状先读状态再读计数值)态再读计数值)D1=1T/C0,D2=1T/C1,D3=1T/C2 控制字同时只能锁存单个通道,控制字同时只能锁存单个通道,读回命令可同时锁存多个通道。读回命令可同时锁存多个通道。15MOV AL,010100B;T/C1,锁存计数值锁存计数值 OUT 43H,AL IN AL,41H;MOV AH,AL IN AL,41H XCHG AH,AL ;AX为当前计数值为当前计数值 MOV AL,011010B;T/C0、T/C2锁存计数值锁存计数值 OUT 43H,AL IN AL,
10、40H;MOV AH,AL IN AL,40H XCHG AH,AL ;AX为为T/C0当前计数值当前计数值 IN AL,42H;MOV AH,AL IN AL,42H XCHG AH,AL ;AX为为T/C2当前计数值当前计数值16 MOV AL,11100100B;T/C1,锁存状态值锁存状态值 OUT 43H,AL IN AL,41H;若;若AL=00110101,表示,表示T/C1;为方式为方式2,BCD码,先低后高码,先低后高;读读/写,当前写,当前OUT为低电平为低电平 MOV AL,11100010B;T/C0,锁存状态值锁存状态值 OUT 43H,AL IN AL,40H;若;
11、若AL=00010110,表示,表示T/C0;为方式为方式3,二进制码,只有低,二进制码,只有低;字节,当前;字节,当前OUT为低电平为低电平17 一次计数;一次计数;GATE高允许、下降高允许、下降、低、低、上升、上升计数;计数;WR#写写重写重写后下一脉冲下降沿后下一脉冲下降沿计数;计数;OUT在控制字或计数初值写完时变低、计数值为在控制字或计数初值写完时变低、计数值为0时时变高变高(N+1个时钟的低个时钟的低)。演示演示18 一次计数;一次计数;GATE上升上升、高与下降和低、高与下降和低计数;计数;WR#写写重写重写在下次在下次GATE从从0到到1的跳变时有效;的跳变时有效;OUT在写
12、入控制字后变高,开始计数时变低、计数值在写入控制字后变高,开始计数时变低、计数值为为0时变高时变高(N个时钟周期的低个时钟周期的低)。演示演示19 多次计数;多次计数;GATE上升上升、高允许、下降、高允许、下降、低、低计数;计数;WR#写写重写重写在下次计数时有效;在下次计数时有效;OUT在计数值为在计数值为1时输出宽度为时输出宽度为1个个CLK的负脉冲的负脉冲(周周期为期为N个时钟周期,频率为个时钟周期,频率为1/N的时钟频率,实际上是的时钟频率,实际上是对对CLK的的N分频分频)。演示演示20 多次计数;多次计数;GATE上升上升、高允许、下降、高允许、下降、低、低计数;计数;WR#写写
13、重写重写在下次计数时有效;在下次计数时有效;OUT在写入控制字后变高,计数开始后,采用每脉冲计数减在写入控制字后变高,计数开始后,采用每脉冲计数减2:,计数到,计数到0时反向。脉冲宽度时反向。脉冲宽度TN/2,方波方波周期为周期为TN。,OUT变高的第一变高的第一CLK减减1后装入后装入 CE,其,其余每个脉冲计数减余每个脉冲计数减2。OUT正脉冲时,计数到正脉冲时,计数到0的下一个的下一个CLK时时OUT反向反向OUT正脉冲宽度为正脉冲宽度为T(N 1)/2;OUT负脉冲时在计数到负脉冲时在计数到0时反向。负脉冲宽度为时反向。负脉冲宽度为T(N 1)/2,方波周期仍然是,方波周期仍然是TN。
14、演示演示21 一次计数;一次计数;GATE上升上升、高允许、下降停止、低禁止计数;、高允许、下降停止、低禁止计数;WR#写写重写重写会立即会立即计数(软件触发);计数(软件触发);OUT在写入控制字及计数当中为高电平,计数值为在写入控制字及计数当中为高电平,计数值为0时输出时输出1个个CLK的负脉冲。的负脉冲。演示演示22一次计数;一次计数;GATE上升上升、高与下降和低不影响计数;、高与下降和低不影响计数;WR#写写重写重写在下次在下次GATE从从0到到1的跳变时有效;的跳变时有效;OUT在计数值为在计数值为0时输出时输出1个个CLK的负脉冲。的负脉冲。演示演示23写入控制写入控制字后变字后
15、变0,计数结束计数结束变变 1,并,并维持至重维持至重写控制字写控制字或计数初或计数初值值写入控制字写入控制字后 变后 变 1,GATE上升上升沿触发变沿触发变0,开始计数,开始计数,计数结束变计数结束变1写入控制字写入控制字后变后变1,计,计数到数到1变变0,维 持 一 个维 持 一 个Tclk变变1写 入 控 制 字写 入 控 制 字后变后变1,装入,装入初值且初值且GATE=1则则OUT变变1,计,计数到变数到变0,重,重装 初 值 继 续装 初 值 继 续计 数,计 数计 数,计 数到则反向到则反向写入控制字写入控制字后 变后 变 1,计,计数结束变数结束变0,维 持 一 个维 持 一
16、 个Tclk变变1写入控制字写入控制字后 变后 变 1,GATE上升上升沿触发开始沿触发开始计数,计数计数,计数结束输出一结束输出一个个 C L K 的的负脉冲负脉冲无无无无计数到计数到0重重装装根 据 初 值 奇根 据 初 值 奇偶分别重装;偶分别重装;无无无无立即有效立即有效GATE触发触发后有效后有效计数到计数到1或或GATE触发触发后有效后有效计 数 结 束 或计 数 结 束 或GATE触发后触发后有效有效立即有效立即有效GATE触发触发后有效后有效禁止计数禁止计数无影响无影响禁止计数禁止计数禁止计数禁止计数禁止计数禁止计数无影响无影响暂停计数暂停计数无影响无影响停止计数停止计数停止计
17、数停止计数停止计数停止计数无影响无影响继续计数继续计数从初值开始从初值开始重新计数重新计数从初值开始从初值开始重新计数重新计数从 初 值 开 始从 初 值 开 始重新计数重新计数从初值开始从初值开始重新计数重新计数从初值开始从初值开始重新计数重新计数允许计数允许计数无影响无影响允许计数允许计数允许计数允许计数允许计数允许计数无影响无影响24用用8254(地址地址40H43H)将将5MHz的脉冲变为的脉冲变为1Hz的脉冲。的脉冲。初值初值=fCLK/fOUT=510665536,怎么办?,怎么办?CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D0D7A1A0RD#
18、WR#CS#5MHz1HzMOV AL,00110111B;T/C0 OUT ,ALMOV AX,5000HOUT ,ALMOV AL,AHOUT ,ALMOV AL,01110101B;T/C1 MOV AX,1000HOUT ,ALMOV AL,AHOUT ,AL需要需要2个个T/C级联,级联,T/C0采用方式采用方式3产生连续分频方波,产生连续分频方波,做做T/C1的的CLK,T/C1 采用方式采用方式2产生产生1Hz脉冲。两个脉冲。两个T/C的的GATE统一控制。统一控制。258254的的CLK0的时钟频率是的时钟频率是8KHz,问,问1)T/C0最大定时时间是多少?最大定时时间是多少
19、?2)要求)要求8254端口地址为端口地址为90H、92H、94H和和96H,请使,请使用用74LS138译码器加简单门电路完成地址连线。译码器加简单门电路完成地址连线。3)现在要求使用该)现在要求使用该8254产生周期为产生周期为9秒,占空比为秒,占空比为4:9的方波,请在上面的电路图中完成电路,并编写初始的方波,请在上面的电路图中完成电路,并编写初始化程序。化程序。答:答:1)TCLK0=1/fCLK0=1/8000=0.125ms最大定时时间最大定时时间655360.25ms=8.192秒秒262)D7D0IOWIORY2#A1A2A7A5A4A311A8A9A6A0CLK1GATE1D
20、7D0WR#RD#A0A18254CS#CBA74LS138G1G2A#G2B#CLK0GATE0OUT0CLK0GATE0OUT0OUT18KHz1Hz5V占空比占空比4:9,周周期期9秒秒的方波的方波3)27MOV AL,00110111B;T/C0 OUT ,ALMOV AX,8000HOUT ,ALMOV AL,AHOUT ,ALMOV AL,01110111B;T/C1 MOV AX,9HOUT,ALMOV AL,AHOUT ,AL28 某产品的包装流水线中,一个包装箱能装某产品的包装流水线中,一个包装箱能装24罐罐饮料。装箱时希望流水线上每通过饮料。装箱时希望流水线上每通过24罐饮
21、料,罐饮料,流水线要停流水线要停4秒以等待包装箱封口,然后继续通秒以等待包装箱封口,然后继续通过下一箱的过下一箱的24罐。流水线就是这样周而复始的罐。流水线就是这样周而复始的运作。试利用一片运作。试利用一片8254来完成流水线控制中的来完成流水线控制中的定时和计数功能。假设定时和计数功能。假设8254的端口地址为的端口地址为8CH8FH,采用的时钟频率是,采用的时钟频率是2KHz。29:用:用8254的计数通道的计数通道1作为计数器,用于作为计数器,用于24个罐的个罐的计数;计数通道计数;计数通道2作为定时器,定时为作为定时器,定时为4S。当计数通道。当计数通道1的的OUT脚出现脚出现0到到1
22、的跳变的时候,将启动计数通道的跳变的时候,将启动计数通道2开始定时,而计数通道开始定时,而计数通道2定时阶段将控制计数通道定时阶段将控制计数通道1停停止计数,只有其定时结束并停止定时阶段才可再次启止计数,只有其定时结束并停止定时阶段才可再次启动计数通道动计数通道1开始计数。开始计数。CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D0D7A1A0RDWRCS流水线信号流水线信号fCLK控制流水线停控制流水线停和运行的信号和运行的信号30MOVAL,01010100BOUT8FH,ALMOVAL,24OUT8DH,ALMOVAL,10110010BOUT8F,ALM
23、OVAX,8000OUT8EH,ALMOVAL,AHOUT8EH,AL31PC系列机定时系统结构框图系列机定时系统结构框图来自主板上来自主板上74LS138的的Y2,地址范围是,地址范围是40H5FH,加上加上A1A0两根地址线,组两根地址线,组成成8254的端口地址是的端口地址是40H、41H、42H、43H。返回1返回28.1.6 PCH中的中的8254模块模块 32 3方式,方式,65536。OUT0连接到连接到8259A的的IRQ0(中断类型号为中断类型号为8)上。上。fOUT0=1.1931816MHz/65536=18.2Hz,即:每秒产生即:每秒产生18.2次中断用于日时钟计时。
24、次中断用于日时钟计时。系统系统BIOS的的INT 8H用作日时钟计时;用作日时钟计时;INT 8H调用调用INT 1CH作为用户定时中断接作为用户定时中断接口。口。33 2方式,方式,18。连接到连接到8237的的DREQ0上,定时产生负脉冲。上,定时产生负脉冲。脉冲宽度脉冲宽度=1/1.1931816MHz=838ns,脉冲周期脉冲周期=18/1.1931816MHz=15.08s,即:每隔即:每隔15.08s产生一个脉冲用于刷新。产生一个脉冲用于刷新。343方式,方式,由调用程序控制。由调用程序控制。与与8255的的PB口口D1信号信号“与与”后连接到扬声器上,控后连接到扬声器上,控制扬声
25、器发声频率及时长。制扬声器发声频率及时长。8254的的OUT2=1,CPU控制控制8255的的PB口的口的D1位的电平实现;位的电平实现;8255的的PB口的口的D1位为高电平,控制位为高电平,控制8254的的T/C2的的OUT2实现。实现。通过改变通过改变OUT2的方波信号频率,就可以改变扬声的方波信号频率,就可以改变扬声器发声的音调。器发声的音调。转图35;功能:按照指定的时间间隔发;功能:按照指定的时间间隔发896Hz声音声音;调用:;调用:CX=指定时间指定时间;返回:无;返回:无BEEP PROC FARIN AL,61H;MOV AH,AL PUSH AXMOV AL,101101
26、10BOUT 43H,ALMOV AX,0533H;OUT 42H,ALMOV AL,AHOUT 42H,ALPOP AX 36OR AL,03H ;置;置61H端口端口D0、D1均为均为1,;打开扬声器;打开扬声器OUT 61H,ALNOPL1:LOOP L1;延迟;延迟AND AL,0FDH ;置;置61H端口端口D1为为0,;封锁;封锁OUT2输出输出OUT 61H,ALMOV AL,AHOUT 61H,ALRETBEEP ENDP 转图37 数据传送涉及的数据传送涉及的3个问题个问题1)数据的来源;)数据的来源;2)数据的去处;)数据的去处;3)数据本身以及如何控制数据的传送。)数据本
27、身以及如何控制数据的传送。8.2.1 DMA技术概述技术概述8.2 DMA操作操作38 DMA方式控制的数据传送方式控制的数据传送39 DMA传送方式通常用来高速传送大批量的数据块。传送方式通常用来高速传送大批量的数据块。如:如:硬盘和软盘硬盘和软盘I/O;快速通信通道快速通信通道I/O;多处理机和多程序数据块传送;多处理机和多程序数据块传送;在图像处理中,对在图像处理中,对CRT屏幕送数据;屏幕送数据;快速数据采集;快速数据采集;DRAM的刷新操作。的刷新操作。40 DMA传送包括:传送包括:(1)存储单元传送:存储器)存储单元传送:存储器存储器。存储器。(2)DMA读传送:存储器读传送:存
28、储器I/O设备。设备。(3)DMA写传送:写传送:I/O设备设备存储器。存储器。411)I/O设备向设备向DMAC发出发出DMA请求;请求;2)DMAC向向CPU发出总线请求;发出总线请求;3),向向DMAC发出总线响应信号;发出总线响应信号;4)CPU脱离对系统总线的控制,由脱离对系统总线的控制,由DMAC接管接管对系统总线的控制;对系统总线的控制;425)DMAC向向I/O设备发出的设备发出的DMA应答信号;应答信号;6)DMAC进行一个字节的传送;进行一个字节的传送;7)完成设定的字节数据传送,)完成设定的字节数据传送,CPU恢复对系恢复对系统总线的控制。统总线的控制。431)DMA操作
29、类型操作类型。数据传送是把源地址的数据传送到目的地。数据传送是把源地址的数据传送到目的地址中去。址中去。当数据传送完毕之后,可以进行校验操作。当数据传送完毕之后,可以进行校验操作。校验操作并不进行数据传送,只进行数据校验。但操校验操作并不进行数据传送,只进行数据校验。但操作过程仍然要通过作过程仍然要通过DMAC向向CPU提出申请,进入提出申请,进入DMA周期。周期。数据检索操作并不进行数据传送,只是对。数据检索操作并不进行数据传送,只是对在指定的内存区内查找某个关键字节或某几个关键数在指定的内存区内查找某个关键字节或某几个关键数据位是否存在,如果查找到了,就停止检索操作。据位是否存在,如果查找
30、到了,就停止检索操作。442)DMA操作方式操作方式。每次进行每次进行DMA操作只操作一个字操作只操作一个字节节。只要只要DMA操作开始,操作开始,DMAC始终占始终占用总线,直到用总线,直到DMA操作完成,才把总线控制权交还操作完成,才把总线控制权交还CPU。如果有如果有DMA请求,则请求,则DMAC就占用就占用总线;当总线;当DMA请求无效,或请求无效,或DMA操作完成,或由操作完成,或由外部传来过程结束信号(外部传来过程结束信号(EOP)时,)时,DMAC都会释都会释放总线。放总线。451)在在DMAC获得总线控制权获得总线控制权,DMAC取代取代CPU而成而成为系统的主控者,接管和控制
31、系统总线(数据总线、为系统的主控者,接管和控制系统总线(数据总线、地址总线和控制总线)。通过总线向存储器或地址总线和控制总线)。通过总线向存储器或I/O设备设备发出地址、读发出地址、读/写信号,以控制在两个实体之间的传送写信号,以控制在两个实体之间的传送。2)在在DMAC获得总线控制权获得总线控制权,DMAC受受CPU控制(控制(。此时,。此时,CPU可对可对DMAC进行初始化编程,也可从进行初始化编程,也可从DMAC中读出状态。当中读出状态。当DMAC上电或复位时,上电或复位时,DMAC自动处于被动态。自动处于被动态。4.DMA控制器在系统中的两种工作状态控制器在系统中的两种工作状态461.
32、82C37A的特点的特点 具有具有4个独立的个独立的DMA通道,每个通道都可独立地进行通道,每个通道都可独立地进行初始化。初始化。每个通道的每个通道的DMA请求都可以被允许或禁止。请求都可以被允许或禁止。每个通道的每个通道的DMA有不同的优先级,既可以是固定优有不同的优先级,既可以是固定优先级,也可以是循环优先级。先级,也可以是循环优先级。每个通道进行一次传送的最大字节数为每个通道进行一次传送的最大字节数为64K。提供提供4种传送方式:单字节传送方式、数据块传送方种传送方式:单字节传送方式、数据块传送方式、请求传送方式和级联传送方式。式、请求传送方式和级联传送方式。时钟频率从时钟频率从DC到到
33、5MHz的全静态设计。的全静态设计。在在5MHz的时钟频率下传送速率高达的时钟频率下传送速率高达1.6MB/s。8.2.2 82C37A 的内部结构和引脚功能说明的内部结构和引脚功能说明47282C37A 的内部结构的内部结构 DMA通道通道 读读/写控制写控制 控制逻辑控制逻辑 4882C37A内部逻辑框图内部逻辑框图49282C37A 的引脚功能的引脚功能508.2.3 82C37A 的内部寄存器的内部寄存器 511控制寄存器控制寄存器 522工作方式寄存器工作方式寄存器 533状态寄存器状态寄存器 544请求寄存器请求寄存器 555屏蔽寄存器屏蔽寄存器 56578.2.4 软命令软命令1
34、)清先)清先/后触发器软命令后触发器软命令MOV AL,0XXH;0XXH为为AL中任意值中任意值OUT 0CH,AL;先先/后触发器被清后触发器被清“0”2)总清除软命令)总清除软命令MOV AL,0XXH;0XXH为为AL中任意值中任意值OUT 0DH,AL;写入总清端口,执行总清除命令写入总清端口,执行总清除命令3)清屏蔽寄存器软命令。)清屏蔽寄存器软命令。MOV AL,0XXH ;0XXH为为AL中任意值中任意值OUT 0EH,AL;写入清屏蔽寄存器端口写入清屏蔽寄存器端口588.2.5 DMA控制器的工作时序控制器的工作时序 DMA空闲周期空闲周期SI 过渡状态过渡状态S0 DMA
35、有效周期(有效周期(S1、S2、S3、S4)82C37A内部状态变化流程内部状态变化流程59608.2.6 82C37A的初始化编程的初始化编程 初始化编程的步骤:初始化编程的步骤:命令字写入控制寄存器命令字写入控制寄存器 屏蔽字写入屏蔽寄存器屏蔽字写入屏蔽寄存器 方式字写入方式寄存器方式字写入方式寄存器清清“0”先先/后触发器后触发器写入地址寄存器字节寄存器写入地址寄存器字节寄存器解除屏蔽解除屏蔽写入请求寄存器写入请求寄存器 618.2.7 PCH中的中的DMA控制器控制器 182C37A DMAC的级联的级联 622如何扩展如何扩展82C37A DMAC的寻址空间的寻址空间 6364 3应
36、用举例应用举例 现假设在级联的现假设在级联的82C37的主片通道的主片通道1,将内存其,将内存其始地址为始地址为80000H的的280H字节的内容直接输出到外字节的内容直接输出到外部设备。部设备。MOVAL,4;命令字命令字,禁止禁止82C37工作工作 OUT08,AL;写命令寄存器写命令寄存器 MOVAL,0 OUT0CH,AL;清除先清除先/后触发器后触发器 OUT02,AL;写低位地址写低位地址 OUT02,AL;写高位地址写高位地址 65 MOV AL,8 ;页面地址为页面地址为8 OUT 83H,AL ;写页面寄存器写页面寄存器 MOV AX,280H ;传输字节数传输字节数DEC
37、AXOUT 03,AL ;写字节数低位写字节数低位MOV AL,AHOUT 03,AL ;写字节数高位写字节数高位MOV AL,49H ;模式字模式字:单字节读单字节读,地址加地址加1OUT 0BH,AL66 MOV AL,40H;命令字命令字:DACK和和DREQ低有效低有效OUT 08H,AL;正常时序正常时序,固定优先权固定优先权MOV AL,01;清除通道清除通道1屏蔽屏蔽OUT 0AH,ALWAITF:IN AL,08;读通道读通道1状态状态 AND AL,02;传输完成否传输完成否JZ WAITF;没完成则等待没完成则等待MOV AL,05 ;完成后屏蔽通道完成后屏蔽通道1OUT
38、0A,AL 678.3 实时钟电路及其应用实时钟电路及其应用686970偏移地址偏移地址信息内容信息内容偏移地址偏移地址信息内容信息内容0秒秒7日日1报警秒报警秒8月月2分分9年年3报警分报警分0A状态寄存器状态寄存器A4时时0B状态寄存器状态寄存器B5报警时报警时0C状态寄存器状态寄存器C6星期几星期几0D状态寄存器状态寄存器D32H日日 期期 世世 纪纪 可以用可以用INT 1A功能读取或设置这些值。功能读取或设置这些值。71815EP芯片组芯片组82801BA的的RTC电路包含电路包含128字节标准字节标准CMOS RAM 区和区和128字节扩展字节扩展CMOS RAM区。区。访问访问R
39、T/CMOS RAM的端口地址范围从的端口地址范围从70H77H。其中,其中,70H和和71H用来访问标准用来访问标准CMOS RAM 区,区,72H,73H用来访问扩展用来访问扩展CMOS RAM 区。区。MOVAL,6H;6H是存放是存放星期几星期几的单元偏移地址的单元偏移地址OUT70H,AL;送地址端口;送地址端口JMP$+2;芯片;芯片I/O延时要求延时要求INAL,71H;读数据端口;读数据端口MOVAH,AL;AH中存放的是当前中存放的是当前“星期几星期几”的信的信息息;0表示星期日表示星期日 72 基本原理是破坏基本原理是破坏CMOS中的设置,使得开机后必中的设置,使得开机后必须重新设置须重新设置CMOS,从而破解密码。,从而破解密码。mov AL,2EHout 70H,AL mov AL,00H out 71H,AL mov AL,2FHout 70H,AL mov AL,00H out 71H,AL CMOS中偏移为中偏移为2EH和和2FH的的位置放的是标准校验和位置放的是标准校验和