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

📄 pca_040.c

📁 c8051f040实验程序含CAN SMBUS IIC
💻 C
字号:
#include "C8051F040.h"

#define uchar unsigned char
#define uint unsigned int
void os_init();
void port_init();
void pca_init();
sbit led=P1^6;
void UART_Init();
void SMBus_Init();
void SPI_Init();
int m;
/***********************************************************************
*
*主函数
***********************************************************************/
void main()
{  
   WDTCN     = 0xDE;
   WDTCN     = 0xAD;

   os_init();
   port_init();
   pca_init();

   EIE1      = 0x08;
   IE        = 0x80;  

   while(1)
   {
   }
}
/**********************************************************************
*
*端口初始化函数
***********************************************************************/
void port_init()
{
   SFRPAGE   = CONFIG_PAGE;
    P1MDIN    = 0x00;
    XBR0      = 0x27;
    XBR2      = 0x40;
	P1MDOUT   = 0x40;
}


/**********************************************************************
*
*系统时钟初始化函数,选择外部22.1184MHZ晶振频率
***********************************************************************/
void os_init()
{
    uint i;
    SFRPAGE   = CONFIG_PAGE;
    OSCXCN    = 0x67;
    for (i = 0; i < 3000; i++);  // Wait 1ms for initialization
    while ((OSCXCN & 0x80) == 0);
    CLKSEL    = 0x01;

}
/**********************************************************************
*
*可编程逻辑阵列初始化函数
***********************************************************************/
void pca_init()
{
    SFRPAGE   = PCA0_PAGE;
//    PCA0CN    = 0x40;				            //PCA使能
    PCA0MD    = 0x81;							//
    PCA0CPM0  = 0x11;		                  	//模块0负沿捕捉--P2.0
    PCA0CPM1  = 0x11;							//模块1负沿捕捉--P2.1
    PCA0CPM2  = 0x11;							//模块2负沿捕捉--P2.2
    PCA0CPM3  = 0x11;							//模块3负沿捕捉--P2.3

}
void pca_isp() interrupt 9
{SFRPAGE   = PCA0_PAGE;
 if(CCF0==1)
	  { led=~led;
    	SFRPAGE   = PCA0_PAGE;
		CCF0 = 0;		            //清捕捉中断标志
	   }
	if(CCF1==1)
	  { led=~led;
        SFRPAGE   = PCA0_PAGE;
		CCF1 = 0;		            //清捕捉中断标志
	   }
	if(CCF2==1)
	  { led=~led;
    	 SFRPAGE   = PCA0_PAGE;
		CCF2 = 0;		            //清捕捉中断标志
	   }
	if(CCF3==1)
	  { led=~led;
      SFRPAGE   = PCA0_PAGE;
		CCF3 = 0;		            //清捕捉中断标志
	   } 
}

⌨️ 快捷键说明

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