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

📄 lesson6.c

📁 CCP实现周期测量PIC单片机
💻 C
字号:
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3B31);
uint CCPDE;
const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint x)
{
	uint j,i;
	for(i=x;i>0;i--)
	for(j=110;j>0;j--);
}
uchar temp;
void init();
void display();
void xianshi(uchar num1,uchar num2,uchar num3,uchar num4);
void main()
{
	uchar a1=0,a2=0,a3=0,a4=0;
	init();
	while(1)
	{
		a1=CCPDE/1000;
		a2=CCPDE%1000/100;
		a3=CCPDE%100/10;
		a4=CCPDE%10;
		xianshi(a4,a3,a2,a1);
	}		
}
void init()
{
	TRISB=0X00;
	PORTB=0x06;
	TRISC=0x0f;
	CCP1IE=1;	
	T1CON=0X01;
	CCP1CON=0X05;
	GIE=1;
	PEIE=1;
}
void xianshi(uchar num1,uchar num2,uchar num3,uchar num4)
{
	PORTB=table[num1];
	PORTC=0x7f;
	delay(45);

	PORTB=table[num2];
	PORTC=0xbf;
	delay(45);

	PORTB=table[num3];
	PORTC=0xdf;
	delay(45);

	PORTB=table[num4];
	PORTC=0xef;
	delay(45);
}
void interrupt CCP1e()
{	
	uint temp;
	static uint pv;
	if(CCP1IF)
	{
		CCP1IF=0;
		temp=CCPR1H;
		temp*=256;
		temp+=CCPR1L;
		CCPDE=temp-pv;
		pv=temp;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -