脉冲计数(定时计数器的记数功能实验)

合集下载

定时计数器(8253)实验报告

定时计数器(8253)实验报告

实验6 8253定时计数器电路接口实验2220083443 赵洪宇一、实验目的掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。

二、实验设备MUT—Ⅲ型实验箱、8086CPU模块、示波器(实验台无)。

三、实验内容8253计数器0,1,2工作于方波方式,观察其输出波形四、实验原理介绍本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路(1)电路原理该电路由1片8253组成,8253的片选输入端插孔CS8253,数据口,地址,读写线均已接好,T0、T1、T2时钟输入分别为8253CLK0、8253CLK1、8253CLK2。

定时器输出,GATE控制孔对应如下:OUT0、GATE0、OUT1、GATE1、OUT2、GATE2、CLK2。

本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路脉冲产生电路8253的方式控制字8253的状态字(2)电路测试检查复位信号,通过8253定时器/计数器接口实验,程序全速运行,观察片选、读、写、总线信号是否正常。

五、实验步骤1、实验连线:CS0CS8253 OUT08253CLK2 OUT2LED1示波器(实验中无)OUT1 CLK38253CLK0 CLK38253CLK1实验接线原理图如下:注:GATE信号无输入时为高电平2、编程调试程序assume cs:codecode segment publicorg 100hstart:mov dx,04a6h ;控制寄存器mov ax,36h ;计数器0,方式3out dx,axmov dx,04a0hmov ax,7Chout dx,axmov ax,92hout dx,ax ;计数值927Chmov dx,04a6hmov ax,76h ;计数器1,方式3out dx,axmov dx,04a2hmov ax,32hout dx,axmov ax,0 ;计数值32hout dx,axmov dx,04a6hmov ax,0b6h ;计数器2,方式3out dx,axmov dx,04a4hmov ax,04hout dx,axmov ax,0 ;计数值04hout dx,axnext:nopjmp nextcode endsend start3、全速运行,观察实验结果六、实验结果程序全速运行后,LED1闪烁(周期为0.25s),本实验由于实验台没有提供示波器,所以对于实验所要求的观察方式3的波形无法实现。

定时器计数器的定时实验

定时器计数器的定时实验

定时器和计数器是数字逻辑电路中常见的功能模块,用于时间测量和事件计数。

以下是一个可能的定时器计数器的定时实验设计方案:
实验名称:定时器计数器的定时实验
实验目的:
1. 了解定时器和计数器在数字电路中的应用;
2. 学习定时器的工作原理和使用方法;
3. 掌握计数器的功能及其在事件计数中的应用。

实验内容:
1. 定时器实验:
-设计一个简单的定时器电路,利用集成电路或开发板上的定时器模块,实现不同时间间隔的脉冲输出。

-调节定时器参数,观察输出信号的频率和占空比的变化。

2. 计数器实验:
-将定时器的输出信号连接到计数器输入端,通过计数器实现对脉冲数量的计数。

-设置计数器的初始值和计数方式,观察计数器的计数过程及计数结果。

实验器材与设备:
1. 集成电路或开发板上的定时器和计数器模块
2. 连接线、电源等实验器材
3. 示波器或数码多用表等测试仪器
4. 相关的实验软件和工具
实验注意事项:
1. 理解定时器和计数器的工作原理,正确连接和设置实验电路。

2. 注意电路连接的准确性,确保信号传输正常。

3. 在实验过程中注意观察输出信号波形和计数结果,及时调整参数以获取所需实验数据。

预期结果:
通过该实验,学生可以深入了解定时器和计数器在数字电路中的应用,掌握定时器的工作原理和调节方法,以及理解计数器在事件计数中的作用。

学生将能够实际操作定时器计数器模块,设计并搭建相应的实验电路,观察实验结果并进行数据分析。

这样的定时器计数器的定时实验设计旨在帮助学生加深对数字逻辑电路中定时和计数功能的理解,培养其实验操作能力和问题解决能力。

定时器的设计实验报告

定时器的设计实验报告

定时器的设计实验报告1. 引言定时器是一种常见的计时装置,广泛应用于各个领域,如电子设备、工业自动化、交通运输等。

本实验通过设计一个基于脉冲计数的定时器电路,旨在研究其工作原理,探索其在实际应用中的可行性和性能表现。

2. 原理及设计2.1 工作原理脉冲计数定时器是一种通过计数器累加输入脉冲信号的数量来实现计时的装置。

其基本原理是利用脉冲信号的频率和计数器的计数速度之间的关系,通过计数器的累加值计算时间间隔。

2.2 设计步骤1. 确定定时器的时间基准。

时间基准可以选择外部脉冲输入或者由稳定的晶振产生。

2. 设计计数器的位数。

根据计时的范围确定计数器的位数,以保证计数范围的覆盖。

3. 计算计数器的计数速度。

根据计时的最大时间间隔和计数器的位数,计算所需的输入脉冲频率。

4. 根据计数器的位数和计数速度,选择合适的计数器芯片。

5. 配置计数器芯片的工作模式和输入脉冲的触发方式。

6. 连接电路并验证设计是否符合要求。

2.3 接线图_______________input > Counter > output________ Display_________3. 实验结果及分析3.1 实验设置- 输入脉冲频率:1kHz- 计数器位数:4位- 计数器芯片:74HC163- 时间基准:晶振(频率为10MHz)3.2 实验结果在实验过程中,我们通过将输入脉冲接到74HC163计数器芯片的CP 输入端,将74HC163的输出接到数码显示器,观察并记录实时的计数结果。

在实验进行中,我们发现计数器芯片的最大计数范围是15(4位二进制),对应的时间间隔为15ms(1kHz输入脉冲时)。

3.3 实验分析通过实验结果可以看出,该定时器电路能够准确计时,实际测量的时间结果与理论计算非常接近。

由于74HC163计数器芯片的高稳定性和高精度,使得定时器的性能表现较好。

然而,该设计存在一个缺点,即计数器位数的限制。

由于计数器位数的限制,导致定时的最大时间间隔受到了限制。

定时器计数器实验心得体会

定时器计数器实验心得体会

定时器计数器实验心得体会首先,在本次实验中,我们使用了555定时器集成电路,它是一种非常常用的定时器IC。

通过实际操作,我学会了如何正确地接线电路,如何选择合适的电阻和电容值来调整计时时间,以及如何通过示波器观察输出波形等。

这些操作虽然看似简单,但实际上需要一定的经验和技巧。

通过实验,我掌握了如何正确地连接555定时器,如何通过改变电阻和电容值来调整计时时间,以及如何正确地读取示波器的波形数据。

这些都是非常实用的技能,在今后的工程实践中将会发挥重要作用。

其次,通过本次实验,我对定时器计数器的原理有了更加深入的了解。

定时器计数器是一种能够产生一定时间间隔的脉冲信号的电路。

在实验中,我们通过改变电阻和电容值来调整计时时间,从而产生不同频率的脉冲信号。

我进一步了解了555定时器的内部结构和工作原理,以及它的输出波形特点。

这些知识对于理解定时器计数器的工作原理和使用方法至关重要。

另外,通过本次实验,我还学会了如何利用定时器计数器来实现一些实际应用。

定时器计数器在电子电路中有着广泛的应用,例如定时开关、计数器、测速器等。

在本次实验中,我们实现了一个简单的计数器电路,通过改变计数器的分频比来实现不同的计数功能。

这实际上是一种非常简单、但又非常实用的应用,通过定时器计数器,我们可以实现很多有趣的功能。

最后,通过本次实验,我深刻体会到了实验操作的重要性。

在实验中,我们需要准确地接线电路、选择合适的元器件、调整参数并观察波形等。

这些操作需要一定的技巧和经验,否则很容易出错。

因此,我学会了如何准确地实施实验,如何注意安全和细节,并及时地解决实验中遇到的问题。

这对于我未来的工程实践和科研工作都有着重要的意义。

综上所述,通过本次实验,我对定时器计数器有了更加深入的了解,掌握了一些实际操作技能,并学会了如何利用定时器计数器来实现一些有趣的功能。

这些知识和经验对我今后的学习和工程实践将会产生重要的影响。

我会继续努力学习和积累实践经验,不断提高自己的能力,为未来的科研工作和工程实践做好充分的准备。

脉冲计数

脉冲计数

实验九脉冲计数(定时/计数器实验)1、实验目的:熟悉单片机内部定时/计数器功能,掌握初始化编程方法。

2、实验内容:把定时器0外部输入的脉冲进行计数,并送显示器显示3、实验程序框图:4、实验接线图:5、实验步骤:P3.4 依次接T0~T7或单脉冲输出孔,执行程序,观察数码管上计数脉冲的速度及个数。

6、思考:修改程序使显示器上可显示到999999个脉冲个数。

7、程序清单文件名:SW09.ASM;脉冲计数实验ORG 0000HLJMP SE15ORG 06E0HSE15: MOV SP,#53HMOV P2,#0FFHMOV A,#81HMOV DPTR,#0FF23HMOVX @DPTR,A ; 1MOV TMOD,#05HMOV TH0,#00HMOV TL0,#00HSETB TR0LO29: MOV R2,TH0MOV R3,TL0LCALL ZOY0MOV R0,#79HMOV A,R6LCALL PTDSMOV A,R5LCALL PTDSMOV A,R4LCALL PTDSLCALL SSEESJMP LO29ZOY0: CLR AMOV R4,AMOV R5,AMOV R6,AMOV R7,#10HLO30: CLR CMOV A,R3RLC AMOV R3,AMOV A,R2RLC AMOV R2,AMOV A,R6ADDC A,R6DA AMOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ R7,LO30RETPTDS: MOV R1,AACALL PTDS1MOV A,R1SWAP APTDS1:ANL A,#0FHMOV @R0,AINC R0RETSSEE: SETB RS1MOV R5,#05HSSE2: MOV 30H,#20HMOV 31H,#7EHMOV R7,#06HSSE1: MOV R1,#20HMOV A,30HCPL AMOVX @R1,AMOV R0,31HMOV A,@R0MOV DPTR,#DDFFMOVC A,@A+DPTRMOV R1,#21HMOVX @R1,AMOV A,30HRR AMOV 30H,ADEC 31HMOV A,#0FFHMOVX @R1,ADJNZ R7,SSE1DJNZ R5,SSE2CLR RS1RETDDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHEND实验九A/D转换实验1、实验目的:(1)掌握A/D转换与单片机接口的方法;(2)了解A/D芯片0809转换性能及编程方法;(3)通过实验了解单片机如何进行数据采集。

计数器实验报告

计数器实验报告

实验4计数器及其应用一、实验目的1、学习用集成触发器构成计数器的方法2、掌握中规模集成计数器的使用及功能测试方法二、实验原理计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。

计数器种类很多。

按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。

根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。

根据计数的增减趋势,又分为加法、减法和可逆计数器。

还有可预置数和可编程序功能计数器等等。

目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。

使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。

1、中规模十进制计数器CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如图5-9-1所示。

图5-9-1 CC40192引脚排列及逻辑符号图中LD—置数端 CP U—加计数端 CP D—减计数端CO—非同步进位输出端BO—非同步借位输出端D0、D1、D2、D3—计数器输入端Q0、Q1、Q2、Q3—数据输出端 CR—清除端CC40192的功能如表5-9-1,说明如下:表5-9-1当清除端CR为高电平“1”时,计数器直接清零;CR置低电平则执行其它功能。

当CR 为低电平,置数端LD 也为低电平时,数据直接从置数端D 0、D 1、D 2、D 3 置入计数器。

当CR 为低电平,LD 为高电平时,执行计数功能。

执行加计数时,减计数端CP D 接高电平,计数脉冲由CP U 输入;在计数脉冲上升沿进行 8421 码十进制加法计数。

执行减计数时,加计数端CP U 接高电平,计数脉冲由减计数端CP D 输入,表5-9-2为8421码十进制加、减计数器的状态转换表。

表5-9-2加法计数减计数2、计数器的级联使用一个十进制计数器只能表示0~9十个数,为了扩大计数器范围,常用多个十进制计数器级联使用。

单片机实验之定时器计数器应用实验二

单片机实验之定时器计数器应用实验二

、实验目的1 、掌握定时器/计数器计数功能的使用方法。

2 、掌握定时器/计数器的中断、查询使用方法。

3 、掌握Proteus 软件与Keil 软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法。

、设计要求1 、用Proteus 软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 100个脉冲,则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。

2、用Proteus 软件画出电路原理图,单片机的定时器/计数器以中断方式工 作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 200个脉冲, 则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。

通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD 初值的计 算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。

七、思考题1、利用定时器0,在P1.0 口线上产生周期为200微秒的连续方波,利用定 时器1,对P1.0 口线上波形进行计数,满50个,则取反P1.1 口线状态,在P 1.1 口线上接示波器观察波形。

tJI-JTTALlRSTIPO 1 Z^Cil POiPD 3/jfiD3 IPCLW/MH FD-5/^CB”血P2 O/jtS PNUMa P 2 .2/AJOPI F3JD/RKDP1 且1门池F1 2P1 .3P3^/|NT1 卩11 .4P3.4Z1D P1.5 P3 .5fT1 尸1P3.0AA/RP1I.7 P3.?/RD17三、电路原理图 18HQAT69C52P 2 .4/A12P2 5/A13 P2P2 .7XA1«5蝕丘2Q 37答:程序见程序清单四、实验程序流程框图和程序清单1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,MAIN: MOV IE, #00HMOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1LOOP: JNB TF1, LOOP CLRTF1 CPL P1.0 AJMP LOOP ENDC 语言程序:#in elude <reg52.h> sbit Y=P1A0; void mai n() {EA=0; ET1=0; TMOD=0x60;TH1=0x9C;计数数值初始化中断断 艙化!l[启动 =时器1 器一、r动 启N箱 * 1溢断清计数溢出标志—1 ~ P1.(口线取反TL 仁 0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } }2、定时器/计数器以中断方式工作,对外部连续周期性脉冲信号进行计数, 每计满200个脉冲,则取反P1.0 口线状态。

stm32定时器脉冲计数

stm32定时器脉冲计数

今天,尝试使用STM32的计数器的外部时钟功能,来对外部脉冲信号进行计数。

效果还不错。

具体设置如下:/* TIM3_CH2 为脉冲输入口1. 配置GPIO_GPIOA_PIN7 输入2. 配置TIM3 计数器在TI2 端的上升沿计数:1). TIMx_CCMR1: CC2S =01; 配置通道2检测TI2输入的上升沿2). TIMx_CCMR1:IC2F =000; 选择输入滤波器带宽3). TIMx_CCER: CC2P =0; 配置上升沿极性√4). TIMx_SMCR: SMS =111; 选择定时器外部时钟模式15). TIMx_SMCR: TS =110; 选择TI2作为触发输入源√6). TIMx_CR1: CEN =1; 启动计数器*/void TIM3_External_Clock_CountingMode(void){GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;// TIM_ICInitTypeDef TIM_ICInitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);TIM_DeInit(TIM3);TIM_TimeBaseStructure.TIM_Period = 0xFFFF;TIM_TimeBaseStructure.TIM_Prescaler = 0x00;TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; /*定时器时钟(CK_INT)频率与数字滤波器(ETR,TIx)使用的采样频率之间的分频比为1*/TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit( TIM3, &TIM_TimeBaseStructure); // Time base confi guration/*tmpccmr1 |= (uint16_t)(TIM_ICFilter << 12); // CCMR1_IC2F tmpccmr1 |= (uint16_t)(TIM_ICSelection << 8); // CCMR1_CC2S由TIM_TIxExternalCLK1Source_TI2决定了TIM_ICSelection=TIM_ICSelection_DirectTI: CCMR1_CC2S = 01;TIM_ICPolarity_Rising = CCER_CC2PTIM_TIxExternalCLK1Source_TI2 = TIM_SMCR_TS该函数定义了TIM_SlaveMode_External1;外部时钟模式1*/TIM_TIxExternalClockConfig(TIM3,TIM_TIxExternalCLK1Source_TI2,TIM_ICPo larity_Rising,0);//// TIM_SetCounter(TIM3, 0); // 清零计数器CNT// TIM_Cmd(TIM3,ENABLE);}// 下面是使用方法:TIM3_External_Clock_CountingMode();TIM_SetCounter(TIM3, 0); // 清零计数器CNTTIM_Cmd(TIM3,ENABLE);SecCnt = 0;TFgs.Secok = 0;i=0;while(1){Delay_Nms(1000);CountPulse = TIM_GetCounter(TIM3);DisplayDat(10,10+24*i,CountPulse,5);TFgs.Secok = 0;if(++CountTims>=120){TIM_Cmd(TIM3,DISABLE);CountPulse = TIM_GetCounter(TIM3);DisplayDat(10,10+24*i,CountPulse,5);if(++i>11)i=0;TIM_SetCounter(TIM3, 0); // 清零计数器CNTTIM_Cmd(TIM3,ENABLE);SecCnt = 0;TFgs.Secok = 0;CountTims =0;}};上述程序经过硬件测试。

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

实验三脉冲计数(定时/计数器的记数功能实验)
1、实验目的:
(1)熟悉8031定时/计数器的记数功能,
(2)掌握初始化编程方法
(3)掌握中断程序的调试方法
2、实验内容:
定时/记数器0对外部输入的脉冲进行计数,并送显示器显示。

3.实验电路图:
方案1方案2
4、实验器材:
(1)超想-3000TB综合实验仪 1 台
(2)超想3000仿真器 1 台
(3)连线若干根
(4)计算机 1 台
5、实验连线:
方案1:总线插孔的P3.4接脉冲源的DOWN,按下脉冲按钮,观察数码管上
计数脉冲的个数。

方案2:总线插孔的P3.4接脉冲源的0.25M,观察数码管上计数脉冲的个数。

6、实验原理:
MCS-51有两个16位的定时/计数器:T0和T1。

计数和定时实质上都是对脉
冲信号进行计数,只不过脉冲源不同而已.当工作在定时方式时,计数脉冲来自
单片机的内部,每个机器周期使计数器加1,由于计数脉冲的频率是固定的(即
每个脉冲为1个机器周期的时间),故可通过设定计数值来实现定时功能。

当工
作在计数方式时,计数脉冲来自单片机的引脚,每当引脚上出现一个由1到0
的电平变化时,计数器的值加1,从而实现计数功能。

可以通过编程来指定时计
数器的功能,以及它的工作方式。

读取计数器的当前值时,应读3次。

这样可以
避免在第一次读完后,第二次读之前,由于低位溢出向高位进位时的错误。

7、程序框图
8、程序清单
; “验证式”实验三脉冲计数(定时/记数实验)
;对定时器0外部输入的脉冲信号进行计数且显示
OUTBIT equ 0e101h
CLK164 equ 0e102h ; 段控制口(接164时钟位)
DAT164 equ 0e102h ; 段控制口(接164数据位)
LEDBuf equ 40h
ORG 0000h
MOV SP,#60H
MOV DPTR,#0e100H ;8155初始化
MOV A,#03H
MOVX @DPTR,A
MOV TMOD,#05H ;定时器初始化
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
LOOP0:
MOV R2,TH0
MOV R3,TL0
LCALL LOOP1 ;调用二转十子程序,结果放在R4 R5 R6中MOV R0,#40H
MOV A,R6
LCALL PTDS
MOV A,R5
LCALL PTDS
MOV A,R4
LCALL PTDS
LCALL DISPLAY
SJMP LOOP0
LOOP1:
CLR A ;二转十子程序
MOV R4,A
MOV R5,A
MOV R6,A
MOV R7,#10H
LOOP2:
CLR C
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV A,R6
ADDC A,R6
DA A
MOV R6,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
DJNZ R7,LOOP2
RET
PTDS: MOV R1,A ;拆字子程序
ACALL PTDS1
MOV A,R1
SWAP A
PTDS1: ANL A,#0FH
MOV @R0,A
INC R0
RET
Delay:
mov r7, #0 ; 延时子程序
DelayLoop:
djnz r7, DelayLoop
djnz r6, DelayLoop
ret
DISPLAY:setb 0d3h
mov r0, #LEDBuf
mov r1, #6 ; 共6个八段管 mov r2, #00000001b ; 从左边开始显示Loop:
mov dptr, #OUTBIT
mov a, #00h
movx @dptr, a ; 关所有八段管
mov a, @r0
mov dptr,#LEDmap
movc a,@a+dptr
mov B, #8 ; 送164
DLP:
rlc a
mov r3, a
mov acc.0, c
anl a,#0fdh
mov dptr, #DAT164
movx @dptr, a
mov dptr, #CLK164
orl a,#02h
movx @dptr, a
anl a,#0fDh
movx @dptr, a
mov a, r3
djnz B, DLP
mov dptr, #OUTBIT
mov a, r2
movx @dptr, a ; 显示一位八段管 mov r6, #1
call Delay
mov a, r2 ; 显示下一位
rl a
mov r2, a
inc r0
djnz r1, Loop
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a ; 关所有八段管
clr 0d3h
ret
LEDMAP: ; 八段管显示码
db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h END。

相关文档
最新文档