求助!微机原理与接口技术习题!8253的!在线等牛人解答!!!答对了加分!!

将8253定时器0设为方式3(方波发生器),定时器1设为方式2(分频器),要求定时器0的输出脉冲作为定时器1的时钟输入,CLK0连接总线时钟4.77MHz,定时器1输出OUT1约为40Hz,试编一段程序。

我帮你回答,首先计算一下初值是用定时器0的除以定时器1的 4.77MHz/40Hz=119250把他分解到链各个定时器
然后根据选用二进制还是BCD码来写两个定时器的控制字
开始程序
mov dx,端口地址
mov al ,t0的初值
out dx ,al
mov al ,定时器0 的低8位
out dx ,al
mov al ,定时器0 的高8位
out dx ,al
mov dx,端口地址
mov dx,t1的初值
mov al ,定时器1的低8位
out dx ,al
mov al ,定时器1 的高8位
out dx ,al
望采纳,时间有限 计算方面的你就自己搞定哦,望采纳~~追问

那么各个定时器的初值该怎么计算呢?能说详细点吗》?谢谢了

追答

初值的计算就看你是用2进制还是用BCD码来写控制端口的控制字了, 这里119250超过了一个计数器的范围所以要用两个计数器来实现,可以分解为120*993=119250这里用BCD码来写控制字,
则定时器0存放120,意味着高位低八位都有,那么控制字就是00110111(37H)定时器11用来存放993也用BCD码来表示也意味着高低8位都有,那么控制字就是01110101(75H)
所以程序就是
mov dx,端口地址
mov al ,37H
out dx ,al
mov al ,20H
out dx ,al
mov al ,1
out dx ,al
mov dx,端口地址
mov dx,93
mov al ,93H
out dx ,al
mov al ,9
out dx ,al

追问

太谢谢你了!最后问一下,把119250分解的时候是可以随意分的吗??麻烦你了

追答

不是随意分的 BCD码最大的计数单位是10000.而二进制是65536那么要想写程序简单点那么就尽量的把它分解的简单些这样 就只用写高位或者地位地址,不用既写高位又写低位了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-29
哇,这么专业的问题,恐怕你得给很多分哦,呵呵