发新话题
打印

8253的控制字及初始化

8253的控制字及初始化


8253的控制字及初始化
) \! o: F; j' i/ h' t) k  1.8253的控制字
/ u3 U( ]5 J, \( K7 D( k2 h  8253只有一个控制字,其格式和含义如图6.19所示。最高两位用来选择计数器,接着的两位用来规定读/写格式,其后的3位用来选择工作方式,最低位用来规定是二进制计数还是十进制计数。
9 Z( E4 M( K2 y$ m/ R1 D    由于8253对外的数据线只有8根,对16位计数器进行写(预置)或读(读取当前计数值)需要分两次进行。当cPu需要读取某计数器的当前值时,一般是先读低8位,再读高8位。由于两次读之间存在时间间隔,这期间可能恰好有计数脉冲,所以读出的值带有随机性。为了使CPU能获得计数器某一时刻准确的值,8253设置了锁存操作。当控制字的D5、D4位(RLl、RLO)为00时,表示锁存,即将指定计数器的当前值锁存到内部的16位存储寄存器中。此后,CPU可分两次取走。注意,锁存不影响计数。# G1 J) x# E7 }6 f- I2 G
6 l( Y9 X9 f1 M% V- T% I1 m4 Y

+ b9 |: {; o# `; b. B6 I
6 j& ?2 D% F( T7 i% d# n
3 Y( N5 H+ j/ }! h+ n0 D( ~  
7 l3 y: `9 j; R# t4 B2.8253的初始化 4 ?% T5 n- s- ?
    使用8253,要先通过程序对其进行初始化。在初始化时主要掌握以下三点:   C; j+ H* a) C1 Z5 i! O* O
    (1)对各个计数器分别进行初始化,顺序无要求。
5 E! U& X8 f4 p! p    (2)对某个计数器进行初始化:先写控制字,再送计数初值;如送16位初值,则需先送低8位,再送高8位。 ( B1 O3 ^: F, v/ L$ t
    (3)预置的初值需经过一个输入脉冲(CLK)的上升沿和下降沿之后才可装入计数器(此前读计数器,并非所设置的值)。



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题