×
单片机 > 单片机程序设计 > 详情

PIC单片机外部中断

发布时间:2020-05-28 发布时间:
|
#INCLUDE"P16F877.inc"
   ORG  000H
   GOTO A1
   ORG  04H
   GOTO ZD01
A1   BSF  STATUS,RP0
   BCF  STATUS,RP1;体1
   MOVLW 0H
   MOVWF TRISA;设置A口为输出口
   MOVLW   06H  
   MOVWF   ADCON1;设置A口为普通I/O口模式 
   movlw 0FFH
   movwf TRISB;设定RB为输入
   BCF  STATUS,RP0
   BCF  STATUS,RP1;体0
   MOVLW 0FFH
   MOVWF PORTA;A口输出高电平
   BCF  INTCON,INTF;清中断标志
   BSF  INTCON,INTE;开外部中断
   BSF  INTCON,GIE;开总中断
   GOTO $
ZD01  
   BTFSS INTCON,INTF;判断是否发生外部中断
   GOTO ZD02 
   BCF  INTCON,INTF;清中断标志
   BTFSS PORTB,0;;判断触发中断键是否抬起避免产生2次中断
   GOTO $-1;
   COMF PORTA,1;取反A口
ZD02 
   RETFIE ;中断标志
   
   END
 
 
 
 
 
 
 
 
 
 
   #INCLUDE"P16F877.inc"
   ORG  000H
   GOTO A1
   ORG  004H;定时中断入口地址 
   GOTO ZD01;
   ORG  0CH
A1   MOVLW 1;位1显示数
   MOVWF 50H; 
   MOVLW 2;位2显示数
   MOVWF 51H;
   MOVLW 3;位3显示数
   MOVWF 52H;
   MOVLW 4;位4显示数
   MOVWF 53H;
   MOVLW 4;显示位数
   MOVWF 40H;
   MOVLW B'00000001';位码
   MOVWF 41H;
   MOVLW 50H;
   MOVWF FSR ;间接寻址
   BSF  STATUS,RP0;选择体1
   BCF  STATUS,RP1;
   MOVLW 00H;1:2TMRO比例
   MOVWF OPTION_REG;分频1/2
   BCF  STATUS,RP0;体0
   BCF  STATUS,RP1;
   MOVLW 0FFH;
   MOVFW TMR0;初值
   BCF  INTCON,T0IF;清定时中断标志
   BSF  INTCON,T0IE;开定时中断
   BSF  INTCON,GIE;开总中断

A2   BTFSC PORTD,4
   GOTO A3
   MOVLW 1
   MOVWF 50H
A3   BTFSC PORTD,5
   GOTO A4
   MOVLW 2
   MOVWF 50H
A4   BTFSC PORTD,6
   GOTO A5
   MOVLW 3
   MOVWF 50H
A5   BTFSC PORTD,7
   GOTO A6
   MOVLW 4
   MOVWF 50H
A6   GOTO A2
  
   
   
ZD01  BCF  INTCON,GIE;关总中断
   BTFSS INTCON,T0IF;判断是否产生定时中断
   GOTO ZD03;否跳出是继续执行
   BCF  INTCON,T0IF
   BSF  STATUS,RP0;体1
   BCF  STATUS,RP1;
   MOVLW 0;
   MOVWF TRISC;RB口设为输出口
   MOVLW B'11110000'
   MOVWF TRISD;RD口设为输出口
   BCF  STATUS,RP0;体0
   BCF  STATUS,RP1;
   MOVLW 0FFH;
   MOVWF PORTC;RB口输出高电平
   MOVLW 0
   MOVWF PORTD;RD口输出低电平起清屏作用
   
   MOVFW INDF;间接寻址显示数据  
   CALL Q1;查数据表
   MOVWF PORTC;显示断码输出到RB口
   INCF FSR,1;间接寻址地址加1
   MOVFW 41H ;位码
   MOVWF PORTD;位码输出到RD口
   RLF  41H,0;处理C
   RLF  41H,1;左移位码
   DECFSZ 40H,1;判断是否显示完4位
   GOTO ZD02;否则继续显示
   MOVLW 4;显示位数
   MOVWF 40H;
   MOVLW B'00000001';位码
   MOVWF 41H;
   MOVLW 50H;
   MOVWF FSR ;间接寻址
ZD02  MOVLW 0FFH;
   MOVFW TMR0;重装初值
ZD03  BSF  INTCON,GIE;开总中断
   RETFIE ;中断返回

;********************************************
;    数据表
;********************************************      
Q1   ADDWF   PCL,1  
    RETLW     00C0H        ;0
       RETLW     00F9H        ;1
        RETLW     00A4H        ;2
        RETLW     00B0H        ;3
      RETLW     0099H        ;4
      RETLW     0092H        ;5
      RETLW     0082H        ;6
      RETLW     00F8H        ;7
      RETLW     0080H        ;8
      RETLW     0090H        ;9
      RETLW     0088H        ;A
      RETLW     0083H        ;B
      RETLW     00C6H        ;C
      RETLW     00A1H        ;D
      RETLW     0086H        ;E
      RETLW     008EH        ;F
   END 
关键字:PIC单片机  外部中断

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32单片机的复用端口初始化的步骤及方法