导航:首页 > 程序命令 > 程序员计数器打扰

程序员计数器打扰

发布时间:2022-11-06 07:12:15

㈠ 汇编语言中什么指令是程序员能访问的

程序计数器(PC),呵呵…… 选择这个,汇编编程时可以使用PC。昨天的试题。

为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。
当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的地址,以此实现转移。有些机器中也称PC为指令指针IP(Instruction Pointer)。

㈡ 计数器有哪些作用。

1.定时/计数 在计算机系统、工业控制领域、乃至日常生活中,都存在定时、计时和计数问题,尤其是计算机系统中的定时技术特别重要。①定时 ②计数 ③定时与计数的关系2.频率-声音-音乐 从定时、计数问题还可以引出或派生出一些其他的概念和术语。例如,如果把计数和定时联系起来,就会引出频率的概念。如上述,采集数据的次数,再加上时间,就会引出每秒钟采集多少次,即采样频率。由频率可以引出声音,频率高,声音的音调高;频率低,声音的音调低。如果不仅考虑发声频率的高低,还考虑发声所占时间的长短,就会引出音乐的概念。把音调的高低和发声的长短巧妙地结合起来,便产生了美妙动听的音乐。 所以,定时/计数技术与频率、声音以及音乐之间有密切的联系,本章将对8253在发声系统中的应用作详细介绍。3.微机系统中的定时4.定时方法 为获得所需要的定时,要求有准确而稳定的时间基准,产生这种时间基准通常采用两种方法—软件定时和硬件定时。 ↑本章概述 ↓§6.2 可编程定时计数器的工作原理

㈢ FIQ模式下,程序计数器(PC)最低二位的数值是多少,为什么

F模式下的程序员就是数据,pc的话第二位数是指四个数值的话,一般都是在十位或者是百位上。

㈣ 汇编程序中,程序员可以访问的寄存器 A程序计数器(PC) B指令寄存器(IR) C存储器数据寄存器(MDR)

选A。
程序计数器,也叫IP(EIP),用来存储下一条指令的地址。可以通过call,jmp等跳转指令间接改变,可以用Move,push等读出其值,但是不可写。
指令寄存器(IR )用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到内存数据寄存器(MDR)中,然后再传送至IR。
主存与CPU之间的硬连接:主存与CPU的硬连接有三组连线:地址总线(AB)、数据总线(DB)和控制总线(CB)。把主存看作一个黑盒子,存储器地址寄存器(MAR)和存储器数据寄存器(MDR)是主存和CPU之间的接口。MAR可以接收由程序计数器(PC)的指令地址或来自运算器的操作数的地址,以确定要访问的单元。MDR是向主存写入数据或从主存读出数据的缓冲部件。MAR和MDR从功能上看属于主存,但通常放在CPU内。

㈤ 计数器的java代码

Java技术与Java虚拟机中文JAVA技术网g0cVV+]
中文JAVA技术网I5Zz[ }'Og G6Y
说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:
[)|)k3b9M#\)w%Q{~r0中文JAVA技术网:cP+] _2tRtm*K
中文JAVA技术网yz;_Y0FB
图1 Java四个方面的关系

,YW&x ^L |Q0运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。从上图也可以看出Java平台由Java虚拟机和Java应用程序接口搭建,Java语言则是进入这个平台的通道,用Java语言编写并编译的程序可以运行在这个平台上。这个平台的结构如下图所示:
&x[+DX0\:W-o@a0中文JAVA技术网"? c3Y6bj-_
中文JAVA技术网P @+O3lf_pJ b

中文JAVA技术网5h:OY TyL2\|Z
在Java平台的结构中, 可以看出,Java虚拟机(JVM) 处在核心的位置,是程序与底层操作系统和硬件无关的关键。它的下方是移植接口,移植接口由两部分组成:适配器和Java操作系统, 其中依赖于平台的部分称为适配器;JVM 通过移植接口在具体的平台和操作系统上实现;在JVM 的上方是Java的基本类库和扩展类库以及它们的API, 利用Java API编写的应用程序(application) 和小程序(Java applet) 可以在任何Java平台上运行而无需考虑底层平台, 就是因为有Java虚拟机(JVM)实现了程序与操作系统的分离,从而实现了Java 的平台无关性。
h6l-v;HV1SvYO0中文JAVA技术网-G5cAK(e w}
那么到底什么是Java虚拟机(JVM)呢?通常我们谈论JVM时,我们的意思可能是:中文JAVA技术网,T,Y5d(B5r
中文JAVA技术网yWv~s;J
对JVM规范的的比较抽象的说明;
b0r[/o_k+p0对JVM的具体实现;中文JAVA技术网Xdt8M1sP T_"_s
在程序运行期间所生成的一个JVM实例。中文JAVA技术网H k0g,~ hO\
中文JAVA技术网C3@ w6O-a
对JVM规范的的抽象说明是一些概念的集合,它们已经在书《The Java Virtual Machine Specification》(《Java虚拟机规范》)中被详细地描述了;对JVM的具体实现要么是软件,要么是软件和硬件的组合,它已经被许多生产厂商所实现,并存在于多种平台之上;运行Java程序的任务由JVM的运行期实例单个承担。在本文中我们所讨论的Java虚拟机(JVM)主要针对第三种情况而言。它可以被看成一个想象中的机器,在实际的计算机上通过软件模拟来实现,有自己想象中的硬件,如处理器、堆栈、寄存器等,还有自己相应的指令系统。中文JAVA技术网&nC/D IHP,|

A)R-DFw o2X0JVM在它的生存周期中有一个明确的任务,那就是运行Java程序,因此当Java程序启动的时候,就产生JVM的一个实例;当程序运行结束的时候,该实例也跟着消失了。下面我们从JVM的体系结构和它的运行过程这两个方面来对它进行比较深入的研究。
Z6?gXm!~0Java虚拟机的体系结构
2XFZ@"I I,\0
e-i'_;P X a0刚才已经提到,JVM可以由不同的厂商来实现。由于厂商的不同必然导致JVM在实现上的一些不同,然而JVM还是可以实现跨平台的特性,这就要归功于设计JVM时的体系结构了。中文JAVA技术网{ v2T&tMlG?"]*N
中文JAVA技术网,HK3YQN k
我们知道,一个JVM实例的行为不光是它自己的事,还涉及到它的子系统、存储区域、数据类型和指令这些部分,它们描述了JVM的一个抽象的内部体系结构,其目的不光规定实现JVM时它内部的体系结构,更重要的是提供了一种方式,用于严格定义实现时的外部行为。每个JVM都有两种机制,一个是装载具有合适名称的类(类或是接口),叫做类装载子系统;另外的一个负责执行包含在已装载的类或接口中的指令,叫做运行引擎。每个JVM又包括方法区、堆、Java栈、程序计数器和本地方法栈这五个部分,这几个部分和类装载机制与运行引擎机制一起组成的体系结构图为:中文JAVA技术网BW0EZCI

2o\d oz0中文JAVA技术网%K1Hl:f ~(@Y(U
图3 JVM的体系结构中文JAVA技术网0P/b(jt U$x

7{F*d8f7ySt:Q0JVM的每个实例都有一个它自己的方法域和一个堆,运行于JVM内的所有的线程都共享这些区域;当虚拟机装载类文件的时候,它解析其中的二进制数据所包含的类信息,并把它们放到方法域中;当程序运行的时候,JVM把程序初始化的所有对象置于堆上;而每个线程创建的时候,都会拥有自己的程序计数器和Java栈,其中程序计数器中的值指向下一条即将被执行的指令,线程的Java栈则存储为该线程调用Java方法的状态;本地方法调用的状态被存储在本地方法栈,该方法栈依赖于具体的实现。中文JAVA技术网 t?!Pz!B]

"^x1MT5qj0下面分别对这几个部分进行说明。
/}C2v7b:]%vo[|0中文JAVA技术网'z/@1RG7[E1`8B
执行引擎处于JVM的核心位置,在Java虚拟机规范中,它的行为是由指令集所决定的。尽管对于每条指令,规范很详细地说明了当JVM执行字节码遇到指令时,它的实现应该做什么,但对于怎么做却言之甚少。Java虚拟机支持大约248个字节码。每个字节码执行一种基本的CPU运算,例如,把一个整数加到寄存器,子程序转移等。Java指令集相当于Java程序的汇编语言。中文JAVA技术网 ^s&H2X*b,Z

q3[ OT`z"M4V0Java指令集中的指令包含一个单字节的操作符,用于指定要执行的操作,还有0个或多个操作数,提供操作所需的参数或数据。许多指令没有操作数,仅由一个单字节的操作符构成。
P.R.Uxbfc0
o"o qq9_0虚拟机的内层循环的执行过程如下:中文JAVA技术网3Hn8B r,xE

MjHj(zBG t"m P0do{
l$I&z V!M9[0取一个操作符字节;中文JAVA技术网7[?3o?,v A|3b+O R
根据操作符的值执行一个动作;
I(^e)G)Hf6`0}while(程序未结束)中文JAVA技术网y}0J/|:so
中文JAVA技术网c|%L(ud
由于指令系统的简单性,使得虚拟机执行的过程十分简单,从而有利于提高执行的效率。指令中操作数的数量和大小是由操作符决定的。如果操作数比一个字节大,那么它存储的顺序是高位字节优先。例如,一个16位的参数存放时占用两个字节,其值为:
0H.w`wb}.X0中文JAVA技术网y{X;n.u4PT+e)D7\&E
第一个字节*256+第二个字节字节码。中文JAVA技术网"V[]J!_0v+D

5^t6E[3aW![0指令流一般只是字节对齐的。指令tableswitch和lookup是例外,在这两条指令内部要求强制的4字节边界对齐。
#Rop'v6w FS0中文JAVA技术网g8Ai _)iw8r
对于本地方法接口,实现JVM并不要求一定要有它的支持,甚至可以完全没有。Sun公司实现Java本地接口(JNI)是出于可移植性的考虑,当然我们也可以设计出其它的本地接口来代替Sun公司的JNI。但是这些设计与实现是比较复杂的事情,需要确保垃圾回收器不会将那些正在被本地方法调用的对象释放掉。
&~:Jin+U$zE SI7Y0
"j1lJ`7Dd0v"v0Java的堆是一个运行时数据区,类的实例(对象)从中分配空间,它的管理是由垃圾回收来负责的:不给程序员显式释放对象的能力。Java不规定具体使用的垃圾回收算法,可以根据系统的需求使用各种各样的算法。中文JAVA技术网'z/wgb.s
中文JAVA技术网\TMY&[:H)Z#@ tr

㈥ 程序计数器到底什么时候加一,是cpu将指令从内存取出后,还是指令完成后

程序计数器是CPU每取一个指令码就加一,是cpu将指令从内存取出一个字节后就加一的,因为,一条指令有几个字节组成,所以,每取一个字节就加一,才能连续取出一条指令的几个字节代码。这不能等指令执行完成后才加一,只取出一个字节也不够一条指令,怎么执行?更不可能执行完成。

㈦ 8253的门控信号GATE对计数过程有什么影响当GATE=0时,哪几种计数方式会暂停计数

微机系统常常需要处理机和外设提供时间标记,或对外部事件进行计数。例如,分时系统的程序切换,向外设定时、周期性地输出控制信号,外部事件的发生次数达到规定值后产生中断,以及统计外部事件发生的次数等,因此,需要解决系统的定时问题。
微机系统中的定时,可分为两类:一类是计算机本身运行的时间基准――内部定时,因而使计算机每种操作都是按照严格的时间节拍执行的;另一类是外部实现某种功能时,在外设与CPU之间或外设与外设之间的时间配合――外部定时。前者,计算机内部定时,已由CPU硬件结构确定了,有固定的时序关系,无法更改;后者,外部定时,由于外设或被控对象的任务不同,功能各异,无一定模式,因此,往往需要用户自己设定。当然,用户在考虑外设和CPU时,不能脱离计算机的定时要求,即应以计算机的时序关系为依据来设计外部定时机构,以满足计算机的时序要求,这叫做时序配合。至于在一个过程控制或工艺流程或监测系统中,各个控制环节或控制单元之间的定时关系完全取决于被处理、加工、制造和控制的对象的性质,可以按各自的规律独立地进行设计。由于定时的本质是计数,把若干小片的计时单元累加起来,就获得一段时间,因此,我们把计数作为定时的基础来讨论。目前用于定时/计数的可编程集成电路的芯片种类很多,在IBM PC系列微机中使用Intel 8253系列定时/计数器(记作T/C),下面对其进行介绍。
7.3.1 可编程定时/计数器芯片8253(JAVA动画图说明)
1.外部特性与内部逻辑
(1)8253的特点
①有3个独立的16位计数器;
②每个计数器均可按二进制或者BCD码计数;
③每个计数器的计数速率:8253(2MHZ)、8253-5(5MHZ)、8254(8MHZ)、8254-5(5MHZ)、8254-2(10MHZ);
④各计数器都有6种不同的工作方式(由程序设定);
⑤24只管脚,双列直插式,单+5V电源;
⑥所有输入/输出都与TTL兼容。
其引脚见图7-13。
各引脚的功能定义如下:
数据总线D0~D7:它们为三态输入/输出线,用于将8253与系统数据总线相连,是8253与CPU接口数据线,供CPU向8253读写数据、命令和状态信息。
读信号RD:它为输入信号,低电平有效。它由CPU发出,用于对8253寄存器读操作。
写信号WR:它为输入信号,低电平有效。它由CPU发出,用于对8253寄存器写操作。
地址译码线A1A0:这两根线接到系统地址总线的A1A0上。当CS=0,8253被选中时,A1A0用于选择8253内部寄存器,以便对它们进行读写操作。8253内部寄存器与地址码A1A0的关系如表7-3所示。
时钟信号CLK:CLK为输入信号。3个计数器,各有一独立的时钟输入信号,分别为CLK0、CLK1、CLK2。时钟信号的作用是在8253定时或计数工作时,每输入一个时钟信号CLK,便使定时或计数值减1。它是计量的基本时钟。
门选通信号GATE:GATE信号为输入信号。3个通道,每一个都有自己的门选通信号,分别为GATE0、GATE1、GATE2。GATE信号的作用是用来禁止、允许或开始计数过程。对8253的6种不同工作方式,GATE信号的控制不同(参见后面的表7-4)。
计数器输出信号OUT:OUT是8253向外输出信号。3个独立通道,每一个都有自己的计数器输出信号,分别为OUT0、OUT1、OUT2。OUT信号的作用是,计数器工作时,当定时或计数值减为0时,即在OUT线上输出OUT信号,用以指示定时或计数已到。这个信号可作为外部定时、计数控制信号引到I/O设备用来启动某种操作(开/关或启/停),也可作为定时、计数已到的状态信号供CPU检测,或作为中断请求信号使用。

(2)内部逻辑结构(JAVA动画图说明)
8253内部有6个模块,其结构框图如图7-14所示。
①数据总线缓冲器:数据总线缓冲器是一个三态双向8位寄存器,用于将8253与系统数据总线D7~D0相连。CPU通过数据总线缓冲器向8253写入数据、命令或从数据总线缓冲器读取数据和状态信息。
数据总线缓冲器有3个基本功能:向8253写入确定8253工作方式的命令;向计数寄存器装入初值;读出计数器的初值或当前值。
②读/写逻辑:读/写逻辑由CPU发来的读、写信号和地址信号,选择读出或写入寄存器,并且确定数据传输的方向:是读出还是写入。
③控制字寄存器:控制字寄存器接受CPU送来的控制字。这个控制字用来选择计数器及相应的工作方式。控制字寄存器只能写入,不能读出,其内容将在后面讨论。
④计数器:82533个独立的计数通道,每个通道的内部结构完全相同,如图7-15所示。该图表示计数通道由16位减1计数器、16位计数初值寄存器和16位输出锁存器组成。初始化时,首先是将计数通道装入的计数初值送到计数初值寄存器中保存,然后送到减1计数器。计数器启动后(GATE允许),在时钟脉冲CLK的作用下,进行减1计数,直至计数值减到0,输出OUT信号,计数结束。计数初值寄存器的内容,在计数过程中保持不变。因此,若要了解计数初值,则可从计数初值寄存器直接读出。而如果要想知道计数过程中的当前计数值,则必须将当前锁存后,从输出锁存器读出,不能直接从减1计数器中读出当前值。
2.读写操作及编程命令
CPU对8253芯片的读写操作有以下3种情况:
(1)写操作――芯片初始化
芯片加电后,其工作方式是不确定的,为了正常工作,要对芯片进行初始化。初始化的工作有两点:一是向控制寄存器写入方式控制字,以选择计数器(三个中之一个),确定工作方式(六种方式之一),指定计数器计数初值的长度和装入顺序以及计数值的码制(BCD码或二进制码);二是向已选定的计数器按方式控制字的要求写入计数初值。
工作方式命令字的格式如下:

①D7D6(SC1SC0):用于选择计数器。其中:
SC1SC0=00――选择0号计数器 SC1SC0=01――选择1号计数器
SC1SC0=10――选择2号计数器 SC1SC0=11――非法
②D5D4(RL1RL0):用来控制计数器读/写的字节数(1或2个字节)及读写高低字节的顺序。其中:
RL1RL0=00――为一特殊命令(即锁存命令),把由SC1SC0指定的计数器的当前值锁存在锁存寄存器中,以便随时去读取它
RL1RL0=01――仅读/写一个低字节
RL1RL0=10――仅读/写一个高字节
RL1RL0=11――读/写2个字节,先是低字节,后是高字节
③D3~D1(M2~M0):用来选择计数器的工作方式。其中:
M2M1M0=000――方式0 M2M1M0=011――方式3
M2M1M0=001――方式1 M2M1M0=100――方式4
M2M1M0=010――方式2 M2M1M0=101――方式5
④D0(BCD):用来指定计数器的码制,是按二进制数还是按二-十进制数计数。其中:
BCD=0(二进制) BCD=1(二-十进制)
例如,选择2号计数器,工作在方式2,计数初值为533H(2个字节),采用二进制计数,其程序段为:
TIMER EQU 040H ;0号计数器端口地址
MOV AL,10110100B ;2号计数器的方式控制字
OUT TIMER+3,AL ;写入控制寄存器
MOV AX,533H ;计数初值
OUT TIMER+2,AL ;先送低字节到2号计数器
MOV AL,AH ;取高字节
OUT TIMER+2,AL ;后送高字节到2号计数器
(2)读当前计数值――锁存后读操作
在事件计发器的应用中,需要读出计数过程中的计数值,以便根据这个值作计数判断。为此,8253内部逻辑提供了将当前计数值锁存后读操作功能。具体作法是,先发一条锁存命令(即方式控制字中的RL1RL0=00),当前计数值锁存到输出锁存器;然后,执行读操作,即可得到锁存器的内容。
例如,要求读出并检查1号计数器的当前计数值是否是全“1”(假定计数值只有低8位),其程序段为:
L:MOV AL, 01000000B ;1号计数器的锁存命令
OUT TIMER+3,AL ;写入控制寄存器
IN AL, TIMER+1 ;读1号计数器的当前计数值
CMP AL, 0FFH ;比较
JNE L ;非全“1”,再读
HLT ;是全“1”,暂停
(3)读装入的计数值――直接读操作
8253内部还提供了一种功能,使程序员能在不干扰实际计数过程的情况下,读出装入的计数值,这只需对选定的计数器发现IN指令即可。分两次读,第1次从计数寄存器读出装入计数值的低字节,第2次读出高字节。但要注意的是:为了保证能稳定地读出装入计数值,所选的计数器的工作方式必须能被GATE电平输入禁止或者能禁止时钟输入的外部逻辑所禁止。
3.工作方式及特点
8253芯片的每个计数通道都有6种工作方式可供选用。区分这6种工作方式的主要标志有3点:一是输出波形不同;二是启动计数器的触发方式不同;三是计数过程中门控信号GATE对计数操作的影响不同。现结合各种操作实例,分别讨论不同工作方式的特点及编程方式。例如8253的3个计数器及控制器的端口地址分别是304H、305H、306H和307H。
(1)方式0――计数结束时中断
方式0有如下3个特点:
①当向计数器写完计数值时,开始计数,相应的输出信号OUT就开始变成低电平。当计数器减到零时,OUT立即输出高电平。
②当门控信号GATE为高电平时,计发器工作;当GATE为低电平时,计数器停止工作,其计数值保持不变。
③在计数器工作期间,如果重新写入新的计数值,则计数器将按新写入的计数值重新工作。
方式0的上述工作特点可用如图7-16所示的时序来表示。
(2)方式1――程序可控单稳
方式1为可编程的单稳态工作方式。此方式设定后,输出OUT就变成高电平;写入计数值后,计数器并不立即开始工作,直到门控信号GATE出现之后的一个时钟周期的下降沿,才开始工作,使输出OUT变成低电平。计数值回零后,输出变高,见图7-17中的①。
在计数器工作期间,当GATE又出现一个负脉冲的上升沿时,计数器重新装入原计数初值并重新开始计数,见图7-17中的②。如果工作期间对计数器写入新的计数值,则要等到当前的计数值计满回零且门控信号再次出现上升沿后,才按新写入的计数值开始工作,见图7-17中的③。
程序中把T2设定成仅读/写低8位计数初值,高8位自动补0。
(3)方式2――频率发生器
方式2是一种具有自动装入时间常数的N分频器。其工作特点如下:
①计数器计数期间,输出OUT为高电平,计数器回零后,输出为代电平并自动重新装入原计数值,低电平维持一个时钟周期后,输出又恢复高电平,并重新作减法计数。
②在计数器工作期间,如果向此计数器写入新的计数值,则计数器仍按原计数值计数,直到计数器回零并在输出一个时钟周期的低电平之后,才按新写入的计数值计数。
③门控信号GATE为高电平时允许计数。若在计数期间,门控信号变为低电平,则计数器停止计数,待GATE恢复高电平后,计数器将按原设定的计数值重新开始计数,工作时序如图7-18所示。
(4)方式3――方波频率发生器
工作方式3与工作方式2基本相同,也具有自动装入时间常数的能力,不同之处在于:
①工作在方式3对OUT引脚输出的不是一个时钟周期的低电平,而是占空比为1:1或近似于1:1的方波,当计数初值为公里数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平。
②当计数初值为奇数时,在前一半加1的计数过程中,输出为高电平,后一半减1的计数过程中为低电平。例如,若计数初值设为5,则在前3个时钟周期中,引脚OUT输出高电平,而在后2个时钟周期中则输出低电平。8253的方式2和方式3都是最为常用的工作方式,工作时序如图7-19所示。
(5)方式4――软件触发
方式4是一种由软件启动的闸门式计数方式,即由写入计数值触发工作。其特点是:
①此方式设定后,输出OUT就开始变成高电平;写完计数值后,计数器开始计数,计数完毕,计数回零结束时,输出变为低电平;低电平维持一个时钟周期后,输出又恢复高电平,但计数器不再计数,输出也一直保持高电平不变。
②门控信号GATE为高电平时,允许计数器工作;为低电平时,计数器停止计数。在其恢复高电平后,计数器又从原设定的计数值开始作减1计数,工作时序如图7-20所示。
③计数工作期间,若向计数器写入新的计数值,则不影响当前的计数状态,仅在当前计数值计完回零时,计数器才接新写入的计数值开始计数,一旦计数完毕,计数器将停止工作。
(6)方式5――硬件触发
方式5的工作特点在于由外部上升沿触发计数器,即:
①在工作方式5下,写入计数初值后,计数器并不立即开始计数,而要由门控信号出现的上升沿启动计数。计数器计数回零后,将在输出一个时钟周期的低电平后恢复高电平。
②在计数过程中(或者计数结束后),如果门控再次出现上升沿,则计数器将从原设定的计数初值重新计数。其他特点基本与方式4相同,工作时序如图7-21所示。
(7)6种工作方式的比较(JAVA动画图说明)
上面分别说明了8253六种方式的工作过程,现在来对比分析这6种方式的特点和彼此之间的差别,以便在应用时,有针对性地加以选择。
①方式0(计数结束中断)和方式1(可控单稳)
这两种方式的输出波形类似,它们的OUT在计数开始变为低电平,在计数过程中保持低电平,计数结束立即变为高电平,此输出作为计数结束的中断请求信号,或作单稳延时,两者均无自动重装能力。它们的不同点主要在于启动计数器的触发信号,方式0由写信号WR的上升沿触发,方式1由门控信号GATE上升沿触发。
②方式2(频率发生器)和方式3(方波发生器)
这两种方式共同的特点是具有自动再加载(装入)能力。即减1至0时初值寄存器的内容又被自动装入减1计数器继续计数,于是OUT可输出连续的波形。输出信号的频率都是(fCLK/初值)。两者的区别在于:方式2在计数过程中输出高电平,而在每当减1至0时输出宽度为1TCLK的负脉冲。方式3是在计数过程中,输出1/2初值×TCLK(若初值为奇数,则是1/2(初值+1)×TCLK)的高电平,然后输出1/2初值×TCLK(若初值为奇数,则是1/2(初值-1)×TCLK)的低电平,于是,OUT的信号是占空比为1:1的方波(或近似方波)。
③方式4(软件触发延时选通)和方式5(硬件触发延时选通)
这两种方式的OUT输出波形相同,在计数器过程中OUT为高电平,在计数结束后OUT输出一个宽度为1 TCLK的负脉冲,这个脉冲可作为在延时(初值×TCLK)后的选通脉冲。它们无自动重新装入能力。两者的区别是计数启动的触发信号不同,前者由写信号WR启动计数;后者从GATE的上升沿开始计数。
从以上对比分析可知,一般,方式0、1和方式4、5选作计数器用(输出一个电平或一个脉冲),而方式2、3选作定时器用(输出周期脉冲或周期方波)。


<<back topnext>>
上翻 下翻

㈧ 程序计数器PC内容代表是什么他是怎样完成工作的

代表的是程序下条指令的地址,是在取完当前指令后,系统自动增加的,可有跳转登指令进行修改

㈨ win7自带计算器切换到“程序员”模式时为什么无法进行计算

计算器想必大家都用过,不过大多停留在简单的加减乘除上,不过对于那些经常要和数字打交道的同学们肯定不仅仅限于此,例如三角函数、求和等计算肯定会经常用到,对于这类计算往往有专业的计算器支持,不过价格不菲,也就让很多人望而却步。

其实这类专业的计算器一直就在我们的身边,在我们的眼前,就是正版Win7中自带的计算器。而下面我们就来介绍一下Win7自带计算器的功能。

首先在附件中我们可以找打“计算器”程序,打开后发现,Win7自带的计算器与之前的版本相比还是有些差别的,精致的视觉效果,显得更为简洁大方。

外观的变化只是Win7计算器中最简单的一面,而更深层的变化在于其除了有“标准型”和“科学型”两种计算模式之外,还有“程序员”、“统计信息”等模式,而且值得一提的是,Win7自带的计算器还具有日期计算、单位转换、工作表等多种实用计算工具。

那么如何切换我们想要的计算模式呢?一种方法是直接从“查看”菜单中选择,另外,我们还可以通过快捷方式“Alt+数字1/2/3/4”来更快速的切换,非常方便。

科学计算器

在科学模式下使用计算器,可以精确到32位数,并可使用运算符来控制优先级,另外,对于数学函数的功能大致可以分为三类;

三角函数:主要包含了正弦、余弦等快速计算,另外,按INV功能键后,还可以计算其反函数等。

代数函数:这里可以计算我们高中时学过的幂函数、对数函数、指数函数等。

其他:其余的函数则相对用的比较少一些,比如取整(Int)、圆周率等。

注意事项:

对于需要一个输入值的函数值时,一般先要输入参数,再按相应的函数进行计算,而对于有两个参数需要输入的情况,则一般先输入第一个参数,按函数之后再输入第二个参数之后,按=获得记过。

程序员计算器

在这个模式下,结果可以精确到64位,不过需要注意的是,该模式下仅支持整数模式,小数则被舍弃。而进制在这里也可以自由更改,而且每一个数字都会在下方用二进制来表示,十分贴心。

工作表计算器

相信有一些用户日常还会用到汽车租金、油耗等方面的问题,Win7自带的计算器都能解决,只要切换到工作表模式,然后选择自己需要的工作表,就可以相应的计算了。

这里我们以油耗计算为例,选择油耗工作表后(记得选择公里为单位的模式),只需要输入相应的公里数和已经使用的燃料,就可以快速的算出每百公里需要的油耗了。

这里简单介绍了下Win7自带计算器的使用方法,虽然仅仅是一个小小的计算器,也让Win7增色不少,同时为大家带来了更为全面、人性化的使用效果。

单片机中的看门狗是什么东西

看门狗实际上是一计数器,在程序运行中,你得抽空去清看门狗,不能让计数器计满.一但程序在干扰下跑飞了,没去清看门狗,看门狗数值计满后,就会发出一清0脉冲,是程序从0地址开始运行.

阅读全文

与程序员计数器打扰相关的资料

热点内容
华为笔记本电脑怎么安装抖音app 浏览:410
阿里云国际版试用的服务器怎么搞 浏览:893
java正则表达式工具 浏览:158
oa服务器怎么设置ftp 浏览:8
安卓如何安装obb 浏览:440
QQ聊天记录journal文件夹 浏览:118
苹果公司云服务器地址 浏览:85
加密记事本手机 浏览:437
汽车压缩机变频阀 浏览:95
域外服务器是什么意思 浏览:639
大众点评服务器怎么老卡顿 浏览:556
javavector与list的区别 浏览:316
java初始化类数组 浏览:303
java字符串转换成json对象 浏览:648
android非阻塞socket 浏览:358
编译系统概念 浏览:452
天眼通app能做什么 浏览:557
魅族手机怎么加密图库 浏览:8
rpa编译器 浏览:572
车载云服务器记录 浏览:740