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

📄 pcacapture.c

📁 c8051f新华龙单片机开发运用程序
💻 C
字号:
//====================================================================
//PCA捕捉模块0的CEX0被设置在按键S3对应的引脚上,按下和松开S3,
//将会产生下降和上升沿信号,引发捕捉模块动作。

//---------------------------------------------------------------------
#include <c8051f310.h>         // SFR declarations
#include <intrins.h>
//---------------------------------------------------------------------
// Function PROTOTYPES
//---------------------------------------------------------------------
void PORTn_Init (void);
void PCA_Init (void);
void PCA_ISR (void);

sbit led= P1^7;
int i=0;
//-------------------------------------------------------------------
// MAIN Routine
//-------------------------------------------------------------------
void main (void) {
   
   PCA0MD &= ~0x40;             // WDTE = 0 (watchdog timer enable bit)
   OSCICN |= 0x03;              // Set internal oscillator to highest
                                // setting (24500000)

   PORTn_Init ();			    /*IO口初始化*/
   PCA_Init ();				    /*PCA初始化*/       
   EA = 1;
   while(i<5)
   {
    _nop_();
	}  
}
//-------------------------------------------------------
void PORTn_Init (void)
{
   P0SKIP    = 0xFF;
   P1SKIP    = 0xFF;
   P2SKIP    = 0x03;
   XBR1      = 0x41;           // 使能交叉开关,允许弱上拉,CEX0连到P2.2
   P1MDOUT  |= 0x80;           // 使能P1.7为推挽输出
}
//--------------------------------------------------------
void PCA_Init (void)
{
	EIE1 = 0x10;		       //允许PCA0中断请求		
   
	PCA0L	 = 0x00;
	PCA0H	 = 0x00;
	PCA0CPM0 = 0x11;	
	PCA0CPL0 = 0x00;
	PCA0CPH0 = 0x20;
	PCA0CN = 0x40;		       /*允许PCA定时器/计数器*/
}

//--------------------------------------------------------
/*PCA中断子程序*/
void PCA_ISR (void) interrupt 11
{
	CF   = 0;
	CCF0 = 0;		           /*清匹配中断标志*/
	led=~led;
	i++;	
}

⌨️ 快捷键说明

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