📄 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 + -