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

📄 s805g3.src

📁 9454数码管显示交流电压程序,可以做交流电压表用
💻 SRC
📖 第 1 页 / 共 4 页
字号:
         CP        RegulateVoltValue+1,#OUT_VOLT_240/256
         JR        UGT,      SKIP_REGULATE_2_H
         JR        ULT,      SKIP_CHECK_IF_LESS_203
         CP        RegulateVoltValue,  #OUT_VOLT_240%256
         JR        ULT,      SKIP_CHECK_IF_LESS_203
SKIP_REGULATE_2_H:
         CLR       Regulate_1_Time
         CLR       Regulate_2_Time_L
         CLR       Regulate_3_Time_H
         CLR       Regulate_3_Time_L
         CLR       Regulate_4_Time
         CP        Regulate_2_Time_H,    #REGULATE_TIME
         JR        ULT,      EXIT_REGULATE_2
         REGULATE_TEAM_1
         JP        EXIT_REGULATE_2
SKIP_CHECK_IF_LESS_203:
         CP        RegulateVoltValue+1,#OUT_VOLT_203/256
         JR        UGT,      EXIT_REGULATE_2
         JR        ULT,      SKIP_REGULATE_2_L
         CP        RegulateVoltValue,  #OUT_VOLT_203%256
         JR        UGT,      EXIT_REGULATE_2
SKIP_REGULATE_2_L:
         CLR       Regulate_1_Time
         CLR       Regulate_2_Time_H
         CLR       Regulate_3_Time_H
         CLR       Regulate_3_Time_L
         CLR       Regulate_4_Time
         CP        Regulate_2_Time_L,    #REGULATE_TIME
         JR        ULT,      EXIT_REGULATE_2
         REGULATE_TEAM_3
EXIT_REGULATE_2:
         RET

REGULATE_3::
         CP        RegulateVoltValue+1,#OUT_VOLT_236/256
         JR        UGT,      SKIP_REGULATE_3_H
         JR        ULT,      SKIP_CHECK_IF_LESS_205
         CP        RegulateVoltValue,  #OUT_VOLT_236%256
         JR        ULT,      SKIP_CHECK_IF_LESS_205
SKIP_REGULATE_3_H:
         CLR       Regulate_1_Time
         CLR       Regulate_2_Time_H
         CLR       Regulate_2_Time_L
         CLR       Regulate_3_Time_L
         CLR       Regulate_4_Time
         CP        Regulate_3_Time_H,    #REGULATE_TIME
         JR        ULT,      EXIT_REGULATE_3
         REGULATE_TEAM_2
         JP        EXIT_REGULATE_3
SKIP_CHECK_IF_LESS_205:
         CP        RegulateVoltValue+1,#OUT_VOLT_205/256
         JR        UGT,      EXIT_REGULATE_3
         JR        ULT,      SKIP_REGULATE_3_L
         CP        RegulateVoltValue,  #OUT_VOLT_205%256
         JR        UGT,      EXIT_REGULATE_3
SKIP_REGULATE_3_L:
         CLR       Regulate_1_Time
         CLR       Regulate_2_Time_H
         CLR       Regulate_2_Time_L
         CLR       Regulate_3_Time_H
         CLR       Regulate_4_Time
         CP        Regulate_3_Time_L,    #REGULATE_TIME
         JR        ULT,      EXIT_REGULATE_3
         REGULATE_TEAM_4
EXIT_REGULATE_3:
         RET

REGULATE_4::
         CP        RegulateVoltValue+1,#OUT_VOLT_238/256
         JR        UGT,      SKIP_REGULATE_4
         JR        ULT,      EXIT_REGULATE_4
         CP        RegulateVoltValue,  #OUT_VOLT_238%256
         JR        ULT,      EXIT_REGULATE_4
SKIP_REGULATE_4:
         CLR       Regulate_1_Time
         CLR       Regulate_2_Time_H
         CLR       Regulate_2_Time_L
         CLR       Regulate_3_Time_H
         CLR       Regulate_3_Time_L
         CP        Regulate_4_Time,    #REGULATE_TIME
         JR        ULT,      EXIT_REGULATE_4
         REGULATE_TEAM_3
EXIT_REGULATE_4:
         RET
;================================================
DEAL_DISPLAY::                         ; Process display, use out volt average value in the 500ms
         TM        FlagReg,  #DELAY_6S
         JR        NZ,       SKIP_PROCESS_DELAY_6S
         TM        FlagReg,  #REFRESH_DISPLAY_VOLT
         JR        NZ,       SKIP_DEAL_DISPLAY
         ADD       DisplayVoltSum,     OutVoltValue
         ADC       DisplayVoltSum+1,   OutVoltValue+1
         INC       DisplayVoltCnt
         RET
SKIP_PROCESS_DELAY_6S:                 ; Delay 6s
         CLR       R9
         LD        R8,       Delay_6s_Cnt
         CALL      DISP_LED_DATA
         WORK_LED  ON
         ERROR_LED OFF
         BUZZER_OFF
         TM        FlagReg,  #DELAY_6S_YEL_FLASH
         JR        NZ,       SKIP_ERROR_LED_ON
         DELAY_LED OFF
         JR        SKIP_IF_EXIT_DELAY_6S
SKIP_ERROR_LED_ON:
         DELAY_LED ON
SKIP_IF_EXIT_DELAY_6S:
         CP        Delay_6s_Cnt,  #01
         JR        UGE,      EXIT_PROCESS_DELAY_6S
         ON_RL1
         AND       FlagReg,  #~DELAY_6S
         AND       FlagReg,  #~OUT_VOLT_PROTECT
         AND       FlagReg,  #~REFRESH_DISPLAY_VOLT
         LD        Out_Volt_High_265_Time, #DISPLAY_TIME
         LD        Out_Volt_High_255_Time, #DISPLAY_TIME
         LD        Out_volt_High_245_Time, #DISPLAY_TIME
         LD        Out_Volt_Normal_Time, #DISPLAY_TIME
         LD        Out_Volt_Less_150_Time, #DISPLAY_TIME
         CLR       Cnt_2s
         CLR       Cnt_10s
         LD        DisplayVoltValueBackup+1,  RegulateVoltValue+1
         LD        DisplayVoltValueBackup,    RegulateVoltValue
EXIT_PROCESS_DELAY_6S:
         RET
SKIP_DEAL_DISPLAY:
         AND       FlagReg,  #~REFRESH_DISPLAY_VOLT	;CLEAR THE REFRESH DISPLAY VOLAGE FLAG
         LD        R1,       DisplayVoltSum+1
         LD        R0,       DisplayVoltSum
         CLR       R3
         LD        R2,       DisplayVoltCnt
         CALL      DOUBLE_BYTES_DIV
         LD        DisplayVoltValue+1,R1	;GET THE AVERAGE VALUE TO STORE IN DISPLAY VOLTVALUE
         LD        DisplayVoltValue,  R0
         CLR       DisplayVoltSum+1
         CLR       DisplayVoltSum
         CLR       DisplayVoltCnt
SKIP_PROCESS_USE_PREVISION_OUT_VOLT:
         NOP
OUT_VOLT_HIGH_265:
         CP        DisplayVoltValue+1,#OUT_VOLT_265/256
         JR        UGT,      SKIP_OUT_VOLT_HIGH_265	;IF OUTPUT > 265 THEN  GOTO
         JR        ULT,      OUT_VOLT_HIGH_255		;IF OUPUT <255 THEN GOTO
         CP        DisplayVoltValue,  #OUT_VOLT_265%256	;THIS INDICATE HIGH BIT IS THE SAME 
         JR        ULT,      OUT_VOLT_HIGH_255		;COMPARE LOW BYTE THAT OUTPUT>
SKIP_OUT_VOLT_HIGH_265:
         OR        FlagReg2, #DISP_HIGH_265_FLAG
         AND       FlagReg2, #~DISP_HIGH_255_FLAG
         AND       FlagReg2, #~DISP_HIGH_245_FLAG
         AND       FlagReg2, #~DISP_NORMAL_FLAG
         AND       FlagReg2, #~DISP_LOW_150_FLAG
         CP        Out_Volt_High_265_Time,    #DISPLAY_TIME
         JP        ULT,      SKIP_SET_PREVISION_OUT_VOLT_PROCESS
SKIP_OUT_VOLT_HIGH_265_ZONE:
         AND       FlagReg2, #~DISP_HIGH_265_FLAG
         TM        FlagReg2, #DISP_HIGH_255_FLAG
         JR        NZ,       JUMP_CLR_High_255_Time_265
         CLR       Out_Volt_High_255_Time
JUMP_CLR_High_255_Time_265:
         TM        FlagReg2, #DISP_HIGH_245_FLAG
         JR        NZ,       JUMP_CLR_High_245_Time_265
         CLR       Out_volt_High_245_Time
JUMP_CLR_High_245_Time_265:
         TM        FlagReg2, #DISP_NORMAL_FLAG
         JR        NZ,       JUMP_CLR_Normal_Time_265
         CLR       Out_Volt_Normal_Time
JUMP_CLR_Normal_Time_265:
         TM        FlagReg2, #DISP_LOW_150_FLAG
         JR        NZ,       JUMP_CLR_Less_150_Time_265
         CLR       Out_Volt_Less_150_Time
JUMP_CLR_Less_150_Time_265:
         LD        DisplayVoltValueBackup+1,  DisplayVoltValue+1
         LD        DisplayVoltValueBackup,    DisplayVoltValue
         CLR       Cnt_10s
         CALL      DISP_H
         WORK_LED  ON
         DELAY_LED ON
         ERROR_LED ON
         BUZZER_ON
         CP        Cnt_2s,   #15
         JR        ULT,      EXIT_OUT_VOLT_HIGH_265
         OFF_RL1
         OR        FlagReg,  #OUT_VOLT_PROTECT
         LD        Cnt_10s,  #10
EXIT_OUT_VOLT_HIGH_265:
         RET

OUT_VOLT_HIGH_255:
         CP        DisplayVoltValue+1,#OUT_VOLT_255/256
         JR        UGT,      SKIP_OUT_VOLT_HIGH_255
         JP        ULT,      OUT_VOLT_HIGH_245
         CP        DisplayVoltValue,  #OUT_VOLT_255%256
         JP        ULT,      OUT_VOLT_HIGH_245
SKIP_OUT_VOLT_HIGH_255:
         AND       FlagReg2, #~DISP_HIGH_265_FLAG
         OR        FlagReg2, #DISP_HIGH_255_FLAG
         AND       FlagReg2, #~DISP_HIGH_245_FLAG
         AND       FlagReg2, #~DISP_NORMAL_FLAG
         AND       FlagReg2, #~DISP_LOW_150_FLAG
         CP        Out_Volt_High_255_Time,  #DISPLAY_TIME
         JP        ULT,      SKIP_SET_PREVISION_OUT_VOLT_PROCESS
SKIP_OUT_VOLT_HIGH_255_ZONE:
         AND       FlagReg2, #~DISP_HIGH_255_FLAG
         TM        FlagReg2, #DISP_HIGH_265_FLAG
         JR        NZ,       JUMP_CLR_High_265_Time_255
         CLR       Out_Volt_High_265_Time
JUMP_CLR_High_265_Time_255:
         TM        FlagReg2, #DISP_HIGH_245_FLAG
         JR        NZ,       JUMP_CLR_High_245_Time_255
         CLR       Out_volt_High_245_Time
JUMP_CLR_High_245_Time_255:
         TM        FlagReg2, #DISP_NORMAL_FLAG
         JR        NZ,       JUMP_CLR_Normal_Time_255
         CLR       Out_Volt_Normal_Time
JUMP_CLR_Normal_Time_255:
         TM        FlagReg2, #DISP_LOW_150_FLAG
         JR        NZ,       JUMP_CLR_Less_150_Time_255
         CLR       Out_Volt_Less_150_Time
JUMP_CLR_Less_150_Time_255:
         LD        DisplayVoltValueBackup+1,  DisplayVoltValue+1
         LD        DisplayVoltValueBackup,    DisplayVoltValue
         CLR       Cnt_2s
         TM        FlagReg,  #FLASH_FLAG
         JR        NZ,       SKIP_DISP_H
         CALL      DISP_OFF
         ERROR_LED OFF
         JR        SKIP_CHECK_IF_PROTECT_255
SKIP_DISP_H:
         CALL      DISP_H
         WORK_LED  ON
         DELAY_LED ON
         ERROR_LED ON
SKIP_CHECK_IF_PROTECT_255:
         TM        FlagReg2, #BUZZER_255
         JR        NZ,       SKIP_BUZZER_255_ON
         BUZZER_OFF
         JP        SKIP_BUZZER_255
SKIP_BUZZER_255_ON:
         BUZZER_ON
SKIP_BUZZER_255:
         CP        Cnt_10s,  #10
         JR        ULT,      EXIT_OUT_VOLT_HIGH_255
         OFF_RL1
         CALL      DISP_H
         WORK_LED  ON
         DELAY_LED ON
         ERROR_LED ON
         BUZZER_ON
         OR        FlagReg,  #OUT_VOLT_PROTECT
         LD        Cnt_2s,   #15
EXIT_OUT_VOLT_HIGH_255:
         RET

OUT_VOLT_HIGH_245:
         CP        DisplayVoltValue+1,#OUT_VOLT_245/256
         JR        UGT,      SKIP_OUT_VOLT_HIGH_245
         JP        ULT,      OUT_VOLT_NORMAL
         CP        DisplayVoltValue  ,#OUT_VOLT_245%256
         JP        ULT,      OUT_VOLT_NORMAL
SKIP_OUT_VOLT_HIGH_245:
         AND       FlagReg2, #~DISP_HIGH_265_FLAG
         AND       FlagReg2, #~DISP_HIGH_255_FLAG
         OR        FlagReg2, #DISP_HIGH_245_FLAG
         AND       FlagReg2, #~DISP_NORMAL_FLAG
         AND       FlagReg2, #~DISP_LOW_150_FLAG
         CP        Out_volt_High_245_Time,  #DISPLAY_TIME
         JP        ULT,      SKIP_SET_PREVISION_OUT_VOLT_PROCESS
SKIP_OUT_VOLT_HIGH_245_ZONE:
         AND       FlagReg2, #~DISP_HIGH_245_FLAG
         TM        FlagReg2, #DISP_HIGH_265_FLAG
         JR        NZ,       JUMP_CLR_High_265_Time_245
         CLR       Out_Volt_High_265_Time
JUMP_CLR_High_265_Time_245:
         TM        FlagReg2, #DISP_HIGH_255_FLAG
         JR        NZ,       JUMP_CLR_High_255_Time_245
         CLR       Out_Volt_High_255_Time
JUMP_CLR_High_255_Time_245:
         TM        FlagReg2, #DISP_NORMAL_FLAG
         JR        NZ,       JUMP_CLR_Normal_Time_245
         CLR       Out_Volt_Normal_Time
JUMP_CLR_Normal_Time_245:
         TM        FlagReg2, #DISP_LOW_150_FLAG
         JR        NZ,       JUMP_CLR_Less_150_Time_245
         CLR       Out_Volt_Less_150_Time
JUMP_CLR_Less_150_Time_245:
         LD        DisplayVoltValueBackup+1,  DisplayVoltValue+1
         LD        DisplayVoltValueBackup,    DisplayVoltValue
         CLR       Cnt_2s
         CLR       Cnt_10s
         TM        FlagReg,  #OUT_VOLT_PROTECT
         JR        Z,        JUMP_SET_DELAY_6S_245
         OR        FlagReg,  #DELAY_6S
         LD        Delay_6s_Cnt,       #00
         JP        EXIT_OUT_VOLT_HIGH_245
JUMP_SET_DELAY_6S_245:
         TM        FlagReg,  #FLASH_FLAG
         JR        NZ,       SKIP_DISP_OUT_VOLT_TRUE
         CALL      DISP_OFF
         WORK_LED  ON
         DELAY_LED ON
         ERROR_LED OFF
         JP        SKIP_PROCESS_BUZZER_245
SKIP_DISP_OUT_VOLT_TRUE:
         LD        R9,       DisplayVoltValue+1
         LD        R8,       DisplayVoltValue
         CALL      DISP_LED_DATA
         WORK_LED  ON
         DELAY_LED ON
         ERROR_LED ON
SKIP_PROCESS_BUZZER_245:
         TM        FlagReg2, #BUZZER_245
         JR        NZ,       SKIP_BUZZER_245_ON
         BUZZER_OFF
         JP        SKIP_BUZZER_245
SKIP_BUZZER_245_ON:
         BUZZER_ON
SKIP_BUZZER_245:
EXIT_OUT_VOLT_HIGH_245:
         RET

OUT_VOLT_NORMAL:
         CP        DisplayVoltValue+1,#OUT_VOLT_150/256
         JR        UGT , SKIP_OUT_VOLT_NORMAL
         JP        ULT , OUT_VOLT_LOW_150
         CP        DisplayVoltValue,  #OUT_VOLT_150%256
         JP       ULT,      OUT_VOLT_LOW_150
SKIP_OUT_VOLT_NORMAL:
         AND       FlagReg2, #~DISP_HIGH_265_FLAG
         AND       FlagReg2, #~DISP_HIGH_255_FLAG

⌨️ 快捷键说明

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