在本文中,我们对51单片机的定时器2的功能进行测试。包含两个实验,一个是定时器2递增计数功能的测试,另一个是定时器2递减计数功能的测试。
实验1:递增计数
这个实验使用了定时器2的16位自动重装模式的递增计数功能。RCAP2H和RCAP2L寄存器内的值是重新加载的值。当TH2和TL2的计数值溢出时,将RCAP2H和RCAP2L寄存器内的值装载到TH2和TL2中重新计数。定时器2的初始化代码如下所示
void init_T2(void)
{
T2MOD= 0x00; //定时器2递增计数,禁止输出
CP_RL2=0; //16位自动重装模式
RCAP2H=(65536-50000)/256; //给RCAP2H和RCAP2L赋初值,
//计数器由15536开始计数,到65535溢出
RCAP2L=(65536-50000)%256; //外部晶振为12MHz,对应的延时时间为50ms
EA=1; //总中断打开
ET2=1; //定时器中断打开
TR2=1; //定时器开关打开
}
计时周期为50000个周期,每个周期为1us,所以溢出周期为50ms,中断处理函数如下所示。
void T2_ISR(void) interrupt 5
{
TF2=0; //清除标志位
i+=1;
if(i>=10) //计时10次改变一次灯的状态,灯闪的频率为1Hz
{
i=0;
LED=~LED; //LED的值取反,改变灯的状态。
}
}
在中断中,清除TF2中断标志位,并使用i来计数,每10次中断改变一次LED状态。
将程序烧写到单片机中,看到实验现象,LED1以1秒一次的频率闪烁。
实验2:递减计数
这个实验使用了定时器2的16位自动重装模式的递减计数功能。定时器2的T2EX引脚与P1.1引脚复用。将T2MOD寄存器中的DCEN位置1,并且将T2EX引脚接地,则定时器2为递减计数功能。定时器2由0xffff计数,当与计数器TH2和TL2与RCAP2H和RCAP2L的值相同是,产生中断。定时器2初始化代码如下所示
void init_T2(void)
{
T2MOD= 0x01; //定时器2递减计数,禁止输出
CP_RL2=0; //16位自动重装模式
RCAP2H=(65535-50000)/256; //给RCAP2H和RCAP2L赋初值,
//计数器由65535开始递减计数,到15535产生中断
RCAP2L=(65535-50000)%256; //外部晶振为12MHz,对应的延时时间为50ms
EA=1; //总中断打开
ET2=1; //定时器中断打开
TR2=1; //定时器开关打开
}
中断处理代码与实验1是相同的,将程序烧写到单片机中,看到实验现象,LED1以1秒一次的频率闪烁。
关键字:51单片机 定时器2 功能测试
引用地址:
51单片机(二十二)—— 定时器2功能测试
推荐阅读最新更新时间:2024-11-03 00:31
对MCS-51单片机定时器和计数器区别的理解
在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,对于初学者来说,这几部分的内容很难理解。但是我个人觉得这几部分内容是单片机学习的重点,如果在一个学期的课堂学习或者自学中没有理解这几部分内容,那就等于还没有掌握51单片机,那更谈不上单片机的开发了,我们都知道在成品的单片机项目中,有很多是以这几部分为理论基础的,万年历是以定时器为主的,报警器是以中断为主的,联机通讯是以串口为主的。 在这几部分内容中,计数器/定时器对于初学者说很容易搞混淆,下面我将对这方面的内容结合自己的学习经验谈几点看法。 计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲,定
[单片机]
拥有“绝缘预测试”功能的Fluke 1660系列安装测试仪隆重登场
2016年福禄克推出的Fluke 1660系列安装测试仪是可在绝缘测试时防止已连接电器损坏,并且可以让用户通过智能手机直接从现场通过电子邮件无线发送测试结果的安装测试仪。 绝缘预测试 安装保护,避免代价高昂的错误 Fluke 1664 FC 安装测试仪是唯一带 绝缘预测试 的测试仪,可提醒您潜在的严重和成本高昂的错误。如果测试仪检测到测试期间有电器连接到系统,则它将停止绝缘测试并提供声光警告。 Fluke Connect 、ShareLive 通话和 Fluke Cloud 数据存储系统 ShareLive视频通话 节省时间 直接从 1664 FC 安装测试仪无线同步测量值,无需数据录入,并且可使用 Fluke Co
[测试测量]
51单片机:D/A数模转换实验
一、实验内容 利用0832 D/A数模转换输出方波。 二、仿真图 三、代码 C语言实现: 汇编实现: CS0832 EQU 0FFE8H ORG 0000H LJMP START ORG 0030H START: MOV SP,#60H MOV DPTR,#CS0832 SETB P1.0 CLR P1.1 SETB P1.2 MLOOP: MOV A,#00H ;方波 MOVX @DPTR,A LCALL DELAY MOV A,#0FFH MOVX @DPTR,A LCALL DELAY SJMP
[单片机]
基于51单片机的温室测试系统
设施农业是世界现代农业发展的主要方向之一,我国农业正处于从传统也向高产、优质、高效为目的的现代化农业转化新阶段,设施农业是我国今后比较长的时间内农业发展的个主要方向。 环境控制对果树生产的重要作用已经为国内外大量的科学实验和生产的实践所证实。只有在适宜的生长环境下果疏才能充分发挥其高产潜力。多年的有关果树生长环境的研究,不仪知道了农业生产,也为温室环境测控的研究提供了理论和依据。但如何利用传感器技术,白动检测技术,通讯技术,计算机技术的发展和温室栽培的推广研制出对温室温度,湿度,二氧化碳浓度的智能测控系统,为果树提供最佳的生长环境,一直是农业研究者面临的重要课题。 虽然国外采用了全智能控制,但是他们的成本太高,不适合我国国情,
[应用]
51单片机~动态数码管的显示,消影,消抖,静态扫描,动态扫描
动态数码管的显示,由浅入深,原理 (一)视觉暂留: code存储在程序存储器里,表示只读,不加code的数组存在内存里可读可写。 #include reg52.h typedef signed char int8; typedef signed int int16; typedef signed long int32; typedef unsigned char uint8; //字符型 typedef unsigned int uint16; typedef unsigned long uint32; sbit duanxuan=P2^5; //段选控制数字显示 sbit weixuan=P2^6;
[单片机]
51单片机与TA8435的步进电机细分控制
1 步进电机 步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变为角位移,即给一个脉冲,步进电机就转一个角度,因此非常合适单片机控制,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,电机则转过一个步距角,同时步进电机只有周期性的无累积误差,精度高。 步进电动机有如下特点: 1)步进电动机的角位移与输入脉冲数严格成正比。因此,当它转一圈后,没有累计误差,具有良好的跟随性。 2)由步进电动机与驱动电路组成的开环数控系统,既简单、廉价,又非常可靠,同时,它也可以与角度反馈环节组成高性能的闭环数控系统。 3)步进电动机的动态响应快,易于启停、正反转及变速。
[单片机]
51单片机脉冲信号的计数和LCD显示
设计目标和思路 在个人剂量仪开发的过程中,从探头输出的核脉冲信号经过后期放大,成形,滤波以及甄别之后,成为一系列脉冲信号输出,这种脉冲信号由于衰变的随机性,并不是固定频率的脉冲信号。我们本次设计就是针对这种脉冲进形脉冲信号的计数以及在LCD1602显示屏上面的显示。 这是C语言的代码部分 #include reg51.h #include stdio.h #include math.h #include string.h #include intrins.h #define uint8_t unsigned char //0-255 #define uint16_t unsigned int //0-
[单片机]
AT89C2051单片机双路路灯照明控制器
通常我们常见的路灯、通道灯、广告灯箱等公共场所用照明灯具往往彻夜通明,或者说在白天不应照明时工作了,造成了电能的浪费。还有些因为采用了定时控制方式,随着季节的变化未能及时设置好控制器,造成了控制不适时,如天已暗灯未明等现象,影响了照明效果。本文介绍采用AT89C2O5l 单片机 制作的双路路灯照明控制器,仍然采用光控式,但与一般的光控开关相比由于采用了单片机,具有较强 的抗干扰性能,一路为夜间全明,另一路可设置晚上照明时间,到时自动关闭。 iframe id="iframeu2163852_0" src="http://pos.baidu.com/ycmm?conwid=250&conhei=250&rdid=216
[单片机]