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

📄 timnms.asm

📁 pic单片机常用的汇编程序,很有用的,分成各个小模块
💻 ASM
字号:
;********************TIMNMS********************
;本程序实现用TMR0定时N毫秒。
;入口参数:定时毫秒数在SOU中。
;出口参数:无。
;占用资源:W,STATUS,TMR0,PORTD,024H,028H,029H,07FH,17FH,07EH,1重堆栈。
;说明:    1.使用该程序需在中断入口程序中填入如下两条指令
;           BTFSC	INTCON,T0IF
;           GOTO	TMR0INT
;          2.最多定时255毫秒,若SOU=0,则定时65毫秒

           IFNDEF       TIMNMS1
            #DEFINE     TIMNMS1

SAVEW       EQU         07FH            ;现场保护中保存W的地址
SAVES       EQU         07EH
            
TIMNMS      CLRF        TEMP1
            BCF         STATUS,C
            RLF         SOU,F
            RLF         TEMP1,F
            RLF         SOU,F       ;SOU*4            
            RLF         TEMP1,F     ;移出位存入TEMP1
            MOVF        TEMP1,W
            MOVWF       TEMP2       ;TEMP2暂存溢出次数
            COMF        SOU,F       
            INCF        SOU,F       ;0-SOU*4
            MOVF        SOU,W
	    MOVWF	TMR0
	    BSF	        STATUS,RP0  ;BANK1
	    MOVLW	17H
	    MOVWF	OPTION_REG  ;1:256
            CLRF        TRISD       ;D为输出
	    BCF	        STATUS,RP0  ;BANK0
            MOVLW       01H
            MOVWF       PORTD
            BCF         INTCON,T0IF
            MOVLW       0E0H
            MOVWF       INTCON      ;开中断
            RETURN
;*******************中断程序*******************
TMR0INT     MOVWF       SAVEW       
            SWAPF       STATUS,W        
            CLRF        STATUS
            MOVWF       SAVES       ;保护现场
        
            MOVF        TEMP1,F
            BTFSS       STATUS,Z
            GOTO        NEXT61
            MOVF        TEMP2,W
            MOVWF       TEMP1
	    BCF	        STATUS,C
	    RLF	        PORTD,F
            MOVF        PORTD,F
	    BTFSC	STATUS,Z
	    BSF	        PORTD,0
            MOVF        SOU,W
NEXT62      MOVWF       TMR0        ;重新装栽TMR0                
            BSF         STATUS,RP0
            MOVLW       17H         ;重新设定预分频值
            MOVWF       OPTION_REG
            BCF         STATUS,RP0
            BCF         INTCON,T0IF   
            
            SWAPF       SAVES,W
            MOVWF       STATUS
            SWAPF       SAVEW,F
            SWAPF       SAVEW,W    ;恢复现场
            RETFIE            

NEXT61      DECF        TEMP1,F    ;溢出次数减1
            CLRW       
            GOTO        NEXT62            
           ENDIF

⌨️ 快捷键说明

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