第七篇 使用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)

zemax双透镜公差分析

蒙特卡罗分析: 评估公差的整体影响,模拟过程中产生一系列随机的lens,满足指定的公差,然后再按照标准评估。公差分析,就是在设计了一个理想的系统后,想看看实际生产过程中如果产生公差(误差),系统会坏到什么程度,也就是光学性能受到多大影响。反灵敏度分析:分别对每个公差在性能方面的一个给定的最小允许减少量来计算公差,也就是限制了系统性能的变化,和灵敏度分析方向相反。灵敏度分析对每个公差单独求值,分别计算每个公差操作数的最大、最小、标准值(如上图)所有设计上可能的公差都列出来了。注意要固定透镜的口径。

fendoudecheng的博客 3207

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

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

Mr.Phoebe的专栏 3万+

OS实验xv6 6.S081 开坑

OS实验xv6 6.S081 开坑 终于把xv6 2019 6.S081做完了,网络部分没有写,因为有计网实验了。怎么说呢,xv6的坑有点多,能做完多亏了:和我同学ljj交流,参考RedemptionC老哥的博客(他写的非常详细,遗憾的是,他好像没有写mmap),再者就是参考这位老哥的做法(没有源码,写得不是特别详细,不过有借鉴作用,mmap就是借鉴了他的思想)……废话不多说了,直接开始。 实验指导 首推RedemptionC的博客 这位老哥的个人博客 xv6 6.S081官网(后面的实验都要参考官网

不定期更新系统使用、编程小技巧,哔哩哔哩账号:https://space.bilibili.com/399455629,欢迎关注 4493

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

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

weixin_40398522的博客 3206

27、物联网中的量子密钥分发:安全通信新范式

本文探讨了物联网(IoT)快速发展所带来的安全挑战,并提出量子密钥分发(QKD)作为应对新兴威胁的新范式。文章详细介绍了QKD的基础原理、BB84协议的实现流程以及其在物联网中的应用前景,同时强调了安全专业人员提升技能、制定标准化指南以及跨学科合作的重要性。通过利用量子力学特性,QKD能够提供更高的通信安全性,抵御量子计算等未来威胁,为物联网的安全发展提供保障。

tequila的博客 157

深入浅出:大型语言模型(LLM)的全面解读

在当今的数字化时代,人工智能技术已经成为各行各业的核心驱动力之一。而在人工智能的领域中,大型语言模型(LLM)作为一种引人瞩目的技术,正在以其强大的语言理解和生成能力引领着一场革命。本文旨在深入浅出地解读大型语言模型,探讨其背后的原理、技术突破、应用场景以及未来发展趋势。

fudaihb的博客 10万+

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

m0_73938137的博客 2500

inno setup自定义卸载程序和美化

也就是DisplayName,因为我们在第一步的时候,将卸载程序名称也写入了注册表,所以,我们直接从注册表读DisplayName字段即可。1.要实现inno setup自定义卸载程序,首先需要关闭自带的卸载程序。在[Setup]的字段关闭卸载程序步骤和页面。2.删除应用程序目录里能够删除的并且返回进度。3.自定义卸载程序相关的注册表信息。4.删除启动菜单栏和guid注册表。2.自定义快捷方式和程序菜单。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值