目录
一:简单(题目把计数初值和工作方式都给你了)
二:给了你输入时间周期和初值,你会不会求输出?
三:简单
四:初值计数方式都不给,初值还是给的时间和频率混合
五:(中等)不给出端口地址?
六:(计数初值为65536的情况)
七:给出时间求初值
计数器8253 含有4个端口,分别是计数器0,计数器1,计数器2,控制口,三个计数器接口工作方式完全相同。 2:计数初值=输入频率/输出频率,频率和时间是倒数关系 所以还有一个公式 计数初值=输出时间/输入时间 3:记住每个工作方式的特点,方式0-方式5。重点掌握方式3,方波 4: 0为最大计数初值
一:简单(题目把计数初值和工作方式都给你了)
(1) 控制字
0101 0000(50H)
;送控制字 MOV DX,107H MOV AL,50H OUT DX,AL ;送初值 MOV DX,105H MOV AL,128 OUT DX,AL
(2) 控制字
0011 0011(33H)
MOV DX,107H MOV AL,33H OUT DX,AL ;送初值 MOV DX,104H MOV AX,3000H OUT DX,AL;送低位 MOV AL,AH OUT DX,AL;送高位
(3)计数初值1011 0100(B4)
MOV DX,107H MOV AL,B4H OUT DX,AL ;送初值 MOV DX,106H MOV AX,02F0H OUT DX,AL MOV AL,AH OUT DX,AL
二:给了你输入时间周期和初值,你会不会求输出?
(1) 把控制字展开 77H
0111 0111
对通道1进行初始化
(2)因为是先送低8位后送高8位,使用十进制数计数 。 那么这个0就是最大值 ,常数10000
(3)计数初值=输入频率/输出频率
而时间和频率互为倒数
也就是 计数初值=输入时间分之一/输出时间分之一 = 输出时间/输出时间
10000=?/1μs
?=10000μs
则输出OUT的周期为10000μs
三:简单
分析一下 让计数器0输出, 要输出方波,所以选工作方式3,BCD计数最后一位是1。
在算一下初值
初值=输入频率/输出频率
100KHZ /10KHZ=10
初值是10H, 一个字节容得下那么只需要送低八位就可以了
上面分析清楚了,直接写控制字
0001 0111(17H)
初始化程序
;送控制字 MOV DX,203H MOV AL,17H OUT DX,AL ;送初值 MOV DX,200H MOV AL,10H;BCD码计数后面一定别把H给丢了 OUT DX,AL
四:初值计数方式都不给,初值还是给的时间和频率混合
(1):可以产生负脉冲的工作方式为 2,4,5,其中可以产生周期方式的只有方式2
题目中给出了,输入频率,直接求输出频率即可。10ms分之一,(10×10^-3分之1)输出频率为100HZ
用输入频率/输出频率=2MHZ/100HZ=20000(计数初值)。 开始求控制字 0011 0100=34H
开始写初始化程序
MOV DX,0123H;取控制口地址 MOV AL,34H; OUT DX,AL; MOV AX,20000;注意这里不要写H MOV DX,0120H; OUT DX,AL; MOV AL,AH; OUT DX,AL;
(2):输出方波,只有工作方式3,求计数初值 2MHZ/10KHZ=200
求控制字 0101 0110=56H
MOV DX,0123H MOV AL,56H OUT DX,AL MOV AL,200 MOV DX,0121H OUT DX,AL
(3): 输出高电平,选方式0, 求输出频率 5ms分之1 =200 计数初值 2MHZ/200HZ=10000
控制字 1011 0000 =B0H
MOV DX,0123H MOV AL,B0H OUT DX,AL MOV AX,10000 MOV DX,0122H OUT DX,AL MOV AL,AH OUT DX,AL
五:(中等)不给出端口地址?
8253端口地址怎么求?
(1):G1是高电平有效 所以A9到A7是 111
A6没有使用为0
38译码器需要Y4输出,那么 A5,A4,A3 必须是 100
A2没有使用A2是0
A1和A0是片内,决定端口
11 1010 0000(3A0H) 计数器0
11 1010 0001 (3A1H) 计数器1
11 1010 0010 (3A2H) 计数器2
11 1010 0011 (3A3H) 控制口
(2)
分析
初值=输入频率/输出频率=1MHZ/1KHZ=1000, 一个字节装不下,所以先送低位后送高位
往计数器0里面送
产生方波计数方式3
0011 0110(36H)
;送控制字 MOV DX,3A3H MOV AL,36H OUT DX,AL ;送初值 MOV DX,3A0H MOV AX,1000 OUT DX,AL;送低位 MOV AL,AH OUT DX,AL;送高位
六:(计数初值为65536的情况)
控制字 0011 0110 (36H)
虽然写的是0但是也要要先送低位,在送高位
;送控制字 MOV AL,36H OUT 43H,AL ;送初值 MOV AX,0;0就65536 MOV 40H,AL MOV AL,AH MOV 40H,AL
七:给出时间求初值
这个说是级联,但是输出的都是1直接。直接把题拆卡算就可以
初值=输入频率/输出频率
时间和频率互为倒数
第一个空
第二个空
两个都是时间就用这个公式
初值=输出时间/输入时间
秒输入,小时输出。把小时转换成秒一除就完事
补充:分清楚
容量
2^10=1K
2^20=1M
速度,频率
10^3=1K
10^6=1M