微机原理与接口技术——8253的应用

(一) 操作练习

通过8253芯片通道0和通道2级连,CLK0输入时钟信号100KHz,使OUT2每隔1s,通过不可屏蔽引脚NMI产生中断,依次轮流点亮8盏LED灯。

DATA SEGMENT
LIGHT_STATUS  DB  00000001B  
DATA ENDS
CODE SEGMENT  'CODE'
    ASSUME CS:CODE,DS:DATA
BEGIN:
    MOV AX,DATA
    MOV DS,AX
    MOV AX,0
    MOV DS,AX
    MOV SI,02H*4   ;设置2号中断向量
    MOV AX,OFFSET NMI_SERVICE
    MOV [SI],AX
    MOV AX,SEG NMI_SERVICE
    MOV [SI+2],AX
    MOV DX,406H
    MOV AL, 16H  ;计数器0,只读写低字节,方式3,二进制
    OUT DX,AL
    MOV DX,400H
    MOV AL,11001000B ;十进制200
    OUT DX,AL
    MOV DX,406H
    MOV AL, 0B0H  ;计数器2,先读写低字节后读写高字节,方式0,二进制
    OUT DX,AL
    MOV DX,404H
    MOV AX,000111110100B ;十进制500
    OUT DX,AL
    MOV AL,AH 
    OUT DX,AL 
    MOV DX 200H   ;灯的地址
    MOV AL,LIGHT_STATUS  ;点亮第一个LED灯
    OUT DX,AL
    JMP $   ;等待中断
    MOV AH,4CH  
    INT 21H
NMI_SERVICE PROC FAR
     MOV DX, 200H    ;灯的地址
     MOV AL,LIGHT_STATUS
     ROL AL,1  ;灯循坏左移一位
     OUT DX,AL
     MOV LIGHT_STATUS,AL  ;更新LIGHT_STATUS的值
     MOV DX,406H    ;通道2送计数初值,再次启动计数
     MOV AL, 0B0H  ;计数器2,先读写低字节后读写高字节,方式0,二进制
     OUT DX,AL
     MOV DX,404H
     MOV AX,000111110100B ;十进制500
     OUT DX,AL
     MOV AL,AH
     OUT DX,AL
     IRET
NMI_SERVICE ENDP
CODE ENDS
END BEGIN

仿真结果(截图放在下面):
在这里插入图片描述
在这里插入图片描述

  1. 请回答:程序中的400H、404H、406H分别表示哪个端口的地址?
    400H代表计数器0
    404H代表计数器2
    406H代表控制端口

  2. 请回答:下面这两行代码是什么意思?
    MOV AH,4CH
    INT 21H
    INT表示中断
    代码表示执行中断指令4CH

  3. 请回答:图中红框里面的三行代码是什么意思?(给这三行代码添加注释)
    在这里插入图片描述
    将AL的内容输出到DX所指示的端口
    将ax寄存器高八位赋值给低八位
    将AL的内容输出到DX所指示的端口

  4. 请回答:为什么计数器0的计数初值是200,计数器2的计数初值是500?

计数器0初值是200, 计数器2初值是500
芯片通道0和通道2级联,两个计数器初值乘积为100k

  1. 请回答:如果将计数器0的计数初值改为250,计数器2的计数初值改为400,仿真效果一样吗?在程序中的哪个位置进行修改,请将修改的地方截图,并在图中标记出来?
    在这里插入图片描述
    在这里插入图片描述
    仿真效果一样的
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值