8253单片机编程

8253单片机编程,第1张

n=2M/1K=2000 方式 通道0是00110100通道1是 01110000

通道0::

MOV AL,00110100B ; MOV DX,0FFF6H ;OUT DX,AL; MOV AX,2000; MOV DX,0FFFOH ;OUT DX,AL; MOV AL,AH ;OUT DX,AL

通道1:

MOV DX,0FFF6H; MOV AL,01110000B ; MOV DX,0FFF0H; MOV AX,100 ;OUT DX,AL ;MOV AL,AH ;OUT DX,AL

举例说明如下:

.

8253端口地址为180h~183h,从clk1输入2mhz时钟脉冲,

要求输出100khz方波,写出初始化程序。

答:

计数初值=输入脉冲频率/输出方波频率

=2mhz/100khz

=20d

=14h

通道1、仅读写低字节、方式3、二进数,控制字为:01

01

011

0

b

初始化程序如下:

mov

al,

01010110b

工作方式控制字写入al

mov

dx,

183h

8253控制控制口地址送入dx

out

dx,

al

将保存于al中的控制字写入8253控制口

mov

al,

14h

计数初值送入al

mov

dx,

181h

8253通道1地址送入dx

out

dx,

al

将保存于al中的计数初值写入通道1低字节

设8253的选通地址为240H~243H,

 

 240H:计数器0

 241H:计数器1

 242H:计数器2

 243H:控制寄存器

 

采用BCD计数,计数器2输出用于申请中断。

如果计数器2的输入时钟频率为20KHz,

输出信号每秒引起100次中断。

 

要求

(1)算出计数初值,

(2)编写初始化程序。

 

(1)初值为20KHZ/100=200或C8H

(2)编程:

MOV DX,243H-----控制寄存器地址

MOV AL,0B1H-----控制字

OUT DX,AL------写入控制寄存器

 

MOV DX,242H-----计数器2地址

MOV AL, 8CH-----初值低八位,错!

MOV AL, 0C8H-----初值低八位

OUT DX,AL------写入计数器2

 

MOV AL,00H------初值高八位

OUT DX,AL------写入计数器2

----------

另外,按照给定的程序,初值是:00C8H。

但是,题目的要求是,用 BCD 码计数,

那么,初值,就应该是:0200H,这才是 200 的 BCD 码。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8092516.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存