第八章 定时器计数器接口
5
4
停止计数3
2 1
0
OUT
计数值写入计数器 方式0:计数,电平触发(软触发)
8.2 8253/8254可编程定时器/计数器
8.2.4 8253的工作方式(续)
WR
CLK GATE OUT
5 4 3 5 4 3 2 1 0 CW n=5
重新计数 方式1:计数,上升沿触发(硬触发)
8.2 8253/8254可编程定时器/计数器
1)子程序名:SOUND; 2)子程序功能: 启动8253计数器2产生指定频率的声音并持 续指定的时间
3)入口条件: DX=产生方波的频率;
AX=持续(延时)的时间(ms); 4)出口条件: 无; 5)受影响的寄存器:AX,DX,F。 SOUND PROC PUSH CX PUSH SI ;保存CX、SI寄存器
第八章 定时器/计数器接口
2011/10
东北大学计算机系统研究所
第八章
8.1 什么是定时和计数 8.2 8253/8254可编程定时/计数器 8.3 MC146818 CMOS RAM/实时时钟钟 习题
8.1 什么是定时和计数
• 定时:CPU通过接口电路产生时间符合要 求的信号的过程称为定时。该接口电路称
*CMOS参数(2)
PCI slot IRQ:Auto/Manual(注意不要冲突) PCI IDE IRQ:Auto/Manual(注意不要冲突) PCI IDE Trigger Type:PCI 总线中断控制信号的设置, Edge /Level,若接口无特殊要求则设置为Level。 Resources Controlled By:设置系统资源(IRQ,DMA)的 分配方式, Auto/ Manual。 PCI IDE IRQ Map To: 若主板上插有非PCI总线的IDE卡 时设为ISA。 Primary IDE INTR#: A / Secondary IDE INTR#: B : 设置IDE接口的中断优先级,A优于B。 IRQ xx Used By ISA:设置某个IRQ (3~15)给ISA总线使用。 DMA x Used By ISA:设置某个DMA (1,3,5等)给ISA总线使用。 PCI Latency Timer:PCI总线的响应时间 (32,64,128等)。与主板有关。
通道2:方式3,CLK=1.19MHz,GATE接8255A PB0, OUT接扬声器的驱动器输入端,即产生不同频率的方波, 发出不同的声音。
8.2 8253/8254可编程定时器/计数器
8.2.5 8253在IBM PC系列机中的应用(8253时钟中断的使用)
8253通道0每55ms产生一次类型为8的中断,在INT 8中断服务程序中, 修改系统时间,从而维护系统的日历和时钟。 为利用INT 8中断,在其中断程序中有一条指令:INT 1CH。因此它与 INT 8同步,而且不必在结束时执行EOI命令,因为在INT 1CH中执行 了。用户可以利用INT 1CH编写自己的定时程序。例:编写一个驻留程 序,每隔1s在屏幕的右上角显示一个数字,在0~9之间变化。
WR
CS CH2
8.2 8253/8254可编程定时器/计数器
8.2.2 8253的内部结构
8253
控制寄存器 计数初值寄存器 CLK0 GATE0 计数器 当前计数值寄存器 OUT0
通道1
通道2
计数初值=参 考时钟频率 输出频率
8.2 8253/8254可编程定时器/计数器
8.2.3 8253的控制字
8.3 MC146818 CMOS RAM/实时时钟
MC146818的特点 • 采用CMOS工艺,功耗小,可用电池供电。 • MC146818中数据的存取 • 利用INT 1AH:只能存取时钟信息。例 如,将时间设置为12:45,不使用夏时 制: mov ah,03h; mov cl,45h; mov ch, 12h; mov dh,0; mov dl,0; int 1ah; • 利用汇编语言:如在DEBUG下,O 70 10/O 71 10即可删除CMOS的口令。
8.2 8253/8254可编程定时器/计数器
*8253的应用练习-多个通道级联,任意脉宽 +5V
OUT0 30ms OUT1 3ms
….. 3ms方波
GATE0 1KHz CLK0 OUT0 GATE1 CLK1 OUT1 GATE2 CLK2 OUT2 3ms
任意脉宽负脉冲
第八章
8.1 概 述 8.2 8253/8254可编程定时/计数器 8.3 MC146818 CMOS RAM/实时时钟钟 习题
MAIN: MOV DX,OFFSET INT1C; 中断程序入口 MOV AX,251CH; INT 21H ;设置中断向量表 MOV DX,OFFSET MAIN;驻留程序的长度 INT 27H ;
8.2 8253/8254可编程定时器/计数器
8253在IBM PC系列机中的应用(8253时钟中断的使用)
Gate=“ ”
Gate=“1”
进行计数
1
计数不受影响
开始计数,一个 时钟周期后输出 低电平
计数不受影响
2 3 4 5
停止计数,输出高电平 停止计数,输出高电平 停止计数
开始计数,重设初始值 进行计数 开始计数 进行计数 进行计数
计数不受影响
开始计数
8.2 8253/8254可编程定时器/计数器
*8253的初始化
8.2 8253/8254可编程定时器/计数器
8.2.5 8253在IBM PC系列机中的应用 (在PC/XT中为8253,在PC/AT中为8254 )
通道0:方式3,CLK=1.19MHz,GATE=“1”,OUT接IRQ0, 计数初值为0(65536),即每隔55ms一个中断请求信号,中断 程序据此维护系统的日历时钟。 通道1:方式2,CLK=1.19MHz,GATE=“1”,OUT接 DREQ0,计数初值为18,即每隔15vs一个DMA请求信号,使 DMA周期性地进行DRAM刷新。
为定时器。
• 计数: CPU通过接口电路对外部事件的数
量进行统计的过程称为计数。该接口电路
称为计数器。
8.1 什么是定时和计数
三种定时方法
• 软件定时:
MOV CX,XXXXH lp: NOP ……. NOP LOOP lp
或调用定时子程序,如INT指令、其它高 级语言中的子程序。 • 硬件定时:采用TTL或CMOS集成电路, 如NE555、计数器等,或晶振、阻容电路 等。 • 可编程定时器:如8253/8254,CTC等。
8.2.4 8253的工作方式(续) WR CLK
CW n=3
GATE OUT
N
N
N
3 2
1 0/3 2
1 0/3 2
1 0/3 2
1
分频器 计数值写入计数器 方式2:定时,电平触发,上升沿也触发
8.2 8253/8254可编程定时器/计数器
8.2.4 8253的工作方式(续)
WR CLK GATE
1MHz 4ms
8.2 8253/8254 +5V
10ms
OUT0 4ms Q OUT2 6ms GATE0 CLK0 OUT0 1KHz GATE1 4ms CLK1 OUT1 GATE2 CLK2 OUT2
10ms
Q S Q R
CW
n=4
4
3
2
1 0/4 3
2
1 0/4
3
2
1
OUT
2+2或3+2
方式3:定时,电平触发,上升沿也触发
8.2 8253/8254可编程定时器/计数器
8.2.4 8253的工作方式(续)
WR CLK
CW N n=4 N N 4 3 2 1 0
GATE
OUT
计数值写入计数器
方式4:计数,电平触发(软触发)
8253通道0每55ms产生一次类型为8的中断,在INT 8中断 服务程序中,修改系统时间,从而维护系统的日历和时钟。
为利用INT 8中断,在其中断程序中有一条指令:INT 1CH。 因此它与INT 8同步,而且不必在结束时执行EOI命令,因 为在INT 1CH中执行了。用户可以利用INT 1CH编写自己 的定时程序。例:编写一个驻留程序,每隔1s在屏幕的右上 角显示一个数字,在0~9之间变化。
第八章
8.1 概 述 8.2 8253/8254可编程定时/计数器 8.3 MC146818 CMOS RAM/实时时钟钟 习题
8.2 8253/8254可编程定时器/计数器
8.2.1 8253的引脚信号
8253
D0~D7 CH0 A0 A1 RD CH1
CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2
8.3 MC146818 CMOS RAM/实时时钟
8.3.1 MC146818的功能
• 64B的静态存储器,前14个字节用于保存秒、 分、小时、星期、日、月、年,及一些状 态、控制寄存器。还保存硬件配置参数。 (通过程序或BIOS修改其内容) • 定时功能,可任意设定时间间隔 为30.517us~1天的中断申请。
利用通道2控制扬 声器发声。选择工 作方式3,声音频 率为4kHz(存放在 DX中)。端口地址 为40H~43H。
MOV SI, DX MOV AL, 10110110B OUT 43H, AL MOV DX, 0012H MOV AX, 34DCH DIV SI OUT 42H, AL MOV AL,AH OUT 42H, AL
PUSH AX
MOV SI,DX ;频率送SI
8.2 8253/8254可编程定时器/计数器
8253在IBM PC系列机中的应用(8253时钟中断的使用)