📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: 用工作于捕获方式的CCP1设计的频率计
//-----------------------------------------------------------------
// 说明: 在切换不同的频率输入后按下K1按键,数码管上将显示当前频率值.
// 两次捕获的时间差值即为当前输入频率的周期,倒数可得频率.
//
//-----------------------------------------------------------------
#include <pic.h>
#define INT8U unsigned char
#define INT16U unsigned int
#define _XTAL_FREQ 4000000UL
//按键定义
#define Key_DOWN() (RC5 == 0)
//共阴数码管0~9的数字编码,最后一位为黑屏
const INT8U SEG_CODE[] =
{ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00 };
//分解后的待显示数位
INT8U Display_Buffer[] = {0,0,0,0};
//显示开关控制变量
INT8U Disp_ON = 0;
//连续两次捕获计数变量
volatile INT16U CAPi = 0,CAPj = 0;
//连续三次检测的频率值
volatile INT16U Freq[] = {0,0,0};
//-----------------------------------------------------------------
// 数码管显示频率
//-----------------------------------------------------------------
void Show_FRQ_ON_DSY()
{
INT8U i = 0;
if (!Disp_ON) return; //如果禁止显示则直接返回
for (i = 0; i < 4; i++)
{
}
}
//------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------
void main()
{
while(1)
{
}
}
//------------------------------------------------------------------
// CCP1输入捕获中断子程序(6次捕获,获取3次检测的频率值)
//------------------------------------------------------------------
void interrupt CCP1_Capture_INT()
{
static INT8U Fi = 0; //频率数组索引
if (CCP1IF)
{
CCP1IF = 0; //软件清0中断标志位
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -