8253问题!!!两个计数器级联,如何确定两个计数器的初值?

核心提示计数初值N=输入频率/输出频率。为保证输入8MHz时恰好有100Hz输出,计数初值必须N=8M/100=80000,这样大的计数初值可以用计数器级联来解决。一般分为整数相乘。80000=4000*20(当然也可以用其他数相乘,如80000=

计数初值N=输入频率/输出频率。为保证输入8MHz时恰好有100Hz输出,计数初值必须N=8M/100=80000,这样大的计数初值可以用计数器级联来解决。一般分为整数相乘。80000=4000*20(当然也可以用其他数相乘,如80000=2000*40)

至于8253的各个端口地址,那要看电路连接图,或者题目给出一个8253的基地址,根据这个基地址(即为通道0的地址)来判断其他三个端口地址。

程序中的8253控制字36h =0011 0110b,

设定计数器初装值是先写低字节,再写高字节。

但程序的三条指令:

MOV DPTR,#0FF28H

MOV A,R1

MOVX @DPTR,A

仅写入了低字节,未写入高字节,因而8253的T/C0未启动。

 
友情链接
鄂ICP备19019357号-22