⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.c

📁 C8051F120 _AD开发过程中的一些代码和文档
💻 C
字号:
#include "C8051f.h"
#include "Timer.h"

extern unsigned int  Count1msInc;
extern unsigned char Count1ms;
extern unsigned char Count100ms;
extern unsigned char Count1s;
extern unsigned int TimeSecond;
extern unsigned int TimeMinute;

extern unsigned char EEPROMTime;
extern unsigned long Tick_100ms;

void Tick_Init()
{
	Count1msInc = 0;
	Count1ms = 0;
	Count100ms = 0;
	Count1s = 0;
	TimeSecond = 0;
	TimeMinute = 0;

	EEPROMTime = 0;
	Tick_100ms = 0;
}


void Timer0_Init (void)
{
   	CKCON |= 0x8;
   	TMOD |= 0x1;    	//16Bit
   	TR0 = 0;                         	// STOP Timer0
   	TH0 = (-SYSCLK/1000) >> 8;    		// set Timer0 to overflow in 1ms
   	TL0 = -SYSCLK/1000;
   	TR0 = 1;   	// START Timer0
   	IE |= 0x2; 
}

void Timer0_ISR (void) interrupt 1  //1ms
{
	TH0 = (-SYSCLK/1000) >> 8;  
   	TL0 = -SYSCLK/1000;

	if (Count1ms) 
	{
		Count1ms --;
	}
	Count1msInc ++;

	if (Count100ms)
	{
		Count100ms --;
	}
	else
	{
		Count100ms = 100;    			//100ms
		Tick_100ms ++;
		if (Count1s)
		{
			Count1s --;
		}
		else
		{
			Count1s = 10;			//1s
			TimeSecond ++;
			if (TimeSecond >= 60)
			{
				TimeSecond = 0;		//1min
				TimeMinute ++;
				if(TimeMinute == 60)
				{
					TimeMinute = 0;
				}
			}
		}
	}
	EEPROMTime ++ ;
}

void Timer3_Init(void)
{
	TMR3CN = 0x00;
	
	TMR3RLL = 0x00;
	TMR3RLH = 0x4C;
	TMR3L = 0x00;
	TMR3H = 0x4C;

	TMR3CN = TMR3CN | 0x04;
	EIE2 = EIE2 | 0x01;
}

void timer3_interrupt(void) interrupt 14
{
}

void Delay1ms(unsigned char T)
{
	Count1ms = T;
	while (Count1ms);
}

void Delayms(unsigned int T)
{  
	Count1msInc = 0;
	while(Count1msInc != T);
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -