实验六、8254定时/计数器实验
实验六、8254定时/计数器实验
1、实验目的
- 了解定时计数器8254的初始化及用法。
- 了解定时计数器8254各种工作方式的特点。
2、实验内容
编写程序,使8254的计数器1 分别工作在方式 0、1、2、3下,在示波器上观察各工作方式下 OUT1 的输出波形。
3、实验原理
8253/8254 是 Intel公司生产的通用定时/计数器。8254是在8253的基础上稍加改进而推出的改进型产品,它们的引脚定义与排列、硬件组成等基本上是相同的。因此 8254 的编程方式与 8253 是兼容的,凡是使用 8253 的地方均可用 8254代替。 相对 8253,8254芯片的改进之处包括:
- 允许最高计数脉冲(CLK)的频率不同。8253的最高频率为2MHz,而 8254允许的最高计数脉冲频率可达 10MHz。
- 8254每个计数器内部都有一个状态寄存器和状态锁存器,而8253没有。
- 8254有一个读回命令字,用于读出当前减 1 计数器CE的内容和状态寄存器的内容,而8253没有此读回命令字。
8254的工作方式如下述:
(1)方式0:计数到0结束输出正跃变信号方式。
(2)方式1:硬件可重触发单稳方式。
(3)方式2:频率发生器方式。
(4)方式3:方波发生器。
(5)方式4:软件触发选通方式。
(6)方式5:硬件触发选通方式。
8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表 1、表 2 所示。
4、实验记录
(博主做完实验后,将一些需要理解的点在此记录一下。)
引脚说明:每个计数器都有CLK,OUT,GATE三个接口
- CLK 连接外部时钟,外部时钟信号的每次输入都会使计数值减一。(假设外部时钟频率为 x Hz,则计数器初值设置为 x 可以作成计时1秒的计数器)
- OUT 是计数器的输出端,每当计数器归零时,会按工作方式输出不同的信号。(连接到AD转换器可以在示波器里观察到波形)
- GATE 是由外部输入的门控制端,用于控制和启动计数器的工作。(在某些工作方式下用于控制启动计数器,在某些工作方式下用于控制允许或禁止计数)
工作方式:基础实验要求熟悉使用工作方式0~3
- 方式0:写入计数器初值,计数器工作期间维持输出低电平,计数器归零后维持输出高电平。如果在计数器归零后重新赋予计数器初值,则会让计数器重新进入工作状态。(无须启动,GATE置零时禁止计数)
- 方式1:写入计数器初值,启动计数器,计数器工作期间维持输出低电平,计数器归零后维持输出高电平。如果在计数器归零后重新赋予计数器初值,则需要重新启动计数器才能让计数器重新进入工作状态。(GATE出现0->1上升沿时启动计数)
- 方式2:写入计数器初值,计数器工作期间维持输出高电平,当计数到1时,输出低电平,当计数到0时,重新填充初值,并开启下一轮计数。(无须启动,GATE置零时禁止计数)
- 方式3:写入计数器初值,计数器会输出近似1:1的方波,计数器归零后,会自动重新填充初值,并开启下一轮计数。(无须启动,GATE置零时禁止计数)
扩展:计数器串联(降频)
已知计数器的CLK引脚输入的信号会让该计数器的计数值减一,所以将计数器1的CLK和(工作方式3的)计数器0的OUT相接时,可以实现 “由计数器0充当计数器1的CLK输入时钟“ 的效果。(假设计数器0计时1秒,那么计数器1的计数值将每秒减1)
5、代码记录:
A8254 EQU 0600H ;8254的计数器0地址
B8254 EQU 0602H ;8254的计数器1地址
C8254 EQU 0604H ;8254的计数器2地址
M8254 EQU 0606H ;8254的控制寄存器地址 CODE SEGMENTASSUME CS:CODESTART:;MOV AL,30H ;timer0 work on mode 0;MOV AL,32H ;timer0 work on mode 1;MOV AL,34H ;timer0 work on mode 2MOV AL,36H ;timer0 work on mode 3MOV DX,M8254OUT DX,AL MOV DX,A8254 ;因为连接到18.432kHz的时钟上,所以2400H刚好是0.5秒的计时MOV AL,00HOUT DX,ALMOV AL,24HOUT DX,AL;MOV AL,70H ;timer1 work on mode 0;MOV AL,72H ;timer1 work on mode 1MOV AL,54H ;timer1 work on mode 2;MOV AL,56H ;timer1 work on mode 3MOV DX,M8254OUT DX,AL MOV DX,B8254MOV AL,03H ;三分频OUT DX,ALLP: JMP LP ;在循环里等待并观察计数器工作CODE ENDSEND START
实验六、8254定时/计数器实验相关推荐
- 实验六 8254 定时/计数器实验
上机实验 实验目的 实验内容 实验原理 实验步骤 思路 连线注意 !!! 实验代码 8254 的各种方式 选做实验一 实验内容 思路 实验代码 选做实验二 实验内容 思路 实验代码 上机实验 实验目的 ...
- 8254定时/计数器实验
转载的: https://blog.csdn.net/as1072966956/article/details/80718843 8254定时/计数器应用实验 1 实验目的 掌握8254的工作方式及应 ...
- 实验6、8254定时/计数器实验
实验内容 基础部分: 1.编写程序,是8254的计数器1分别工作在方式0.1.2.3下,在示波器上观察各工作方式下OUT1的输出波形. 拓展部分: 2.使用单脉冲开关手动生成8254的输入时钟,观察方 ...
- 汇编语言--8254定时/计数器实验
实验题目 计数应用实验 编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按下'KK1+'5次后,产生一次计数中断,并在屏幕上显示一个字符'M': 认识8254 8254是Intel公司生 ...
- 8254 定时/计数器应用实验
一.实验目的 1.掌握 8254 的工作方式及应用编程. 2.掌握 8254 典型应用电路的接法. 二.实验内容与要求 1.计数应用实验,编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当 ...
- 实验七:定时/计数器8253、8254
目录 例 实验目的 实验内容 报告要求 例 已知8253的两个计数器CLK0=1MHZ,CLK1=1KHZ,现系统要求8253的OUT1产生0.1s的定时方波信号. (1):应如何实现? (2):说明 ...
- 【单片机】脉冲计数(定时/计数器实验)
[单片机]脉冲计数(定时/计数器实验) 一.操作目的 二.操作内容 三.程序框图 四.程序接线图 五.程序清单 六.代码详解 一.操作目的 熟悉单片机内部定时/计数器功能,掌握初始化编程方法. 二.操 ...
- 《单片机》实验——实验4 MCS-51内部定时/计数器实验(2)
<单片机>实验--实验4 MCS-51内部定时/计数器实验(2) 一.实验目的 二.知识要点 三.实验内容 实验一至实验七配套源代码.电路图.hex文件.实验报告,请点击此处 一.实验目的 ...
- 实验四 MCS-51内部定时/计数器实验(2)
实验四 MCS-51内部定时/计数器实验(2) 一.实验目的 二.知识要点 三.实验内容 总结 一.实验目的 进一步掌握定时/计数器的4种工作方式的应用 掌握查询控制的定时/计数器的编程 二.知识要点 ...
最新文章
- 在线作图|微生物多样性分析——丰度等级曲线
- Java 中初始化 List 集合的 6 种方式!
- asp.net MVC3 弹出窗口里嵌一个View代码
- sql远程mysql服务器查询_sql server 使用链接服务器远程查询
- 为什么1000 == 1000返回为False,而100 == 100会返回为True?
- 微软4年后重登市值第一,纳德拉如何做到的?
- 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范
- Android入门(14)| 通知
- 面试官问:malloc(0)时程序会返回什么?
- rabbitmq之window环境启动
- 锻造恒生O45:致广大而尽精微
- 使用BabeLua在VS中创建Lua项目。
- 微信小程序:收款码三合一制作微信小程序源码下载多模板选择
- 调用阿里云语音识别接口
- 国产数据库OpenGauss--内存优化表(MOT)实践
- 【持续更新】资源站点汇总
- 谷歌正式开源其多语言跨平台加密库Tink
- 掌握最新网管技术 做悠闲网管员
- 使用TKMapper主键的坑
- 行为验证码(AJ-Captcha快速入门)