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

📄 init.asm

📁 基于PIC16F72的超声波清洗机源程序(汇编).
💻 ASM
字号:
INCLUDE "PIC_RTOS.ASM"
INCLUDE "DRV.ASM"
;*****************************************************************
;        初始化部分
;*****************************************************************  
          
INIT                           
;---------------------------------------------------------------------
;       Initialize Port_A,Port_B,Port_C
;---------------------------------------------------------------------
        BCF     INTCON,GIE
        BSF     STATUS,RP0      ; Select page 1
        MOVLW   B'00000111'
        MOVWF   ADCON1
        MOVLW   B'11110000'
        MOVWF   TRISA           ;
        MOVLW   B'00001111'  
        MOVWF   TRISB           ;PORTB  is output
        MOVLW   B'00000000'
        MOVWF   TRISC           ;PORTC PC1,PC2,PC3 is output other is input
        BCF     STATUS,RP0      ;Select page 0
        CLRF    RB
        CLRF    RA
        CLRF    RC
                                ;各IO口初始化
;---------------------------------------------------------------------
;       Initialize interrupt and time
;---------------------------------------------------------------------
        BSF     STATUS,RP0      ;select bank 1
        MOVLW   B'11001111'
        MOVWF   OPTION_R        ;B口无弱上拉,INT0上升沿有效,T0用内部时钟且上升沿使定时器递增
                                ;预分频器用于WDT,且为128分频
        BCF     STATUS,RP0      ;select bank 0
        MOVLW   B'00000000'
        MOVWF   T1CON           ;定时器1的初始化,提供1分频 1us递增一次
        BCF     PIR1,TMR1IF
        MOVLW   B'00000011'
        MOVWF   T2CON           ;定时器2的初始化,提供16后分频
        BCF     PIR1,TMR2IF
        MOVLW   0H
        MOVWF   TMR0            ;定时器赋初值为0
        CLRF    INTCON          ;关闭所有中断
        BSF     INTCON,PEIE     ;允许外部扩展部件中断
        BSF     STATUS,RP0
        CLRF    PIE1            ;关闭所有中断
        BCF     STATUS,RP0
        MOVLW   20H
        MOVWF   FSR
CLRRML  CLRF    INDF        
        INCF    FSR,1
        BTFSS   FSR,7           ;CLEAR 20H TO 7FH
        GOTO    CLRRML
        CLRWDT   
        BSF     STATUS,RP0      ;select bank 1
        MOVLW   0A0H
        MOVWF   FSR
CLRRMH  CLRF    INDF
        INCF    FSR,1
        MOVF    FSR,0
        XORLW   0D0H
        BTFSS   STATUS,Z       ;CLEAR  90H TO FFH
        GOTO    CLRRMH
        BCF     STATUS,RP0     ;select bank 0
        CLRWDT
        BSF     INTCON,GIE      ;允许总中断        
        RETURN
;******************************************************
;任务分配,初始化任务

INT_TASK CLRF    TIM_OV
         CLRF    TIM_EN          ;禁止任何任务
         MOVLW   TASKID0
         MOVWF   TASKID
         MOVLW   2H
         MOVWF   TASKTM
         MOVLW   3H              ;任务0循环启动
         MOVWF   TASKTY
         CALL    BUD_STAK        ;建立任务0  
         
         MOVLW   TASKID1
         MOVWF   TASKID
         MOVLW   01H              ;任务1等待
         MOVWF   TASKTM
         MOVLW   00H              ;单次周期
         MOVWF   TASKTY
         CALL    BUD_STAK         ;建立任务1

         MOVLW   TASKID2
         MOVWF   TASKID
         MOVLW   D'100'           ;任务2等待
         MOVWF   TASKTM
         MOVLW   01H              ;循环周期
         MOVWF   TASKTY
         CALL    BUD_STAK         ;建立任务2
                              
         RETURN
         
;*****************************************************        
;          初始化参数
;*****************************************************
INIT_CS  
         MOVLW  D'100'
         MOVWF  TIM_HS           ;100MS计数值
IF  CRY_PL== D'16'        
        MOVLW   D'20'
        MOVWF   TIM_MS     ;MS时间间隔
ENDIF      
IF  CRY_PL== D'4'        
        MOVLW   D'5'
        MOVWF   TIM_MS     ;MS时间间隔
ENDIF      

         MOVLW  D'10'
         MOVWF  TIM_S            ;S计数值
         MOVLW  D'60'
         MOVWF  TIM_M            ;S计数值  
         MOVLW  D'5'
         MOVWF  TIM_SS           ;0.5S闪烁标志
         BCF    DL_LED
         BCF    DH_LED
         BCF    ON_OUT
         BCF    DW_OUT
         CLRF   DS_COM           ;显示开始
         BSF    SYS_REG,NEW_DAT  ;新数据标志  
         BCF    SYS_REG,SYS_TYP
         BSF    SYS_REG,DS_SS_SY ;显示停止标志 
         CALL   DS_T0            ;禁止输出
                      
         BTFSS  SYS_REG,SYS_ON   ;判别是否输出允许
         GOTO   INIT_WORK 
         MOVLW  TASKID2          ;允许任务2有效
         CALL   EN_TASK                      
         CALL   EN_T0             
         RETURN
         
INIT_WORK          
         MOVLW  D'3'
        
         MOVWF  WORK_MIN
         CLRF   WORK_SEC         ;默认3分钟  
IF   DW_SYB==0                 
         MOVWF  W_MIN_S
         CLRF   W_MIN_T
ENDIF         
         RETURN
END         

⌨️ 快捷键说明

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