PIC RB0外部中断程序

来源:互联网 发布:淘宝店级别怎么分 编辑:程序博客网 时间:2024/06/07 02:35
#include <pic.h>#include <pic16f887.h>//__CONFIG (CP_OFF&WDTE_OFF& BOREN_OFF&PWRTE_OFF &FOSC_HS&WRT_OFF&LVP_OFF&CPD_OFF);__CONFIG (CP_OFF&WDTE_OFF&BOREN_ON&PWRTE_OFF&FOSC_HS&WRT_OFF&LVP_OFF&CPD_OFF);//__CONFIG (CP_OFF&WDTE_OFF& BOREN_OFF&PWRTE_OFF &FOSC_HS&WRT_OFF&LVP_OFF&CPD_OFF);//__CONFIG (CP_OFF&WDTE_ON& BOREN_OFF&PWRTE_ON&FOSC_HS&WRT_OFF&LVP_OFF&CPD_OFF);/*配置位CP_OFF,代码保护位,程序存储器代码保护关闭;WDTE_OFF,看门狗定时器使能位,看门狗定时器关闭,可以通过WDTCON寄存器的SWDTEN位使能;BOREN_OFF,掉电复位选择位,掉电复位关闭;PWRTE_OFF,上电定时器使能位,上电定时器关闭;FOSC_HS,振荡器选择位,高速晶振或谐振器在RA6/OSC2/CLKOUT和RA7/OSC1/CLKIN;WRT_OFF,闪存程序存储器自写使能位,写保护关闭;LVP_OFF,低电压编程使能位,RB3引脚有数字I/O,使用MCLK上的HV(高电压)来编程;CPD_OFF,数据代码保护位,数据存储器代码保护关闭;*///__CONFIG (0x2FF2);#define uchar unsigned char#define uint unsigned int#define LEDA RB3//定义灯1#define RET RB0//定义灯1void delay(unsigned int n);void interrupt ISR(void); uchar count;main(){TRISB=0X01; //PORTB=0x09; ANSEL=0x00;ANSELH=0x00;////GIE = 1;PEIE = 1;   //允许外设中断RBIE = 1; //INTE = 1;//IOCB = 0x01;   //B0电平变化中断;WPUB = 0X01;OPTION_REG=0x00;INTEDG=0;//当INTEDG位(OPTION<6>)被清零时在下降沿触发INTE = 0;INTF=0;INTE = 1;INTF=0;//INTCON=//WPUB = 0X0F; //RBIF = 0;//TRISB=0X01; //PORTB=0X00;//红RB3=0;//红灯//count=0;//RBIF = 0;while(1){   if((count%2)==0){RB3=0;}else{RB3=1;}//RB3=0;//红灯////RET=0;//delay(1000);////delay(1000);////RB3=1;////RET=1;//delay(1000);////delay(1000);}}//延时(n)msvoid delay(unsigned int n){unsigned int j;unsigned int k;for(j=0;j<n;j++)for(k=264;k>0;k--)NOP();}void interrupt ISR(void){ if(INTF==1)   //电平变化中断{//  PortB0Intrupt = PortB0Intrupt+ 1;//  PORTB = PORTB;//  RD0 = ~RD0;//  SendToPrin(&PortB0Intrupt,2);RB3=1;//黄count++;INTF=0;//  RBIF = 0;} }

0 0
原创粉丝点击