📄 1.c
字号:
#include <pic.h>
#include <stdio.h>
#include <math.h>
#include "lcd.h"
bank1 int cplz[11];
union cp1 //定义共同体存放数值
{
int y1;
unsigned char cple[2];
}cplu;
bank2 unsigned char count,data,k;
bank2 int T5,u0;
bank2 double RE5;
bank2 unsigned char s[4];
void ccpint() //CCP初始化
{
CCP1CON=0x05;
T1CON=0x00;
PEIE=1;
CCP1IE=1;
TRISC2=1; //使用RC2口
}
void initial() //初始化计数值
{
count=0x0B;
}
void interrupt cplint(void) //中断程序
{
if(CCP1IF==1)
{CCP1IF=0;
TMR1IF=0;
cplu.cple[0]=CCPR1L;
cplu.cple[1]=CCPR1H;
cplz[data]=cplu.y1;
CCP1CON=CCP1CON^0x01;
data++;
count--;
}
}
void period() //周期子程序
{
T5=cplz[10]-cplz[0];
RE5=(double)T5;
RE5=RE5/5;
}
void frequency() //频率子程序
{
period();
RE5=1000000/RE5;
}
void main()
{
ccpint();
initial();
init();
lcd_init();
write_web();
TMR1H=0;
TMR1L=0;
CCP1IF=0;
TMR1IF=0;
INTCON=0xc0;
TMR1ON=1;
while(1)
{ count=0x0B;
TMR1H=0;
TMR1L=0;
CCP1IF=0;
TMR1IF=0;
GIE=1;
PEIE=1;
TMR1ON=1;
while(1)
{ if(count==0) break; }
TMR1ON=0; //关定时器
GIE=0; //关总中断
frequency();
// precision(RE5);
PORTD=0xc0;
lcd_enable();
write_tel(RE5);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -