📄 drv7135.asm
字号:
;********************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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -