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

📄 330_interrupt.c

📁 C8051F330部分模块程序,已经调试成功
💻 C
字号:
/************************************
 *文件名: A601int.h                 *
 *使用文件 :/d/刘玉龙/A601/A601.c   *
 *作者: 刘玉龙                      *
 *日期: 2006-4-21                   *   
 ************************************/
extern struct keyboard out;
unsigned char point;
xdata unsigned char rxbuffer[22] ;
xdata unsigned char comend ;
void uart0int() interrupt 4
{
	if( ti0 )                                 //如果是发送中断;
	{
    ;                                   //发送完毕;
	}
	if(ri0)                                 //如果是接收中断;
	{
	ri0 = 0 ;       							
	rxbuffer[point] = sbuf0 ;
	if(rxbuffer[point] == 0x74){
	    point = 0;                        //接收缓冲指针归0;
		rxbuffer[point] = sbuf0 ;
		}
	if(rxbuffer[point]==0x64) {      //如果接收的是‘!’
		comend = 1;                   //通信标志为1;不做任何处理;
		}   
		point ++;                        //接收缓冲指针加1;0
	}
}
void adc0()interrupt 10
{
	 adc0cn &= 0xcf;              //清除中断标志;

}
void pca0() interrupt 11 
{	unsigned int PWM ;
	if (ccf0) {
	    ccf0 = 0 ;			  //风门角度上下定位
	} 
	else if (ccf1){				                	
		ccf1 = 0;                          //Clear the interrupt sign ;
		if(out.wind == 0){
	    pca0cpl1 = 0xff ;
        pca0cph1 = 0xff ;
		}
		if (out.wind != 0){
		PWM = 2000 * (10 - out.wind) ;
		PWM = 10000 + PWM ;
		pca0cpl1 = PWM ;
        pca0cph1 = (PWM >> 8);
		}
	} 
	else if (ccf2) { 		  //220VAC上升沿检测
	    ccf2 = 0 ;  
	} 
	 else if (cf) {
		cf = 0;                            //Clear the interrupt sign;
	}
	else ;
}






⌨️ 快捷键说明

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