?? pcacapture.c
字號:
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//文件名: PCAcapture.c
//程序說明: 此程序測試PCA負邊沿觸發的捕捉方式,連好J1和J6短路環,測試前將J13的P03同P13腳用跳線短接,
// 當按下按鍵S1,則P0.3出現一次下降沿,CE0配置到P0.3則捕捉到,是P1.0小燈亮一下。
#include <c8051f330.h> // SFR declarations
#include <intrins.h>
#include "common.h"
//------------------------------------------------------------------------------------
// Function PROTOTYPES
//------------------------------------------------------------------------------------
void PORTn_Init (void);
void PCA_Init (void);
void PCA_ISR (void);
temperature (void);
sbit P03= P0^3;
sbit S1=P1^3;
sbit led=P1^0;
unsigned int m,n;
void YJ_Init(void);
void Write_CHAR(unsigned char yjchar);
//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
void main (void) {
PCA0MD &= ~0x40; // WDTE = 0 (disable watchdog timer)
n=0;
PORTn_Init (); /*IO口初始化*/
PCA_Init (); /*PCA初始化*/
led=0;
EA = 1;
}
void PORTn_Init (void)
{
P0SKIP = 0x07;
XBR1 = 0x41;
P0MDOUT |= 0x08; // 使能P0.3為推挽輸出
P1MDOUT |=0x01;
led=0;
}
void PCA_Init (void)
{
EIE1 = 0x10; /*允許PCA0中斷請求*/
EIP1 |= 0x10;
PCA0L = 0x00;
PCA0H = 0x00;
PCA0CPM0 = 0x11; /*PCA0負邊沿捕捉方式,當CCF0=1時,允許輔捉/比較標志的中斷申請*/
PCA0CPL0 = 0x00;
PCA0CPH0 = 0x20;
PCA0CN = 0x40; /*允許PCA定時器/計數器*/
}
/*PCA中斷子程序*/
void PCA_ISR (void) interrupt 11
{
CF = 0;
CCF0 = 0; /*清匹配中斷標志*/
led=1;
for(n=0;n<30000;n++);
led=0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -