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

📄 main.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 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 + -