一、实验目的

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

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

二、实验内容与要求

1、计数应用实验,编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK+’5次后,产生依次计数中断,并在屏幕上显示一个字符‘M’.

2.定时应用实验。编写程序,应用8254的定时功能,产生一个ls的方法,并且本装置的示波器功能来观察。

三、实验步骤

1. 计数应用实验

将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“M”。

图4.5.3  8254计数应用实验接线图

实验步骤:

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

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

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

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

2. 定时应用实验

将8254的计数器0和计数器1都设置为方式3,用信号源1MHz作为CLK0时钟,OUT0为波形输出1ms方波,再通过CLK1输入,OUT1输出1s方波。

图4.5.5  8254定时应用实验按线图

实验步骤:

(1)接线图如图4.5.5所示。

(2)根据实验内容,编写实验程序(例程文件名为:A82542.ASM),经编译、链接无误后装入系统。

(3)单击run按钮,运行实验程序,8254的OUT1会输出1s的方波,可用软件自带的示波器功能进行观察。

(4)用示波器观察波形的方法:单击虚拟仪器菜单中的“示波器”按钮或直接单击工具栏的 按钮,在新弹出的示波器界面上单击 按钮运行示波器,就可以观测出OUT1输出的波形。

四、电路连接

1. 计数应用实验

2. 定时应用实验

五、代码设计

1.中断入口地址

        MOV 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

子程序入口是中断类型号*4,从下图可以看出,IR7的中断类型号是F(0F),0F×4=003C,003E=0F×4+2

2.8254的初始化

        MOV DX, CON8254         ;8254MOV AL, 36H             ;计数器0,方式3OUT DX, AL

36H=00 11 011 0:计数器0,先读写低8位,再读写高8位,方式3,二进制

3.8254计数器0的计数初值的计算

        MOV DX, A8254MOV AL, 0E8HOUT DX, ALMOV AL, 03HOUT DX, AL

设计数初值为n,CLK频率为fc,方波频率为f则n=fc/f

因为本实验中CLK0频率为1MHz,波形输出1ms方波,即1000Hz.所以计数初值n=1000000/1000=1000,转换为十六进制为03E8H.

4.关于显示字符

MOV AX, 014BH
INT 10H ;显示字符K

这里AH=01,AL=4BH=75=‘K’,会显示AL对应的字符。

六、实验现象

1. 计数应用实验

修改代码,变成K。

2. 定时应用实验

附录 代码

1.计数应用实验

;=========================================================
; 文件名: A82541.ASM
; 功能描述: 通过对计数器0进行计数,计数初值为4,
;           当计数满后,产生正跳变触发中断,中断
;           程序显示M(每按5次输出一个M)
;=========================================================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, 014DHINT 10H                 ;显示字符MMOV AX, 0120HINT 10H     MOV AL, 20HOUT 20H, AL             ;中断结束命令IRET
CODE    ENDSEND  START

2. 定时应用实验

;=========================================================
; 文件名: A82542.ASM
; 功能描述: 产生1s方波,输入时钟为1MHz,使用计数器0和1
;           计数初值均为03E8H
;=========================================================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
START:  MOV DX, CON8254         ;8254MOV AL, 36H             ;计数器0,方式3OUT DX, ALMOV DX, A8254MOV AL, 0E8HOUT DX, ALMOV AL, 03HOUT DX, ALMOV DX, CON8254         ;8254MOV AL, 76H             ;计数器1,方式3OUT DX, ALMOV DX, B8254MOV AL, 0E8HOUT DX, ALMOV AL, 03HOUT DX, AL
AA1:    JMP AA1
CODE    ENDSEND  START

8254 定时/计数器应用实验相关推荐

  1. 8254定时/计数器实验

    转载的: https://blog.csdn.net/as1072966956/article/details/80718843 8254定时/计数器应用实验 1 实验目的 掌握8254的工作方式及应 ...

  2. 实验六、8254定时/计数器实验

    实验六.8254定时/计数器实验 1.实验目的 了解定时计数器8254的初始化及用法. 了解定时计数器8254各种工作方式的特点. 2.实验内容 编写程序,使8254的计数器1 分别工作在方式 0.1 ...

  3. 实验六 8254 定时/计数器实验

    上机实验 实验目的 实验内容 实验原理 实验步骤 思路 连线注意 !!! 实验代码 8254 的各种方式 选做实验一 实验内容 思路 实验代码 选做实验二 实验内容 思路 实验代码 上机实验 实验目的 ...

  4. 实验6、8254定时/计数器实验

    实验内容 基础部分: 1.编写程序,是8254的计数器1分别工作在方式0.1.2.3下,在示波器上观察各工作方式下OUT1的输出波形. 拓展部分: 2.使用单脉冲开关手动生成8254的输入时钟,观察方 ...

  5. 汇编语言--8254定时/计数器实验

    实验题目 计数应用实验 编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按下'KK1+'5次后,产生一次计数中断,并在屏幕上显示一个字符'M': 认识8254 8254是Intel公司生 ...

  6. 实验七:定时/计数器8253、8254

    目录 例 实验目的 实验内容 报告要求 例 已知8253的两个计数器CLK0=1MHZ,CLK1=1KHZ,现系统要求8253的OUT1产生0.1s的定时方波信号. (1):应如何实现? (2):说明 ...

  7. [芯片] 2、接口技术·实验二·定时/计数器8253

    目录 一.实验目的和要求 二.实验原理与背景 三.实验具体的内容 3-1.计数器方式0实验 3-2.计数器方式3实验 3-3.计数器级联实验 四.实验的代码说明 4-1.计数器方式0实验代码及说明 4 ...

  8. 可编程定时/计数器 8253/8254

    在微机应用系统中,定时控制具有重要的作用.经常会有这样的应用要求:一种是要求有一些外部实时时钟,以实现延时控制或定时:另一种是要求能对外部事件计数的计数器.在微机系统中,常采用以下三种方法实现:软件定 ...

  9. 单片机实验七 NE555脉冲发生器实验(定时/计数器)

    实验七 NE555脉冲发生器实验(定时/计数器) 一.实验目的 1.熟悉实验软件和硬件,进行正确的接线: 2.1602显示脉冲频率,调节电位器可改变频率. 二.实验软硬件 1.Keil uVision ...

最新文章

  1. Spring松耦合的个人理解和代码实例
  2. 如何安装MiniGUI 3.0在Linux PC
  3. tomcat不能多次startup.sh,异常时直接,分析logs目录下的日志。
  4. python 输入华氏温度f_如何用 python编写华氏摄氏度的相互转换?
  5. spinningup 绘制曲线
  6. 4.4系统,拍照-裁剪,resultCode返回0
  7. GitHub的安装与配置
  8. c语言通讯录感想,C语言通讯录实例分享
  9. 【加拿大签证】加拿大签证办理GCKey注册说明【加拿大签证网上办理注册】
  10. 手机APP开发常用工具有哪些
  11. HDU 5956 The Elder (树形DP + 斜率优化)
  12. 监控、无人机摄像头RTSP协议对接腾讯云直播
  13. 动态表头excel导入(java)
  14. 视觉定位系统在机器人全场定位的应用
  15. sýnesis™ Lite for Snort provides basic analytics for Snort IDS/IPS alert logs using the Elastic Stac
  16. Android安装apk应用的时候出现INSTALL_FAILED_SHARED_USER_INCOMPATIBLE如何解决
  17. 转载:网站分析与SEO效果的评估
  18. js实现匹配到文字设置为红色
  19. 神经网络算法---手写数字体识别
  20. java 两个页面传递数据,怎么将一个页面的数据传给另外个页面

热门文章

  1. java用redis缓存的步骤_Java 使用Redis缓存工具的图文详细方法
  2. Linux中查看系统版本(内核和发行)、CPU信息以及修改主机名
  3. Vulnhub系列:FristLeaks
  4. PLC控制系统 信号隔离器BM100
  5. 服务网格Service Mesh学习整理
  6. 【GIS开发】OpenLayers在线瓦片数据源汇总
  7. js replace替换字符串中某个指定字符
  8. java 类名参数_通过将类名和方法名作为参数传递来运行Java方法
  9. 数组操作 reverse()方法
  10. Linux截取字符串最后两位,linux的string操作(字符串截取,长度计算)