微机原理 8253/8254编程示例

Odessa ·
更新时间:2024-11-15
· 954 次阅读

微机原理 8253/8254编程示例 题目

已知8254各通道时钟接8MHz信号,端口地址为700H,702H,704H和706H。

1、 在OUT0产生周期为10µs的方波

2、 OUT1产生2KHz的连续脉冲信号

3、 OUT2产生一个最大的负脉冲

答案: 第一问

方式3可以产生方波,初始值n = 10µs * 8MHz = 80。所以我们的程序为:

MOV DX,706H ; 控制端口地址 MOV AL,00010110B ;输入控制字 通道0 只读/写计数器低字节 方式3 二进制计数 OUT DX,AL MOV DX,700H ; 端口地址 MOV AX,80D ; 输入初值 OUT DX,AL ; 写入初值 第二问:

方式2可以产生连续脉冲信号,初始值n = 8MHz / 2KHz = 4000D。所以我们的程序为:

MOV DX,706H ; 控制端口地址 MOV AL,01110100B ; 输入控制字 通道1 先读/写计数器低字节 后读/写计数器高字节 方式2 二进制计数 OUT DX,AL ; 将控制字输入到DX MOV DX,702H ; 通道1端口地址 MOV AX,4000D ; 输入初值到AX OUT DX,AL ; 先写低字节 MOV AL,AH ; 取高字节 OUT DX,AL ; 后写高字节 第三问:

产生负脉冲我们可以使用方式2,这里需要注意的是,我们输出最大的负脉冲,初值n应为0。程序为:

MOV DX,706H ; 控制端口地址 MOV AL,10110010 ; 控制字 通道2 先读/写计数器低字节 后读/写计数器高字节 方式2 二进制计数 OUT DX,AL MOV DX,704H ; 端口地址 MOV AL,0 ; 写入初值 OUT DX,AL ;先写低字节 OUT DX,AL; 后写高字节 亓官劼 博客专家 原创文章 252获赞 2702访问量 37万+ 关注 私信 关注博主即可阅读全文
作者:亓官劼



微机原理 微机 示例

需要 登录 后方可回复, 如果你还没有账号请 注册新账号