程序计数器

合集下载

如何用C语言编写计数器

如何用C语言编写计数器

单片机计数器C语言练习要求:编写一个计数器程序,将T0作为计数器来使用,对外部信号计数,将所计数字显示在数码管上。

该部分的硬件电路如图所示,U1的P0口和P2口的部份引脚构成了6位LED数码管驱动电路,数码管采用共阳型,使用PNP型三极管作为片选真个驱动,所有三极管的发射极连在一起,接到正电源端,它们的基极则分别连到P2.0…P2.5,当P2.0…P2.5中某引脚输是低电平时,三极管导通,给相应的数码管供电,该位数码管点亮哪些笔段,则取决于笔段引脚是高或低电平。

图中看出,所有6位数码管的笔段连在一起,通过限流电阻后接到P0口,因此,哪些笔段亮就取决于P0口的8根线的状态。

编写程序时,首先根据硬件连线写出LED数码管的字形码、位驱动码,然后编写程序如下:#include "reg51.h"#define uCHAR unsigned CHAR#define uint unsigned intuCHAR code BitTab[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB}; //位驱动码uCHAR codeDispTab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0 xA1,0x86,0x8E,0xFF}; //字形码uCHAR DispBuf[6]; //显示缓冲区void Timer1() interrupt 3{ uCHAR tmp;uCHAR Count; //计数器,显示程序通过它得知现正显示哪个数码管TH1=(65536-3000)/256;TL1=(65536-3000)%256; //重置初值tmp=BitTab[Count]; //取位值P2=P2|0xfc; //P2与11111100B相或P2=P2&tmp; //P2与取出的位值相与tmp=DispBuf[Count];//取出待显示的数tmp=DispTab[tmp]; //取字形码P0=tmp;Count++;if(Count==6)Count=0;}void main(){ uint tmp;P1=0xff;P0=0xff;TMOD=0x15; //定时器0工作于计数方式1,定时器1工作于定时方式1 TH1=(65536-3000)/256;TL1=(65536-3000)%256; //定时时间为3000个周期TR0=1; //计数器0开始运行TR1=1;EA=1;ET1=1;for(;;){ tmp=TL0|(TH0<<8); //取T0中的数值DispBuf[5]=tmp%10;tmp/=10;DispBuf[4]=tmp%10;tmp/=10;DispBuf[3]=tmp%10;tmp/=10;DispBuf[2]=tmp%10;DispBuf[1]=tmp/10;DispBuf[0]=0;}}这个程序中用到了一个新的知识点,即数组,首先作一个先容。

计算机学科专业基础综合组成原理分类模拟20

计算机学科专业基础综合组成原理分类模拟20

计算机学科专业基础综合组成原理分类模拟20单项选择题1. 下列寄存器中,汇编语言程序员可见的是______。

A.存储器地址寄存器(MAR)B.程序计数器(PC)C.存储器数据寄存器(MDR)D.指令寄存器(IR)答案:B[解答] 汇编语言程序员可见的是程序计数器(PC),即汇编语言程序员通过汇编程序可以对某个寄存器进行访问。

汇编程序员可以通过指定待执行指令的地址来设置PC的值,如转移指令、子程序调用指令等。

而IR、MAR、MDR是CPU的内部工作寄存器,对程序员不可见。

2. 下列部件不属于控制器的是______。

A.指令寄存器B.程序计数器C.程序状态字寄存器D.时序电路答案:C[解答] 控制器由程序计数器(PC)、指令寄存器(IR)、存储器地址寄存器(MAR)、存储器数据寄存器(MDR)、指令译码器、时序电路和微操作信号发生器组成。

而程序状态字寄存器(PSW)属是运算器的组成部分。

3. 通用寄存器是______。

A.可存放指令的寄存器B.可存放程序状态字的寄存器C.本身具有计数逻辑与移位逻辑的寄存器D.可编程指定多种功能的寄存器答案:D[解答] 存放指令的寄存器是指令寄存器,故A错。

存放程序状态字的寄存器是程序状态字寄存器,故B错,通用寄存器并不一定本身具有计数和移位逻辑功能,故C错。

4. CPU中保存当前正在执行指令的寄存器是______。

A.指令寄存器B.指令译码器C.数据寄存器D.地址寄存器答案:A[解答] 指令寄存器用于存放当前正在执行的指令。

FANUCPMC功能指令详解(02):计数器篇

FANUCPMC功能指令详解(02):计数器篇

FANUCPMC功能指令详解(02):计数器篇计数器指令能够对输⼊的某种状态变化(⼀般是上升沿)进⾏计数,并在达到计数预设值时输出相应的信号, PMC中包含的计数器指令如下表。

序号指令名称功能号功能1CTR5计数器2CTRB56固定计数器3CTRC55计数器1CTR(计数器:SUB 5)CTR指令实现计数逻辑。

预设值和计数值的数据类型既可以是⼗进制类型,也可以是⼆进制类型,这个可以通过PMC的系统参数进⾏设定。

警告:当BCD计数类型的技术器设定的BCD值不正确时,⽆法保证计数器的移动。

如果改变计数器类型,⼀定要重新配置预设值和计数值。

该计数器主要的特性如下:(a) 预设值当达到预设值(计数最⼤值)时输出⼀个信号。

能够通过计数器界⾯或者在梯图中设置预设值。

(b) 环形计数器达到预设值后,通过再次输⼊计数信号回到初始值。

(c) 加/减计数器可以通过参数选择加1计数还是减1计数。

(d) 选择计数初始值计数初始值可以指定为0或者1。

结合该功能指令可以实现如下图的环形计数器:此计数器可⽤于存储转台的位置。

指令格式:控制条件:(a) 初始值(CNO)CNO=0:从0开始进⾏计数。

CNO=1:从1开始进⾏计数。

(b) 计数⽅向(UPDOWN)UPD=0:加计数器(计数从CNO指定的初始值开始)。

UPD=1:减计数器(计数从预设值开始)。

(c) 重置(RST)RST=0:⾮重置状态。

RST=1:重置状态,计数器重置到初始值;W1变为0;累计计数值复位为初始值。

注意:只有当需要复位时才将RST设为1。

(d) 启动条件(ACT)ACT输⼊上升沿触发计数器+1。

参数:(a) 计数器号计数器号在功能指令中设定,相应的预设值和编码形式则在计数器界⾯中设定,可以使⽤的计数器号如下:1⾄5路径PMC双安检PMCMemory-A Memory-B Memory-B Memory-B计数器号 1 ⾄201⾄1001⾄2001⾄3001⾄20预设值和累计值得范围如下:⼆进制计数器:0~32,767BCD计数器:0~9,999警告:如果计数器号有冲突或者超出范围,则操作不可预期。

PLC教程理论篇之PLC 的计数指令及计数程序设计一

PLC教程理论篇之PLC 的计数指令及计数程序设计一

PLC教程理论篇之PLC 的计数指令及计数程序设计一一、计数指令简介计数指令用于计数,以进行计数控制或状态存储。

1.三菱PLC计数器指令:计数指令本质上也是一种逻辑输出指令。

只是,它是计到数后才产生输出。

所以,有的PLC,如三菱公司PLC,起用定时器是用输出(OUT)指令,只是其操作数用计数器,并在使用它时,同时对设定值也作设定。

图7-1是的为三菱PLC调用计数器梯形图程序。

图7-1计数器程序如图,当X001从OFF到ON,则计数器C0线圈工作,计一个数,当C0计到3,则C0的常开触点ON,C0的常闭触点(该图未画出)OFF,使Y003 ON。

这里计数设定值K3 为时数,也可为直接或间接地址。

直接地址时,以该地址的值为设定值。

间接地址时,先算出地址,在以算出的地址的内容为设定值。

三菱的计数器按16进制工作,故K值最大可设为65535(16进制FFFF)。

三菱可逆计数器是双字的。

也是用输出指令调用。

计数的方向由相应的特殊继电器状态决定。

其计数范围为-2,147,483,648到2,147,483,647,并在此范围内循环计数。

即增到最大值时,如再增一个数,则当前值变为最小值。

反之,也类似。

表7-1示的为FX2N机的这些计数器及相应的方向切换特殊继电器。

表7-1FX2N机可逆计数器所使用的特殊继电器图7-2三菱可逆计数器程序图中C200为可逆计数器。

M8200为其方向切换特殊继电器。

M8200 OFF,C200增计数,ON,减计数。

从图知,当X005 OFF,C200接收X004的增计数,当X005 ON,C200接收X006的减计数。

而当X007 ON计数器复位,现值等于0,计数及输出都停止。

图7-3示的为该计数器产生输出的情况。

图7-3可逆计数器产生输出简图。

从图知,只要当前值小于设定值时,增加到大于或等于设定值,计数器即产生输出。

反之,或计数器复位,则停止输出。

2.OMRON PLC减计数指令:它有两个输入端,一为计数端,另一为复位端。

8051单片机的内核的结构及运行过程解析

8051单片机的内核的结构及运行过程解析

8051单片机的内核的结构及运行过程解析1.ALU(算术逻辑单元):8051单片机内置了一个8位ALU,负责执行算术和逻辑运算。

ALU可以进行加法、减法、与、或、非、异或等操作。

2.寄存器组:8051单片机包括4个8位的通用寄存器(R0~R7)和一个16位的程序计数器(PC)。

通用寄存器可用于保存临时数据和中间结果,程序计数器则记录当前执行指令的地址。

3.存储器:8051单片机的存储器包括内部存储器和外部扩展存储器。

内部存储器包括片内RAM和片内ROM两部分。

片内RAM可以分为128字节的数据存储器(IDATA)和256字节的数据存储器(XDATA)。

片内ROM则存储程序代码。

4.定时器/计数器:8051单片机内核包含两个定时器/计数器(T0、T1)。

定时器模式用于产生一定的时间延迟,计数器模式用于计数外部事件的个数。

定时器/计数器具有可编程的工作模式和计数值。

5.中断源:8051单片机支持多组中断源,包括外部中断INT0和INT1、定时器/计数器中断、串口中断等。

中断源的优先级可以通过程序设置,以满足不同应用场景的需求。

1.取指令阶段:程序计数器(PC)保存了当前指令的地址。

8051单片机通过将PC指针输出地址,从存储器中读取指令。

读取的指令存储于指令寄存器(IR)中。

2.译码阶段:指令寄存器(IR)中的指令会被译码器解码,生成相应的控制信号和操作码。

控制信号会对单片机的内部功能模块进行控制,操作码则确定执行的操作类型。

3.执行阶段:根据指令的操作码,单片机执行相应的操作。

例如,如果操作码指示进行加法运算,则ALU会执行加法操作,并将结果保存在指定的寄存器或存储单元中。

4.访存阶段:在执行一些指令时,单片机需要从存储器中读取或写入数据。

在访存阶段,单片机会将需要访问的存储器地址输出,并根据控制信号读取或写入数据。

5.写回阶段:在一些指令执行结束后,单片机会将执行结果写回到寄存器或存储器中。

写回阶段会更新相应的寄存器或存储单元,以保存最新的结果。

程序计数器名词解释

程序计数器名词解释

程序计数器名词解释
程序计数器: Program Counter:计算机在计算时,内部有一个专门的“计数器”,它可以自动清零。

但实际上计数器每运行一次都
要清零一次,这样的话就比较麻烦了。

程序计数器名词解释1:*ll port memory:外部存储器或寄存
器名称为:/dev/llport1、外部存储器或寄存器的扩展名为: ll port、寄存器的物理位置为: l/8//8外部存储器的总数/(外部存储器的
字长)。

2: c:///:系统盘,意思是C盘里面的文件会自动存入内存; c://,指该磁盘上文件夹的名称。

程序计数器名词解释1:*ll port memory:外部存储器或寄存
器名称为:/dev/llport1、外部存储器或寄存器的扩展名为: ll port、寄存器的物理位置为: l/8//8外部存储器的总数/(外部存储器的
字长)。

2: c:///:系统盘,意思是C盘里面的文件会自动存入内存; c://,指该磁盘上文件夹的名称。

3: using ll port:用
ll port操作程序计数器名词解释1:*ll port memory:外部存储器或寄存器名称为:/dev/ll port1、外部存储器或寄存器的扩展名为:
ll port、寄存器的物理位置为: l/8//8外部存储器的总数/(外部存储器的字长)。

2: c:///:系统盘,意思是C盘里面的文件会自
动存入内存; c://,指该磁盘上文件夹的名称。

- 1 -。

程序计算器在水文水利计算中的运用问题探讨

程序计算器在水文水利计算中的运用问题探讨

程序计算器在水文水利计算中的运用问题探讨作者:张媛媛宁毅来源:《硅谷》2014年第19期摘要水文水利计算指的是在水利规划、水利工程设计和运行中,为研究水资源的开发利用、研究水文水利工程对河川径流和水利条件的变化影响,评价水文水利工程的经济和环境效果等所进行的有关分析计算。

水文水利计算是选择河流治理和开发,确定水利工程任务、工程规模、工程开发程序、工程运用方式等的依据。

在水文水利计算的过程中,一般来说水文数据处理工作比较大、比较繁杂,传统的手工计算效率低,而且容易出错。

程序计算器可以通过发出指令让计算机执行来完成计算工作,具有很强的数据分析、统计、模拟计算等功能。

把程序计算机运用到水文水利计算中来可以大大的简化水文水利计算工作,提高计算的效率和精确度。

本文主要分析探讨了程序计算器在水文水利计算中的运用问题。

关键词程序计算器;水文水利;计算中图分类号:P204 文献标识码:A 文章编号:1671-7597(2014)19-0121-011 在水文水利计算中运用程序计算器的工作原理1.1 程序计算器的工作原理程序计数器是计算机处理器中的寄存器,它包含当前正在执行的指令的地址(位置)。

当每个指令被获取,程序计数器的存储地址加一。

在每个指令被获取之后,程序计数器指向顺序中的下一个指令。

当计算机重启或复位时,程序计数器通常恢复到零。

程序计算器可以通过某些手段来确定下一条指令的地址,从而保证程序能够连续地执行下去。

在程序开始执行前,必须将它的起始地址,即程序的第一条指令所在的内存单元地址送入程序计数器,因此程序计数器的内容即是从内存提取的一条指令的地址。

当执行指令时,处理器将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。

由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。

1.2 水文水利计算中运用程序计算器的重要意义水文水利计算指的是在水利规划、水利工程设计和运行中,为研究水资源的开发利用、研究水文水利工程对河川径流和水利条件的变化影响,评价水文水利工程的经济和环境效果等所进行的有关分析计算。

plc中的计数器原理

plc中的计数器原理

plc中的计数器原理PLC(可编程逻辑控制器)是一种常用的自动化控制设备,广泛应用于工业控制系统中。

其中,计数器是PLC中常用的功能模块之一,用于实现对输入信号的计数和统计。

本文将详细介绍PLC中计数器的原理及其工作流程。

一、计数器的基本概念计数器是PLC中具有计数功能的变址寄存器。

它能够接收一个或多个输入信号,并对这些信号进行计数操作。

计数器可分为两种类型:进位计数器和反馈计数器。

进位计数器是指当计数值达到设定的阈值时,自动清零并触发进位信号;反馈计数器是指当计数值达到设定的阈值时,自动反馈给PLC控制程序。

计数器通常用于需要进行统计计数的场景,如物料计数、生产线计数等。

二、计数器的工作原理1. 输入信号计数器的工作原理首先需要接收一个或多个输入信号。

信号可以是来自传感器、按钮开关、计时器等外部设备。

这些输入信号被PLC的输入模块读取,并发送给计数器模块进行处理。

2. 计数操作计数器接收到输入信号后,开始对其进行计数操作。

计数器根据选择的计数方式进行计数,常见的计数方式有正向计数和反向计数。

正向计数是指计数值递增,一般用于向上计数;反向计数是指计数值递减,一般用于向下计数。

3. 计数器预设值计数器通常具有一个预设值,用于设定计数的终点或起点。

当计数达到预设值时,计数器将触发相应的操作,如清零、进位或反馈给PLC控制程序。

4. 进位或反馈当计数值达到预设值时,进位计数器会自动清零,并触发进位信号。

这个信号可以作为其他设备的输入信号,用于触发其他操作。

反馈计数器则会将计数值反馈给PLC控制程序,供程序进行判断和控制,以实现复杂的逻辑操作。

三、计数器的应用场景计数器作为PLC中常用的功能模块之一,广泛应用于各种自动化控制系统中。

以下是计数器在不同场景下的常见应用示例:1. 物料计数在生产线上,计数器可以用来统计通过传送带的物料数量。

通过设置计数器的预设值,当物料数量达到要求时,触发计数器的进位或反馈信号,从而控制下一道工序的工作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ID IR PC R0 R1
… IR→B PC→B R0→B R1→B R7→B MAR→B TEMP→B
B
MAR
ABUS
主存
R7 MDR TEMP Y
A B
F→MDR F→TEMP
ADD R0,(R1)
F→Y
ADD SUB INC DEC
G
Gon
指令流程如下: (1)(PC)→MAR,Read (2) (PC)+1→PC (3) M→MDR→IR (4)(R1)→MAR,Read (5) M→MDR→Y (6)(Y)+(R0)→R0
例2:分析双总线结构的CPU中,指令 ADD R0,(R1)的指令流程和控制信号。
设ALU的功能有:
F=A+B(ADD),F=A-B(SUB), F=A+1(INC),F=A-1(DEC),F=A
可通过总线连接器G将总线B的信息直接传到F总线。其
控制信号为Gon。
F
F→IR F→MAR F→PC F→R0 F→R! Read Write DBUS F→R7
器、存储器、I/O设备等联系成一个有机的系统,并根据 各部件具体要求,适时地发出各种控制命令,控制计算
机各部件自动、协调地进行工作。
◆ 功能:根据事先编好并存放在存储器中的解题程
序,控制各部件有条不紊地、自动协调地进行工作。
指令
转移地址 PC 程序计数器
IR
操作码 地址码
+1 reset
启停线路 CLK 脉冲源 时序控制 信号形成部件 指令译码器 地址码
3.时间控制:对各种操作实施时间上的控制。
4.数据加工:对数据进行算术运算和逻辑运算。
6.1.2 CPU的基本组成
CPU控制整个计算机,内部有三大部分: 寄存器部分、算术/逻辑单元(ALU)、控制单元
1. 寄存器部分 除处理器指令集结构中的寄存器外,还有程序 员不能直接访问的一些寄存器。 CPU取指令过程的两个重要寄存器:
指令流程
控制信号流程
操作功能
(1) (PC)→MAR,Read, PC→B,Gon,F→MAR, 读指令操作码 Read,F→Y (PC)→Y (2) (Y)+1→PC INC,F→PC
PC+1→PC
(3) (MDR)→IR
MDR→B,Gon,F→IR
(4) (PC)→MAR,Read, PC→B,Gon,F→MAR, Read,F→Y (PC)→Y (5) (Y)+1→PC (6) (MDR)→Y (7) (Y)+(R1)→MAR INC,F→PC MDR→B,Gon,F→Y R1→B,ADD,F→MAR, 计算源操作数变址 值,读源操作数 Read
((R1))+ ( R0)→R0 指令流程如下: (1) (PC)→MAR,Read
(2) (PC)+1→PC
(3) M→MDR→IR (4)(R1)→MAR,Read (5) M→MDR→Y (6)(Y)+(R0)→Z
(7)(Z)→R0
+1
习题:分析转移指令 JC D 的指令流程。 指令功能: IF C=1 THEN (PC)+D→PC
; PC→B,Gon,F→MAR, Read ; INC ; MDR→B,Gon,F→IR ; R1→B,Gon,F→MAR, Read ; MDR→B,Gon,F→Y ; R0→B,ADD,F→R0
例3:分析双总线结构的CPU中,指令 ADD X(R1),(R2)+ 的指令流程和控制信号。 设ALU的功能有: F=A+B(ADD),F=A-B(SUB), F=A+1(INC),F=A-1(DEC),F=A 可通过总线连接器G将总线B的信息直接传到F总线。其控 制信号为Gon。 其中:X在本条指令的下一个存储单元 源操作数有效地址:X+(R1) 目的操作数地址:(R2),然后(R2)+1 → R2
第六章
6.1 6.2
CPU设计
CPU的功能和组成 一个非常简单CPU的设计与实现
6.3
6.4
相对简单CPU的设计和实现
简单CPU的缺点
6.5
实例:8085微处理器的内部结构
同济大学 软件学院
6.1
6.1.1 CPU的功能
CPU的功能和组成
CPU有四个方面的功能:
1.指令控制:程序的顺序控制。 2.操作控制:CPU管理并产生由内存取出的每条指令 的操作信号,把各种操作信号送往相应的部件,控 制部件工作。
解:指令流程如下: (1)(PC)→MAR,Read (2) (PC)+1 →PC (3) M→MDR→IR (4) IF C=1 THEN(PC)→Y (5) Y+IR(D部分)→Z (6)(Z)→PC
;送指令地址,读主存 ;PC+1→PC ;取指令到IR ;送当前指令地址 ;计算转移地址 ;下条指令实现转移
◆ 程序计数器:用来存放下一条要取的指令的地址。 ◆ 指令寄存器:用来存储计算机正在执行的指令。
用来访问内存、外设的两个寄存器:
◆ 地址寄存器MAR
◆ 数据缓冲寄存器MDR
2. 算术/逻辑单元 执行大部分的算术和逻辑运算。 如:加、与等操作。 3. 控制单元
◆ 计算机的指挥和控制中心,由它把计算机的运算
6.1.3 指令周期
1.指令周期 处理器取出并执行一条指令的时间。 2.指令执行的基本步骤 包括读取,译码,执行三个阶段。 ◆ 读取指令 根据程序计数器PC提供的内容,从存储器中 取出指令。 ◆ 译码 分析指令的操作码,确定处理的是哪一条指 令以便选择正确的操作顺序去执行该指令。
◆ 执行指令 根据指令功能,完成所规定的操作。指令不 同,所执行的操作及顺序也不相同。 3. 举例 例1:分析单总线结构的CPU中,指令 ADD R0,(R1)的指 令流程。设前一操作数地址为目的,后一操作数地 址为源。 解: 指令功能: ((R1))+ ( R0)→R0
(3) 指令译码器或操作码译码器 对IR中的操作码进行分析解释,产生相应的控制信号。
(4) 脉冲源及启停线路 脉冲源产生一定频率的脉冲信号作为整个
机器的时钟脉冲,是机器周期和工作脉冲的基
准信号。 启停线路控制时序信号的发生或停止,从而
启动机器工作或使之停机。
(5) 时序控制信号形成部件 根据当前指令的需要,产生相应的时序控制 信号,并根据被控功能部件的反馈信号调整时序 控制信号。
运 算 器
状态寄存器
数据总线 DB 地址总线 AB 控制总线 CB 存储器
数据 操作数 地址
I/O
控制器的基本组成
◆ 控制器的基本组成
(1) 程序计数器(PC) 指令地址寄存器,用来存放即将要执行的下一条 指令地址。具有加 “1” 和接收转移地址的功能。 (2) 指令寄存器(IR)
用来存放当前正在执行的指令。
相关文档
最新文档