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

📄 timer80.c.bak

📁 小日本NECMCU的一个timer的例程,呵呵,我写的小日本,居然翻译为Little Japan ,爽!!
💻 BAK
字号:
#pragma SFR
#pragma DI
#pragma EI
#pragma asm
#pragma interrupt INTTM80 vect_INTTM80

#define LED0 P12.3
#define LED1 P2.1
#define LED2 P2.2
#define LED3 P2.3
#define LED4 P13.0
#define LED5 P4.5
#define LED6 P4.4
#define BEEP_DRIVER P4.2
#define  uchar unsigned char 


bit Timer80Flag;
uchar n,m;


void PORT_Init()
{
	PMC2=0x00;
	PM2=0xF0;
	P2=0x0F;
	
	PM4.2=0;
	BEEP_DRIVER=0;
	PM4.1=1;
	
	PM4.5=0;
	LED5=1;
	PM4.4=0;
	LED6=1;
	
	PM12.3=0;
	LED0=1;
	P13.0=1;
	
	}
void CPU_Init()
{
	//WDTE=0x70;
	
	PCC=0;
	PPCC=0;
	LSRCM=0x01;
//	OSTS=0x00;
//	
//	IF0=0x00;
//	IF1=0x00;
//	MK0=0xff;
//	MK1=0xff;
	
	}
	
void Timer80_Init()
{
	TCE80=0;
	TMC80=0x00;
	CR80=0x06;
	TMIF80=0;
	TMMK80=0;
	TCE80=1;
	TMC80=0x86;
	}
	
//void restart_TM80(void)
//{
//	Timer80Flag=0;
//	TCE80=0;
//	TCE80=1;
//	}	
	
//void Wait50(uchar n)
//{
//        //n=10;
//	restart_TM80();
//	while(n>0)
//	{
//		while(Timer80Flag==0);
//		Timer80Flag=0;
//		n--;
//	}
//}
void vect_INTTM80(void)
        {
          
	   if(n>10)
	      {
		n=0;	
	        Timer80Flag=1;
	        }
	         n++;
        }
/*void Wait500(void)
{
        restart_TM80();
        n++;
	if(n>=10)
	{
		n=0;
		Timer80Flag=1;
		}
	}
	*/
	
void LED_flash(uchar i)
{
   //i=1;
	switch(i)
	{
		case 1:LED0=0,LED1=1,LED2=1,LED3=1,LED4=1,LED5=1,LED6=1,BEEP_DRIVER=0;break;
		case 2:LED0=1,LED1=0,LED2=1,LED3=1,LED4=1,LED5=1,LED6=1,BEEP_DRIVER=0;break;
		case 3:LED0=1,LED1=1,LED2=0,LED3=1,LED4=1,LED5=1,LED6=1,BEEP_DRIVER=0;break;
		case 4:LED0=1,LED1=1,LED2=1,LED3=0,LED4=1,LED5=1,LED6=1,BEEP_DRIVER=0;break;
		case 5:LED0=1,LED1=1,LED2=1,LED3=1,LED4=0,LED5=1,LED6=1,BEEP_DRIVER=0;break;
		case 6:LED0=1,LED1=1,LED2=1,LED3=1,LED4=1,LED5=0,LED6=1,BEEP_DRIVER=0;break;
		case 7:LED0=1,LED1=1,LED2=1,LED3=1,LED4=1,LED5=1,LED6=0,BEEP_DRIVER=0;break;
		case 8:LED0=1,LED1=1,LED2=1,LED3=1,LED4=1,LED5=1,LED6=1,BEEP_DRIVER=1;break;
		default:break;
		
	}
}
	
void main()
{
	    #asm
        movw  AX,#0FEFFH
        movw  SP,AX
        #endasm 
	WDTE=0xAC;
	Timer80Flag=0;
	n=0;
	m=0;
	DI();
	CPU_Init();
	PORT_Init();
	Timer80_Init();
	EI();
	
	while(1)
	{
		
		if(Timer80Flag)
		{      
		        Timer80Flag=0;
		        m++;
			LED_flash(m);
			if(m==8)
			{
				m=0;
			}
				WDTE=0xAC;
		}
	}
	
	
	
	
	}

⌨️ 快捷键说明

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