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

📄 counter.asm

📁 PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用
💻 ASM
字号:
;********************COUNTER********************
;本程序用TMR1实现引脚脉冲计数功能。
;入口参数:预定计数值在SOUH:SOU中。
;出口参数:无。
;占用资源:W,STATUS,TMR1模块,024H,025H,07FH,17FH,07EH,1重堆栈。
;说明:    1.使用该程序需在中断入口程序中填入如下两条指令
;           BTFSC	INTCON,T0IF
;           GOTO	COUNINT
;          2.计数值应小于65536。
;          3.TMR1计数通常会丢失第一个脉冲,程序中给予了补偿。

           IFNDEF       COUNTER1
            #DEFINE     COUNTER1

SAVEW       EQU         07FH        ;现场保护中保存W的地址
SAVES       EQU         07EH
            
COUNTER     BCF         INTCON,GIE  ;禁止所有中断
            MOVLW       06H         ;设定T1工作方式,异步计数器方式   
            MOVWF       T1CON
            COMF        SOU,F
            COMF        SOUH,F
            MOVLW       2           
            ADDWF       SOU,F       ;补偿丢失的第一个脉冲
            BTFSC       STATUS,C
            INCF        SOUH,F      ;计算TMR1的值
            MOVF        SOUH,W
            MOVWF       TMR1H       ;TMR1高位        
            MOVF        SOU,W       
            MOVWF       TMR1L       ;TMR1低位
            BSF         STATUS,RP0
            BSF         PIE1,TMR1IE ;开T1中断
            BCF         STATUS,RP0
            BCF         PIR1,TMR1IF
            MOVLW       0C0H
            IORWF       INTCON,F    ;开中断
            BSF         T1CON,TMR1ON;开始计数
            RETURN
;*******************中断程序*******************
COUNINT     MOVWF       SAVEW       
            SWAPF       STATUS,W        
            CLRF        STATUS
            MOVWF       SAVES       ;保护现场        
            BCF         T1CON,TMR1ON;停止计数
            MOVF        SOUH,W
            MOVWF       TMR1H       ;TMR1高位        
            MOVF        SOU,W       
            MOVWF       TMR1L       ;TMR1低位
            BSF         T1CON,TMR1ON;开启计数
            BCF         PIR1,TMR1IF ;清除中断标志
            NOP
            NOP                     ;此处是用户处理程序            
            SWAPF       SAVES,W
            MOVWF       STATUS
            SWAPF       SAVEW,F
            SWAPF       SAVEW,W    ;恢复现场
            RETFIE            
           ENDIF

⌨️ 快捷键说明

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