8254 定时/计数器应用实验
一、实验目的
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 定时/计数器应用实验相关推荐
- 8254定时/计数器实验
转载的: https://blog.csdn.net/as1072966956/article/details/80718843 8254定时/计数器应用实验 1 实验目的 掌握8254的工作方式及应 ...
- 实验六、8254定时/计数器实验
实验六.8254定时/计数器实验 1.实验目的 了解定时计数器8254的初始化及用法. 了解定时计数器8254各种工作方式的特点. 2.实验内容 编写程序,使8254的计数器1 分别工作在方式 0.1 ...
- 实验六 8254 定时/计数器实验
上机实验 实验目的 实验内容 实验原理 实验步骤 思路 连线注意 !!! 实验代码 8254 的各种方式 选做实验一 实验内容 思路 实验代码 选做实验二 实验内容 思路 实验代码 上机实验 实验目的 ...
- 实验6、8254定时/计数器实验
实验内容 基础部分: 1.编写程序,是8254的计数器1分别工作在方式0.1.2.3下,在示波器上观察各工作方式下OUT1的输出波形. 拓展部分: 2.使用单脉冲开关手动生成8254的输入时钟,观察方 ...
- 汇编语言--8254定时/计数器实验
实验题目 计数应用实验 编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按下'KK1+'5次后,产生一次计数中断,并在屏幕上显示一个字符'M': 认识8254 8254是Intel公司生 ...
- 实验七:定时/计数器8253、8254
目录 例 实验目的 实验内容 报告要求 例 已知8253的两个计数器CLK0=1MHZ,CLK1=1KHZ,现系统要求8253的OUT1产生0.1s的定时方波信号. (1):应如何实现? (2):说明 ...
- [芯片] 2、接口技术·实验二·定时/计数器8253
目录 一.实验目的和要求 二.实验原理与背景 三.实验具体的内容 3-1.计数器方式0实验 3-2.计数器方式3实验 3-3.计数器级联实验 四.实验的代码说明 4-1.计数器方式0实验代码及说明 4 ...
- 可编程定时/计数器 8253/8254
在微机应用系统中,定时控制具有重要的作用.经常会有这样的应用要求:一种是要求有一些外部实时时钟,以实现延时控制或定时:另一种是要求能对外部事件计数的计数器.在微机系统中,常采用以下三种方法实现:软件定 ...
- 单片机实验七 NE555脉冲发生器实验(定时/计数器)
实验七 NE555脉冲发生器实验(定时/计数器) 一.实验目的 1.熟悉实验软件和硬件,进行正确的接线: 2.1602显示脉冲频率,调节电位器可改变频率. 二.实验软硬件 1.Keil uVision ...
最新文章
- Spring松耦合的个人理解和代码实例
- 如何安装MiniGUI 3.0在Linux PC
- tomcat不能多次startup.sh,异常时直接,分析logs目录下的日志。
- python 输入华氏温度f_如何用 python编写华氏摄氏度的相互转换?
- spinningup 绘制曲线
- 4.4系统,拍照-裁剪,resultCode返回0
- GitHub的安装与配置
- c语言通讯录感想,C语言通讯录实例分享
- 【加拿大签证】加拿大签证办理GCKey注册说明【加拿大签证网上办理注册】
- 手机APP开发常用工具有哪些
- HDU 5956 The Elder (树形DP + 斜率优化)
- 监控、无人机摄像头RTSP协议对接腾讯云直播
- 动态表头excel导入(java)
- 视觉定位系统在机器人全场定位的应用
- sýnesis™ Lite for Snort provides basic analytics for Snort IDS/IPS alert logs using the Elastic Stac
- Android安装apk应用的时候出现INSTALL_FAILED_SHARED_USER_INCOMPATIBLE如何解决
- 转载:网站分析与SEO效果的评估
- js实现匹配到文字设置为红色
- 神经网络算法---手写数字体识别
- java 两个页面传递数据,怎么将一个页面的数据传给另外个页面
热门文章
- java用redis缓存的步骤_Java 使用Redis缓存工具的图文详细方法
- Linux中查看系统版本(内核和发行)、CPU信息以及修改主机名
- Vulnhub系列:FristLeaks
- PLC控制系统 信号隔离器BM100
- 服务网格Service Mesh学习整理
- 【GIS开发】OpenLayers在线瓦片数据源汇总
- js replace替换字符串中某个指定字符
- java 类名参数_通过将类名和方法名作为参数传递来运行Java方法
- 数组操作 reverse()方法
- Linux截取字符串最后两位,linux的string操作(字符串截取,长度计算)