第八章 定时器计数器接口

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8.2 8253/8254可编程定时器/计数器
8.2.4 8253的工作方式(续)
WR CLK
GATE OUT
CW
n=4
4
3
2
1
0
计数值写入计数器 方式5:计数,上升沿触发(硬触发)
8.2 8253/8254可编程定时器/计数器
8.2.4 8253的工作方式(续)
mode 0 Gate=“0”
停止计数
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:计数,电平触发(软触发)
MAIN: MOV DX,OFFSET INT1C; 中断程序入口 MOV AX,251CH; INT 21H ;设置中断向量表 MOV DX,OFFSET MAIN;驻留程序的长度 INT 27H ;
8.2 8253/8254可编程定时器/计数器
8253在IBM PC系列机中的应用(8253时钟中断的使用)
*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等)。与主板有关。
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
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通过接口电路产生时间符合要 求的信号的过程称为定时。该接口电路称
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.3 MC146818 CMOS RAM/实时时钟
8.3.1 MC146818的功能
• 64B的静态存储器,前14个字节用于保存秒、 分、小时、星期、日、月、年,及一些状 态、控制寄存器。还保存硬件配置参数。 (通过程序或BIOS修改其内容) • 定时功能,可任意设定时间间隔 为30.517us~1天的中断申请。
第八章
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
MAIN: MOV DX,OFFSET INT1C; 中断程序入 口 MOV AX,251CH; INT 21H ;设置中断向量表
MOV DX,OFFSET MAIN;驻留程序的长度 INT 27H ;
8.2 8253/8254可编程定时器/计数器
8.2.5 8253在IBM PC系列机中的应用 (8253时钟中断的使用)
利用通道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 A53/8254可编程定时器/计数器
*8253的应用练习-多个通道级联,占空比可调 +5V
10ms
OUT0 4ms Q OUT2 6ms GATE0 CLK0 OUT0 1KHz GATE1 4ms CLK1 OUT1 GATE2 CLK2 OUT2
10ms
Q S Q R
通道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之间变化。
;1193180/频率=计数值
MOV AL,AH
OUT 42H,AL IN AL,61H
;送计数值的高位
;读8255A的B口
OR AL,03H
OUT 61H,AL
;允许产生声音
8.2 8253/8254可编程定时器/计数器
8253在IBM PC系列机中的应用(8253时钟中断的使用)
POP AX MOV DX,1000 MUL DX MOV CX,DX MOV DX,AX MOV AH,86H ;恢复延时的时间(ms) ;变为μs
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的控制字
为定时器。
• 计数: CPU通过接口电路对外部事件的数
量进行统计的过程称为计数。该接口电路
称为计数器。
8.1 什么是定时和计数
三种定时方法
• 软件定时:
MOV CX,XXXXH lp: NOP ……. NOP LOOP lp
或调用定时子程序,如INT指令、其它高 级语言中的子程序。 • 硬件定时:采用TTL或CMOS集成电路, 如NE555、计数器等,或晶振、阻容电路 等。 • 可编程定时器:如8253/8254,CTC等。
Gate=“ ”
Gate=“1”
进行计数
1
计数不受影响
开始计数,一个 时钟周期后输出 低电平
计数不受影响
2 3 4 5
停止计数,输出高电平 停止计数,输出高电平 停止计数
开始计数,重设初始值 进行计数 开始计数 进行计数 进行计数
计数不受影响
开始计数
8.2 8253/8254可编程定时器/计数器
*8253的初始化
8253通道0每55ms产生一次类型为8的中断,在INT 8中断 服务程序中,修改系统时间,从而维护系统的日历和时钟。
为利用INT 8中断,在其中断程序中有一条指令:INT 1CH。 因此它与INT 8同步,而且不必在结束时执行EOI命令,因 为在INT 1CH中执行了。用户可以利用INT 1CH编写自己 的定时程序。例:编写一个驻留程序,每隔1s在屏幕的右上 角显示一个数字,在0~9之间变化。
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刷新。
*CMOS参数(1)
Onboard FDD Controler :主板上的软驱控制器,如使 用IDE卡上的控制器,则置Disable。 Onboard PCI IDE Enable:主板上的IDE控制器,同上。 IDE HDD Block Mode:硬盘块传输模式,设置扇区数或 Disable。 IDE PIO Mode:5种模式,代表不同的速度1, 2,….,AUTO。 Onboard Serial Port或UART:主板上的串形通信接口 COM1和COM2,若有内置MODEM,则将相应的串口 置Disable。 Onboard Parallel Port:主板上的打印机接 口(378H/IRQ7)。 Onboard Parallel Mode:主板上的并行口工 作模式,Normal,EPP,ECP,EPP+ECP 模式。 USB Controller:置abled或disabled。
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/实时时钟钟 习题
PUSH AX
MOV SI,DX ;频率送SI
8.2 8253/8254可编程定时器/计数器
8253在IBM PC系列机中的应用(8253时钟中断的使用)
MOV AL,10110110B ;将8253计数器2设置为方式3 OUT 43H,AL MOV DX,0012H MOV AX,34DCH DIV SI OUT 42H,AL ;1193180的低位 ;1193180的高位 ;送计数值的低位
二进制 BCD码 0/1
通道号0 ~2
读写锁存器
00=锁存计数值 工作方式0 ~5 01=读/写LSB 10=读/写MSB 11=先读写LSB,后读写MSB
8253的初始化:先写控制字再写计数初值
8.2 8253/8254可编程定时器/计数器
8.2.4 8253的工作方式
WR CLK GATE
CW n=5
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可编程定时器/计数器
INT 15H
POP SI POP CX
;延时
RET
SOUND ENDP
8.2 8253/8254可编程定时器/计数器
*8253的应用练习-多个通道级联,任意周期的方波 1000μs +5V
OUT0
10 μ s 1000ms OUT1 500ms
GATE0 CLK0 OUT0 GATE1 CLK1 OUT1 GATE2 CLK2 OUT2
相关文档
最新文档