欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微机原理关于8253计数初值

程序员文章站 2024-01-30 23:31:16
...

计数初值的计算

计数初值在计算时以下几种情况:

一、当计数器工作在方式2或者方式3的时候,功能实际上是一个分频器,因此计数常数就是分频系数。

分频系数=输入CLK频率/OUT端输出频率

二、当计数器作为定时器工作时,CLK一般来自系统内部的时钟,计数常数就是定时系数。

定时系数(计数初值)N = 定时时间(T)× 输入时钟频率(ƒCLK)
            = 定时时间(T)/时钟脉冲周期(tCLK)

注:

  • 1GHz=1000MHz,1MHz=1000kHz,1kHz=1000Hz
  • 1s=1000ms,1 ms=1000μs,1μs=1000ns
  • s(秒)、ms(毫秒)、μs(微秒)、ns(纳秒)

时钟周期与时钟频率互为倒数,可得如下

  • 时钟频率 时钟周期
    1Hz 1s
    1KHz 1ms
    1MHz 1μs
    1GHz 1ns
  • 知道这些,便能很快换算周期与频率.
    比方10KHz, 那么就是1/10 = 0.1ms, 即100μs.
    比方100ns, 那么就是1/100 = 0.01GHz, 即10MHz.

例题练习

  1. 8253通道0的CLK0外接频率ƒCLK为1MHz的时钟信号,若按二进制计数方式工作,若要定时10ms则设置的计数初值为多少?
  • 解:时钟脉冲周期(tCLK)=1/1MHz=1/106=10-6 秒=10-3 毫秒
      定时系数(计数初值)N = 10/10-3 =10000

  1. 计数器0工作在方式3下,输出的重复频率为2KHz,计数脉冲的输入为2.5MHz,计算计数初值。
  • 解:(计数初值) N=2.5MHz/2KHz=2.5×106Hz/2×103 Hz=1250

  1. 设某8088系统中,8253占有口地址70H~73H,其实现产生电子时钟基准(定时时间为50ms)和产生方波用作扬声器音调控制(频率为1kHz),设系统中提供计数频率为2MHz
    ,试为其编制8253的初始化程序。
  • 解:

(1)根据题意8253的3个通道和控制寄存器口地址分别为:

通道0 通道1 通道2 控制寄存器
70H 71H 72H 73H

(2)产生电子时钟基准可采用方式2,计数初值N=50ms/(1/2MHz)=100000>65535故要两个计数通道协作完成,选用通道0和通道1

通道0 通道1
控制字=00110100B,计数初值N0=1000 控制字=01010100B,计数初值N1=100

(3)产生方波方式采用方式3
(计数初值)N=2MHz/1KHz=2×106Hz/1×103 Hz=2000 可选用计数通道2,控制字=10100111B
初始化程序段:

;对通道0初始化
	MOV AL,00110100B
	OUT 73H,AL    ;送通道0的方式控制字
	MOV AX,1000
	OUT 70H,AL
	MOV AL,AH
	OUT 70H,AL    ;送通道0的计数初值
;对通道1初始化
	MOV AL,01010100B
	OUT 73H,AL    ;送通道1的方式控制字
	MOV AL,100
	OUT 71H,AL    ;送通道1的计数初值
;对通道2初始化
	MOV AL,10100111B
	OUT 73H,AL    ;送通道2的方式控制字
	MOV AL,20H
	OUT 72H,AL
相关标签: 微机原理