drv7135.asm

来自「PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用」· 汇编 代码 · 共 73 行

ASM
73
字号
;********************DRV7135********************
;本程序读取7135AD转换结果。
;入口参数:无。
;出口参数:转换结果在SOUH:SOU中。
;占用资源:W,STATUS,INT,TMR1,024H,025H,07EH,07FH,17FH,一重堆栈。
;说明:    1.使用该程序需在中断入口程序中填入如下两条指令
;           BTFSC	INTCON,INTF
;           GOTO	RB0INT

           IFNDEF       DRV71351
            #DEFINE     DRV71351

SOU         EQU         024H
SOUH        EQU         025H            ;SOUH:SOU存放结果
SAVEW       EQU         07FH            ;现场保护中保存W的地址
SAVES       EQU         07EH

DRV7135     MOVLW       00000010B       ;TMR1计数方式,1:1分频
            MOVWF       T1CON
            CLRF        TMR1H
            CLRF        TMR1L
                                       
            BSF         STATUS,RP0
            BSF         OPTION_REG,6    ;INT中断上升沿触发
            BSF         TRISB,0
            BSF         TRISC,0
            BCF         STATUS,RP0

            BSF         INTCON,PEIE     ;开中断           
            BSF         INTCON,GIE
            BCF         INTCON,INTF
            BSF         INTCON,INTE     ;INT中断
            RETURN
;************INT中断子程序**************
RB0INT      BCF         INTCON,INTF

            MOVWF       SAVEW
            SWAPF       STATUS,W        
            CLRF	STATUS
            MOVWF       SAVES           ;保护现场
  
            BSF         STATUS,RP0
            BTFSS       OPTION_REG,6
            GOTO        CON_DONE
            BCF         OPTION_REG,6    ;INT中断下降沿触发
            BCF         STATUS,RP0          
            NOP
            BSF         T1CON,TMR1ON    ;TMR1开始计数

            GOTO        BACK
            
CON_DONE    BSF         OPTION_REG,6    ;INT中断上升沿触发
            BCF         STATUS,RP0
            BCF         T1CON,TMR1ON
            BCF         INTCON,INTE     
            MOVLW       11H
            SUBWF       TMR1L,W
            MOVWF       SOU
            BTFSS       STATUS,C
            DECF        TMR1H,F
            MOVLW       27H
            SUBWF       TMR1H,W         
            MOVWF       SOUH            ;TMR1H:TMR1L-10001
            CLRF        TMR1H
            CLRF        TMR1L           ;TMR1清0,为下一次转换做准备
BACK        SWAPF       SAVES,W
            MOVWF       STATUS
            SWAPF       SAVEW,F
            SWAPF       SAVEW,W         ;恢复现场
            RETFIE
           ENDIF
                        

⌨️ 快捷键说明

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