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

📄 interrupt.asm.bak

📁 完整的PIC学习程序示例 软件功能: RT1602C驱动 UART串口输出
💻 BAK
字号:
;/**************************************************************************
;*                                                                         *
;*         Copyright (c) 2006 by JINRUN Technology Co., Ltd.               *
;*  Title  :    FPPA TM demo board---PIC PARTY
;*  Content:    AD,LCM Drive,Key input,LED flash,etc.,   
;*  MCU    :    PIC16F877A(PIC),PDK80C08(PDK)[FPPA TM]
;*  LCD    :    RT1602C
;*  OSC    :    8MHz(ext. HT) 
;*  WDT    :    OFF                                      
;*  Author :    Raker.Yang                                                 *
;*  FPPA TM 简介:FPPA TM是世界首创的多核心单晶片,所有RAM和ROM却能够共享
;*                目前支持8个核心(8路独立PC,STACK,ACC等)
;*                既然有了独立多核心,跑多任务程序也就更简单了。
;*                更重要的是,它可以非常方便的扩展MCU外围,如,PWM,IIC,UART等。
;*  如果你对FPPA TM技术感兴趣,欢迎访问笔者博客 http://gongkong.gkbk.com
;*  或加入作者QQ:595142970, QQ群25644462
;*  同时欢迎各路商家前来进行方案合作!
;*
;*  声明:本资料仅供个人学习PIC或FPPA TM软件设计参考,任何人都可以转载此资料。
;*        但任何单位或个人都不能将此资料作为商业用品。本资料可能存在一些缺陷,
;*        如果你将本资料用于产品,所引起的一切后果,均由使用者承担
;*                                                                        *
;**************************************************************************/
;
;-------Interrupt program--------------------------
; Input		:void
; Output	:
; Temp REG	:TEMPI1
; Function 	:10ms interrupt
;--------------------------------------------
INT_G:
	PUSH_REG
	BANKSEL  PIR1            ;bank 0
	BTFSC    PIR1, TMR1IF
	GOTO     TIMER1_INT
	BTFSC    PIR1, RCIF
	GOTO     RX_INT
	GOTO     INT_G_RET
TIMER1_INT:	
	BCF      PIR1, TMR1IF
	MOVLW    0xFF
	MOVWF    TIMER_FLAG
	;TMR1 RESET	
	MOVLW    TMR1_CSTH
	MOVWF    TMR1H
	MOVF     TMR1L, W      ;extra 1T
	ADDLW    TMR1_CSTL     ;extra 1T
	BTFSC    STATUS, C     ;
	INCF     TMR1H
	MOVWF    TMR1L         ;all extra 5T
	;TMR1 RESET END

DRV_LED:
        BTFSS    SYS_STATUS, UART_BUSY
        GOTO     INT_G_RET
	INCF     LED_DRV_CNT
	MOVF     LED_DRV_CNT, W
	SUBLW    .50
	BTFSS    STATUS, C
	GOTO     G_LED_ON
	BSF      PASS_LED_OUT
LED_DRV_CNT_CHECK:	
	MOVF     LED_DRV_CNT, W
	XORLW    .100
	BTFSC    STATUS, Z
	CLRF     LED_DRV_CNT
	GOTO     INT_G_RET 
G_LED_ON:
        BCF      PASS_LED_OUT
        GOTO     LED_DRV_CNT_CHECK	
INT_G_RET:		
	POP_REG
	RETFIE
RX_INT:
	MOVF    RCSTA, W
	ANDLW   0x06
	XORLW   0x00
	BTFSS   STATUS, Z
	GOTO    RX_ERR
;		
	MOVF    RCREG, W
	MOVWF   TEMPI1
	BTFSS   ADRI0
	GOTO    CHECK_ADRI1
	BTFSS   ADRI1
	GOTO    SAVE_RX_DATA_2
	GOTO    SAVE_RX_DATA_3
CHECK_ADRI1:
        BTFSS   ADRI1
        GOTO    SAVE_RX_DATA_1
        GOTO    RX_ADDR_ERR
SAVE_RX_DATA_1:
        MOVWF   RX_DATA1        
        GOTO    RX_INT_RET
SAVE_RX_DATA_2:
	MOVWF   RX_DATA2
	GOTO    RX_INT_RET
SAVE_RX_DATA_3:
	MOVWF   RX_DATA3
RX_INT_RET:
	BSF     LCD_DRV_REQ, R_LCD_DRV_REQ
	BSF     LCD_DRV_REQ, G_LCD_DRV_REQ
	GOTO    INT_G_RET
RX_ADDR_ERR:
	MOVLW   0xFF
	MOVWF   RX_DATA1
	MOVWF   RX_DATA2
	MOVWF   RX_DATA3
	BSF     LCD_DRV_REQ, R_LCD_DRV_REQ
	BSF     LCD_DRV_REQ, G_LCD_DRV_REQ	
        GOTO    INT_G_RET 
RX_ERR:
	MOVF    RCREG, W
        BCF     RCSTA, RCEN
        NOP
        BSF     RCSTA, RCEN
        GOTO    INT_G_RET         	
		
;---------------------------------------------------

⌨️ 快捷键说明

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