实验三 单片机定时计数器应用实验(一)(学生用)

合集下载

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

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

实验三定时/计数实验
一、实验目的
1、理解单片机的定时/计数原理,掌握定时/计数程序的编写方法。

2、掌握定时/计数器在定时、计数、频率测量等方面的应用。

3、学会使用PROTEUS中VSM虚拟示波器观察波形。

二、实验设备
计算机一台;单片机实验仪一台;Keil C51和Proteus软件。

三、实验内容
利用定时计数器1,编程实现从P1.0、P1.1、P1.2三个I/O引脚分别输出频率为
0.25Hz、50 Hz、1k Hz的方波信号。

利用P1.0、P1.1、P1.2三个I/O引脚所接的三个LED
灯或利用示波器进行观察。

已知fosc=12MHz。

四、实验电路图
图1 8路LED灯控制原理图
五、实验接线
P1.0、P1.1、P1.2三个I/O引脚接J12的三个引脚(即三个LED灯)。

六、思考题
1、简要写出实现该实验的方案(要有必要的计算)。

2、单片机定时/计数器的“加一”操作和单片机运行主程序是同时工作(并行工作)的,还是有先后顺序的?单片机运行中断程序和运行主程序是同时工作(并行工作)的,还是有先后顺序的?
3、单片机定时/计数器的定时与计数的区别是什么,软件上分别应如何设置?
4、在该实验的基础上,输出的三路信号的占空比可以分别为1/2,1/3,1/4吗?
七、实验报告要求
实验目的
1、实验目的
2、实验设备
3、实验内容
4、实验流程图
5、实验源程序
7、思考题解答
8、实验总结及心得体会
1。

定时器计数器实验报告

定时器计数器实验报告

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

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

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

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

实验目的: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开发板连接到电脑,并下载程序到开发板中。

定时器计数器应用实验报告

定时器计数器应用实验报告

实验名称:定时器/计数器应用实验日期:见自己实验数据得分:同组人:不填指导教师:姓名一、实验目的1.掌握51单片机定时器/计数器的基本结构、工作原理和工作方式。

2.掌握定时器/计数器T0、T1工作在定时器和计数器两种状态下的编程方法。

3.学习和掌握定时器/计数器工作在定时器和计数器两种状态下,分别采用中断和查询方式控制的编程方法。

4.熟练掌握利用软件扩展定时器/计数器量程的原理和编程技巧。

二、实验设备PC机一台,单片机实验系统一套三、实验内容设定时器/计数器工作于定时方式,定时时间为100ms,每当100ms到申请中断。

每10秒种将A的内容循环左移一次,送P1口显示。

四、实验原理51单片机有2个16位的定时器/计数器,分别是T0和T1。

它们有两种工作状态,可以工作在定时方式和计数方式;定时是对内部的机器周期进行加法计数,计数是对外部输入的计数脉冲进行加法计数,T0的外部计数脉冲从P3.4引脚输入,T1的外部计数脉冲从P3.5引脚输入;计数满产生溢出,硬件使定时器/计数器T0、T1的中断请求标志TF0、TF1置位;如果定时器/计数器允许中断,则可以采用中断方式进行溢出处理,而如果定时器/计数器不允许中断,则可以采用查询方式进行溢出处理。

若定时器/计数器T0工作在定时状态,在实验系统的晶振频率f OSC=12MH Z时,T0工作在方式1,16位最大计数量程,最长的定时时间是65mS多,要想实现10S定时,必须对T0进行量程扩展。

实验中采用R7进行软件扩展,即R7对T0定时50mS进行计数,计数200次就是定时10S。

每10S对累加器A进行一次左移,然后送P1口显示。

实验电路连接图如图1所示。

图1 定时器/计数器应用实验接线图根据此实验原理编写的实验源程序清单见附页。

五、实验步骤1.在E盘下为工程建立文件夹姓名3;2.新建工程项目文件姓名3.uv2,保存在文件夹姓名3中,并为工程选择目标器件为AT公司的AT89S51;3.编辑源程序,建立源文件姓名3.ASM,保存在文件夹姓名3中;4.将源文件姓名3.ASM添加到工程项目组中;5.设置调试环境,选择调试模式为Proteus软件仿真;6.运行程序,根据设计的数据记录表格进行实验,观察发光管显示的状态,并记录实验现象;7.实验数据经过实验指导教师检查正确后,实验结束。

实验三单片机定时计数器应用实验(一)(学生用)

实验三单片机定时计数器应用实验(一)(学生用)

实验三单片机定时/计数器应用实验(一)一、实验目的(1)掌握定时/计数器的基本结构、工作原理和工作方式。

(2)掌握定时/计数器的使用和编程方法。

(3)进一步掌握中断处理程序的编写方法。

二、实验器材(1) HJ-C52开发板一块(2)计算机一台(3) Keil C51编程软件(4)数据下载线三、实验电路图2 电路图四、实验说明1、51单片机有。

两个16位内部定时器/计数器(T/C,Timer/ Counter)。

若是计数内部晶振驱动时钟,则是定时器;若是计数8051的输入引脚的脉冲信号,则它是计数器。

定时器实际上也是工作在计数方式下,只不过对固定频率的脉冲计数。

由于脉冲周期固定由计数值可以计算出时间,有定时功能。

定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。

TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。

TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。

2、TMOD(1)M1M0工作方式控制位(2)C/T 定时器方式或计数器方式选择位若C/T=1时, 为计数器方式;C/T = 0时, 为定时器方式。

(3)GATE 定时器/计数器运行门控标志位当GATE=1时, T/C的启动受双重控制,即要求INT0 (或INT1)引脚为高电平且TR0(或TR1 )置 1 时, 相应的T/C才被选通工作。

若GATE=0, T/C的启动仅受TR0 (或 TR1)控制,即置 1, T/C就被选通, 而不管 INT0 (或 INT1)的电平是高还是低。

3、TCONTF0、TF1分别是定时器/计数器T0、 T1 的溢出中断标志位, 加法计数器计满溢出时置1, 申请中断, 在中断响应后自动复0。

TF产生的中断申请是否被接受, 还需要由中断是否开放来决定。

TR1、TR0 分别是定时器/计数器T1、 T0 的运行控制位, 通过软件置 1 后, 定时器/计数器才开始工作, 在系统复位时被清0。

单片机实验三-定时计数器实验报告

单片机实验三-定时计数器实验报告

南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合■设计□创新实验日期:实验成绩:实验三定时计数器实验(一)实验目的1. 熟练掌握STC型开发板的使用方法和注意事项;2. 掌握应用USB_ISP烧录过程;3. 掌握单片机中断原理;4. 掌握定时器的初始化和定时模式编程。

(二)设计要求采用定时器0/1做16位自动重装(方式0), 中断频率为1000HZ,中断函数从P1.7/ P1.6/ P4.7取反输出500HZ方波信号。

如果由于频率问题实验现象无法观察,请在中断程序中想办法实现。

(三)实验原理1. 开发板部分电路示意图2. 定时器的使用在应用定时/计数器资源时,按照以下几个步骤进行:(1)确定工作方式,对方式控制寄存器TMOD赋值(2)根据要求计算初值并装入寄存器THx、TLx,实际定时时间Tc=(M-X)×Tp(3)根据需要开放定时/计数器中断,即EA、ETx置1(4)启动定时/计数器开始工作,即TRx位置1(5)编写中断服务程序或查询处理方式程序定时器/计数器T0的工作方式0:当M1,M0为00时,定时器/计数器被设置为工作方式0,此时为13位计数器,由TLx(x=0,1)的低5位和THx的高8位构成。

TLx低5位溢出则向THx进位,THx计数溢出则把TCON中溢出标志位TFx置1。

3. 单片机中断系统当中断请求源发出中断请求时,如果中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断处理程序处理中断服务请求。

中断服务请求处理完后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。

定时器/计数器T0计数溢出发出的中断请求,中断请求标志为TF0。

(四)实验设备装有Keil4和STC-ISP的电脑、STC实验箱及连接线。

(五)实验结果实验结果与预期一致,因为输出频率太高,肉眼无法分辨,LED一直保持常量状态,所以设定了中断100次,输出一个方波信号,这样P1.7引脚对应的LED灯闪烁,频率为5Hz,肉眼可见。

第3次《单片机原理与应用》-定时计数器

第3次《单片机原理与应用》-定时计数器

定时器初始化编程:
使用定时器工作之前,先写入控制寄存器, 确定好定时器工作方式。 初始化编程格式:
MOV TMOD,# 方式字 MOV THx,#XH MOV TLx,#XL (SETB EA ) (SETB ETx) SETB TRx ;选择方式 ;装入Tx时间常数 ;开Tx中断 ;启动Tx定时器
TMOD,#01H ;设置T0为方式1定时
ACALL PT0M0
HERE: AJMP HERE
;调用初始化子程序PT0M0
;原地循环,等待中断
22
PT0M0: MOV
TL0,#0CH
;T0初始化,装初值的低8位
MOV
TH0,#0FEH
;装初值的高8位
;允许T0中断 ;总中断允许 ;启动T0 ;中断子程序,T0重装初值 ;P1.0的状态取反
本例,主程序用一条转至自身的短跳转指令来代替。
21
参考程序如下:
ORG 0000H ;程序入口 ;转主程序 ;T0中断入口 ;转T0中断处理程序IT0P ;主程序入口 ;设堆栈指针
RESET: AJMP MAIN ORG 000BH
AJMP IT0P ORG MAIN: MOV MOV 0100H SP,#60H
2)中断方式:初始化后执行其它任务,中断服务程序处理溢出。 ORG 0000H LJMP MAIN ORG 000BH(001BH) ;Tx中断入口 LJMP PTS MAIN: … ;初始化后执行其他程序 PTS: … ;溢出中断服务程序 MOV THx,#XH ;重装时间常数 MOV TLx,#XL RETI
即T0每隔1ms产生一次中断,CPU响应中断后,在中断服务 子程序中对P1.0取反。为此要做如下几步工作。

定时器计数器应用实验一

定时器计数器应用实验一

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

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

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

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

二、设计要求1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200μS的连续方波,在P 1.0口线上接示波器观察波形。

2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,在P1.1口线上产生周期为240μS的连续方波,在P 1.1口线上接示波器观察波形。

三、实验程序流程图和程序清单程序一、ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP, #2FH SETB EACLR ET0MOV TMOD, #01HMOV TH0, #0FFHMOV TL0, #9CHSETB TR0CLR TF0SETB P1.0ZMM: JNB TF0, ZMM CPL P1.0MOV TH0, #0FFHMOV TL0, #9CHCLR TF0LJMP ZMMEND开始定时器初始化开定时器清零TF0结束TF0=0?P1.0取反N程序二、ORG 0000H LJMP MAIN ORG 000BH LJMP ZHP ORG 0100HMAIN: MOV SP, #30H MOV TMOD, #02H SETB EASETB ET0MOV TH0, #88H MOV TL0, #00H SETB TR0 SETB P1.0 ZMM: LJMP ZMM ORG 0200H ZHP:CPL P1.0 RETI END四、实验仿真图开始堆栈初始化定时器、中断初始化开定时器等待结束IPTO P1.1取反返回五、实验结果图图一(周期为200us)图二(周期为240us)六、实验心得本次实验是实现用定时器实现周期200us和周期240us的方波,在试验中加强了我对单片机定时器的使用,并且尝试了应用查询法和中断法分别来实现,并且发现中断法带来的误差比查询法大一些,我也查阅相关资料了解其原因。

定时器计数器实验报告

定时器计数器实验报告

定时器计数器实验报告定时器计数器实验报告引言:定时器计数器是一种常用的电子元件,它可以在电路中起到计时和计数的作用。

在本次实验中,我们将探索定时器计数器的基本原理和应用,并通过实际操作来验证其性能和功能。

一、实验目的本次实验的目的是熟悉定时器计数器的工作原理,掌握其使用方法,并通过实验验证其性能和功能。

二、实验器材和原理1. 实验器材:- 定时器计数器模块- 电源- 示波器- 连接线- 电阻、电容等元件2. 实验原理:定时器计数器是一种能够产生精确时间间隔的电子元件。

它通常由一个时钟信号源和一个计数器组成。

时钟信号源提供固定频率的脉冲信号,计数器根据时钟信号的输入进行计数,并在达到设定值时触发相应的操作。

三、实验步骤1. 连接电路:将定时器计数器模块与电源和示波器连接起来,确保电路连接正确。

2. 设置参数:根据实验要求,设置定时器计数器的工作频率、计数范围等参数。

这些参数可以通过调节电阻、电容等元件来实现。

3. 运行实验:启动电源,观察示波器上的波形变化。

根据设定的参数,定时器计数器将在一定时间间隔内产生脉冲信号,并在达到计数值时触发相应的操作。

4. 数据记录和分析:记录实验过程中的数据和观察结果,并进行分析。

比较实验结果与理论预期的差异,找出可能的原因并提出改进措施。

四、实验结果与讨论通过实验,我们观察到定时器计数器在不同参数设定下的工作情况。

根据实验数据和观察结果,我们可以得出以下结论:1. 定时器计数器的工作频率与输入时钟信号的频率有关。

当时钟信号频率较高时,定时器计数器的计数速度也会相应增加。

2. 定时器计数器的计数范围决定了其能够计数的最大值。

当计数器达到设定的计数范围时,将触发相应的操作。

3. 定时器计数器可以应用于各种计时和计数的场合,如脉冲计数、频率测量等。

通过调节参数,可以实现不同的功能。

根据实验结果,我们可以进一步探索定时器计数器的应用领域和优化方法,提高其性能和功能。

五、实验总结通过本次实验,我们深入了解了定时器计数器的原理和应用。

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

实验三单片机定时/计数器应用实验(一)
一、实验目的
(1)掌握定时/计数器的基本结构、工作原理和工作方式。

(2)掌握定时/计数器的使用和编程方法。

(3)进一步掌握中断处理程序的编写方法。

二、实验器材
(1)HJ-C52开发板一块
(2)计算机一台
(3)Keil C51编程软件
(4)数据下载线
三、实验电路
图2 电路图
四、实验说明
1、51单片机有。

两个16位内部定时器/计数器(T/C,Timer/ Counter)。

若是计数内部晶振驱动时钟,则是定时器;若是计数8051的输入引脚的脉冲信号,则它是计数器。

定时器实际上也是工作在计数方式下,只不过对固定频率的脉冲计数。

由于脉冲周期固定由计数值可以计算出时间,有定时功能。

定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。

TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。

TCON主要
功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。

2、TMOD
(1)M1M0工作方式控制位
(2)C/T 定时器方式或计数器方式选择位
若C/T=1时, 为计数器方式;C/T = 0时, 为定时器方式。

(3)GATE 定时器/计数器运行门控标志位
当GATE=1时, T/C的启动受双重控制,即要求INT0 (或INT1)引脚为高电平且TR0(或TR1 )置 1 时, 相应的T/C才被选通工作。

若GATE=0, T/C的启动仅受TR0 (或 TR1)控制,即置 1, T/C就被选通, 而不管 INT0 (或 INT1)的电平是高还是低。

3、TCON
TF0、TF1分别是定时器/计数器T0、 T1 的溢出中断标志位, 加法计数器计满溢出时置1, 申请中断, 在中断响应后自动复0。

TF产生的中断申请是否被接受, 还需要由中断是否开放来决定。

TR1、TR0 分别是定时器/计数器T1、 T0 的运行控制位, 通过软件置 1 后, 定时器/计数器才开始工作, 在系统复位时被清0。

4、初始化
(1)初始化步骤
在使用51系列单片机的T/C前,应对它进行编程初始化,主要是对TCON 和TMOD编程,还需要计算和装载T/C的计数初值。

一般完成以下几个步骤:
1)确定T/C的工作方式——编程TMOD寄存
2)计算T/C中的计数初值,并装载到TH和TL;
3)T/C在中断方式工作时,必须开CPU中断和源中断——编程IE寄存器;
4)启动定时器/计数器——编程TCON中TR1或TR0位。

(2)计数初值的计算
1)定时器的计数初值:
在定时器方式下,T/C是对机器周期脉冲计数的,f
=6MHZ,一个机器周期
OSC
=2us,则:
为12/f
OSC
方式0 13位定时器最大定时间隔=213*2us=16.384ms
方式1 16位定时器最大定时间隔=216*2us=131.072ms
方式2 8位定时器最大定时间隔=28*2us=512us
若T/C工作在定时器方式1时,要求定时1ms,求计数值。

如设计数初值为x,则有:
(216-x)*2us=1000us 推出x=216-500
因此,TH,TL可置65536-500。

2)计数器的计数初值
在计数器方式下:
方式0 13位计数器的满计数值=213=8192
方式1 16位计数器的满计数值=216=65 536
方式2 8位计数器的满计数值=28=256
若T/C工作在计数器方式2时,则要求计数10个脉冲的计数初值,如设计数初值为x。

则有
28-x=10 即 x= 28-10
因此,TH=TL=256-10。

五、实验内容
1.P1口外接的8只LED每0.5s闪亮一次。

在AT89S51单片机的P1口上接有8只LED。

下面采用定时器T0的方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮一次。

2. 采用定时器T1的方式1的中断计数方式,如图2所示,计数输入引脚T1(P
3.5)上外接开关K1,作为计数信号输入。

按6次K1后,P1口的8只LED 闪烁不停。

六、实验操作方法
1.建立工程。

双击桌面图标Keil →单击Project →选择New μVision Project →选择AT89S52型号单片机→点击确定。

2.单击File →New →Save(文件后缀是“.c”的文本)→开始编程。

3.程序编写完成后→单击(Target Options)点击output菜单项→勾选Create HEX File选项→点击OK确定→单击进行编译、运行程序→生成Hex文件。

4.打开烧录软件STC-ISP →选择对应的单片机型号→选择Hex文件→查看并设置下载COM端口→单击下载→按下HJ-C52开发板→程序烧录完成→LED移位闪烁。

七、思考题
1.定时器的工作方式有哪些,各有什么特点。

2.若单片机定时器0工作在方式1下,该如何设定定时常数。

相关文档
最新文档