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

📄 zhongduan.txt

📁 改程序实现了pic单片机的中断。可作为pic单片机初学者阅读
💻 TXT
字号:
//这是定时中断的例子

#include <pic.h>
#include <pic1687x.h>
#define PORTDIT(add,bit) ((unsigned)(&add)*8+(bit))
#define PORTBIT(add,bit) ((unsigned)(&add)*8+(bit))
static  bit  PORT_0 @  PORTDIT(PORTD,0);   /*定义PORTD 0位*/
static  bit  PORT_1 @  PORTDIT(PORTD,1);   /*定义PORTD 1位*/
static  bit  PORT_2 @  PORTDIT(PORTD,2);   /*定义PORTD 2位*/
static  bit  PORT_3 @  PORTDIT(PORTD,3);   /*定义PORTD 3位*/
static  bit  PORT_4 @  PORTDIT(PORTD,4);   /*定义PORTD 4位*/
static  bit  PORT_5 @  PORTDIT(PORTD,5);   /*定义PORTD 5位*/
static  bit  PORT_6 @  PORTDIT(PORTD,6);   /*定义PORTD 6位*/
static  bit  PORT_7 @  PORTDIT(PORTD,7);   /*定义PORTD 7位*/
//-------------------------------------------------
static  bit  PORTD_0 @  PORTBIT(PORTB,0);   /*定义PORTB 0位*/
static  bit  PORTD_1 @  PORTBIT(PORTB,1);   /*定义PORTB 1位*/
static  bit  PORTD_2 @  PORTBIT(PORTB,2);   /*定义PORTB 2位*/
static  bit  PORTD_3 @  PORTBIT(PORTB,3);   /*定义PORTB 3位*/
static  bit  PORTD_4 @  PORTBIT(PORTB,4);   /*定义PORTB 4位*/
static  bit  PORTD_5 @  PORTBIT(PORTB,5);   /*定义PORTB 5位*/
static  bit  PORTD_6 @  PORTBIT(PORTB,6);   /*定义PORTB 6位*/
static  bit  PORTD_7 @  PORTBIT(PORTB,7);   /*定义PORTB 7位*/
unsigned char s;                    /*每0.125S累加1*/
unsigned char ss;                  /*每1秒累加1*/
int i=0;
void tmint(void)
{   T0CS=0;
PSA=0;
PS2=1;
PS1=1;
PS0=1;
T0IF=0;
T0IE=1;
}
void interrupt clkint(void)   //定时器中断函数
{   TMR0=0x06;
   T0IF=0;
    if(s++>8){        /*每S清0*/
         s=0;
              } 
   // if(i++%2==0) {RB0=0;RB2=1;}  //偶数次中断RB2的LED亮
  //  else      {RB0=1;RB2=0;}               //奇数次中断RB2的LED亮

}
main(void)
{   TRISB=0x00;
    PORTB=0X00;
    RB0=1;RB2=0;//接两个LED,开始为全灭
    tmint();              //调用定时器初始化程序    
   GIE=1;
  // ei();
    TMR0=0x06;    //装入定时器初始值
    while(1) //循环等待中断
      {
      if(s>5)
     { RB0=1 ;}
      else { RB0=0;}  
      }
} 



⌨️ 快捷键说明

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