第七篇 使用8253计数器

微机原理—可编程计数器/定时器8253概念详解 前言 定时器可以理解为一个特殊的中断。计数器和定时器其实只是功能上的不同以及度量单位的不同,定时器里面肯定是有计数的。 定时处理方法 定时的方法: 1、软件定时方式(不是很准确,会被其他中断打断计数过程) ■CPU干预 ■指令执行时间作间隔 2、不可编程的硬件定时方式(就像保险丝熔断一样,并不是由程序控制的) ■方式固定 ■硬件设定参数 3、可编程的硬件定时方式 ■程序设定、程序控制 ■中断. 定... 阅读详情

本篇博文主要介绍如何利用8253计数器计时。

8253计数器每秒大概计数18次。每计数一次就会向CPU发出中断请求。也即每55ms就会

发一次中断请求。CPU响应中断,调用的是int 1ch。

以下代码的作用时利用int 1ch中断计时60秒,在屏幕上显示00至59,然后程序自动退出。

 

一、代码

initint equ 1ch

data segment
	addr dw ?,?
	time dw ?
	count db ?
	divide db 10
data ends

sseg segment stack
	dw 512 dup (?)
sseg ends

code segment
	assume cs:code,ds:data,ss:sseg
start:
	mov ax,data
	mov ds,ax

	mov ax,sseg
	mov ss,ax

	mov ax,0
	mov es,ax

	;保存1ch中断的原始地址
	mov ax,es:[initint*4]
	mov addr,ax
	mov ax,es:[initint*4+2]
	mov addr[2],ax

	;加入新中断服务程序地址
	cli
	lea ax,isr
	mov es:[initint*4],ax
	mov ax,seg isr
	mov es:[initint*4+2],ax
	sti

	mov time,0
	mov count,0
again:
	cmp time,60
	jae exit
	jmp again

	;恢复原中断地址
exit:
	cli
	mov ax,addr
	mov es:[initint*4],ax
	mov ax,addr[2]
	mov es:[initint*4+2],ax
	sti

	mov ah,4ch
	int 21h

isr proc far
	push ax
	push cx
	push dx
	
	;告诉中断服务子程序变量在哪
	mov ax,data
	mov ds,ax

	sti

	inc count
	cmp count,18  ;近似把18次中断记作一秒
	jae go

back:
	pushf
	call dword ptr addr
	
	cli
	pop dx
	pop cx
	pop ax

	iret

go:
	mov count,0

	;获得秒的十位和个位
	mov ax,time
	div divide
	mov cl,al
	mov ch,ah
	
	;显示十位
	mov ah,2
	add cl,30h
	mov dl,cl
	int 21h

	;显示个位
	add ch,30h
	mov dl,ch
	mov ah,2
	int 21h
	
	;回车
	mov dl,0dh
	mov ah,2
	int 21h

	inc time
	jmp back
isr endp

code ends
	end start

 

二、截图

 

 

微机 —— 可编程定时器/计数器 8253/8254 可编程定时器/计数器 8253/8254介绍一、8253芯片引脚二、8253芯片的内部结构三、8253的初始化编程(重点)四、8253的工作方式(重点)五、8253六种工作方式的比较:六、8254与8253的区别 8253/8254是 Intel公司生产的可编程通用硬件定时/计数器芯片 实现定时的方法有三种:软件定时、不可编程的硬件定时、可编程的硬件定时 软件定时:容易实现 但是占用CPU资源,降低了CPU的利用率 不可编程定时:电路不复杂,但是使用不灵活 可编程的硬件定时:能满足各种不同的定时和计 阅读详情

相关推荐

【微机原理及接口技术】可编程计数器/定时器8253

本篇文章就8253芯片展开,详细介绍8253的内部结构和引脚,8253的工作方式以及8253的编程。

2301_80035097的博客 6477

微机接口芯片(2)—— 可编程定时/计数接口芯片 8253/8254

总结微机原理课学习的若干芯片 教材——《微机原理与接口技术》 文章目录〇、思维导图一、定时/计数 概述二、8253/8254 内部结构及引脚信号1. 主要功能2. 内部结构和外部引脚(1)结构图(2)组成三、8253/8254的工作方式1. 方式0:中断信号发生器2. 方式1:单稳负脉冲信号发生器3. 方式2:速率信号发生器4. 方式3: 方波信号发生器5. 方式4:软件触发的选通...

佚失的诗篇 4156

用汇编实现8253定时计数器应用实验

用汇编实现8253定时计数器应用实验要求要求1要求2小结 要求 目的: (1)掌握8253可编程定时器/计数器定时方法; (2)掌握8253多级串联实现大时间常数的定时方法; (3)掌握8086与8253的连接方法与控制方法。 内容: (1)利用8086外接8253可编程定时器/计数器,通道0方式0实现对外部事件进行计数并显示; (2)实现频率计功能,8253通道0通过标准脉冲信号(2000HZ)实现1秒定时中断(8259), 在8253通道1实现对外部频率信号进行计数,测得的计数值用2位数码管显示,测量范

whojoe的博客 9204

微机大作业—— 24秒倒计时器

微机

m0_51273315的博客 9696

可编程定时计数器 8253

可编程定时/计数器 8253 8253 的内部结构 数据总线缓冲器 为双向,三态的 8 位缓冲器,直接挂接在数据总线上,它时 8253 与 CPU 之间的数据接口 读写逻辑 是接收来自 CPU 的控制信号,包括 读 / 写 信号和 地址信号 ,实现对计数器和控制寄存器的 读 / 写 控制 控制寄存器 只能写入 ,不能读出。控制字将决定计数器的工作方式,计数形式以及输出方式 计数器 由 16 位所存寄存器和一个 16 位的减一计数器组成,最大初值为 0 ,既二进制为 655

weixin_71018119的博客 1999

音乐发生器8086和8253通过Proteus仿真

我这里实现了不同的乐曲分别是小星星,友谊地久天长和卖报歌,按下开关一是小星星,开关二是友谊地久天长,开关三是卖报歌: DATAS SEGMENT ;此处输入数据段代码 IOYO equ 0C400h;对应的端口地址 IOY1 equ 0C440h MY8253_COUNT_0 equ IOYO+00H*4;8254计数器0端口1地址 MY8253_COUNT1 equ IOYO+01H*4;8254计数器1端口2地址 MY8253_COUNT2 equ .

qq_43650421的博客 6418

【沧海拾昧】微机原理:可编程计数器/定时器8253芯片

可编程计数器/定时器8253芯片的基础知识合集。

CuPhoenix的博客 4360

定时器计数器8253(nf)

所以说选择了”先低字节后高字节“之后每次必须通过两次IN、OUT来读写16位计数值,而其他的则可以单独一次的IN、OUT指令。•OUTn 计数器输出信号,不同工作方式下产生不同波形(方波、电平或脉冲),由工作方式确定。(毕竟,看看引线功能,各计数器的初值寄存器和控制字寄存器的地址不同,每次都要单独寻址)用GATE信号使计数器停止,再规定RL1和RL0的读写格式,然后读出。先锁存当前计数值,再用两条输入指令将16位计数值读出。第1种方法——在计数过程中读计数值。程序指令启动————软件启动。

王老汉的博客 2108

微机原理8253计数初值和程序初始化接本必考计算机超级详细

微机原理8253计数初值和程序初始化

weixin_51516877的博客 1万+

可编程计数器/定时器8253

Inter系列的计数器、定时器电路为可编程序间隔定时器PIT(programable interval timer),型号为8253,改进型号为8254。8253具有3个独立的功能完全相同的16位计数器,每个计数器都有6种工作方式,这六种工作方式都可以由控制字设定,因而能以6种不同的工作方式满足不同的接口要求。CPU还可以随时更改它们的方式和计数值,并读取它们的计数状态。A0,A1选端口00 计数器001 计数器110 计数器211 控制口。

学习笔记 3475

数字式秒表设计 8253,8259,8255

这一款数字式秒表是基于8255的并口输出功能,8253的计时功能,8259的中断控制功能所设计的,以及7段显示器作为秒表时间显示,通过此设计让我们更好地了解各种芯片的功能。——————内含源代码

【微机原理与接口技术】实验4 定时器与计数器(8253)

定时器与计数器(8253)实验4-1实验4-2 实验4-1 io8253a equ 283h io8253b equ 280h code segment assume cs:code start: ;补充编程,设置8253通道0的工作方式,送计数初值为0FH MOV AL,14H ;设置8253通道0工作方式2,二进制计数 MOV DX,io8253a OUT DX,AL ;将工作方式送到283H窗口 MOV AL,0FH ;设置初始值0FH MOV DX,io8253b

轩轩是只胖企鹅的企鹅窝 7307

24秒倒计时器.pdsprj

在Proteus8仿真平台上,设计一个篮球比赛用的24秒倒计时器,可实现倒计时功能以及在倒计时时暂停功能。使用8253提供定时中断信号。用8259控制中断请求,8255连接2位LED。

8253(8254)计时/计数器简介

1 8253介绍 1.1 计数器和定时器的区别 定时器:系统日时钟、内存刷新、控制扬声器。 计数器:对外设提供的脉冲信号计数。 相同点:对脉冲进行计数。 不同点:脉冲的时间间隔是否有规律,定时器有,计数器没有。 1.2 8253 功能 ①三个独立的16位计数器 ②每个计数器可安二进制或者十进制编程 ③每个计数器可编程6种不同的工作模式 ④每个计数器计数频率最高为10MHz 1.3 8253和8254的区别 8253和8254大部分功能一样,8254还具有读回功能 也就是8253有的我8254都有,825

正在自我救赎的菜鸟。本人所有内容均不收费,可随意转发,复制 1万+

可编程定时器/计数器(8253)

微机原理与接口技术实验报告,可编程定时器/计数器(8253)

版图提取的spice网表中参数含义及二级效应STI/WPE

寄生电阻、寄生电容可以从版图提出的.sp文件中看, ad area of drain 面积 as area of source pd perimeter of drain 周长,PS PD周长都不计算与栅极接触的部分 ps perimeter of source nrd 漏扩散区等效方块数 nrs 源扩散区等效方块数 sa ...

qq_40007892的博客 6554

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

在微机应用系统中,定时控制具有重要的作用。经常会有这样的应用要求:一种是要求有一些外部实时时钟,以实现延时控制或定时;另一种是要求能对外部事件计数的计数器。在微机系统中,常采用以下三种方法实现:软件定时,不可编程硬件定时和可编程硬件定时。可编程定时/计数器的工作原理定时和计数的本质是相同的,它们都是对一个输入脉冲进行计数,如果输入脉冲的频率一定,则记录一定个数的脉冲,其所需的时间是一定的,例如,输入

Mr.Phoebe的专栏 3万+

AAAI2024最佳解读|FontDiffuser One-Shot Font Generation via Denoising Diffusion with Multi-Scal

本文提出了一种名为FontDiffuser的基于扩散的单次字体生成方法,旨在通过去噪扩散模型生成模仿参考图像风格的字体,同时保留源图像的内容。尽管现有的字体生成方法在性能上取得了一定的进展,但在处理复杂字符和大风格变化时仍面临挑战。FontDiffuser通过引入多尺度内容聚合(MCA)模块,有效结合不同尺度的全局和局部内容线索,从而增强复杂字符的笔画保留能力。此外,文章还提出了一种风格对比细化(SCR)模块,用于风格表示学习,利用风格提取器从图像中分离风格,并通过精心设计的风格对比损失来监督扩散模型。

haimianxiaobao11的博客 1193

可编程定时计数器8253/8254 - 8253控制字

8253 的目的就是为了提升时钟中断信号的频率,而时钟中断信号是由计数器 0 负责产生的其实这是利用了分频器的原理,将高频的输入脉冲信号 CLK 转换为低频的输出信号 OUT,此信号就是时钟中断信号这与计数器的工作方式有关,您已经知道了,并不是所有的工作方式都能让计数器周期性地发出中断信号,假设计数器。工作在方式 2 下,下面介绍下中断信号产生的原理CLK 引脚上的时钟脉冲信号是计数器的工作频率节拍,三个计数器的工作频率均是 1.19318MHZ,即一秒内会有 1193180 次脉冲信号。

weixin_40398522的博客 3206

强化学习入门8—深入理解DDPG

本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG。DDPG是google DeepMind团队提出的一种用于输出确定性动作的算法,它解决了Actor-Critic 神经网络每次参数更新前后都存在相关性,导致神经网络只能片面的看待问题这一缺点。同时也解决了DQN不能用于连续性动作的缺点。

小菜羊的博客 4318

2021年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

给定一个十进制正整数n(0 < n < 1000000000),每个数位上数字均不为0。n的位数为m。现在从m位中删除k位(0

人生就是一个不断学习的过程 1012

接口实验 实验四—8253/4 定时/计数器

m0_73938137的博客 2500

K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

🔴 K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3万+
上一篇: 第六篇 键盘中断与应用程序读取键盘缓冲区
下一篇: 第一篇 开发环境的搭建
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值