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

📄 f.s43

📁 用MSP430单片机做的频率表程序(完整的一个产品程序)
💻 S43
📖 第 1 页 / 共 5 页
字号:
             BIC.B  #LEDK,&P6OUT
             BIC.B  #LEDM,&P6OUT
             JMP    UP_Q4
UP_Q1      CMP     #01H,LEDPQKM
             JNE     UP_Q2
             BIS.B  #LEDK,&P6OUT
             BIC.B  #LEDM,&P6OUT
             JMP    UP_Q4
UP_Q2      CMP     #10H,LEDPQKM
             JNE     UP_Q4
             BIC.B  #LEDK,&P6OUT
             BIS.B  #LEDM,&P6OUT
             JMP    UP_Q4
       
UP_Q4      MOV     QTEMP,R4 
             CALL    #BINTOBCD
             MOV.B   DISP1,DISPB1
             MOV.B   DISP2,DISPB2 
             MOV.B   DISP3,DISPB3
             MOV.B   DISP4,DISPB4
             CALL    #DISPPU
             CALL    #ALARMPROG
             RET
;-----------------------------------------------------------------------------             
UP_H       
             MOV.B   FUHAOP,FUHAOB
             MOV.B   POINTPQ,POINTB
             CMP     #0,LEDPQKM
             JNE     UP_H1
             BIC.B  #LEDK,&P6OUT
             BIC.B  #LEDM,&P6OUT
             JMP    UP_H4
UP_H1      CMP     #01H,LEDPQKM
             JNE     UP_H2
             BIS.B  #LEDK,&P6OUT
             BIC.B  #LEDM,&P6OUT
             JMP    UP_H4
UP_H2      CMP     #10H,LEDPQKM
             JNE     UP_H4
             BIC.B  #LEDK,&P6OUT
             BIS.B  #LEDM,&P6OUT
             JMP    UP_H4
       
UP_H4      MOV     HTEMP,R4 
             CALL    #BINTOBCD
             MOV.B   DISP1,DISPB1
             MOV.B   DISP2,DISPB2 
             MOV.B   DISP3,DISPB3
             MOV.B   DISP4,DISPB4
             CALL    #DISPPU
             CALL    #ALARMPROG
             RET
;-----------------------------------------------------------------------------             
UP_S       
             MOV     STEMP,R4 
             CALL    #BINTOBCD
             MOV.B   DISP1,DISPB1
             MOV.B   DISP2,DISPB2 
             MOV.B   DISP3,DISPB3
             MOV.B   DISP4,DISPB4
             CALL    #DISPPU
             CALL    #ALARMPROG
             RET
;-----------------------------------------------------------------------------             
UP_F       
             MOV     FTEMP,R4 
             CALL    #BINTOBCD
             MOV.B   DISP1,DISPB1
             MOV.B   DISP2,DISPB2 
             MOV.B   DISP3,DISPB3
             MOV.B   DISP4,DISPB4
             CALL    #DISPPU
             CALL    #ALARMPROG
             RET                                       
;--------------------------------------------------------------------------             
GETP             
            CALL   #BEILV             
            MOV    DISPLINE,PTEMP
            RET
             
GETQ             
            CALL   #BEILV             
            MOV    QDISPLINE,QTEMP
            RET
            

GETF             
            CMP    #2H,FA1
            JLO    F_1
            MOV    FA1,R11
            MOV    #0FA0H,R12
            call    #mpy 
            mov    r7,r11
            MOV    #64H,R12            
            call    #mpy
            mov    r7,FDISPLINE
            MOV    FDISPLINE,FTEMP
            JMP    F_2
F_1
            MOV    00,FTEMP 
F_2
            RET                                              
;-------------------------------------------------
ALARMPROG    ;报警子程序
;--------------------------------------------------
A_ALARM      BIT    #DO1MODEFLAG,DOMODE 
             JNZ     B_ALARM1
A_A          BIT    #AALHORFLAG,ALARMORFLAG
             JNZ    A_A1
A_A2         BIT    #AALLORFLAG,ALARMORFLAG
             JNZ    A_A3 
A_A4         BIS.B  #KO1,&P1OUT
             BIC.B  #BIT0,KOCOM
             BIC.B  #LEDP2,&P6OUT
             JMP    B_ALARM             
A_A1         BIT    #AALHONFLAG,ALARMONFLAG
             JNZ    B_ALARM
             JMP    A_A2             
A_A3         BIT    #AALLONFLAG,ALARMONFLAG
             JNZ    B_ALARM
             JMP    A_A4  
             
B_ALARM1     BIC    #AALHORFLAG+AALLORFLAG,ALARMORFLAG               
B_ALARM      BIT    #DO2MODEFLAG,DOMODE 
             JNZ     C_ALARM1                 
A_B          BIT    #BALHORFLAG,ALARMORFLAG
             JNZ    A_B1 
A_B2         BIT    #BALLORFLAG,ALARMORFLAG
             JNZ    A_B3
A_B4         BIS.B  #KO2,&P1OUT
             BIC.B   #BIT1,KOCOM
             BIC.B  #LEDP3,&P6OUT
             JMP    C_ALARM
A_B1         BIT    #BALHONFLAG,ALARMONFLAG
             JNZ    C_ALARM
             JMP    A_B2             
A_B3         BIT    #BALLONFLAG,ALARMONFLAG
             JNZ    C_ALARM
             JMP    A_B4  
             
C_ALARM1     BIC    #BALHORFLAG+BALLORFLAG,ALARMORFLAG                           
C_ALARM      
AL_AH1       
             BIT    #AALHORFLAG,ALARMORFLAG
             JZ      AL_AL1A
             BIT    #AALHONFLAG,ALARMONFLAG                
             JZ      AL_AH2
             CMP     PTEMP,AALHOFFDATE   ;是否低于上报警关闭值
             JLO     AL_BH1 
             BIC    #AALHONFLAG,ALARMONFLAG
             BIS.B  #KO1,&P1OUT       ; 关触点  P4.1驱动A相继电器  
             BIC.B    #BIT0,KOCOM
             BIC.B  #LEDP2,&P6OUT
             JMP     AL_AL1 
AL_AH2       CMP     PTEMP,AALHONDATE    ;是否超过上报警开启值
             JLO     AL_AH3
             JMP     AL_AL1                             
AL_AH3       BIS    #AALHONFLAG,ALARMONFLAG
             BIC.B  #KO1,&P1OUT        ;开触点  P4.1驱动A相继电器     
             BIS.B  #BIT0,KOCOM
             BIS.B  #LEDP2,&P6OUT
             JMP     AL_BH1 
                          
AL_AL1A       BIC    #AALHONFLAG,ALARMONFLAG  
 
AL_AL1       BIT    #AALLORFLAG,ALARMORFLAG    
             JZ      AL_BH1A
             BIT    #AALLONFLAG,ALARMONFLAG 
             JZ      AL_AL2     
             CMP     AALLOFFDATE, PTEMP    ;是否高于下报警关闭值
             JLO     AL_BH1  
             BIC    #AALLONFLAG,ALARMONFLAG
             BIS.B  #KO1,&P1OUT         ; 关触点  P4.1驱动A相继电器  
             BIC.B  #BIT0,KOCOM
             BIC.B  #LEDP2,&P6OUT
             JMP     AL_BH1              
AL_AL2       CMP    AALLONDATE, PTEMP   ;是否低于下报警开启值
             JLO     AL_AL3
             JMP     AL_BH1                             
AL_AL3       BIS    #AALLONFLAG,ALARMONFLAG
             BIC.B  #KO1,&P1OUT         ;开触点  P4.1驱动A相继电器     
             BIS.B  #BIT0,KOCOM
             BIS.B  #LEDP2,&P6OUT
             JMP     AL_BH1               
                                 

AL_BH1A        
             BIC    #AALLONFLAG,ALARMONFLAG
AL_BH1       
             BIT   #BALHORFLAG,ALARMORFLAG
             JZ      AL_BL1A   
             BIT   #BALHONFLAG,ALARMONFLAG                
             JZ      AL_BH2
             CMP      PTEMP,BALHOFFDATE   ;是否低于上报警关闭值
             JLO     AL_CH1 
             BIC    #BALHONFLAG,ALARMONFLAG
             BIS.B  #KO2,&P1OUT        ; 关触点  P4.2驱动B相继电器  
             BIC.B    #BIT1,KOCOM
             BIC.B  #LEDP3,&P6OUT
             JMP     AL_BL1 
AL_BH2       CMP     PTEMP,BALHONDATE    ;是否超过上报警开启值
             JLO     AL_BH3
             JMP     AL_BL1                             
AL_BH3       BIS    #BALHONFLAG,ALARMONFLAG
             BIC.B  #KO2,&P1OUT         ;开触点  P4.2驱动B相继电器     
             BIS.B   #BIT1,KOCOM
             BIS.B  #LEDP3,&P6OUT
             JMP     AL_CH1              
AL_BL1A      BIC    #BALHONFLAG,ALARMONFLAG
AL_BL1       BIT   #BALLORFLAG,ALARMORFLAG    
             JZ      AL_CH1A
             BIT   #BALLONFLAG,ALARMONFLAG 
             JZ      AL_BL2     
             CMP     BALLOFFDATE, PTEMP    ;是否高于下报警关闭值
             JLO     AL_CH1 
             BIC    #BALLONFLAG,ALARMONFLAG
             BIS.B  #KO2,&P1OUT       ; 关触点  P4.2驱动B相继电器  
             BIC.B  #BIT1,KOCOM
             BIC.B  #LEDP3,&P6OUT
             JMP     AL_CH1               
AL_BL2       CMP    BALLONDATE, PTEMP    ;是否低于下报警开启值
             JLO     AL_BL3
             JMP     AL_CH1                             
AL_BL3       BIS    #BALLONFLAG,ALARMONFLAG
             BIC.B  #KO2,&P1OUT         ;开触点  P4.2驱动B相继电器     
             BIS.B  #BIT1,KOCOM
             BIS.B  #LEDP3,&P6OUT
             JMP     AL_CH1     
AL_CH1A      BIC    #BALLONFLAG,ALARMONFLAG                                    
AL_CH1                    
AL_Q         RET 

;---------------------------------------------------------------------------- 
PACADD        push     r4
             clr      r4
            BIT.B    #FUHAOFLAGA,FUHAO         ;AC两相相加
            JNZ       PACADD_1
            BIT.B    #FUHAOFLAGC,FUHAO  
            JNZ      PACADD_2
            ADD      ADLINE1,r4
            ADD      ADLINE1C,r4
            MOV      R4,ADLINEFULL 
            MOV.B    #PFLAG,FUHAOP
            BIC      #PPOL,LINEDATE3
            JMP      PACADD_Q
PACADD_2     CMP     ADLINE1,ADLINE1C
            JLO     PACADD_3
            MOV     ADLINE1C,R4
            SUB     ADLINE1,R4
            MOV      R4,ADLINEFULL
            MOV.B    #NFLAG,FUHAOP
            BIS      #PPOL,LINEDATE3
            JMP      PACADD_Q
PACADD_3     MOV     ADLINE1,R4
            SUB     ADLINE1C,R4
            MOV      R4,ADLINEFULL
            MOV.B    #PFLAG,FUHAOP
            BIC      #PPOL,LINEDATE3 
            JMP      PACADD_Q
PACADD_1     BIT.B    #FUHAOFLAGC,FUHAO
            JNZ      PACADD_4
            CMP     ADLINE1,ADLINE1C
            JLO     PACADD_5
            MOV     ADLINE1C,R4
            SUB     ADLINE1,R4
            MOV      R4,ADLINEFULL
            MOV.B    #PFLAG,FUHAOP
            BIC      #PPOL,LINEDATE3
            JMP      PACADD_Q
PACADD_5     MOV     ADLINE1,R4
            SUB     ADLINE1C,R4
            MOV      R4,ADLINEFULL
            MOV.B    #NFLAG,FUHAOP 
            BIS      #PPOL,LINEDATE3
            JMP      PACADD_Q   
PACADD_4     
            ADD      ADLINE1,R4
            ADD      ADLINE1C,R4
            MOV      R4,ADLINEFULL
            
            MOV.B    #NFLAG,FUHAOP  
            BIS      #PPOL,LINEDATE3         
PACADD_Q     
            POP      R4
            RET   
;-----------------------------------------------------------             
QACADD        push     r4
             clr      r4
            BIT.B    #QFUHAOFLAGA,FUHAO         ;AC两相相加
            JNZ       QACADD_1
            BIT.B    #QFUHAOFLAGC,FUHAO  
            JNZ      QACADD_2
            ADD      QADLINE1,r4
            ADD      QADLINE1C,r4
            MOV      R4,QADLINEFULL 
            MOV.B    #PFLAG,FUHAOP
            BIC      #PPOL,LINEDATE3
            JMP      QACADD_Q
QACADD_2     CMP     QADLINE1,QADLINE1C
            JLO     QACADD_3
            MOV     QADLINE1C,R4
            SUB     QADLINE1,R4
            MOV      R4,QADLINEFULL
            MOV.B    #NFLAG,FUHAOP
            BIS      #PPOL,LINEDATE3
            JMP      QACADD_Q
QACADD_3     MOV     QADLINE1,R4
            SUB     QADLINE1C,R4
            MOV      R4,QADLINEFULL
            MOV.B    #PFLAG,FUHAOP
            BIC      #PPOL,LINEDATE3 
            JMP      QACADD_Q
QACADD_1     BIT.B    #QFUHAOFLAGC,FUHAO
            JNZ      QACADD_4
            CMP     QADLINE1,QADLINE1C
            JLO     QACADD_5
            MOV     QADLINE1C,R4
            SUB     QADLINE1,R4
            MOV      R4,QADLINEFULL
            MOV.B    #PFLAG,FUHAOP
            BIC      #PPOL,LINEDATE3
            JMP      QACADD_Q
QACADD_5     MOV     QADLINE1,R4
            SUB     QADLINE1C,R4
            MOV      R4,QADLINEFULL
            MOV.B    #NFLAG,FUHAOP 
            BIS      #PPOL,LINEDATE3
            JMP      QACADD_Q   
QACADD_4     
            ADD      QADLINE1,R4
            ADD      QADLINE1C,R4
            MOV      R4,QADLINEFULL
            
            MOV.B    #NFLAG,FUHAOP  
                    
QACADD_Q     
            POP      R4
            RET

;-----------------------------------------------------------             
HACADD        
            MOV      HADLINE1,HADLINEFULL            
            RET
;--------------------------------------------------------           
BEILV                             ;倍率计算 
            MOV   USCLSAVE,R11 
            MOV.B  ISCLSAVE,R12
            AND    #00FFH,R12 
            call    #mpy 
            mov    r7,r11
            MOV    #1732,R12
            call    #mpy  
            MOV    R7,R12
            MOV    R14,R13
            MOV    #100,R11 
            call    #divide 
            mov    r14,r7
            CALL  #RITOBIN
            MOV   BCDEND,R12
            mov    r7,r11 
            call    #mpy  
            CALL  #RUTOBIN                    
            MOV   BCDEND,R12 
            mov   #00h,r13
            mov   r14,r11 
            mov   r7,r10
            call    #MpyU32 
            MOV    #00H,R6
            MOV    #00H,R5
            MOV    #2710H,R4
            CALL   #compthree 
            BIT.B  #FLAGSMALL,THREEFLAG 
            JZ     BEI_1 
            MOV.B  #POINT10,POINTPQ
            BIC     #PQPOINT,LINEDATE3 
            BIS     #PQPOINT2,LINEDATE3   
            MOV    #0,LEDPQKM
            BIC    #PQUNIT,LINEDATE3 
            BIC    #PQUNIT2,LINEDATE3 
            MOV    R10,R11
            JMP    BEI_NEXT
BEI_1       MOV    #00H,R6
            MOV    #01H,R5
            MOV    #86A0H,R4
            CALL   #compthree 
            BIT.B   #FLAGSMALL,THREEFLAG 
            JZ     BEI_2       
            MOV.B  #POINT1000,POINTPQ
            BIS     #PQPOINT,LINEDATE3 
            BIS     #PQPOINT2,LINEDATE3
            MOV    #01H,LEDPQKM 
            BIC    #PQUNIT,LINEDATE3 
            BIS    #PQUNIT2,LINEDATE3 
            MOV    R11,R13
            MOV    R10,R12
            MOV    #0AH,R11
            CALL    #divide 
            MOV    R14,R11
            JMP    BEI_NEXT
BEI_2       MOV    #00H,R6
            MOV    #0FH,R5
            MOV    #4240H,R4
            CALL   #compthree 

⌨️ 快捷键说明

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