?? pcacp.c
字號:
/******************************************************************
本程序為PCA捕捉例程,判斷4個(S1-S4)按鍵是否按下然后觸發中斷對LED燈
D2\D3取反同時也完成按鍵掃描的過程
******************************************************************/
#include <c8051f340.h>
#define uchar unsigned char
#define uint unsigned int
void port_init (void); //端口初始化
void pca_init (void); //PCA初始化
sbit led0= P2^6; //定義燈輸出腳
sbit led1= P2^4; //定義燈輸出腳
void delay(uint d)
{
uint i;
for(i=0;i<d;i++);
}
/******************************************************************
主程序
******************************************************************/
void main (void) {
PCA0MD &= ~0x40; //關閉看門狗定時器
OSCICN |= 0x03; //內部12M晶振
port_init (); //端口初始化
pca_init (); //PCA初始化
EA = 1;
while(1){
}
}
/******************************************************************
端口初始化程序
******************************************************************/
void port_init (void)
{
P0SKIP = 0xFF;
P1SKIP = 0xFF; //跳過前面I/O端口
XBR1 = 0x44; // 使能交叉開關,CEX0,連到P2.2
P2MDOUT |= 0x50; // 使能P2.6,P2.4為推挽輸出
}
/******************************************************************
PCA初始化程序
******************************************************************/
void pca_init (void)
{
EIE1 = 0x10; //允許PCA0中斷
PCA0CPM0 = 0x11; //模塊0負沿捕捉使能與配匹使能
PCA0CPM1 = 0x11; //模塊1負沿捕捉使能與配匹使能
PCA0CPM2 = 0x11; //模塊2負沿捕捉使能與配匹使能
PCA0CPM3 = 0x11; //模塊3負沿捕捉使能與配匹使能
}
/******************************************************************
PCA中斷程序
******************************************************************/
void PCA_ISR (void) interrupt 11
{
if(CCF0==1)
{
delay(50000);
delay(50000);
delay(20000);
delay(20000);
while(CCF0==0);
led0=~led0;
CCF0 = 0; //清捕捉中斷標志
}
if(CCF1==1)
{delay(50000);
delay(50000);
delay(20000);
delay(20000);
while(CCF1==0);
led0=~led0;
CCF1 = 0; //清捕捉中斷標志
}
if(CCF2==1)
{ delay(50000);
delay(50000);
delay(20000);
delay(20000);
while(CCF2==0);
led1=~led1;
CCF2 = 0; //清捕捉中斷標志
}
if(CCF3==1)
{ delay(50000);
delay(50000);
delay(20000);
delay(20000);
while(CCF3==0);
led1=~led1;
CCF3 = 0; //清捕捉中斷標志
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -