脉冲计数(定时计数器实验)
定时器的设计实验报告
定时器的设计实验报告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计数器芯片的高稳定性和高精度,使得定时器的性能表现较好。
然而,该设计存在一个缺点,即计数器位数的限制。
由于计数器位数的限制,导致定时的最大时间间隔受到了限制。
脉冲计数
实验九脉冲计数(定时/计数器实验)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)通过实验了解单片机如何进行数据采集。
单片机脉冲计数
单片机实验报告班级:自动0903姓名:一.软件实验实验题目:脉冲计数(定时/计数器实验)1,实验目的:熟悉单片机内部定时/计数器功能,掌握初始化编程方法。
2,实验内容:把外部中断0输入的脉冲进行计数,并送数码管显示。
仿真电路图如下所示:设定频率发生器为50Hz程序如下:#include <reg51.h>sbit P2_0=P2^0; //数码管选定位sbit P2_1=P2^1;sbit P2_2=P2^2;sbit P2_3=P2^3;unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; unsigned int motorspeed;unsigned char GE,SHI,BAI,QIAN;unsigned int counter=0; //脉冲数unsigned int calsp; //设定多长时间计算一次void display(); //数码管显示void delay(); //延迟函数void calspeed();void main(){EA=1; //开启总中断EX0=1; //开启外部中断0IT0=1; //设置成下降沿触发方式TMOD=0x01; //设置定时器0为模式1,即16位计数模式TH0=(65536-10000)/256; //计数时间为10msTL0=(65536-10000)%256;ET0=1; //开启定时器0中断TR0=1; //启动定时器0P2=P2&0xf0;while(1){display();calspeed();}}void calspeed(){if(calsp>=100) //100*10ms=1s计算一次{motorspeed=counter;counter=0; //清零脉冲数calsp=0; //清零标志}}void _TIMER0() interrupt 1{TH0=(65536-10000)/256; //重新装入初值,计数时间为10ms TL0=(65536-10000)%256;calsp++;}void _INT0() interrupt 0{counter++;}void display() //数码管显示函数{GE=motorspeed%10;SHI=motorspeed/10%10;BAI=motorspeed/100%10;QIAN=motorspeed/1000%10;P2_0=1;P0=table[QIAN];delay();P2_0=0;P2_1=1;P0=table[BAI];delay();P2_1=0;P2_2=1;P0=table[SHI];delay();P2_2=0;P2_3=1;P0=table[GE];delay();P2_3=0;}void delay() //延迟函数{unsigned char i=10;while(i--);}二.硬件实验实验题目:用单片机控制二极管1,实验目的:熟悉用单片机控制二极管及其编程方法2,实验内容:跑马灯显示二极管仿真电路图如下所示:程序如下:#include <reg51.h>#include <intrins.h>void delay();//延时子函数void main(void){unsigned char temp;temp=0xfe;while(1){P2=temp;delay();temp=_crol_(temp,1);}}void delay(){unsigned int y;y=10000;while(y--);}。
8253可编程定时计数器应用实验
8253可编程定时计数器应用实验一、实验要求:按照电路图连接好电路,利用8253定时计数器0产生500Hz,250Hz,125Hz 的方波信号,显示在示波器上;然后用8253定时计数器1制作一个频率计以检测4060和定时计数器0输出方波的频率。
二、实验目的:1、了解如何利用计数器(以4060为例)制作分频器2、熟悉8253在系统中的典型接法。
3、掌握8253的工作方式及应用编程。
三、实验电路及连线:输入时钟产生模块YQNQLQJQIQHQGQFQEQD图1,分频器4060就是一个纯粹的计数器,当作分频用,QD-DN就是对输入频率的4分频-8192分频,直接接到8253相应的定时器计数器时钟输入端口即可8253接口模块X图2,定时器计数器8位数据线和单片机的P0口相连;片选信号CS和P1.0相连;WR/RD分别和单片机相应的WR/RD相连;A0,A1分别和单片机的P3.4、P3.5相连;CLK0直接和4060的QD时钟输出相连;OUT0接示波器和CLK1。
四、实验说明:8253是一款拥有3个完全相同的16位定时器计数器的定时器计数器芯片,三个通道完全独立,其引脚功能为D0-D7:8位数据双向I/O口WR/RD:写/读信号,低电平有效CS:片选信号,低电平有效GATE0-2:三个定时器计数器的门信号CLK0-2:三个定时器计数器的时钟输入信号OUT0-2:三个定时器计数器的输出信号A0,A1:定时器计数器读写地址选择,00 定时器计数器0;01定时器计数器1;10 定时器计数器2;11 控制寄存器定时器计数器采用倒计数,即每输入一个时钟脉冲自减1,当计数寄存器减为0时OUT输出一个脉冲信号,但输出受工作方式和GATE引脚控制。
定时时间=时钟脉冲周期×预置的计数初值8253的定时器计数器有6种工作模式,具体工作模式由状态寄存器决定,如下SC1,SC0:计数器选择 00:选择计数器001:选择计数器110:选择计数器2RW1,RW0:读/写指示 00:计数器锁存命令01:只读/写低 8位10:只读/写高 8位11:先读/写低8位,再读/写高 8位M2,M1,M0:定时器计数器工作方式选择:000-101,方式0-5BCD:计数寄存器数制选择,1:BCD码;0:二进制码8253每个定时器计数器都有6种工作方式,具体如下所述方式0:计数结果中断方式8253工作于方式0时,在写入初始值n后,GATE为高电平时开始计数,OUT 为输出低电平,直到计数器为0,OUT变为高电平直到下次计数开始再变为低电平。
8253定时计数器实验
8253定时器/计数器实验一、实验目的:1、进一步了解可编程定时/计数器8253的特点与功能;2、掌握8253定时/计数器的应用、编程方法。
二、实验设备:MUT—Ⅲ型实验箱、8086CPU模块、示波器。
三、实验内容:用定时/计数器8253的计数器0、计数器1级联实现1秒的定时。
使OUT1端所接发光二极管每隔1S闪烁一次,模拟电子秒表或信号报警器。
两个计数器皆工作于方式3(输出方波),CLK0端接频率为750KHz的时钟。
四、实验电路:本实验用到两部分电路:时钟脉冲发生器(脉冲产生电路)(见附录)、8253定时器/计数器(1片)。
电路原理图如图1所示。
图1:8253定时/计数器实验电路五、实验步骤:(1)实验连线:CS0连CS8253,8253CLK0连时钟脉冲发生电路的CLK3,OUT0连8253CLK1,OUT1连LED1。
如图2所示。
注意:GATE信号线、数据线、地址线、读写控制信号线均已接好。
图2:线路连接示意图(2)输入以下程序,编译、链接后,全速运行,观察实验结果。
;8253初始化参考程序CODE SEGMENTASSUME CS:CODEORG 0100HSTART:MOV DX,04A6H ;控制寄存器地址MOV AL,00110110B ;计数器0控制字:方式3,二进制计数OUT DX,ALMOV DX,04A0H ;计数器0的口地址MOV AL,0EEH ;写计数初值低8位OUT DX,ALMOV AL,02H ;写计数初值高8位OUT DX,ALMOV DX,04A6H ;控制寄存器地址MOV AL,01110110B ;计数器1控制字:方式3,二进制计数OUT DX,ALMOV DX,04A2H ;计数器1的口地址MOV AL,0E8H ;计数初值低8位OUT DX,ALMOV AL,03H ;计数值高8位OUT DX,ALNEXT: NOPJMP NEXT ;CPU在此循环执行空操作,说明8253独立工作。
8254定时与计数器实验
XX学院实验报告实验名称姓名学号班级教师日期一、实验内容与要求1.1 实验内容本次实验分为如下2个子实验:(1)计数应用实验:编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按下‘KK1+’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’;(2)定时应用实验:编写程序,应用8254的定时功能,产生一个1s的方波,并用本装置的示波器功能来观察。
1.2 实验要求本次实验中2个子实验的实验要求如下:(1)计数应用实验:将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“M”;(2)定时应用实验:将8254的计数器0和计数器1都设置为方式3,用信号源1MHz作为CLK0时钟,OUT0为波形输出1ms方波,再通过CLK1输入,OUT1输出1s方波。
二、实验原理与硬件连线2.1 实验原理8254是Intel公司生产的可编程间隔定时器。
是8253的改进型,比8253具有更优良的性能。
8254具有以下基本功能:(1)有三个地理的16位计数器。
(2)每个计数器可按二进制或十进制(BCD)计数。
(3)每个计数器可编程工作于6种不同的工作方式。
(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz)。
(5)8254有读回命令(8253,没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为:n=f CLKi÷f OUTi,其中f CLKi是输入时钟脉冲的频率,f OUTi是输出波形的频率。
图2-1是8254的内部结构框图和引脚图,它是由与CPU的接口,内部控制电路和三个计数器组成。
8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。
(2)方式1:硬件可重触发单稳方式。
单片机定时器计数器实验报告
文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.单片机定时器计数器实验报告篇一:单片机计数器实验报告篇一:单片机计数器实验报告计数器实验报告计数器实验报告㈠ 实验目的实验目的1. 学习单片机内部定时学习单片机内部定时//计数器的使用和编程方法;计数器的使用和编程方法;2. 2.进一步掌握中断处理程序的编程方法。
进一步掌握中断处理程序的编程方法。
㈡ 实验器材实验器材1. 2. 3. 4. 5.G6W 仿真器一台仿真器一台 MCS MCS —51实验板实验板 一台一台一台 PC PC 机 一台一台一台 电源 一台一台一台 信号发生器信号发生器 一台一台㈢ 实验内容及要求实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4P3.4((T0T0)引脚进行计数,使用)引脚进行计数,使用8051的T1作定时器,作定时器,50ms 50ms中断一次,看T0内每50ms 来了多少脉冲,将计数值送显(通过LED 发光二极管8421码来表示),1秒后再次测试。
秒后再次测试。
㈣ 实验说明实验说明1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入引入定时器T0T0。
单片机在每个机器周期采样一次输入波形,。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。
能超过机器周期频率。
2. 2. 计数脉冲由信号发生器输入(从计数脉冲由信号发生器输入(从T0端接入)。
3. 计数值通过发光二极管显示,要求:显示两位,十位用L4L4~~L1的8421码表示,个位用L8L8~~L5的8421码表示码表示4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动算出每分钟脉搏跳动次数并显示次数并显示㈤ 实验框图实验框图((见下页见下页) )程序源代码程序源代码 ORG 00000H LJMP MAIN ORG 00000H LJMP MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOVTH1,#3CHMOV TL0,#00H;T0的中断入口地址的中断入口地址 ; ;设置T1做定时器做定时器,T0,T0做计数器,都于方式1工作工作 ; ;装入中断次数装入中断次数装入中断次数 ; ;装入计数值低装入计数值低8位 ;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0SETB ET1 ;允许T1中断中断 SETB EA ; SETB EA ;允许CPU 中断中断 SJMP $; SJMP $;等待中断等待中断MAIN1: PUSH PSW PUSH ACC CLR TR0CLR TR1 MOV TL1,#0B0H MOV TH1,#3CHDJNZ 20H,RETUNT MOV 20H ,#14HSHOW: MOV R0,TH0 MOV R1,TL0MOV A,R1 MOV B,#0AH DIV ABMOV C,ACC.3MOV P1.0,C MOV C,ACC.2 MOV P1.1,C MOVC,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,CMOV A,B MOV C,ACC.3MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0MOV P1.7,C ;保护现场保护现场;装入计数值低8位;装入计数值高8位,50ms;,50ms;允许允许T1中断中断;未到1s,1s,继续计时继续计时继续计时 ;1s ;1s 到重新开始到重新开始;显示计数器T0的值的值;;读计数器当前值读计数器当前值 ; ;将计数值转为将计数值转为十进制十进制;显示部分,将A 中保存的十位赋给L0~L3 将B 中保存的各位转移到A 中 ;将个位的数字显示在将个位的数字显示在L4~L7上;RETUNT:MOV TL0,#00H;将计数器将计数器T0清零清零 MOV TH0,#00H MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回中断返回在频率为1000HZ 时,时,L0~L7L0~L7显示为5050;频率为;频率为300HZ时,时,L0~L7L0~L7显示为1515,结果正确,程序可以正确运行。
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. 实验器材:- 定时器计数器模块- 电源- 示波器- 连接线- 电阻、电容等元件2. 实验原理:定时器计数器是一种能够产生精确时间间隔的电子元件。
它通常由一个时钟信号源和一个计数器组成。
时钟信号源提供固定频率的脉冲信号,计数器根据时钟信号的输入进行计数,并在达到设定值时触发相应的操作。
三、实验步骤1. 连接电路:将定时器计数器模块与电源和示波器连接起来,确保电路连接正确。
2. 设置参数:根据实验要求,设置定时器计数器的工作频率、计数范围等参数。
这些参数可以通过调节电阻、电容等元件来实现。
3. 运行实验:启动电源,观察示波器上的波形变化。
根据设定的参数,定时器计数器将在一定时间间隔内产生脉冲信号,并在达到计数值时触发相应的操作。
4. 数据记录和分析:记录实验过程中的数据和观察结果,并进行分析。
比较实验结果与理论预期的差异,找出可能的原因并提出改进措施。
四、实验结果与讨论通过实验,我们观察到定时器计数器在不同参数设定下的工作情况。
根据实验数据和观察结果,我们可以得出以下结论:1. 定时器计数器的工作频率与输入时钟信号的频率有关。
当时钟信号频率较高时,定时器计数器的计数速度也会相应增加。
2. 定时器计数器的计数范围决定了其能够计数的最大值。
当计数器达到设定的计数范围时,将触发相应的操作。
3. 定时器计数器可以应用于各种计时和计数的场合,如脉冲计数、频率测量等。
通过调节参数,可以实现不同的功能。
根据实验结果,我们可以进一步探索定时器计数器的应用领域和优化方法,提高其性能和功能。
五、实验总结通过本次实验,我们深入了解了定时器计数器的原理和应用。
实验八定时器计数器8253实验
8253是Intel公司生产的一款可 编程定时器计数器。
它具有3个独立的16位计数器, 每个计数器都可以独立编程和控
制。
8253的计数器可以用于产生时 间间隔、脉冲信号、PWM(脉
宽调制)等。
8253的工作原理
825ቤተ መጻሕፍቲ ባይዱ的每个计数器都有一个预置 值,当计数达到预置值时,计数 器会自动回置并触发一个中断或
实验八:定时器计数器8253实验
contents
目录
• 实验简介 • 8253定时器计数器概述 • 实验步骤与操作 • 实验结果与分析 • 实验总结与思考
01 实验简介
实验目的
掌握8253定时器计 数器的工作原理。
了解定时器在计算机 系统中的应用。
学习如何编程控制 8253定时器计数器。
实验设备
01
微机实验箱
02
8253定时器计数器芯片
03
示波器
04
信号发生器
02 8253定时器计数器概述
定时器计数器的基本概念
定时器计数器是一种用于产生 时间间隔或计数的电子设备。
它通常由石英晶体振荡器驱动, 以提供稳定的计时基准。
定时器计数器广泛应用于计算 机、通信、自动化等领域。
8253的特性和功能
配置8253定时器计数器
设置工作模式
根据实验要求,选择适当的定时/计数 模式,如计数模式、定时模式或门控 模式等。
设置定时/计数初值
启动定时/计数
通过微处理器发送控制信号,启动 8253定时器计数器的定时/计数操作。
根据实验要求,设置适当的定时/计数 初值,以满足实验条件。
启动和观察实验结果
启动实验
加强实践环节
为了更好地理解和掌握相关知识,建议增加更多的实践环节,例 如组织小组讨论、分享经验等。
实验六定时器计数器应用实验报告
实验六定时器计数器应用实验报告一、实验目的本实验的目的是通过对定时器计数器的应用实验,加深对定时器和计数器工作原理的理解,掌握定时器的使用方法,并能灵活应用到实际工程中。
二、实验原理定时器是一种常用的计时设备,它可以在微处理器或微控制器系统中用于各种计数、计时和频率测量应用。
我们所面对的实验中使用的定时器是软件定时器,其工作原理是通过编程方式配置定时器的时钟源和计数器的计数范围,然后在主程序中通过中断或轮询的方式来读取计数器的值,从而实现不同的定时器功能。
计数器是一种用于计数的设备,它可以对外部信号的频率进行计数。
在本实验中,我们使用计数器来计算外部信号的脉冲数,并将计数结果显示出来。
三、实验材料1. STC89C52 单片机开发板2. 4位数码管3. 杜邦线若干4. 外部信号发生器四、实验步骤1. 连接电路图如下所示:(此处省略电路图)2. 打开 Keil μVision 软件并新建一个工程,选择合适的单片机型号。
3. 在主程序中初始化定时器和计数器,设置适当的时钟源和计数范围。
4. 设置外部中断,用于触发计数器开始计数。
5. 在中断服务程序中编写计数器处理逻辑,获取计数值并进行相应的操作。
6. 在主循环中,根据需求配置定时器,比如实现不同的定时功能,或者将计数结果显示在数码管上。
7. 编译、烧录程序到单片机开发板上,并进行实验验证。
五、实验结果经过实验,我们成功地实现了定时器计数器的应用功能。
通过设置不同的计数范围和外部触发条件,我们能够准确地计算出外部信号的脉冲数,并将计数结果显示出来。
同时,我们还实现了不同的定时功能,比如周期性触发中断、定时器中断延时等。
六、实验总结通过本次实验,我们深入理解了定时器和计数器的工作原理,并掌握了定时器的使用方法。
定时器计数器在实际工程中具有广泛的应用,比如用于频率测量、脉冲计数、定时触发等。
掌握了定时器计数器的使用,对于我们的工程开发和项目实施都具有重要的意义。
定时器计数器实验
一、AT89C51实验目的:
1.有两个定时/计数器,本试验中,将T1作为定时器用,定时50ms,T0作为计数器用,被计数的外部输入脉冲信号从单片机的P3.4接入,最大计数值为0ffffh。
单片机将在每50ms内对脉冲计数并送数码管实时显示,并利用T1定时从P3.7口输出周期为200ms占空比50%的方波。
2.用PROTEUS设计、仿真基于AT89C51单片机的脉冲计数与定时。
3.学会使用VSM虚拟示波器和计数/定时器
二、PROTEUS电路设计
本设计的电路原理图如图所示,这个设计都在ISIS平台中进行。
1.从PROTEUS库中选取元器件
①at89c51.bus:单片机
②7SEG-BCD-GRN:七段带译码BCD绿色数码管,
③button:按键
2.虚拟测试仪器
①vsm虚拟计数/定时器
单击工具栏,再在对象选择器中选中COUNTER TIMER(计数/计时器),打开其属性编辑况,单击运行模式下的下拉菜单如图,可以选择计数、频率、计时模式。
当前设置为计数模式。
②vsm虚拟示波器
单击工具栏,再在对象选择器中选中OSCILLOSCOPE,将P3.7与C信道连接。
三、原程序设计、生成目标代码文件
1.流程图
主程序流程
2.程序代码设计
四、proteus仿真
五、思考题
修改程序实现1S内对脉冲计数并送四位数码管实时显示,最大计数值为0ffffh,将COUNTER TIMER 属性设为频率,利用工具栏中的激励源DCLOCK作为脉冲输入源与p3.4口相连。
脉冲计数(定时计数器的记数功能实验)
实验三脉冲计数(定时/计数器的记数功能实验1、实验目的:(1熟悉8031定时/计数器的记数功能,(2掌握初始化编程方法(3掌握中断程序的调试方法2、实验内容:定时/记数器0对外部输入的脉冲进行计数,并送显示器显示。
3.实验电路图:方案1方案24、实验器材:(1超想-3000TB综合实验仪 1 台(2超想3000仿真器 1 台(3连线若干根(4计算机 1 台5、实验连线:方案1:总线插孔的P3.4接脉冲源的DOWN,按下脉冲按钮,观察数码管上计数脉冲的个数。
6、实验原理:MCS-51有两个16位的定时/计数器:T0和T1。
计数和定时实质上都是对脉冲信号进行计数,只不过脉冲源不同而已.当工作在定时方式时,计数脉冲来自单片机的内部,每个机器周期使计数器加1,由于计数脉冲的频率是固定的(即每个脉冲为1个机器周期的时间,故可通过设定计数值来实现定时功能。
当工作在计数方式时,计数脉冲来自单片机的引脚,每当引脚上出现一个由1到0 的电平变化时,计数器的值加1,从而实现计数功能。
可以通过编程来指定时计数器的功能,以及它的工作方式。
读取计数器的当前值时,应读3次。
这样可以避免在第一次读完后,第二次读之前,由于低位溢出向高位进位时的错误。
7、程序框图8、程序清单; “验证式”实验三脉冲计数(定时/记数实验;对定时器0外部输入的脉冲信号进行计数且显示OUTBIT equ 0e101hCLK164 equ 0e102h ; 段控制口(接164时钟位DAT164 equ 0e102h ; 段控制口(接164数据位LEDBuf equ 40hORG 0000hMOV SP,#60HMOV DPTR,#0e100H ;8155初始化MOV A,#03HMOVX @DPTR,AMOV TMOD,#05H ;定时器初始化MOV TH0,#00HMOV TL0,#00HSETB TR0LOOP0:MOV R2,TH0MOV R3,TL0LCALL LOOP1 ;调用二转十子程序,结果放在R4 R5 R6中MOV R0,#40H MOV A,R6LCALL PTDSMOV A,R5LCALL PTDSMOV A,R4LCALL PTDSLCALL DISPLAYSJMP LOOP0LOOP1:CLR A ;二转十子程序MOV R4,AMOV R5,AMOV R6,AMOV R7,#10H LOOP2: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,LOOP2RETPTDS: MOV R1,A ;拆字子程序ACALL PTDS1MOV A,R1SWAP APTDS1: ANL A,#0FHMOV @R0,AINC R0RETDelay:mov r7, #0 ; 延时子程序DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDISPLAY:setb 0d3hmov r0, #LEDBufmov r1, #6 ; 共6个八段管 mov r2, #00000001b ; 从左边开始显示Loop: mov dptr, #OUTBITmov a, #00hmovx @dptr, a ; 关所有八段管mov a, @r0mov dptr,#LEDmapmovc a,@a+dptrmov B, #8 ; 送164DLP:rlc amov r3, amov acc.0, canl a,#0fdhmov dptr, #DAT164movx @dptr, amov dptr, #CLK164orl a,#02hmovx @dptr, aanl a,#0fDhmovx @dptr, amov a, r3djnz B, DLPmov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管 mov r6, #1 call Delaymov a, r2 ; 显示下一位rl amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管clr 0d3hretLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h END。
定时器计数器应用实验二
一、实验目的1、掌握定时器/计数器计数功能的使用方法。
2、掌握定时器/计数器的中断、查询使用方法。
3、掌握Proteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
二、设计要求1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。
2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。
三、实验程序流程图和程序清单程序一、ORG 0000HLJMP MAINMAIN: MOV TMOD, #06HMOV TH0, #9CHMOV TL0, #9CHSETB TR0HERE: JNB TF0, HERECPL P1.0CLR TF0LJMP HEREEND程序二、ORG 0000HLJMP MAINORG 000BHLJMP ITPOMAIN: MOV SP, #2FHMOV TMOD, #06HMOV TH0, #38HMOV TL0, #38HMOV IE, #82HSETB TR0 开始计数器初始化开定时器0TF0=1?P1.0取反TF0清零结束Y开始计数器、中断初始化开定时器0等待结束ITPO P1.0取反返回HERE: LJMP HEREITPO: CPL P1.0RETIEND四、实验仿真图五、实验结果图图一(查询、输入为100us输出为20ms)图二(中断、输入为100us输出为40ms)六、实验心得本次实验室利用定时计数器的功能,分别利用查询法和中断法实现,在本次实验中产生的方波的周期为毫秒级别,所以看不出误差,和上一个实验比较,可以看出误差只存在微妙级,当产生较大周期的方波时,误差几乎为0.七、思考题1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。
定时器计数器的定时实验
定时器计数器的定时实验简介本文将介绍定时器计数器的定时实验,主要涉及定时器计数器的原理、使用方法以及实验步骤。
定时器计数器是一种常用的计时设备,广泛应用于各种计时场景。
定时器计数器的原理定时器计数器是一种能够精确计时的设备,它通常由一个可编程的时钟和一个计数器组成。
计数器根据时钟的脉冲信号进行计数,从而实现计时的功能。
定时器计数器的工作原理如下:1.初始化计数器:将计数器的初始值设置为0。
2.启动计数器:通过控制信号将时钟输入到计数器中,开始计数。
3.计数过程:计数器根据时钟的脉冲信号进行计数,每接收到一个时钟脉冲,计数器的值加1。
4.判断定时完成:当计数器的值等于设定的定时值时,表示定时完成。
5.停止计数器:定时完成后,停止时钟信号的输入,计数器停止计数。
定时器计数器的使用方法定时器计数器通常由软件通过编程的方式进行使用,具体方法如下:1.初始化定时器计数器:首先,需要将计数器的初始值设置为0,并且设定定时的时间。
2.启动计数器:通过控制信号将时钟输入到计数器中,开始计数。
3.监测计数器的值:在计数的过程中,可以通过查询计数器的值来获取当前的计时结果。
4.判断定时完成:当计数器的值等于设定的定时值时,表示定时完成。
5.停止计数器:定时完成后,停止时钟信号的输入,计数器停止计数。
实验步骤以下是一个简单的实验步骤,用于演示定时器计数器的定时功能:1.准备硬件:–打开开发板,并确保定时器计数器的引脚与外部设备连接正常。
–连接调试器,以便在实验过程中监测计数器的值。
2.编写代码:–在开发环境中,编写一段代码,完成实验的需求,包括初始化计数器、设定定时值等。
3.烧录程序:–将编写好的程序烧录到开发板中。
4.启动实验:–启动开发板,开始实验。
5.监测计数器的值:–在实验过程中,通过调试器监测计数器的值,以便实时了解计时结果。
6.判断定时完成:–当计数器的值等于设定的定时值时,表示定时完成,可以进行相关操作,如触发其他事件、输出提示信息等。
脉冲计数实验报告
脉冲计数实验报告实验目的1. 了解脉冲计数的基本原理和方法;2. 熟悉使用计数器进行脉冲计数实验。
实验器材1. 脉冲信号发生器2. 数字计时器3. 示波器4. 连线电缆实验原理脉冲计数是通过计数器对一定时间内的脉冲数量进行计数的方法。
实验中我们使用数字计时器作为计数器,利用示波器观察脉冲信号的频率和幅度。
实验步骤1. 将脉冲信号发生器的信号输出端与计数器的输入端相连;2. 将计数器的输出端与数字计时器的输入端相连;3. 设置脉冲信号发生器的频率和幅度,并调节示波器观察脉冲信号;4. 启动数字计时器开始计时;5. 观察数字计时器的显示结果,并记录下实验数据;6. 更改脉冲信号发生器的频率和幅度,重复步骤3-5,直至完成所有需要的实验数据。
实验结果在本次实验中,我们设置了不同的脉冲信号频率和幅度,以观察计数器的计数情况。
脉冲信号频率(Hz)幅度(V)计数结果信号1 100 1 5000信号2 1000 1 50000信号3 10000 1 500000从实验结果中可以看出,计数结果与脉冲信号的频率成正比。
当频率增加时,计数结果也相应增加。
幅度的变化对计数结果没有明显影响。
实验分析实验结果符合预期,脉冲信号的频率对计数结果有较大影响。
这是因为计数器在一定时间内记录脉冲的个数,频率越高,单位时间内脉冲的个数越多,计数结果也就越大。
另外,幅度变化对计数结果没有明显影响,这是因为计数器只计算脉冲的个数,并不关注脉冲的幅度大小。
实验总结本次实验通过使用计数器对脉冲进行计数,加深了我们对脉冲计数原理的理解,并且通过实验验证了频率对计数结果的影响。
同时,我们还学会了使用示波器观察脉冲信号,数字计时器进行计时。
此外,实验中我们还注意了正确连接实验器材,遵守实验室安全规定。
实验改进为了进一步完善实验,可以考虑以下改进点:1. 增加实验次数以提高结果的准确性;2. 增加更多不同频率和幅度的脉冲信号,以观察计数结果的多样性;3. 进一步研究幅度对计数结果的影响,可能会发现某些特定条件下的异常情况。
定时计数器实验-单片机
单片机实验报告G A T EC /TM 1M 0G A T EC /TM 1M 0TH1TL1TH0TL0T1方式T1引脚T0引脚机器周期脉冲内部总线TMODTCON 外部中断相关位T F 1T R 1T F 0T R 0实验五 定时/计数器实验一、实验目的1.学习8051内部定时/计数器的工作原理及编程方法; 2.掌握定时/计数器外扩中断的方法。
二、实验原理8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。
它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。
作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。
计数的最高频率一般为振荡频率的1/24。
定时/计数器的结构:定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
计数器初值的计算:设计数器的最大计数值为M(根据不同工作方式,M 可以是213、216或28),则计算初值X的公式如下:X=M-要求的计数值(十六进制数)定时器初值的计算:在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。
因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc)80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。
TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。
❖工作方式寄存器TMOD:工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
其格式如下:GATE:门控位。
GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验电路及连线 : P3.4接一计数脉冲(25模块中的153.6K频率)。
PO0—PO7接L0—L7。CS273接8300H。
实验连线示意图
实验说明:
1.本实验中内部计数器起计数器的作用。外部事件计 数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样 一次输入波形,因此单片机至少需要两个机器周期才能检 测到一次跳变。这就要求被采样电平至少维持一个完整的 机器周期,以保证电平在变化之前即被采样。同时这就决 定了输入波形的频率不能超过机器周期频率。 2.实验时P3.4对应的连线为149.06KHZ孔,0.5ms内来 了80次(50H)脉冲。
实验结束
脉冲计数(定时计数器实验)
实验要求:
8031内部定时计数器,按计数器模式和方式1工 作,对P3.4(T0)引脚进行计数。使用8031的T1
作定时器,50ms中断一次,看T0内每0.50ms来了
多少脉冲,将其数值按二进制数在74LS273驱动 LED灯上显示出来,5秒后再次测试。
实验目的:
1.学习8031内部定时/计数器使用方法 。
ORG
0000H AJMP START ORG 000BH ;T0中断入口地址 RETI ORG 001BH ;T1中断入口地址 AJMP INT_T1 ORG 0040H START: MOV SP,#60H MOV TMOD,#1DH ;置T1为方式1 ;置T0为方式1,计数方式, ;门控选通位有效 MOV TL0,#0H ;计数器清零 MOV TH0,#0H MOV TL1,#32H ;延时0.50mS常数 MOV TH1,#0FEH MOV R0,#20 ;延时 5 秒常数 SETB TR0 ;启动T0 SETB ET0 SETB TR1 ;启动T1 SETB ET1 SETB EA ;开中断 SJMP $
源代码:
INT_T1: PUSH ACC PUSH PSW CLR TR1 MOV TL1,#32H ;延时0.50mS 常数 MOV TH1,#0FEH MOV R1,TL0 ;保存计数值 MOV R2,TH0 MOV TL0,#00H ;清计数器 MOV TH0,#00H SETB TR1 DJNZ R0,EXIT MOV R0,#20 ;延时 5 秒常数 MOV DPTR,#8300H ;LED地址 MOV A,R1 MOVX @DPTR,A ;把计数值在 LED上显示 EXIT: POP PSW POP ACC RETI END