中科因仑“3+1”工程特种兵精英论坛
标题:
PIC18F66K22--RB5电平变化中断
[打印本页]
作者:
我爱因仑风
时间:
2016-3-28 21:20
标题:
PIC18F66K22--RB5电平变化中断
我采用的是PIC18F66K22,电平变化引脚为RB5端口,程序如下,但是在RB5端口有电平
变化的时候进不了中断,RF3引脚电平不能取反,希望各位大虾给点建议
#include<pic18.h>
__PROG_CONFIG(1,0x0818);//PIC的配置字1
__PROG_CONFIG(2,0x2806);//PIC的配置字2
__PROG_CONFIG(3,0x8901);//PIC的配置字3
__PROG_CONFIG(4,0x0011);//PIC的配置字4
__PROG_CONFIG(5,0x8000);//PIC的配置字5
__PROG_CONFIG(6,0x0000);//PIC的配置字6
__PROG_CONFIG(7,0x0000);//PIC的配置字7
void main() //主函数
{
INTCON=0xfe; /*允许中断及标志位清零,开启了RBIE=1*/
T0CON=0x08; /*禁止TMR0ON=0;16位计时器;内部时钟;关闭分频器,定时时间使用*/
T1CON=0x72; /*禁止TMR1ON=0;16位计时器;内部时钟;分频值8;定时时间使用*/
T1GCON=0x00; /*门控寄存器*/
PIE1=0x00;
PIR1=0x00; /*置标志位清零*/
ODCON1=0xff; /*外设漏极开路输出使能设置*/
ODCON2=0xff; /*外设漏极开路输出使能设置*/
ODCON3=0xff; /*外设漏极开路输出使能设置*/
OSCCON=0xEF; /*配置为内部8MHz*/
OSCCON2=0x0A;
OSCTUNE=0x80; /*振荡器调节寄存器*/
CCPTMRS1=0x00; /*CCP4-CCP7*/
CCPTMRS2=0x05; /*CCP8_PWM时钟源基于TMR6,CCP9_PWM时钟源基于TMR4*/
WDTCON=0x00; /*禁止看门狗*/
//-------------------------------------------------------//
LATA = 0x00;
LATB = 0x00;
LATC = 0x00;
LATD = 0x00;
LATE = 0x00;
LATF = 0x00;
LATG = 0x00;
PORTB=0x00;
PORTBbits.RB5=0;
TRISBbits.TRISB5=1;
PORTFbits.RF3=0;
TRISFbits.TRISF3=0;
RBIE=1; //打开RB端口电平变化中断
RBIF=0; //清零RB端口电平变化中断标志位
RBPU=0; //打开RB端口弱上拉
while(1) //主循环
{
;
}
}
void interrupt pic18_int() //中断服务函数
{
if(RBIF==1) //如果电平变化中断标志位为1
{
RBIF=0; //清零标志位
PORTFbits.RF3=!PORTFbits.RF3;
}
}
欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/)
Powered by Discuz! X3.4