高速计数器详细解说

高速计数器详细解说
高速计数器详细解说

s7-200高速计数器详细解说

1、高速计数器指令

普通计数器受CPU扫描速度得影响,就是按照顺序扫描得方式进行工作。在没个扫描周期中,对计数脉冲只能进行一次累加;对于脉冲信号得频率比PLC得扫描频率高时,如果仍采用普通计数器进行累加,必然会丢失很对输入脉冲信号。在PLC中,对比扫描频率高得输入信号得计数可也使用高速计数器指令来实现。

1.高速计数器指令

(1)定义高速计数器指令HDEF

HDE指令功能就是为某个要使用得高速计数器选定一种工作模式。每个高速计数器在使用前,都要用HDEF指令来定义工作模式,并且只能用一次。它有两个输入端:HSC为要使用得高速计数器编号,数据类型为字节型,数据范围为0~5得常数,分别对应HC0~

HC5;MOCE为高速计数得工作模式,数据类型为字节型,数据范围为0~11得常数,分别对应12种工作模式。当准许输入使能EN有效时,为指定得高速计数器HSC定义工作模式MODE。

(2)执行高速计数指令HSC

HSC指令功能功能就是根据与高速计数器相关得特殊继电器确定在控制方式与工作状态,使高速计数器得设置生效,按照指令得工作模式得工作模式执行计数操作。它有一个数据输入端N:N为高速计数器得编号,数据类型得字型,数据范围为0~5得常数,分别对应高速计数器HC0~HC5、当准许输入EN使能有效时,启动N号高速计数器工作。

2.高速计数器得输入端

高速计数器得输入端不像普通输入端那样有用户定义,而就是由系统指定得输入点输入信号,每个高速计数器对它所支持得脉冲输入端,方向控制,复位与启动都有专用得输入点,通过比较或中断完成预定得操作。每个高速计数器专用得输入点如表

3.高速计数器得状态字节

系统为每个高速计数器都在特殊寄存器区SMB提供了一个状态字节,为了监视高速计数器得工作状态,执行由高速计数器引用得中断事件,其格式如表。

只有执行高速计数器得中断程序时,状态字节得状态位才有效。

4、高速计数器得工作模式

高速计数器有12种不同得工作模式(0`~11),分为4类。每个高速计数器都有多种工作模式,可以通过编程得方法,使用定义高速计数器指令HDEF来选定工作模式。

(1)各个高速计数器得工作模式

1.高速计数器HC0就是一个通用得增减计数器,工有8种模式,可也通过编程来选择不同得工作模式,HC0得工作模式如表

2高速计数器HC1共有12种操作模式如表

3、高速计数器HC2共有12种操作模式,如表

5、高速计数器HC4有8操作模式,如表

6、高速计数器HC5只有一种操作模式如表

4、高速计数器得控制字节

系统为每个高速计数器都安排了一个特殊寄存器SMB作为控制字,可也通过对控制字节指定为得设置,确定高速计数器得工作模式。S7-200在执行HSC指令前,首先要检查与每个高速计数器相关得控制字节,在控制字节中设置了启动输入信号与复位输入信号得有效电平,正交计数器得计数倍率,计数方向采用内部控制得有效电平,就是否允许改变计数方向,就是否允许更新设定值,就是否允许更新当前值,以及就是否允许执行高速计数指令。

(1)在高速计数器得12种工作模式中,模式0、模式3、模式6与模式9,就是既无启动输入,又无复位输入得计数器,在模式1、模式4、模式7与模式10中,就是只

有复位输入,而没有启动输入得计数器;在模式2、模式5、模式8与模式11中,

就是既有启动输入,又有复位输入得计数器。

(2)当启动输入有效时,允许计数器计数;当启动输入无效时,计数器得当前值保持不

变;当复位输入有效时,将计数器得当前值寄存器清零;当启动输入无效,而复位输

入有效时,则忽略复位得影响,计数器得当前值保持不变;当复位输入保持有效,启

动输入变为有效时,则将计数器得当前值寄存器清零。

(3)在S7-200中,系统默认得复位输入与启动输入均为高电平有效,正交计数器为4倍频,如果想改变系统得默认设置,需要设置如上表中得特殊继电器得第0,1,2

位。

各个高速计数器得计数方向得控制,设定值与当前值得控制与执行高速计数得控制,就是由表4-22中各个相关控制字节得第3位至第7位决定得。

6、高速计数器得当前值寄存器与设定值寄存器

每个高速计数器都有1个32位得经过值寄存器HC0-HC5,同时每个高速计数器还有1个32位得当前值寄存器与1个32位得设定值寄存器,当前值与设定值都就是有符号得整数。为了向高速计数器装入新得当前值与设定值,必须先将当前值与设定值以双字得数据类型装入如表所列得特殊寄存器中。然后执行HSC指令,才能将新得值传送给高速计数器。

7、高速计数器得初始化

由于高速计数器得HDEF指令在进入RUN模式后只能执行1次,为了减少程序运行时间优化程序结构,一般以子程序得形式进行初始化。下面以HC2为例,介绍高速计数器得各个工作模式得初始化步骤。

1.利用SM0、1来调用一个初始化子程序。

2.在初始化子程序中,根据需要向SMB47装入控制字。例如,SMB47=16#F8,其意义就是:准许写入新得当前值,准许写入新得设定值,计数方向为曾计数,启动与

复位信号为高电平有效。

3.执行HDEF指令,其输入参数为:HSC端为2(选择2号高速计数器),MODE端为0/1/2(对应工作模式0,模式1,模式2)

4.将希望得当前技术值装入SMD58(装入0可进行计数器得清零操作)

5.将希望得设定值装入SMD62

6.如果希望捕获当前值等于设定值得中断事件,编写与中断事件号16相关联得中断服务程序

7.如果希望捕获外部复位中断事件,编写与中断事件号18相关联得中断服务程序。

8.执行ENI指令

9.执行HSC指令

10.退出初始化子程序

8高速计数器应用举例

某产品包装生产线用高速计数器对产品进行累计与包装,每检测1000个产品时,自动启动包装机进行包装,计数方向可由外部信号控制,。

设计步骤:

1.选择高速计数器,确定工作模式

在本例中,选择得高速计数器为HC0,由于要求技术方向可由外部信号控制,而其不要复位信号输入,确定工作模式为模式3,采用当前值等于设定值得中断事件,中断事件号为12,启动包装机工作子程序,高速计数器得初始化采用子程序。

2.用SM0、1调用高速计数器初始化子程序,子程序号为SBR_0

3.向SMB37写入控制字SMB37=16#F8

4.执行HDEF指令,输入参数:HSC为0,MODE为3

5.向SMD38写入当前值,SMD38=0

6.向SMD42写入设定值。SMD42=1000

7、,执行建立中断连接指令A TCH,输入参数:INT为INT-0,EVNT为12

8.编写中断服务程序INT0,在本例中为调用包装机控制子程序,子程序号为SBR

-1

9、执行全局开中断指令ENI

10、执行HSC指令,对高速计数器编程并投入运行。

MAIN

SBR_0

SBR_1包装机控制程序不写了INT_0

西门子PLCS高速计数器指令用法

高速计数器计数器 输入/输出操作数数据类型 N常数(0,1,2,3,4或5)字 内存范围错误S7-200 CPU指令支持SIMATIC/国际助记符 数据范围CPU内存中的指令大小编址内存 高速计数器(HSC)指令根据HSC特殊内存位的状态配置和控制高速计数 器。参数N指定高速计数器的号码。 高速计数器最多可配置为十二种不同的操作模式。 每台计数器在功能受支持的位置有专用时钟、方向控制、复原和起始输入。 对于双相计数器,两个时钟均可按最高速度运行。在正交模式中,您可以 选择一倍\(1x)或四倍(4x)的最高计数速率。所有的计数器按最高速率 运行,而不会相互干扰。 注释: CPU 221和CPU 222支持4台高速计数器 (HSC0、HSC3、HSC4、HSC5) CPU 221和CPU 222不支持HSC1和HSC2 CPU 224、CPU224XP、CPU 226支持6台高速计数器 (HSC0至HSC5) 您可以为每台高速计数器使用一条"高速计数器定义"指令。文档光盘中"提 示与技巧"中的第4条提示和第29条提示提供使用高速计数器的程序。 设置ENO = 0的错误条件: 0001 HSC在HDEF之前 0005 HSC/PLS同步 程序举例 LAD FBD

STL NETWORK 1 // 主程序 // 首次扫描时,调用SBR_0 LD SM0.1 CALL SBR_0 NETWORK 1 // 子程序0开始 // 配置HSC1 LD SM0.1 // 首次扫描时 MOVB 16#F8 SMB47 // 配置HSC1:// - 启用计数器 // - 写入新当前值

0-99手动计数器的设计要点

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ 第1章绪论 1.1 计数器介绍 本设计是根据我们所学习的单片机课程,按照课程要求进行的课程设计。单片机技术是一个不可或缺的技术,尤其是对于我们电气专业来说它是我们必须要掌握的技能之一,使我们未来工作和生活的根本。现在的社会是一个信息科技高速发展的社会,也是一个电子技术和微机计算机迅速发展的时代,单片机的档次和水平在不断的提高,其应用的领域和范围也越来越广,成为现代电子系统中最重要的智能化核心部分。 随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的范围越来越广,随之而来的竞争也越来越激烈。过硬的技术也成为众多生产厂商竞争的焦点之一。厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。 现计数器的种类以增加到:电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器)、液晶计数器等。计数器的应用范围也遍布印刷、纺织、印染、针织、电缆、电讯、军工、轻工、机械、开关、断路器、矿山、实行多班制的纺织行业的织布机、织带机、制线、制带、造纸、制革、薄膜、高压开关电器产品、试验设备,印刷设备、短路器、医疗、纺织、机械、仓库和码头的货运、行人及车辆过往的数量计数、冶金、食品、国防、包装、配料、石油、化工、发电、机床、仪表、自动化控制等行业。 1.2 本次设计的要求 1) 上电时,数码管显示为00。 2) 利用单片机来制作一个手动计数器,在单片机的管脚上接一个轻触开关,作为手动计数的按钮,用单片机的I/O口接数码管,作为计数器,进行加计数显示。 3) 计数器计数到99后,再按计数按钮,则数码管从00重新开始计数。 1.3 本次设计的目的 1) 学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。 2) 掌握汇编语言程序设计方法。 3) 培养实践技能,提高分析和解决实际问题的能力。

实验三单片机定时计数器实验

实验三单片机定时/计数器实验 1、实验目的 1、学习计数器的使用方法。 2、学习计数器程序的编写。 3、学习定时器的使用方法。 4、学习定时器程序的编写。 5、熟悉汇编语言 2、实验说明 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 3、实验仪器和条件 计算机 伟福实验箱(lab2000P) 4、实验内容 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 4、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD

用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 5、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 五、思考题 1、使用其他方式实现本实验功能; 2、改为门控方式外部启动计数; 3、如果改为定时间隔为200us,如何改动程序; 4、使用其他方式实现本实验功能,例如使用方式1,定时间隔为10ms,如何改动程序。 六、源程序修改原理及其仿真结果 思考题一:使用其他方式实现本实验功能 方法一: movTMOD, #00000100b;方式0,记数器 movTH0, #0 movTL0, #0 setbTR0;开始记数;由于方式0的特点是计数时使用TL0的低五位和八位 TH0,故用加法器a用“与”(ANL)取TL0的低五位,再用yiwei子程序实现TH0的低三位变为高三位与TL0相加,这样赋给P1时就是八位计数的结果。 Loop: mova,TL0 anla,#1fh

计数器工作原理及应用

计数器工作原理及应用 除了计数功能外,计数器产品还有一些附加功能,如异步复位、预置数(注意,有同步预置数和异步预置数两种。前者受时钟脉冲控制,后者不受时钟脉冲控制)、保持(注意,有保持进位和不保持进位两种)。虽然计数器产品一般只有二进制和十进制两种,有了这些附加功能,我们就可以方便地用我们可以得到的计数器来构成任意进制的计数器。下面我们举两个例子。在这两个例子中,我们分别用同步十进制加法计数器74LS160构成一个六进制计数器和一个一百进制计数器。 因为六进制计数器的有效状态有六个,而十进制计数器的有效状态有十个,所以用十进制计数器构成六进制计数器时,我们只需保留十进制计数器的六个状态即可。74LS160的十个有效状态是BCD编码的,即0000、0001、0010、0011、0100、0101、0110、0111、1000、1001[图5-1]。 图5-1 我们保留哪六个状态呢?理论上,我们保留哪六个状态都行。然而,为了使电路最简单,保留哪六个状态还是有一点讲究的。一般情况下,我们总是保留0000和1001两个状态。因为74LS160从100 1变化到0000时,将在进位输出端产生一个进位脉冲,所以我们保留了0000和1001这两个状态后,我们就可以利用74LS160的进位输出端作为六进制计数器的进位输出端了。于是,六进制计数器的状态循环可以是0000、0001、0010、0011、0100和1001,也可以是0000、0101、0110、0111、1000和1001。我们不妨采用0000、0001、0010、0011、0100和1001这六个状态。 如何让74LS160从0100状态跳到1001状态呢?我们用一个混合逻辑与非门构成一个译码器[图5. 3.37b],当74LS160的状态为0100时,与非门输出低电平,这个低电平使74LS160工作在预置数状态,当下一个时钟脉冲到来时,由于等于1001,74LS160就会预置成1001,从而我们实现了状态跳跃。

三菱高速计数器应用

三菱FX系列PLC计数器(C)内部计数器高速计数器 2016-02-03 来源:网络或本站原创 FX2N系列计数器分为内部计数器和高速计数器两类。 1.内部计数器 内部计数器是在执行扫描操作时对内部信号(如X、Y、M、S、T等)进行计数。内部输入信号的接通和断开时间应比PLC的扫描周期稍长。 (1)16位增计数器(C0~C199)??共200点,其中C0~C99为通用型,C100~C199共100点为断电保持型(断电保持型即断电后能保持当前值待通电后继续计数)。这类计数器为递加计数,应用前先对其设置一设定值,当输入信号(上升沿)个数累加到设定值时,计数器动作,其常开触点闭合、常闭触点断开。计数器的设定值为1~32767(16位二进制),设定值除了用常数K设定外,还可间接通过指定数据寄存器设定。 下面举例说明通用型16位增计数器的工作原理。如图1所示,X10为复位信号,当X10为ON时C0复位。X11是计数输入,每当X11接通一次计数器当前值增加1(注意X10断开,计数器不会复位)。当计数器计数当前值为设定值10时,计数器C0的输出触点动作,Y0被接通。此后既使输入X11再接通,计数器的当前值也保持不变。当复位输入X10接通时,执行RST复位指令,计数器复位,输出触点也复位,Y0被断开。 图1??通用型16位增计数器 (2)32位增/减计数器(C200~C234)??共有35点32位加/减计数器,其中C200~C219(共20点)为通用型,C220~C234(共15点)为断电保持型。这类计数器与16位增计数器除位数不同外,还在于它能通过控制实现加/减双向计数。设定值范围均为~(32位)。 C200~C234是增计数还是减计数,分别由特殊辅助继电器M8200~M8234设定。对应的特殊辅助继电器被置为ON时为减计数,置为OFF时为增计数。 计数器的设定值与16位计数器一样,可直接用常数K或间接用数据寄存器D的内容作为设定值。在间接设定时,要用编号紧连在一起的两个数据计数器。 如图2所示,X10用来控制M8200,X10闭合时为减计数方式。X12为计数输入,C200的设定值为5(可正、可负)。设C200置为增计数方式(M8200为OFF),当X12计数输入累加由4→5时,计数器的输出触点动作。当前值大于5时计数器仍为ON状态。只有当前值由5→4时,计数器才变为OFF。只要当前值小于4,则输出则保持为OFF状态。复位输入X11接通时,计数器的当前值为0,输出触点也随之复位。 图2? 32位增/减计数器 2.高速计数器(C235~C255) 高速计数器与内部计数器相比除允许输入频率高之外,应用也更为灵活,高速计数器均有断电保持功能,通过参数设定也可变成非断电保持。FX2N有C235~C255共21点高速计数器。适合用来做为高速计数器输入的PLC输入端口有X0~X7。X0~X7不能重复使用,即某一个输入端已被某个高速计数器占用,它就不能再用于

倒计数计数器程序

#include #include #define LED_code_port P0 // 段码数据口 #define LED_segmnet_port P2 // 位码数据口 sbit KEYL3=P1^5; sbit KEYH1=P1^0; sbit KEYH2=P1^1; sbit KEYH3=P1^2; sbit KEY1=P3^3;//四个按键数据口 unsigned int flag; unsigned char time_data[3]={00,10,0}; unsigned char code table[]={0xC0,0xF9,0xA4,0xB0, 0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83, 0xC6,0xA1,0x86,0x8E };//段码数组 unsigned char n=0; // n为节拍常数变量 unsigned char code music_tab[] ={ 0x18, 0x30, 0x1C , 0x10, //格式为频率常数, 节拍常数, 频率常数, 节拍常数, 0x20, 0x40, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x10, 0x1C, 0x10, 0x18 , 0x40, 0x1C, 0x20, 0x20 , 0x20, 0x1C, 0x20, 0x18 , 0x20, 0x20, 0x80, 0xFF , 0x20, 0x30, 0x1C, 0x10 , 0x18, 0x20, 0x15, 0x20 , 0x1C, 0x20, 0x20, 0x20 , 0x26, 0x40, 0x20, 0x20 , 0x2B, 0x20, 0x26, 0x20 , 0x20, 0x20, 0x30, 0x80 , 0xFF, 0x20, 0x20, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x20, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x30, 0x1C , 0x10, 0x18, 0x20, 0x15 , 0x20, 0x1C, 0x20, 0x20 , 0x20, 0x26, 0x40, 0x20 , 0x20, 0x2B, 0x20, 0x26 , 0x20, 0x20, 0x20, 0x30 , 0x80,

计数器原理分析及应用实例

计数器原理分析及应用实例 除了计数功能外,计数器产品还有一些附加功能,如异步复位、预置数(注意,有同步预置数和异步预置数两种。前者受时钟脉冲控制,后者不受时钟脉冲控制)、保持(注意,有保持进位和不保持进位两种)。虽然计数器产品一般只有二进制和十进制两种,有了这些附加功能,我们就可以方便地用我们可以得到的计数器来构成任意进制的计数器。下面我们举两个例子。在这两个例子中,我们分别用同步十进制加法计数器74LS160构成一个六进制计数器和一个一百进制计数器。 因为六进制计数器的有效状态有六个,而十进制计数器的有效状态有十个,所以用十进制计数器构成六进制计数器时,我们只需保留十进制计数器的六个状态即可。74LS160的十个有效状态是BCD编码的,即0000、0001、0010、0011、0100、0101、0110、0111、1000、1001[图5-1]。 图5-1 我们保留哪六个状态呢?理论上,我们保留哪六个状态都行。然而,为了使电路最简单,保留哪六个状态还是有一点讲究的。一般情况下,我们总是保留0000和1001两个状态。因为74LS160从1001变化到0000时,将在进位输出端产生一个进位脉冲,所以我们保留了0000和1001这两个状态后,我们就可以利用74LS160的进位输出端作为六进制计数器的进位输出端了。于是,六进制计数器的状态循环可以是0000、0001、0010、0011、0100和1001,也可以是0000、0101、0110、0111、1000和1001。我们不妨采用0000、0001、0010、0011、0100

和1001这六个状态。 如何让74LS160从0100状态跳到1001状态呢?我们用一个混合逻辑与非门构成一个译码器[图5.3.37b],当74LS160的状态为0100时,与非门输出低电平,这个低电平使74LS160工作在预置数状态,当下一个时钟脉冲到来时,由于等于1001,74LS160就会预置成1001,从而我们实现了状态跳跃。 图5.3.37b用置数法将74160接成六进制计数器(置入1001) 比这个方案稍微繁琐一点的是利用74LS160的异步复位端。下面这个电路中[图5.3.34],也有一个由混合逻辑与非门构成的译码器。 图5.3.34用置零法将74LS160接成六进制计数器

c++计数器的使用方法

C++计数器的使用方法 在可视化编程时,常常会用到计数器,大部分人都会为所在的类添加一个成员变量,这个成员变量在程序中将会是全局变量,所以每次对他的操作,下次还会有记录,所以用它来当计数器。为什么不能在类中的函数里写一个变量来计数呢?因为在函数中的变量生存周期只在当前函数中存活,一旦这个函数运行完,这个变量会释放,下次再用的时候没有保留上次的值,所以当然不能做计数器啦。那么有人会问了,还有别的方法吗,答案是肯定的。请看下面两个简单的实例,观察运行结果 实例一 #include "stdafx.h" #include int main(intargc, char* argv[]) { int i=10; for(;i>0;i--) { int a=88; a--; cout<

实例二 #include "stdafx.h" #include int main(intargc, char* argv[]) { int i=10; for(;i>0;i--) { static int a=88; a--; cout<

实例二运行结果: 大家可以看出来,实例二中的static变量并没有被释放,而且仅在第一次循环中被初始化,并不像实例一中的局部变量a反复初始化。static类型的a显然满足计数器的要求。所以,程序计数器可以用局部静态变量来代替传统的全局变量。有孙鑫《VC++深入详解》的同学可以参考P231,使用原理即为上面所述。

(工作分析)计数器工作原理的模式化分析

(工作分析)计数器工作原理的模式化分析

计数器工作原理的模式化分析 时序逻辑电路是《脉冲和数字电路》这门课程的重要组成部分,计数器是时序逻辑电路基础知识的实际应用,其应用领域非常广泛。计数器原理是技工学校电工电子专业学生必须重点掌握的内容,也是本课程的考核重点,更是设计计数器或其他电子器件的基础。 但近年来技校学生的文化理论基础和理解能力普遍较差,按照课件体系讲授计数器这个章节的知识,超过70%的学生听不懂。 我先后为四届学生讲授过这门课,于教学实践中摸索出壹套分析计数器的方法——模式化分析,即把分析步骤模式化,引导学生按部就班地分析计数器。用这种方法分析,我只要以其中壹种计数器(如异步二进制计数器)为例讲解,学生便能够自行分析其他计数器。 教学实践证明,用这种方法讲授计数器知识,学生比较感兴趣,觉得条理清晰,易于理解,掌握起来比较轻松。这种方法仍有壹个好处,不管是同步计数器仍是异步计数器,不管是二进制计数器仍是十进制计数器,不管是简单的计数器仍是复杂的计数器,只要套用这种方法,计数器工作原理迎刃而解。即使是平时基础很差的学生,只要记住几个步骤,依葫芦画瓢,也能把计数器原理分析出个大概来。 一、明确计数器概念 分析计数器当然要先清楚什么是计数器啦。书上的概念是:

计数器是数字系统中能累计输入脉冲个数的数字电路。我告诉学生,计数器就是这样壹种电子设备:把它放于教室门口,每个进入教室的同学均于壹个按钮上按壹下,它就能告诉你壹共有多少位同学进入教室。其中,每个同学按壹下按钮就是给这个设备壹个输入信号,N个同学就给了N个信号,这N个信号就构成计数器的输入CP脉冲,计数器要统计的就是这个CP脉冲系列的个数。当然,如果没有接译码器,计数器的输出端显示的是二进制数而非十进制数,比如有9位同学进入教室,它不显示“9”,而是显示“1001”。 随后,我简要介绍了计数器的构成和分类,且强调,计数器工作前必须先复位,即每个触发器的输出端均置零。 二、回顾基础知识 分析计数器要用到触发器的关联知识,其中JK触发器最常用,偶尔用到T触发器和D触发器。因此,介绍完计数器概念后,我不急于教学生分析其原理,而是先提问JK、T、D触发器的关联知识,包括触发器的逻辑符号、特性方程、特性表等。 由于计数器的控制单元由逻辑门电路构成,分析前仍要简要回顾壹下和、或、非等常用逻辑门电路的关联知识。另外,用模式化方法分析计数器仍要用到逻辑代数的运算方法、逻辑函数的化简方法等关联知识。 三、画出解题模板 准备工作做完了,下面进入核心部分——列出分析计数器的

基于单片机的计数器设计

百度文库- 让每个人平等地提升自我 - 1 - 湖南科技大学 单片机课程设计 题目基于单片机的计数器设计姓名李建雄 学院机电工程学院 专业测控技术与仪器 学号09030303 指导教师戴巨川 成绩 二〇一二年六月二日

百度文库- 让每个人平等地提升自我 - 2 - 摘要 本设计是根据我们所学习的单片机课程,按照课程要求进行的课程检验。单片 机技术是一个不可或缺的技术,尤其是对于我们测控技术与仪器专业来说它是我们必须要掌握的技能之一,使我们未来工作和生活的根本。现在的社会是一个信息科技高速发展的社会,也是一个电子技术和微机计算机迅速发展的时代,单片机的档次和水平在不断的提高,其应用的领域和范围也越来越广,成为现代电子系统中最重要的智能化核心部分。 随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的范围越来越广,随之而来的竞争也越来越激烈。过硬的技术也成为众多生产厂商竞争的焦点之一。厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。 现计数器的种类以增加到:电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器)、液晶计数器等。 计数器的应用范围也遍布印刷、纺织、印染、针织、电缆、电讯、军工、轻工、机械、开关、断路器、矿山、实行多班制的纺织行业的织布机、织带机、制线、制带、造纸、制革、薄膜、高压开关电器产品、试验设备,印刷设备、短路器、医疗、纺织、机械、仓库和码头的货运、行人及车辆过往的数量计数、冶金、食品、国防、包装、配料、石油、化工、发电、机床、仪表、自动化控制等行业。

百度文库- 让每个人平等地提升自我 - 3 - 目录 2.2设计原理 (6) 数码管的介绍 ............................................................................................................................... - 11 -3.3电路仿真. (11)

基于单片机的计数器设计 (1)

百度文库- 让每个人平等地提升自我! - 1 - 湖南科技大学 单片机课程设计 题目基于单片机的计数器设计姓名李建雄 学院机电工程学院 专业测控技术与仪器 学号09030303 指导教师戴巨川 成绩 二〇一二年六月二日

百度文库- 让每个人平等地提升自我! - 2 - 摘要 本设计是根据我们所学习的单片机课程,按照课程要求进行的课程检验。单片 机技术是一个不可或缺的技术,尤其是对于我们测控技术与仪器专业来说它是我们必须要掌握的技能之一,使我们未来工作和生活的根本。现在的社会是一个信息科技高速发展的社会,也是一个电子技术和微机计算机迅速发展的时代,单片机的档次和水平在不断的提高,其应用的领域和范围也越来越广,成为现代电子系统中最重要的智能化核心部分。 随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的范围越来越广,随之而来的竞争也越来越激烈。过硬的技术也成为众多生产厂商竞争的焦点之一。厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。 现计数器的种类以增加到:电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器)、液晶计数器等。 计数器的应用范围也遍布印刷、纺织、印染、针织、电缆、电讯、军工、轻工、机械、开关、断路器、矿山、实行多班制的纺织行业的织布机、织带机、制线、制带、造纸、制革、薄膜、高压开关电器产品、试验设备,印刷设备、短路器、医疗、纺织、机械、仓库和码头的货运、行人及车辆过往的数量计数、冶金、食品、国防、包装、配料、石油、化工、发电、机床、仪表、自动化控制等行业。

百度文库- 让每个人平等地提升自我! - 3 - 目录 2.2设计原理 (6) 数码管的介绍 ............................................................................................................................... - 11 -3.3电路仿真. (11)

西门子PLC高速计数器使用方法

高速计数器对CPU扫描速率无法控制的高速事件进行计数,最多可配置12种不同的操作模式。高速计数器的最高计数频率取决于您的CPU类型。 每台计数器对支持此类功能的时钟、方向控制、复原和起始均有专用输入。对于二相计数器,两个时钟均可以最高速率运行。在正交模式中,可选择1乘以(1x)或4乘以(4x)最高计数速率。所有计数器均以最高速率运行,互不干扰。 本标题讨论下列主题: 使用高速计数器 识别高速计数器的详细计时功能 为高速计数器连接输入线 高速计数器编址(HC) 识别不同的高速计数器 选择现用状态和1x/4x模式 高速计数器初始化顺序 控制字节 HSC模式 设置当前值和预设值 状态字节 为中断赋值 使用高速计数器 返回顶端 通常高速计数器被用作鼓式计数器驱动器,以恒速旋转的转轴配有增量轴式编码器。轴式编码器提供每次旋转的指定计数以及每次旋转一个复原脉冲。轴式编码器的时钟和复原脉冲为高速计数器提供输入。 用最先的几个预设值载入高速计数器,并在当前计数小于当前预设值的期间内激活所需输出。当前计数等于预设值或复原时,计数器设置提供中断。 每次发生当前计数值等于预设值中断事件时,载入新预设值,并设置下一个输出状态。发生复原中断事件时,设置第一个预设值和第一个输出状态,并重复该循环。 因为中断的发生速率远远低于高速计数器的计数速率,可对高速操作执行精确的控制,并对整体PLC扫描循环产生相对较小的影响。中断附加方法允许在独立中断例行程序中执行每个载入的新预设值,以便进行状态控制。(另一种方法是在单个中断例行程序中处理所有的中断事件。) 识别高速计数器的详细计时功能 返回顶端

下列时序图显示根据模式分类的每台计数器的功能。在另一个时序图中显示复原和起始输入操作,并应用于所有使用复原和起始输入的模式。在复原和起始输入图中,复原和起始的现用状态均被编程为高级。 有复原、无起始的操作举例 有复原和起始的操作举例 模式0、1和2操作举例 模式3、4和5操作举例 使用计数模式6、7和8时,上下时钟输入的上升沿间隔0.3微秒,高速计数器可能认为这些事件同时发生。如果发生这种情况,当前值不改变,而且计数方向不改变。只要上下时钟输入的上升沿之间的间隔大于该时段,高速计数器就能够单独捕获每个事件。在两种情况下,均不生成错误,而且计数器保持当前计数值。 模式6、7和8操作举例 模式9、10和11操作举例(正交1x 模式) 模式9、10和11操作举例(正交4x 模式) 为高速计数器连接输入线 返回顶端 使用"高速计数器定义"指令定义计数器模式和输入。 下表显示与高速计数器相关的用于时钟、方向控制、复原和起始功能的输入。 高速计数器专用输入 高速计数器使用的输入 HSC0 I0.0, I0.1, 0.2 HSC1 I0.6, I0.7, I1.0, I1.1 HSC2 I1.2, I1.3, I1.4, I1.5 HSC3 I0.1 HSC4 I0.3, I0.4, I0.5 HSC5 I0.4 有些高速计数器和边缘中断的输入点赋值存在某些重叠。同一个输入不能用于两种不同的功能;但是高速计数器当前模式未使用的任何输入均可用于其他目的。例如,如果在模式2中使用HSC0,模式2使用I0.0和I0.2,则I0.1可用于边缘中断或用于HSC3。

闪烁计数器工作原理及应用

闪烁计数器的工作原理 闪烁计数器是一种利用射线引起闪烁体的发光而进行记录的辐射探测器。1947年由J.W. 科尔特曼和H.P.卡尔曼所发明。它由闪烁体、光电倍增管(见光电管)和电子仪器等单元组成。 它是由闪烁体(也称荧光体)和光电倍增管构成。常用的闪烁体有NaI(TI)[铊激活]、ZnS(Ag)和有机晶体“蒽”等,它们在射线照射下会发光(闪烁)。它的工作原理是:射线在闪烁体中产生的光子,打到光电倍增管的阴极上产生光电子,光电子的电子流通过倍增管放大并被阳极接收,形成了一个电脉冲,再由仪器的其他部件加以放大记录。碘化钠晶体常用来测量γ射线,硫化锌晶体常用来测量α射线。闪烁计数器的优点是,效率高、记录快,可以测定射线的能量。 闪烁计数器的应用 射线同闪烁体相互作用,使其中的原子、分子电离或激发,被激发的原子、分子退激时发出微弱荧光(见固体发光),荧光被收集到光电倍增管,倍增的电子流形成电压脉冲,由电子仪器放大分析和记录。利用这种现象可探测带电粒子。可用的闪烁体种类很多,用得较多的有NaI(加微量Tl)、CSI(加微量Tl)、ZnS(加微量Ag )等无机盐晶体和蒽、茋、对联三苯等有机晶体,也有用液体、塑料或气体的闪烁体。闪烁计数器的优点是效率高,有很好的时间分辨率和空间分辨率,时间分辨率达10^-9秒,空间分辨率达毫米量级。它不仅能探测各种带电粒子,还能探测各种不带电的核辐射;不仅能探测核辐射是否存在,还能鉴别它们的性质和种类;不但能计数,还能根据脉冲幅度确定辐射粒子的能量。在核物理和粒子物理实验中应用十分广泛。 艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。 如需进一步了解相关仪器仪表产品的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城https://www.360docs.net/doc/ad8216133.html,/

计数器原理及其测试

实验七计数器原理及其测试 1.利用74LS160,分别用清零法和置数法设计一个七进制计数器。 清零法:74LS1160具有异步清零功能,计数达到7,通过门电路产生清零信号实现清零,由于异步清零,故0111出现时间极短(过渡态),所以共包括了0000到0110七个状态。 将示波器与个输出端分别相连得到输出波形图: CP与QA CP与QB CP与QC

CP 与 QD CP 与 Cr 置数法:74LS160有同步置数功能,由于是同步故没有过渡态,图示从0011开始,七个CP 后计数达到1001,产生置数信号,下一个CP 到来时置入0011。 CP 与QA

CP与QB CP与QC CP与QD CP与Cr 2.分别用74LS163和74LS161设计13进制计数器,采用清零法实现,并用数 码管显示结果。画出完整电路图,并写出状态转换关系。 设计思路:74LS161和74LS163的差别在于74LS161是异步清零,而74LS163是同步清零。故在设计时,对于74LS161存在过渡态(1011),计数达1101时通过门电路产生清零信号。而74LS163则不存在过渡态,计数达1100产生清零信号,下一个CP到达时被清零。外加上转码电路即可显示结果。 74LS161实现:

状态转换: 0000—0001—0010—0011—0100—0101—0110— 0111—1000—1001—1010—1011—1100—1101(过渡态,实际不出现该状态)--0000 74LS163实现: 状态转换: 0000—0001—0010—0011—0100—0101—0110—0111—1000—1001—1010—1011—1100--0000 实验结果:通过实验发现,理论上74LS163同步清零无过渡态可以计数至12(1100),但在实际中,1100状态保持时间极短,很难得到图像结果。 3. 设计一个用3位数码管指示的60进制计数器,并用三只开关控制实现数据保持,计数及清零功能。 设计思路:60进制可看做10*6,故选用74LS160,第一片作为最低位,可计10个数,将其进位输出作为第二片的CP ,这样第一片每计一个十,第二片就计一次数,当第二片计数达到0110时产生清零信号,故其具有0000到0101共六个状态,这样就实现了10*6共可计60CP 脉冲。再将第二位的清零信号连到第三片的CP 上,就可得到进位。将三片74LS161的EP 和ET 接在同一个开关上,LD ’接在同一个开关上,第一片和第三片的Cr ’接在同一个开关,同时将该开关与第二片的清零信号接与门后接在第二片的清零输入端。 电路图: 下图为同步置数(置入数为3)

计数器设计和原理

二.计数器设计 1.实验目的 计数器在数字逻辑设计中的应用十分广泛,可以对时钟信号进行计数,分频和产生序列信号,也可以用在计时器和串并转换等电路。这次实验我们就来学习一下如何用Robei和Verilog语言来设计一个4比特计数器。 2.实验要求 计数器对每个时钟脉冲进行技术,并将计数值输出出来。这个实验我们来设计一个4比特的计数器,其技术范围在0~F之间,也就是计数到最大值16. 设计波形要求如图1所示。 图1. 计数器输出波形要求 3.实验内容 3.1 模型设计 1)新建一个模型。点击工具栏上的图标,或者点击菜单“File”然后在下 拉菜单中选择“New”,会有一个对话框弹出来(如图2所示)。在弹出的对话框中设置你所设计的模型。

图2. 新建一个项目 参数填写完成后点击“OK”按钮,Robei就会生成一个新的模块,名字就是counter,如图3所示: 图3. 计数器界面图 2)修改模型。在自动生成的界面图上进行名称的修改,输入引脚为clock, enable 和reset,输出引脚修改成count。其中count引脚的“Datasize”为4比特,用户可以输入4,也可以输入3:0。为了区分每个引脚,我们可以修改每个引脚的Color值,并点回车保存。修改完成后如图4所示。如果选中模块,按“F1”键,就会自动生成一个Datasheet,如图5所示。

图4. 修改引脚属性 图5. “Datasheet”截图 3)输入算法。点击模型下方的Code(如图6所示)进入代码设计区。

图6. 点击Code输入算法 在代码设计区内输入以下Verilog代码: always @ (posedge clock) //学习always语句的写法,并设置敏感信号。时钟上升沿触发begin //学习Verilog if else语句的写法 if (reset == 1) begin count<= 0; end //if enable is 1, counter starts to count else if (enable == 1) begin count <= count + 1; end end 4)保存。点击工具栏图标,或者点击菜单“File”中的下拉菜单“Saveas”, 将模型另存到一个文件夹中。 5)运行。在工具栏点击或者点击菜单“Build”的下来菜单“Run”,执 行代码检查。如果有错误,会在输出窗口中显示。如果没有错误提示,恭喜,模型counter设计完成。 3.2测试文件设计

编码器的脉冲计数、高速计数器小总结

我们一般采用高速输出信号控制步进电机和伺服电机做位置,角度和速度的控制,比如定位,要实现这个目的,我们要知道这几个条件:1、PLC高速输出需要晶体管输出,继电器属于机械动作,反应缓慢,而且易坏 2、以三菱PLC为例,高速输出口采用Y0 、Y1 3、高速输出指令常用的有 PLSY 脉冲输出 PLSR 带加减速 PLSV……可变速的脉冲输出 ZRN……原点回归 DRVI……相对定位 DRVA……绝对定位 4、脉冲结束标志位M8029 5、D8140 D8141 为Y0总输出脉冲数 6、在同一个程序里面Y0做为脉冲输出,程序可以存在一次,当需要多次使用的时候,可以采用变址V进行数据的切换,频率,脉冲在不同的动作模式中,改变数据

正对上述讲解的内容:我们用一个程序来表示若我们以后可能接触步进。伺服这一块,上述内容,大家一定要熟练掌握! 23、PLC编程实现编码器的脉冲计数 在高速计数器与编码器配合使用之前,我们首先要知道是单向计数,还是双向计数,需要记录记录的数据,需要多少个编码器,在PLC中也需要多少个高速输入点,我们先要确认清楚。 当我们了解上面的问题以后,参照上题的寄存器分配表得知我们该选择什么高速计数器 如:现在需要测量升降机上升和下降的高度,那么我们需要采用双向编码器,即可加可减的,AB相编码器,PLC需要两个IO点,查表得

知,X0 X1为一路采用C251高速计数器那么我们可以这样编程,如图 开机即启动计数,上升时(方向),C251加计数 下降时(方向),C251减计数 我们要求编码器转动的数据达到多少时,就表示判断实际升降机到达的位置 注意:在整个程序中没有出现X0、X1这个两个软元件? 是因为C251为X0、X1的内置高速计数器,他们是一一对应的,只要见到c251,X0 X1就在里面了,当然,用了C251以后,X0 、X1不能在程序里面再当做开关量使用了

计数器原理

计数器原理 计数器是数字系统中用的较多的基本逻辑器件,它的基本功能是统计时钟脉冲的个数,即实现计数操作,它也可用与分频、定时、产生节拍脉冲和脉冲序列等。例如,计算机中的时序发生器、分频器、指令计数器等都要使用计数器。 计数器的种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预制数和可编计数器等等。 1、用D触发器构成异步二进制加法/减法计数器 图1 3位二进制异步加法器 如上图1所示,是由3个上升沿触发的D触发器组成的3位二进制异步加法器。图中各个触发器的反相输出端与该触发器的D输入端相连,就把D触发器转换成为计数型触发器T。 将上图加以少许改变后,即将低位触发器的Q端与高一位的CP端相连,就得到3位二进制异步减法器,如下所示: 图2 3位二进制异步减法器 2、异步集成计数器74LS90 74LS90为中规模TTL集成计数器,可实现二分频、五分频和十分频等功能,它由一个二进制计数器和一个五进制计数器构成。其引脚排列图和功能表如下所示:

图3 74LS90的引脚排列图 表1 74LS90的功能表 3、中规模十进制计数器74LS192(或CC40192) 74LS192是同步十进制可逆计数器,它具有双时钟输入,并具有清除和置数等功能,其 引脚排列及逻辑符号如下所示: 图4 74LS192的引脚排列及逻辑符号 (a )引脚排列 (b) 逻辑符号 图中:PL 为置数端,U CP 为加计数端,D CP 为减计数端,U TC 为非同步进位输出端,

高速计数器指令向导

高速计数器指令向导 在Micro/WIN SMART 中的命令菜单中选择Tools(工具)> Wizards (向导)中选择High Speed Counter(高速计数器向导),也可以在项目树中选择Wizards(向导)文件夹中的High Speed Counter(高速计数器向导)按钮,如图1所示。 图1.选择HSC 向导 步骤一:选择HSC 编号,如图2所示。

图2.选择计数器编号 步骤二:为计数器命名,在左侧树形目录中选择“高速计数器”,如图3所示。

图3.高速计数器命名 步骤三:选择计数器模式,详细信息请见“表1.高速计数器的模式及输入点”。 图4.选择高速计数器模式

步骤四:配置初始化信息。 图5. HSC 初始化选项 在上图中: 1. 为初始化子程序命名,或者使用默认名称。 2. 设置计数器预置值:可以为整数、双字地址或符号名:如5000、 VD100、PV_HC0。用户可使用全局符号表中双字整数对应的符号名。如果用户输入的符号名尚未定义,点击‘ Generate (生成)’后会看到:

这个提示框显示:“这不是定义的全局符号。您希望定义符号吗”, 点击“是” 填入地址和注释,注意:地址必须为双字地址,注释可以不填。 3. 设置计数器初始值:可以为整数、双字地址或符号名:5000、 VD100、CV_HC0。 4. 初始化计数方向:增,减。 5. 对于带外部复位端的高速计数器,可以设定复位信号为高电平有 效或者低电平有效。 6. 使用A/B相正交计数器时,可以将计数频率设为1倍速或4倍速。 使用非A/B相正交计数器时,此项为虚。 7. S7-200 SMART 均不支持带外部启动端的高速计数器,因此此项 为虚。 注意:所谓“高/低电平有效”指的是在物理输入端子上的有效逻辑电平,即可以使LED 灯点亮的电平。这取决于源型/漏型输入 接法,并非指实际电平的高、低。 步骤五:配置中断事件,如图6所示。

程序计数器PC与地址寄存器AR实验

武汉轻工大学数学与计算机学院 计算机组成原理 实验报告 学校:武汉轻工大学 院系:数学与计算机学院 班级:软件工程13xx班 姓名: xx 学号:13051xxxx 指导老师:郭峰林 2015年11月23日

实验三程序计数器PC与地址寄存器AR实 验 【实验环境】 1. Windows 2000 或 Windows XP 2. QuartusII9.1 sp2、DE2-115计算机组成原理教学实验系统一台。 【实验目的】 1.掌握地址单元的工作原理。 2.掌握的两种工作方式,加1计数和重装计数器初值的实现方法; 3.掌握地址寄存其从程序计数器获得数据和从内部总线获得数据的实现方法。 【实验原理】 程序计数器(PC)是用于存放下一条指令所在单元的地址的地方。为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。 当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。当程序转移时,转移指令执行的最终结果就是要改变PC的值,下一条从内存取出的指令将由转移指令来规定,而不像通常一样按顺序来取得因此程序计数器的结构应当是具有寄存信息和计数两种功能的结构。转移指令执行后的PC值就是转去的地址,以此实现转移,有些机器中也称PC为指令指针IP(Instruction Pointer)。 地址寄存器(AR)用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。 当CPU和内存进行信息交换,即CPU向内存存/取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样使用地址寄存器和数据缓冲寄存器。 地址寄存器的结构和数据缓冲寄存器、指令寄存器一样,通常使用单纯的寄存器结构。信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号作用下,瞬时地将信息存入寄存器。 本实验采用总线多路开关联接方式 地址单元主要由三部分组成:程序计数器PC、地址寄存器AR和多路开关BUSMUX。

相关文档
最新文档