当前位置: 首页 > news >正文

8254计数器应用实验

一、实验目的

    1.掌握8254的工作方式及应用编程;

    2.掌握8254的典型应用电路的连接。

二、实验内容

将 8254 的计数器 0 设置为方式 0,计数值为十进制数 4,用单次脉冲 KK1+作为 CLK0 时钟,OUT0 连接 MIR7,每当 KK1+按动 5 次后产生中断请求,在屏幕上显示字符(自己参考ASCII码定义)。

三、实验原理以及电路连接

8254 是 Inte1 公司生产的可编程间隔定时器。是 8253 的改进型,比 8253 具有更优良的性能。8254 具有以下基本功能:

(1)有3个独立的 16 位计数器。

(2)每个计数器可按二进制或十进制(BCD)计数。

(3)每个计数器可编程工作于6种不同工作方式。

(4)8254 每个计数器允许的最高计数频率为 10MHz(8253 为 2MHz)。

(5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读

出状态寄存器的内容。

(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

8254的工作方式如下述:

  1. 方式0:计数到0结束输出正跃变信号方式。
  2. 方式1:硬件可重触发单稳方式。
  3. 方式2:频率发生器方式。
  4. 方式3:方波发生器。
  5. 方式4:软件触发选通方式。
  6. 方式5:硬件触发选通方式。


图3.1 8254的内部接口和引脚


8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。

图3.2  8254实验电路原理图

图3.3  8254计数应用实验

图3.4 实验箱连接图

四、程序流程以及代码

实验步骤:

(1)实验接线如图 3.3所示(由于8254单元中 GATE0 信号已经上拉+5V,所以 GATEO不用接线)。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)单击Run按钮,运行实验程序,每连续按动 5 次 KK1+,在界面的输出区会显示字符,观察实验现象。

(4)改变计数值,验证 8254 的计数功能。

图4.1 实验运行结果

IOY0     EQU  0600H             ;IOY0起始地址
A8254    EQU  IOY0+00H*2
B8254    EQU  IOY0+01H*2
C8254    EQU  IOY0+02H*2
CON8254  EQU  IOY0+03H*2SSTACK  SEGMENT STACKDW 32 DUP(?)
SSTACK  ENDSCODE    SEGMENTASSUME CS:CODE, SS:SSTACK
START:  PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET IRQ7         ;取中断入口地址MOV SI, 003CH               ;中断矢量地址MOV [SI], AX                ;填IRQ7的偏移矢量MOV AX, CS                  ;段地址MOV SI, 003EHMOV [SI], AX                ;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL             ;ICW1MOV AL, 08HOUT 21H, AL             ;ICW2MOV AL, 04HOUT 21H, AL             ;ICW3MOV AL, 01HOUT 21H, AL             ;ICW4MOV AL, 6FH             ;OCW1OUT 21H, AL;8254MOV DX, CON8254MOV AL, 10H             ;计数器0,方式0OUT DX, ALMOV DX, A8254MOV AL, 04HOUT DX, ALSTI
AA1:    JMP AA1
IRQ7:   MOV DX, A8254MOV AL, 04HOUT DX, ALMOV AX, 0141HINT 10H                 ;显示字符(可以改成自己想显示的字符)MOV AX, 0120HINT 10H     MOV AL, 20HOUT 20H, AL             ;中断结束命令IRET
CODE    ENDSEND  START对应实验要求输出字符的代码:
IOY0     EQU  0600H             ; IOY0起始地址
A8254    EQU  IOY0+00H*2
B8254    EQU  IOY0+01H*2
C8254    EQU  IOY0+02H*2
CON8254  EQU  IOY0+03H*2SSTACK  SEGMENT STACKDW 32 DUP(?)
SSTACK  ENDSCODE    SEGMENTASSUME CS:CODE, SS:SSTACK
START:  PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET IRQ7         ;取中断入口地址MOV SI, 003CH               ;中断矢量地址MOV [SI], AX                ;填IRQ7的偏移矢量MOV AX, CS                  ;段地址MOV SI, 003EHMOV [SI], AX                ;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL             ;ICW1MOV AL, 08HOUT 21H, AL             ;ICW2MOV AL, 04HOUT 21H, AL             ;ICW3MOV AL, 01HOUT 21H, AL             ;ICW4MOV AL, 6FH             ;OCW1OUT 21H, AL;8254MOV DX, CON8254MOV AL, 10H             ;计数器0,方式0OUT DX, ALMOV DX, A8254MOV AL, 04HOUT DX, ALSTI
AA1:    JMP AA1
IRQ7:   MOV DX, A8254MOV AL, 04HOUT DX, ALMOV AH, 0EH             ;设置显示字符的中断号MOV AL, [currentChar]   ;从currentChar取当前要显示的字符INT 10H                 ;显示字符INC WORD PTR [currentChar] ;移动->下一个字符CMP WORD PTR [currentChar], OFFSET count0EndJNE endIRQMOV WORD PTR [currentChar], OFFSET countMsg ;重置为第一个字符
endIRQ:MOV AL, 20HOUT 20H, AL             ;中断结束命令IRET
CODE    ENDSEND  STARTcountMsg db 'count4', 0Dh, 0Ahdb 'count3', 0Dh, 0Ahdb 'count2', 0Dh, 0Ahdb 'count1', 0Dh, 0Ahdb 'count0', 0Dh, 0Ah
count0End db '$' ; 字符串结束标志
currentChar DW OFFSET countMsg ; 当前要显示的字符的地址

如果对你有帮助的话,请给我点个赞吧❤

相关文章:

  • 25.5.19 强化学习笔记1
  • 【Linux网络】多路转接epoll
  • 留给王小川的时间不多了
  • Java大数据机器学习模型在金融衍生品风险建模中的创新实践
  • 鸿蒙 系统-安全-程序访问控制-应用权限管控
  • 提高 iOS 调试效率的实战经验:日志查看、崩溃分析与性能监控工具推荐(含 KeyMob)
  • 27.第二阶段x64游戏实战-分析技能属性
  • Spring Security与Spring Boot集成原理
  • Oracle 的 PGA_AGGREGATE_LIMIT 参数
  • ElasticSearch 8.x 快速上手并了解核心概念
  • 养生指南:重塑健康生活的实用方案
  • 仿腾讯会议——添加音频
  • MySQL的锁机制
  • 电商后台管理系统:Django Admin深度定制实战指南
  • 蚂蚁数科的AI深潜与RWA远航
  • pinia.defineStore is not a function
  • NeRF适合口腔扫描仪场景吗
  • 深入理解pip:Python包管理的核心工具与实战指南
  • Go语言八股文之Mysql优化
  • 基于 STM32 的自动温度巡检小车控制系统设计与实现
  • 中国首次当选联合国教科文组织1970年《公约》缔约国大会主席国
  • A股午后回暖,三大股指涨跌互现:港口板块重新走强,两市成交近1.1万亿元
  • 解读|战国子弹库帛书漂泊海外79年今归国,追索仍将继续
  • 出走的苏敏阿姨一路走到了戛纳,这块红毯因她而多元
  • 既是工具又是食物,可食用机器人开启舌尖上的新科技
  • 艺术稀缺性和价值坚守如何构筑品牌差异化壁垒?从“心邸”看CINDY CHAO的破局之道