8253是16位减法计数器。每个计数器内部都有一个控制单元,用于控制本计数器的工作方式,一个16计数初值寄存器CR,分高8位和低8位,只能写入不能读出,在计数过程中初值不爱影响,以便重复计数;一个16位计数单元CE(核心部分)当CR的值送入CE后计数单元以时钟速率递减计数;一个16位输出锁存器OL,也分高低8位CPU可直接对OL进行读操作,Ol内容可随CE内容变化,也可用来锁存内容,使读出不影响计数操作(闩锁读取)。
8253初始化:
MOV DPTR,#0BFFFH ;指向控制字寄存器
MOV A,#30H ;计数器0工作方式3的控制字
MOVX @DPTR,A
MOV DPTR,#0BF3FH
MOV A,#40H ;写入计数初值的顺序方式是"先送入低字节后送入高字节"
MOVX @DPTR,A
MOV A,#00H
MOVX @DPTR,A
一般读取方式代码如下:
(不须要再次送入控制字,因为你在送入初值时用的就是先读写入低位再写入高位,读也是先读出低位再读取高位)
MOV DPTR,#0BF3FH
MOVX A,@DPTR
MOV 44H,A
MOVX A,@DPTR
MOV 43H,A
注意这样读要禁止计数即停止计数,否则读取有很大误差
闩锁读取方式代码如下:
MOV DPTR,#0BFFFH
MOV A,#00H ;计数器0(读控制字)动态读取方式
MOVX A,@DPTY
MOV DPTR,#0BF3FH ;指向计数器0
MOVX A,@DPTR
MOV 47H,A ;读出计数器0的低字节
MOVX A,@DPTR
MOV 46H,A ;读出计数器0的高字节
可进行脉冲计数的减法计数器-8253
0
最新评论共有 0 位网友发表了评论
查看所有评论
发表评论
热点关注

