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

📄 18f_int.c

📁 pic18f6585写的中断服务工程文件
💻 C
字号:
//************************************************
//用18f6585写的tmr0中断程序,2006-9-22调试通过
//************************************************
#include<p18f4580.h>
#include<math.h>
#define	uint unsigned int	
void Int_tmr0(void);
void delay(uint);

int count;

void main(void)
{
	TRISA=0x00;
	PORTAbits.RA4=1;
	TRISB=0x00;//设置RB5输出为0
	PORTBbits.RB5=0;
	INTCON=0xa0;//开放总中断和T0中断
	INTCON2bits.TMR0IP=1;//tmr0高优先中断
	TMR0L=0x01;
	TMR0H=0x00;//装初值
	T0CON=0x87;//使能tmr0,16位,预分频位256
	count=0;
	while(1)
	{
//	PORTB=count;//跑马灯
//	count++;
		unsigned char i;
		for(i=0;i<100;i++)
		{
			PORTAbits.RA2=~PORTAbits.RA2;
			delay(50000+i);
		}
		delay(50000);
	}
}
#pragma code InterruptVectorHigh=0x08//从中断向量地址跳转的服务程序
void InterruptVectorHigh(void)
{
	_asm
	goto	Int_tmr0//跳转要执行的子程序
	_endasm
}

#pragma code
#pragma interrupt Int_tmr0
void Int_tmr0()
{
	while(INTCONbits.TMR0IF==1)
	{
		INTCONbits.TMR0IF=0;//清除中断标志
		PORTAbits.RA0=~PORTAbits.RA0;
		
	}
	TMR0L=0x01;
	TMR0H=0x00;//装初值
}

void delay (uint	tm)
{
	while(tm--);
}

⌨️ 快捷键说明

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