📄 picdisasm_mc40.asm
字号:
;***********************************************************
;
; PicDisasm1.1 By CYPOK.
;
;***********************************************************
LIST P=PIC16C62B,R=HEX
#INCLUDE "P16C62B.INC"
ORG 0x00
POWER_UP:
CLRF INTCON
CLRWDT
GOTO LABEL_0xBA
NOP
ORG 0x04
InterRupt_Fun:
MOVWF 0x20
SWAPF STATUS, W
BCF STATUS,RP0
MOVWF 0x22
LABEL_0x8: ;<-------|
BTFSC PIR1,CCP1IF ; | |
GOTO LABEL_0x17 ;>---| | |
BTFSC INTCON,INTF ; | | |
GOTO LABEL_0x99 ; | | |
BTFSC PIR1,TMR2IF ; | | |
GOTO LABEL_0x7F ; | | |
BTFSC INTCON,T0IF ; | | |
GOTO LABEL_0x5D ; | | |
BTFSC PIR1,TMR1IF ; | | |
GOTO LABEL_0x75 ; | | |
SWAPF 0x22, W ; | | |
MOVWF STATUS ; | | |
SWAPF 0x20, F ; | | |
SWAPF 0x20, W ; | | |
RETFIE ; | | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;扑捉中断
LABEL_0x17: ;<---| | |
BCF PIR1,CCP1IF ; | |
MOVF CCPR1H, W ; | |
MOVWF 0x2c ; | |
MOVF CCPR1L, W ; | |
MOVWF 0x2d ; | |
MOVLW 0x00 ; | |
SUBWF 0x2c, W ; | |
BTFSS STATUS,C ; | |
GOTO LABEL_0x8 ;>-----| | 数据错误,返回
BTFSS STATUS,Z ; |
GOTO LABEL_0x26 ;>---| |
MOVLW 0x0a ; | |
SUBWF 0x2d, W ; | |
BTFSS STATUS,C ; | |
GOTO LABEL_0x8 ;>-------| 数据错误,返回
;;;;;;大于10US
LABEL_0x26: ;<---|
BSF PORTB,0x05 ;无效语句
BCF T1CON,TMR1ON
MOVF 0x2d, W
SUBWF TMR1L, F ;tmr1 数据重新复位
BTFSS STATUS,C
DECF TMR1H, F
MOVF 0x2c, W
SUBWF TMR1H, F
BSF T1CON,TMR1ON
BCF PORTB,0x05 ;无效语句
BTFSC 0x45,0x07 ;tmr1 溢出判断
GOTO LABEL_0x3B ;>---|溢出
MOVF 0x2c, W ; | 数据正常,保存
MOVWF 0x2a ; |
MOVF 0x2d, W ; |
MOVWF 0x2b ; |
BTFSC 0x46,0x02 ; |;允许TRM0延时标志
CALL SUB_0x13B ; 低电平时间开始装载
CALL SUB_0x152 ; | 高电平时间装载
BTFSS 0x45,0x06 ; | 第1次为低
GOTO LABEL_0x3F ;>-----|
LABEL_0x3B: ;<---| |
BCF 0x45,0x00 ; |
CLRF 0x35 ; |
CALL SUB_0x12A ; | 复位
GOTO LABEL_0x5A ;>---| |
LABEL_0x3F: ;<---|-|
INCFSZ 0x35, W ; | 第1次为0
MOVWF 0x35 ; |
MOVLW 0x0a ; |
SUBWF 0x35, W ; |
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -