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

📄 vectors08.c

📁 为苏州一家公司所做的的恒温恒湿车间控制 系统
💻 C
字号:
/*-----------------------------------------------------*
*文件名:vectors08.c                                    *
*功  能:用于定义中断矢量表                             *
*-----------------------------------------------------*/
//[头文件]
#include "Includes.h"
/*中断接受处理函数------------------------------------*/
#pragma interrupt_handler isrRe
void isrRe(void)
{
   INT8U i,j,no;
   asm("SEI");	       //禁止所有中断 
   //1:接收数据
   for(i=0;i<15;i++)
   {ReBuf[i]=SCIRe1(&j);
    if(j == 1) goto isrRe_Exit;} 
   //2:解包接收到的数据      
   no=DePackReBuf(ReBuf);
   if(no==0) ReSendFlag=1; //时间接收成功  
isrRe_Exit:           
   asm("CLI");		   //开放总中断	
}
/*键盘中断处理函数------------------------------------*/
#pragma interrupt_handler isrKBI
void isrKBI(void) 
{
	INT8U i,key1,key2,key_num=0;
	asm("SEI");	  	         //关总中断
	//开关量输入------------------------	
	INTKBSCR|= (1<<IntBit);  //屏蔽键盘中断(IMASKK=1)
	KeyInput_Judge(&key1);	
	KeyInput_Init();		 //重新初始化键盘
	INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)	
	//---------------------------------------
	for(i=0;i<5;i++)
     {
       KeyInput_Judge(&key2);
       if((key1==key2))
         key_num++;      
     }
     if(key_num>=2)
       KB_DefValue=key1;
     else
       KB_DefValue=key2;
	asm("CLI");			     //开总中断	 
}
/*定时器Timer1中断处理函数------------------------------------*
*功能:每1S中采集一次AD值,进行一次DA转换
*-------------------------------------------------------------*/
#pragma interrupt_handler isrTIMER1
void isrTIMER1(void)
{
   INT8U no;
   asm("SEI");            //关总中断
   //1:采集2片2542-22路的AD值    
   ADC22P(ADValue);  
   //2:DA转换
   DAC(DAvalue);
   //------------------------------
   no++;
   if(no==30) 
   {
       TimeFlag|=0x01;    //30s标志TimeFlag.0
       no=0;
   }   
   //------------------------------
   //清除定时器溢出标志位
   T1SC&=~(1<<TOFBit);
   asm("CLI");            //开总中断
}
//未定义的中断处理函数,本函数不能删除
#pragma interrupt_handler isrDummy  
void isrDummy(void) 
  {
  }
//中断矢量表,需定义中断函数,可修改下表中的相应项目
//(interrupt service routine,isr 中断处理程序)
#pragma abs_address:0xffdc    //中断向量表起始地址
void (* const _vectab[])(void) = {            
	isrDummy,		//时基中断 
	isrDummy,		//AD转换中断      
	isrKBI, 	    //键盘中断    
	isrDummy,		//SCI TC/TE 
	isrRe,		    //SCI RF/IDLE 
	isrDummy,		//SCI PE/FE/NF/OR
	isrDummy,		//SPI TE  
	isrDummy,		//SPI MOD/OVR/RF
	isrDummy,		//TIM2溢出中断 
	isrDummy,		//TIM2通道1
	isrDummy,		//TIM2通道0
	isrTIMER1,		//TIM1溢出中断      
	isrDummy,		//TIM1通道1
	isrDummy,		//TIM1通道0
	isrDummy,		//CGM     
	isrDummy,		//IRQ     
	isrDummy		//SWI       
    //RESET也是中断,定义在 crt08.o中 
   };
#pragma end_abs_address      

⌨️ 快捷键说明

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