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

📄 main.c

📁 这是我从朋友那搞到的pic学习资料
💻 C
字号:
/* ****************************************************************
** 功能描述: CCP1模块比较工作方式,实现8个发光二极管交替亮灭控制
*************************************************************** */
#include	"pic18.h"				/* PIC18系列的头文件 */
unsigned	char	Time1_No=0;		/* 200ms比较匹配次数,5次则计为1s */
unsigned	char	Out_Flag=0;	   	/* 间隔1秒输出数据标志 */
unsigned	char	LED=0;	   		/* 显示数据标志 */

/* ****************************************************************
** 函 数 名: initial()
** 功能描述: 系统初始化子程序,放在程序首部
*************************************************************** */
void	initial()
{
	INTCON=0x00;			/* bit7-bit0:关总中断 */
	ADCON1=0X07;			/* 设置数字输入输出口 */
	PIE1=0;					/* PIE1 的中断不使能 */			
	PIE2=0;					/* PIE2 的中断不使能 */	
	PIE3=0;					/* PIE3 的中断不使能 */	
}

/* 	**************************************************************
**	函 数 名: CCPinitial()
**	功    能:CCP1捕捉初始化子程序
****************************************************************** */ 
void	CCPinitial()
{
	TRISC2=0;				/* 设置CCP1(RC2)引脚为输出方式*/		
	TMR1H=0xc3;
	TMR1L=0x50;         	/* 0xc350=50000 */
	T1CON=0x21;				/* Timer1为定时工作,4分频,使能Timer1工作 */
	CCP1IE=1;				/* CCP1中断使能 */
	CCP1CON=0X0A;			/* CCP1工作于比较方式 */
	CCP1IP=1;				/* CCP1CCP1高优先级中断 */
}

/* ****************************************************************
** 函 数 名: interrupt	HI_ISR()
** 功能描述: 高优先级中断子程序:CCP1捕捉中断
*************************************************************** */
void	interrupt HI_ISR()
{
	if(CCP1IF==1)				/* CCP1中断 */
	{
        CCP1IF=0;			/* 清标志 */
		Time1_No++;			/* 200ms比较匹配次数 */
		if(Time1_No>=4)
		{
			Time1_No=0;		/* 1秒时间到,200ms比较匹配次数 */
			Out_Flag=1;	   	/* 置间隔1秒输出数据标志 */
		}
	}
}

main()					
{
	initial();					/* 系统初始化子程序 */
	CMCON=0x07;  			/* 关比较器 */
	TRISD=0x00;				/* PORTD口为输出 */
	PORTD=0xff;				/* PORTD口输出全1,8个发光二极管全灭 */
	CCPinitial();				/* CCP1捕捉设置 */
	IPEN=1;					/* 使能中断高低优先级 */
	INTCON=INTCON|0xc0;	/* 开总中断、开外围接口中断 */
	while(1)
	{
		if(1==Out_Flag)		/* 比较工作方式计时的1s时间到 */
		{
			Out_Flag=0;		/* 清标志 */
			LED=~LED;		/* 输出数据取反,实现发光二极管亮灭交替 */	
			PORTD=LED;		/* 输出数据 */
		}
	}
}

⌨️ 快捷键说明

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