8253可编程计数器/定时器

  1. 8253有3个16位的counter(0,1,2),其中counter0输出到IRQ0,产生定时中断;
  2. PC输入频率为1193180Hz ==> 每次(count-1)需1/1193180s,每1s要count1193180次 ⇒ 则若想设置10ms中断则counter0应置为1193180/100
  3. counter配置:
    8253counter(0,1,2)置位端口分别为端口(40h,41h,42h),16位;
    端口43h配置8253Mode Control Register,用以设置相关属性,8位;

8253Mode Control Register(43h,8位):

位数 作用
0 0:计数器使用2进制
1:计数器使用BCD
3、2、1 配置计数器模式;
 3,2,1
(0,0,0):Mode0,interrupt on terminal count
(0,0,1):Mode1,programmable one-shot
(0,1,0):Mode2,rate generator
(0,1,1):Mode3,square wave rate generator
(1,0,0):Mode4,software triggered strobe
(1,0,1):Mode5,hardware triggered strobe
5、4 读/写/锁位
 5,4
(0,0):锁当前计数值
(0,1):只读写高字节
(1,0):只读写低字节
(1,1):先读写低字节,后读写高字节
7、6 计数器选择
 7,6
(0,0):选择counter0
(0,1):选择counter1
(1,0):选择counter2
(1,1):对8253非法,对8254位Read Back命令

附PC8259控制系统,8253counter0对应IRQ0:

8253可编程计数器/定时器_第1张图片

你可能感兴趣的:(x86汇编语言)