定时器实验报告

合集下载

定时器计数器实验报告

定时器计数器实验报告

定时器计数器实验报告
《定时器计数器实验报告》
实验目的:通过定时器计数器实验,掌握定时器的基本原理和使用方法,以及
探究定时器在电子设备中的应用。

实验材料:定时器计数器、电源供应器、示波器、电阻、电容等元器件。

实验步骤:
1. 搭建电路:按照实验指导书上的电路图,搭建定时器计数器的电路。

2. 接通电源:将电路接通电源,并调节电源供应器的输出电压和电流。

3. 调节参数:通过调节电阻、电容等元器件的数值,调节定时器计数器的工作
频率和工作周期。

4. 测量波形:使用示波器测量定时器计数器输出的波形,观察波形的频率、占
空比等参数。

5. 实验记录:记录实验过程中的关键参数和观察结果,包括电路连接方式、元
器件数值、波形频率和占空比等。

实验结果:
经过实验观察和记录,我们得出了定时器计数器在不同参数设置下的工作波形,包括方波、脉冲波等。

通过调节电阻、电容等元器件的数值,我们成功改变了
定时器计数器的工作频率和工作周期,并且得到了不同频率和占空比的波形。

实验总结:
通过本次实验,我们深入了解了定时器计数器的工作原理和使用方法,掌握了
定时器在电子设备中的应用。

定时器计数器是一种非常重要的电子元器件,广
泛应用于各种电子设备中,如计时器、脉冲发生器、频率分频器等。

掌握了定
时器计数器的基本原理和使用方法,对我们今后的电子工程实践和研究具有重要意义。

在今后的学习和工作中,我们将继续深入研究和应用定时器计数器,不断提高自己的电子技术水平,为电子设备的设计和应用做出更大的贡献。

单片机定时器实验报告

单片机定时器实验报告

一、实验目的1. 理解单片机定时器的工作原理和功能。

2. 掌握单片机定时器的编程方法,包括初始化、设置定时时间、启动定时器等。

3. 学会使用定时器实现定时功能,并通过实验验证其效果。

二、实验器材1. 单片机实验板2. 连接线3. 51单片机4. 计时器5. 示波器6. 电脑7. Keil软件三、实验原理定时器是单片机的一种重要外设,用于实现定时功能。

51单片机内部有两个定时器,分别为定时器0和定时器1。

定时器的工作原理是通过定时器计数器对机器周期进行计数,当计数器达到设定值时,定时器溢出,并产生中断请求。

定时器0和定时器1都具有四种工作模式,分别为:1. 模式0:13位定时器/计数器2. 模式1:16位定时器/计数器3. 模式2:8位自动重装模式4. 模式3:两个8位计数器本实验采用定时器0工作在模式1,实现50ms的定时功能。

四、实验步骤1. 将单片机实验板连接到电脑,并启动Keil软件。

2. 创建一个新的项目,并添加51单片机头文件(reg51.h)。

3. 编写定时器初始化函数,设置定时器0工作在模式1,并设置定时时间为50ms。

4. 编写定时器中断服务函数,用于处理定时器溢出事件。

5. 编写主函数,设置定时器中断,并启动定时器。

6. 编译并下载程序到单片机实验板。

7. 使用示波器观察定时器0的溢出信号。

五、实验代码```c#include <reg51.h>#define TIMER0_MODE1 0x01// 定时器0初始化函数void Timer0_Init() {TMOD &= 0xF0; // 清除定时器0模式位TMOD |= TIMER0_MODE1; // 设置定时器0工作在模式1TH0 = 0xFC; // 设置定时器0高8位初值TL0 = 0x18; // 设置定时器0低8位初值ET0 = 1; // 开启定时器0中断EA = 1; // 开启总中断TR0 = 1; // 启动定时器0}// 定时器0中断服务函数void Timer0_ISR() interrupt 1 {TH0 = 0xFC; // 重新加载定时器0高8位初值TL0 = 0x18; // 重新加载定时器0低8位初值// ... (其他处理)}void main() {Timer0_Init(); // 初始化定时器0while(1) {// ... (其他处理)}}```六、实验结果与分析1. 编译并下载程序到单片机实验板,使用示波器观察定时器0的溢出信号,可以看到定时器0每隔50ms产生一个溢出信号。

单片机定时器实验报告

单片机定时器实验报告

单片机定时器实验报告
单片机定时器实验报告
简介
•实验名称:单片机定时器实验
•实验目的:掌握单片机中定时器的工作原理及使用方法•实验设备:单片机开发板、电源等
实验内容
1.单片机定时器的基本概念和原理
2.单片机定时器的分类和特点
3.实验步骤和流程
–步骤1:搭建实验电路
–步骤2:编写单片机程序
–步骤3:下载程序到单片机
–步骤4:观察定时器的工作情况
4.实验结果和分析
实验结果
•在实验过程中,我们成功搭建了单片机定时器实验电路,并编写了相应的程序。

通过下载程序到单片机,观察到定时器按照预设
的时间间隔产生中断,并执行相应的任务。

•实验结果表明,我们掌握了单片机定时器的使用方法,可以实现定时功能。

实验分析
•单片机定时器是一种重要的计时和控制设备,广泛应用于各种电子设备中。

•通过本次实验,我们深入了解了单片机定时器的工作原理和使用方法,对于日后的电子设计和开发有着重要的意义。

实验总结
•通过本次实验,我们学习了单片机定时器的基本知识,掌握了单片机定时器的使用方法,并成功实现了定时功能。

•在实验过程中,我们发现了一些问题,并通过调试和修改程序进行了解决。

这对我们提高了动手实践和问题解决能力有很大帮助。

•通过本次实验,我们对于单片机定时器有了更深入的了解,为今后的学习和应用打下了坚实的基础。

参考资料
•《单片机原理与应用》
•单片机实验教材及课件。

555定时器 实验报告

555定时器 实验报告

555定时器实验报告555定时器实验报告引言:555定时器是一种常用的集成电路,具有广泛的应用领域。

本实验旨在通过对555定时器的实验研究,探索其工作原理和特性,并进一步了解其在电子电路中的应用。

一、实验目的本实验的主要目的是:1. 了解555定时器的基本结构和工作原理;2. 掌握555定时器的基本参数和特性;3. 学习使用555定时器设计和实现简单的定时器电路。

二、实验原理555定时器是一种集成电路,由比较器、RS触发器和输出驱动器组成。

它可以工作在单稳态、多稳态和振荡器模式下,具有广泛的应用。

555定时器的主要参数有供电电压、触发电平、输出电流等。

三、实验步骤1. 实验前准备:准备好实验所需的555定时器芯片、电源、电阻、电容等器件。

2. 搭建电路:按照实验指导书上的电路图搭建555定时器电路。

3. 调试电路:根据实验指导书上的调试步骤,逐步调整电路参数,确保电路正常工作。

4. 测量参数:使用万用表等仪器,测量电路中的电压、电流等参数,并记录下来。

5. 分析结果:根据实验数据,分析555定时器的工作特性和参数变化规律。

6. 总结实验:总结实验过程中遇到的问题和解决方法,总结实验结果和心得体会。

四、实验结果与分析在实验过程中,我们观察到555定时器在不同电路条件下的稳定工作。

通过调整电路参数,我们成功实现了定时器电路的设计和实现。

根据测量数据和分析结果,我们得出以下结论:1. 555定时器的稳定工作与供电电压、触发电平等参数密切相关;2. 555定时器的输出电流能力有一定限制,需要根据具体应用场景选择合适的驱动电路;3. 555定时器可以通过改变电阻和电容值来调整输出波形的频率和占空比。

五、实验应用555定时器具有广泛的应用领域,常见的应用包括:1. 交通信号灯控制:通过555定时器实现交通信号灯的定时控制,实现交通流畅和安全;2. 脉冲发生器:利用555定时器的振荡特性,设计和实现各种脉冲发生器电路;3. 声音发生器:通过555定时器产生不同频率的方波,实现声音发生器电路;4. 脉宽调制:利用555定时器的占空比可调特性,实现脉宽调制电路。

定时器的设计实验报告

定时器的设计实验报告

定时器的设计实验报告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. 学习使用定时器进行各种定时操作;3. 掌握定时器在实际应用中的一些常见使用方法。

二、实验器材:1. 8051单片机实验板;2. 电脑;3. 开发软件Keil C51;4. 适配器和连接线。

三、实验原理:定时器是一种常见的计时设备,用于测量时间的间隔或周期。

在8051单片机中,定时器可通过内部的计数器和控制寄存器实现。

在本次实验中,使用T0定时器作为实验对象。

四、实验步骤:1. 打开Keil C51软件,在新建的工程中编写程序代码;2. 配置P0口的3、4号引脚为输入模式;3. 设置T0定时器的工作模式和计时时间;4. 将定时器引脚输出的方波信号接到P1.0引脚,通过示波器观察方波信号;5. 烧录程序代码到8051单片机;6. 上电启动单片机,观察并记录示波器上的方波信号;7. 根据实验结果,分析定时器的工作原理和应用场景。

五、实验结果:根据本次实验的设置,T0定时器的工作模式为模式1,计时时间为1秒。

在示波器上观察到定时器引脚输出的方波信号的频率为1Hz,即每秒产生一个高电平和一个低电平。

六、分析与讨论:根据实验结果可知,T0定时器在计时时间到达后会产生一个中断,并且在中断时改变定时器引脚的电平。

在实际应用中,可以通过定时器来实现各种需要精确计时的操作,如定时采集数据、测量时间间隔等。

七、实验总结:通过本次实验,我们了解了定时器的基本原理和工作方式,并学习了如何使用定时器进行各种定时操作。

定时器在实际应用中具有广泛的用途,可以实现许多需要精确计时的功能。

掌握定时器的使用方法对于单片机的开发和应用具有重要意义。

八、实验感想:本次实验使我更加深入地了解了定时器的原理和应用,掌握了一些常见的定时操作方法。

定时器在微控制器系统中有着广泛的应用,对于提高系统的稳定性和可靠性有着重要作用。

通过实验的操作,我对定时器的使用和工作原理有了更加深入的认识,对于今后在单片机开发中的应用和调试能力的提高有着积极的促进作用。

定时器计数器实验报告

定时器计数器实验报告

定时器计数器实验报告简介:定时器是一种用来产生、计数和处理时间信号的计时装置。

在数字电路中,定时器主要分为内部定时器和外部定时器两类,内部定时器是在单片机内部实现的,外部定时器则是通过外部电路实现的。

计数器则是一种用来计数的电子元件,根据不同的使用场合和要求,计数器可以分为多种类型。

在嵌入式系统中,定时器计数器应用广泛,例如在时钟、延时、计数等方面都有很大的作用。

实验目的:1. 学习定时器和计数器的基本原理及应用。

2. 熟悉定时器和计数器在单片机中的编程方法。

3. 掌握通过定时器和计数器实现延时和计数功能的方法。

实验器材:1. STM32F103C8T6开发板2. ST-LINK V2下载器3. 电脑实验内容:一、实验1:使用定时器和计数器实现延时功能1. 在Keil C中新建一个工程,并编写以下程序代码:```#include "stm32f10x.h"void TIM2_Int_Init(u16 arr,u16 psc){TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure ;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);TIM_TimeBaseStructure.TIM_Period = arr;TIM_TimeBaseStructure.TIM_Prescaler=psc;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode _Up;TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE );NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM2, ENABLE);}void TIM2_IRQHandler(void){if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) {TIM_ClearFlag(TIM2, TIM_FLAG_Update);GPIO_WriteBit(GPIOB,GPIO_Pin_12,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_12)));}}int main(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);TIM2_Int_Init(9999,7199);while (1);}```2. 将STM32开发板连接到电脑,并下载程序到开发板中。

单片机定时器实验报告doc

单片机定时器实验报告doc

单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化121班 36 张礼一.实验目的掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。

二.实验仪器单片机开发板一套,计算机一台。

三.实验任务编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。

开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到 2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。

两片锁存器的输出使能端OE都恒接地,使得锁存器的内部数据保持器输出端与锁存器的输出端保持接通。

而U2的锁存使能端LE由P2.1控制,所以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。

当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。

汇编语言程序流程如图4-2:四.实验步骤:1.数码管的0~9的字型码表如下:2.参考图4-2所给的程序流程图编写实验程序。

(注:以下程序为两位60秒计数程序)#include sbit wei=P2^0; sbit duan=P2^1;char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};int i,j,k,num,shi,ge; void delay(int a) {for(i=0;i void display(int shi,int ge){wei=1;P1=0xfe;wei=0;duan=1;P1=table[shi];duan=0;wei=1; delay(5);P1=0xfd;wei=0; duan=1;P1=table[ge];duan=0; }void main() {TMOD=0x01;TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1; num=0; while(1) {delay(5);display(shi,ge); } }void T0_time() interrupt 1 {TH0=(65536-45872)/256; TL0=(65536-45872)%256; k++; if(k==20) { k=0; num++;if(num==60)num=0; shi=num/10; ge=num%10; } }3.实验接线,如图4-1。

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

电子信息工程学系实验报告
课程名称:单片机原理及接口应用Array实验项目名称:51定时器实验实验时间:
班级:姓名:学号:
一、实验目的:
熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。

了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。

掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。

二、实验环境:
软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件
三、实验原理:
1、51单片机定时计数器的基本情况
8051型有两个十六位定时/计数器T0、T1,有四种工作方式。

MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器:
方式控制寄存器TMOD;
加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位);
定时/计数到标志TF0、TF1(中断控制寄存器TCON)
定时/计数器启停控制位TR0、TR1(TCON)
定时/计数器中断允许位ET0、ET1(中断允许寄存IE)
定时/计数器中断优先级控制位PT0、PT1(中断优IP)
2、51单片机的相关寄存器设置
方式控制寄存器TMOD:
TMOD的低四位为T0的方式字,高四位为T1的方式字。

TMOD不能位寻址,必须整体赋值。

TMOD各位的含义如下:
1. 工作方式选择位M1、M0
3、51单片机定时器的工作过程(逻辑)方式一
方式1:当M1M0=01时,定时器工作于方式1。

T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。

若T1工作于定时方式1,计数初值为a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。

4、51单片机的编程
使用MCS-51单片机的定时/计数器的步骤是:
.设定TMOD,确定:
工作状态(用作定时器/计数器);
工作方式;
控制方式。

如:T1用于定时器、方式1,T0用于计数器、方式2,均用软件控制。

则TMOD的值应为:0001 0110,即0x16。

.设置合适的计数初值,以产生期望的定时间隔。

由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。

计数初值的计算方法如下,设晶振频率为fosc,则定时/计数器计数频率为fosc/12,定时/计数器的计数总次数T_all在方式0、方式1和方式2时分别为213 = 8192、216 = 65536和28 = 256,定时间隔为T,计数初值为a,则有
T = 12×(T_all – a)/fosc
a = T_all – T×fosc/12
a = – T×fosc/12 (注意单位)
THx = a / 256;TLx = a % 256;
.确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断:
ET0 = 1;EA = 1;
还需要编写中断服务函数:
void T0_srv(void)interrupt 1 using 1
{
TL0 = a % 256;
TH0 = a / 256;
中断服务程序段}
.启动定时器:TR0(TR1)= 1。

四、实验内容过程及结果分析:
利用protues仿真软件设计一个可以显示秒表时间的显示电路。

利用实验板上的一位led数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1s。

刚开始led数码管显示9,每过一秒数码管显示值减一,当显示到0时返回9,依此反复。

然后设计00-59的两位秒表显示程序。

(1)实现个位秒表,9-0
用protues进行流水灯的仿真需要的元件有AT89C51、CAP、BUTTON、LED-BLUE、RES、CRYSTAL、画出仿真图
Protues 仿真图
使用keil仿真软件编写程序和使用c51编写并进行调试。

仿真结果如下图所示
仿真结果图
程序:
#include<>
unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};
unsigned char a; unsigned char i=0; void delay(char z) {char x,y;
for(x=z;x>0;x--)
for(y=123;y>0;y--); }
main()
{TMOD=0x10;
TH1=-50000/256;
TL1=-50000%256;
EA=1;ET1=1;TR1=1; while(1);
} void time() interrupt 3 {TH1=-50000/256;
TL1=-50000%256;
a++;
if(a==10)
{a=0;
P2=0xfe;
P0=tab[9-i];
i++;
if(i==10)
i=0;
}
}
(2)实现两位秒表,00-59
使用keil仿真软件编写程序和使用c51编写并进行调试。

仿真结果如下图所示
仿真结果图
程序:
#include<>
unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};
unsigned char a; unsigned char i=0; void delay(char z) {char x,y;
for(x=z;x>0;x--)
for(y=123;y>0;y--); }
main()
{TMOD=0x10;
TH1=-50000/256;
TL1=-50000%256;
EA=1;ET1=1;TR1=1; while(1)
{P2=0xfe;
P0=tab[i/10];
delay(5); P2=0xfd;
P0=tab[i%10];
delay(5);
}
}
void time() interrupt 3 {TH1=-50000/256;
TL1=-50000%256;
a++;
if(a==10)
{a=0;
i++;
if(i==60)
{i=0;
}
}}
五、实验心得:
通过实验熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。

了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。

掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。

相关文档
最新文档