`
yunchow
  • 浏览: 324504 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

单片机定时器

阅读更多
   单片机的定时器的工作原理是利用了寄存器的溢出来触发中断的,所以在写定时器的时候就要去算计数的增量,再根据单片机的晶振的频率就可以算出确定的时间了.
   附件中有一计算器是用来计算初值的,十分方便



   定时器主要用到了2个寄存器,一个为TCON,另一个为TMOD.TCON是用来控制定时器的启动与停止的.TMOD是用来设置定时器的模式的.她们的具体的位说明,下面有一张图片,一看便清楚了.
   下面我们写一个单片机定时器的例子,产生的效果是:4个数码管每秒会增1,当增加到最大值时,重新从0开始递增.
    先说说写单片机定时器的步骤:1,对TMOD赋值,以确定T0和T1的工作方式。2,计算初值,并将其写入TH0、TL0或TH1、TL1。3,中断方式时,则对IE赋值,开放中断。4,使TR0或TR1置位,启动定时/计数器定时或计数。
   下面有一个定时器的完整的例子,我在STC80C52单片机上成功通过了,也能看到效果.
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit sda=P1^0;
sbit clk=P1^1;
sbit dig1=P1^2;
sbit dig2=P1^3;
sbit dig3=P1^4;
sbit dig4=P1^5;
uchar i,temp,num,times;
uchar code table[]={0x7e,0x0c,0xb6};
void write164(uchar);//申明锁存器写入函数
void main()
{
	dig4=0;
	dig1=0;
	dig2=0;
	dig3=0;	//打开四个数码管

	//times = 0;//发生的中断次数
	num = 0;//table下标
	TMOD=0x01;//设置定时器0的工作模式为工作模式1
	TH0=(65536-50000)/256;//初始化计数器的高八位
	TL0=(65536-50000)%256;//初始化低8位
	EA = 1;	//打开CPU中断
	ET0 = 1;//打开0号定时器中断
	TR0 = 1;//启动定时器0,开始定时
	write164(table[0]);
	while(1)
	{
	    if(times==20)	//发生20次中断刚好是一秒钟
		{
			num ++ ; //table下标右移一个
			if(num==3)
				num = 0;
		 	write164(table[num]);
			times=0;//此步必不可少,我刚开始就是少了这一步,导致整个程序没调试成功!!!!!
		}		
	}
}
void write164(uchar u)
{
	temp = u;
	for(i=0;i<8;i++)
	{
		clk=1;
		sda=temp & 0x80;
		clk=0;
		temp = temp<<1;	
	}
}
//中断函数
void fun_interrupt() interrupt 1
{
	TH0=(65536-50000)/256;//重置计数器的高八位
	TL0=(65536-50000)%256;//重置低8位	
	times ++ ;//产生一次中断,num值加1
	
}

  • 大小: 82.9 KB
分享到:
评论

相关推荐

    STC单片机定时器(1T_12T)初值计算器

    STC单片机定时器是微控制器编程中的关键组成部分,主要负责执行周期性的任务或产生精确的时间间隔。在STC系列单片机中,定时器的运作模式有1T和12T两种,它们的不同之处在于时钟周期的计算方式。 1T模式,即1-Tick...

    51单片机定时器C语言程序

    根据给定的文件信息,我们可以总结出以下关于“51单片机定时器C语言程序”的相关知识点: ### 一、51单片机简介 51单片机是一种广泛应用于电子设备中的微控制器,其核心是8位的中央处理器(CPU)。51单片机因其...

    单片机定时器计数器实验报告.pdf

    单片机定时器计数器是微控制器中重要的硬件资源,广泛应用于各种实时控制和定时任务。8051单片机内置了两个定时计数器,T0和T1,它们既可以作为定时器工作,也可以作为计数器工作。在本次实验中,主要涉及到以下几个...

    msp430g2553单片机定时器中断例程

    **msp430g2553单片机定时器中断例程详解** 在嵌入式系统设计中,定时器是不可或缺的组件,用于执行周期性任务、计时或者实现软件定时。MSP430系列单片机,特别是MSP430G2553,因其低功耗、高性能而广泛应用于各种...

    单片机定时器赋初值的方法解析

    以proteus仿真为例简单讲解定时器赋初值单片机定时器赋初值的方法解析用proteus搭建的电路图如下,晶振为12M,P2.0每10ms翻转一次,即P2.0输出的频率为100HZ。这里使用16位的定时器,那单片机定时器0的最大计数就是...

    51单片机定时器设计实验

    在深入探讨51单片机定时器设计实验之前,我们首先需要理解51单片机的基本概念及其定时器的工作原理。51单片机是一种广泛应用于各种电子设备中的微控制器,因其成本低廉、功能强大而受到青睐。它由美国Atmel公司基于...

    89c51单片机定时器产生脉冲程序(汇编)

    总结,这个89C51单片机定时器产生脉冲的汇编程序涉及了定时器工作模式选择、初始化设置、中断处理及循环检测等多个关键环节。学习这个程序有助于理解89C51单片机的定时器功能和汇编语言编程,对于嵌入式系统的开发...

    51单片机定时器计算工具

    51单片机定时器计算工具是一款专为51系列单片机设计的辅助软件,旨在帮助用户精确地计算和设定定时任务。51单片机是广泛应用在电子设备中的微控制器,其内部包含了定时器模块,对于控制系统的运行时间和执行特定任务...

    51单片机定时器初值计算器.rar

    这个"51单片机定时器初值计算器"工具,可以帮助开发者更方便地设置和计算定时器的初始值,以达到所需的定时效果。 51单片机有4个定时器/计数器:Timer0、Timer1、Timer2和Timer3(某些型号的51单片机可能不包含...

    单片机定时器实验程序

    单片机定时器是单片机系统中非常重要的硬件资源,它主要用于实现各种时间间隔的控制和计数功能。在51/52系列单片机中,定时器的使用非常广泛,涉及到数字电路、嵌入式系统以及物联网等多个领域。下面我们将详细探讨...

    基于51单片机定时器的智能交通灯系统(含仿真)

    《基于51单片机定时器的智能交通灯系统详解》 51单片机,以其高性价比和广泛的应用范围,成为了许多初学者和工程师的首选。本项目以8951型号的51单片机为核心,设计了一个基于定时器的智能交通灯系统,并包含了仿真...

    单片机定时器代码生成器

    这个东东能很方便的生成单片机定时器模块的代码,省去了大量的计算,很方便

    51单片机定时器产生1Hz信号

    51单片机定时器产生1Hz信号 本实验报告的主要目的是掌握单片机中断系统的结构、单片机的5个中断源、中断过程及中断源编号,并掌握C51中断服务函数的编写。实验内容包括使用软件延时方法产生5S延时,使LED0实现5S亮/...

    定时器_单片机定时器_

    以下将详细介绍STC15单片机定时器的工作原理、配置方法以及常见应用。 1. **工作原理** 单片机定时器基于内部振荡器提供的时钟信号,通过计数器对时钟脉冲进行计数。当计数值达到预设值时,定时器产生中断,通知...

    51单片机定时器初值计算

    在这个场景中,"51单片机定时器初值计算"是一款针对51单片机定时器初值设置的小软件,旨在帮助初学者简化计算过程,提高编程效率。 51单片机内有两个16位的定时器/计数器(Timer0和Timer1),它们都可以工作在定时...

    PIC单片机定时器详细介绍

    PIC单片机定时器详细介绍 PIC单片机定时器是PIC微控制器内部的一种重要模块,它具有计数器和时钟信号触发的功能。不同的PIC系列单片机配置了不同的定时器/计数器模块,例如PIC17CX系列和PIC18CX系列都配置了44个...

    单片机定时器仿真图及程序

    单片机定时器是单片机系统中一个非常重要的组成部分,它主要用于实现时间间隔的控制、脉冲产生、波特率发生以及其他与时间相关的功能。在本主题中,我们将深入探讨单片机定时器的工作原理、常见类型、以及如何通过...

    52单片机定时器2作为串行口波特率发生器使用(C语言程序)

    本文是关于52单片机定时器计数器2做为串行口波特率发生器使用的例子,类似于定时器1作为波特率发生器工作在模式1下,但是不同的是:定时器2作为波特率发生器是16位自动重装的,位数比定时器1作为波特率发生器要高...

    51单片机定时器计算工具.zip

    51单片机定时器是微控制器编程中的一个重要组成部分,主要功能是提供精确的时间间隔,用于实现各种时间相关的任务,如脉冲发生、延时、波特率生成等。51系列单片机由Intel公司开发,因其丰富的资源和易于学习的特点...

    STC12C5A60S2单片机定时器实验程序

    总的来说,这个压缩包提供的STC12C5A60S2单片机定时器实验程序是一个很好的学习资源,可以帮助初学者快速掌握单片机定时器的工作原理和应用,为后续的项目开发打下坚实基础。通过实际操作和调试,你将能够深入理解...

Global site tag (gtag.js) - Google Analytics