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

📄 pcacapture.c

📁 性价比突出的C8051F350单片机各种例子程序
💻 C
字号:
//-----------------------------------------------------------------------------
//无须短路环.把CEX0配置到按键S1(下降沿捕捉),当按下按键S1,板上的小灯就亮.
//-----------------------------------------------------------------------------

//文件名:	PCAcapture.c

//程序说明:	
#include <c8051f350.h>                    // SFR declarations
#include <intrins.h>
//------------------------------------------------------------------------------------
// Function PROTOTYPES
//------------------------------------------------------------------------------------
void PORTn_Init (void);
void PCA_Init (void);
void PCA_ISR (void);
int  n;
sbit LED= P0^1;

//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
void main (void) {

   PCA0MD &= ~0x40;         // WDTE = 0 (disable watchdog timer)
   n=0;	
   PORTn_Init ();			/*IO口初始化*/
   PCA_Init ();				/*PCA初始化*/ 
        
   EA = 1;
   
   }
     


void PORTn_Init (void)
{P0SKIP    = 0xff;
	P1SKIP    =0x01;
	XBR0      =0x00;
    XBR1      = 0x41;
	P0MDOUT  |=0x02;
	LED=0;
  
   XBR1    = 0x41;      // 使能交叉开关,允许弱上拉,CEX0连到P1.1
   P0MDOUT |= 0x02;     // 使能P0.1为推挽输出
}

void PCA_Init (void)
{
	EIE1 = 0x10;		/*允许PCA0中断请求*/		
   
    PCA0CPL0 = 0x00;
	PCA0CPH0 = 0x20;
	PCA0CPM0 = 0x11;	/*PCA0负边沿捕捉方式,当CCF0=1时,允许辅捉/比较标志的中断申请*/

	PCA0CN = 0x40;		/*允许PCA定时器/计数器*/
}


/*PCA中断子程序*/
void PCA_ISR (void) interrupt 11
{
	
	LED=1;
	for(n=0;n<30000;n++);
	CCF0 = 0;			/*清匹配中断标志*/
		LED=0;
}

⌨️ 快捷键说明

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