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

📄 lcdavr_1k_1621.src

📁 液晶显示线包式交流稳压器
💻 SRC
📖 第 1 页 / 共 5 页
字号:
calc_regulate_time::
	CLR	R0	
cal_regulate_time_conti:	
	CP	R6,#0
	JR	NE,OVER_255_timr
	
	CP	R7,#10
	JR	ULT,set_regulat_low
	CP	R7,#70
	JR	UGT,OVER_255_timr
	
	LD	R0,R7
	RCF
	RRC	R7

	RCF
	RRC	R7

	
	ADD	R0,R7
	RET
	
OVER_255_timr:
	LD	R0,#100
	RET
set_regulat_low:
	LD	R0,#4
	RET
;====================================================================
;------------------------------------------------------------------
Display_Module:
	CP      SystemStatus,#SYSTEM_INIT
        JP      NE,DLY_NORMAL
        CLR     display_set2
        CP      DLYINIT_Timer,#00H
        JR      NE,DLY_INIT_EXIT
        LD      R6,#TAB_DLY_INIT/256
        LD      R7,#TAB_DLY_INIT%256
        CP      DLYINIT_Counter,#07H
        JR      ULT,DLY_INIT_FIXED
        JR      EQ,DLY_INIT_WELCOME
        CP      DLYINIT_Counter,#10H
        JR      EQ,DLY_INIT_DELAY
        CP      DLYINIT_Counter,#8
        JR      UGE,DLY_INIT_ACCU
DLY_INIT_DELAY:
        CP      DelaySW_Input,#DLY_SHORT
        JR      NE,DLY_INIT_LONG
        LD      DLYINIT_Counter,#08H
        LD      R2,DLYINIT_Counter
        JP      DLY_INIT_HANDLE
DLY_INIT_WELCOME:
        LD      R2,DLYINIT_Counter
        LD      DLYINIT_Counter,#10H
        JP      DLY_INIT_HANDLE
DLY_INIT_LONG:
        LD      DLYINIT_Counter,#09H
        LD      R2,DLYINIT_Counter
        JP      DLY_INIT_HANDLE

DLY_INIT_ACCU:
        CP      DLYINIT_Counter,#10
        JR      UGE,DLY_INIT_REPLAY
        CP      AccuSW_Input,#ACCU_HIGH
        JR      NE,DLY_INIT_LOW
        LD      DLYINIT_Counter,#10
        LD      R2,DLYINIT_Counter
        JP      DLY_INIT_HANDLE
DLY_INIT_LOW:
        LD      DLYINIT_Counter,#11
        LD      R2,DLYINIT_Counter
        JP      DLY_INIT_HANDLE
DLY_INIT_REPLAY:
        CP      DelaySW_Input,#DLY_SHORT
        JR      EQ,DLY_INIT_EXIT
        CLR     DLYINIT_Counter
        JP      DLY_INIT_FIXED

DLY_INIT_FIXED:
        
        LD      R2,DLYINIT_Counter
        INC     DLYINIT_Counter
DLY_INIT_HANDLE:
        RCF
        RLC     R2
        ADD     R7,R2
        ADC     R6,#00H
        LDCI    R14,@RR6
        LDCI    R15,@RR6
        JP      @RR14
DLY_INIT_EXIT:
        RET
TAB_DLY_INIT:
        .DW     DLY_INIT_DATA0
        .DW     DLY_INIT_DATA1
        .DW     DLY_INIT_DATA2
        .DW     DLY_INIT_DATA3
        .DW     DLY_INIT_DATA4
        .DW     DLY_INIT_DATA5
        .DW     DLY_INIT_DATA6
        .DW     DLY_INIT_DATA7
        .DW     DLY_INIT_DATA8
        .DW     DLY_INIT_DATA9
        .DW     DLY_INIT_DATA10
        .DW     DLY_INIT_DATA11
DLY_INIT_DATA0:
        LD      R6,#TAB0_WELCOME/256
        LD      R7,#TAB0_WELCOME%256
        CALL    GET_DLY_INIT_DATA
        LD      DLYINIT_Timer,#FOUR_TEN_SECOND
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA1:
        LD      R6,#TAB1_WELCOME/256
        LD      R7,#TAB1_WELCOME%256
        CALL    GET_DLY_INIT_DATA
        LD      DLYINIT_Timer,#FOUR_TEN_SECOND
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA2:
        LD      R6,#TAB2_WELCOME/256
        LD      R7,#TAB2_WELCOME%256
        CALL    GET_DLY_INIT_DATA
        LD      DLYINIT_Timer,#FOUR_TEN_SECOND
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA3:
        LD      R6,#TAB3_WELCOME/256
        LD      R7,#TAB3_WELCOME%256
        CALL    GET_DLY_INIT_DATA
        LD      DLYINIT_Timer,#FOUR_TEN_SECOND
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA4:
        LD      R6,#TAB4_WELCOME/256
        LD      R7,#TAB4_WELCOME%256
        CALL    GET_DLY_INIT_DATA
        LD      DLYINIT_Timer,#FOUR_TEN_SECOND
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA5:
        LD      R6,#TAB5_WELCOME/256
        LD      R7,#TAB5_WELCOME%256
        CALL    GET_DLY_INIT_DATA
        LD      DLYINIT_Timer,#FOUR_TEN_SECOND
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA6:
        LD      R6,#TAB6_WELCOME/256
        LD      R7,#TAB6_WELCOME%256
        CALL    GET_DLY_INIT_DATA
        LD      DLYINIT_Timer,#FOUR_TEN_SECOND
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA7:
        LD      R6,#TAB7_WELCOME/256
        LD      R7,#TAB7_WELCOME%256
        CALL    GET_DLY_INIT_DATA
        LD      DLYINIT_Timer,#EIGHT_TEN_SECOND
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA8:
        LD      R6,#TAB1_DELAY/256
        LD      R7,#TAB1_DELAY%256
        CALL    GET_DLY_INIT_DATA
        CLR     display_set2
        LD      DLYINIT_Timer,#EIGHT_TEN_SECOND
        LD      DelaySW_Save,#DLY_UNCHANGE
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA9:
        LD      R6,#TAB2_DELAY/256
        LD      R7,#TAB2_DELAY%256
        CALL    GET_DLY_INIT_DATA
        CLR     display_set2
        LD      DLYINIT_Timer,#EIGHT_TEN_SECOND
        LD      DelaySW_Save,#DLY_UNCHANGE
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA10:
        LD      R6,#TAB1_ACCU/256
        LD      R7,#TAB1_ACCU%256
        CALL    GET_DLY_INIT_DATA
        LD      display_set2,#display_set2_P
        LD      DLYINIT_Timer,#EIGHT_TEN_SECOND
        JP      DLY_INIT_PROCESS
DLY_INIT_DATA11:
        LD      R6,#TAB2_ACCU/256
        LD      R7,#TAB2_ACCU%256
        CALL    GET_DLY_INIT_DATA
        LD      display_set2,#display_set2_P
        LD      DLYINIT_Timer,#EIGHT_TEN_SECOND
        JP      DLY_INIT_PROCESS

DLY_INIT_PROCESS:
        LD      display_set1,#00H
        LD      display_set3,#00H
        JP      DLY_NORMAL_PROCESS
    

GET_DLY_INIT_DATA:
        LDCI    R8,@RR6
        LD      VoltIn_Value1,R8
        LDCI    R8,@RR6
        LD      VoltIn_Value2,R8
        LDCI    R8,@RR6
        LD      VoltIn_Value3,R8
        LDCI    R8,@RR6
        LD      CURROut_Value1,R8
        LDCI    R8,@RR6
        LD      CURROut_Value2,R8
        LDCI    R8,@RR6
        LD      VoltOut_Value1,R8
        LDCI    R8,@RR6
        LD      VoltOut_Value2,R8
        LDCI    R8,@RR6
        LD      VoltOut_Value3,R8
        RET
DLY_NORMAL_ACCU:
        LD      DLYDelay_Timer,#TWO_SECOND
        LD      DLYINIT_Counter,#8
        LD      R6,#TAB_DLY_INIT/256
        LD      R7,#TAB_DLY_INIT%256
        LD      AccuSW_Save,#DLY_UNCHANGE
        JP      DLY_INIT_ACCU

DLY_NORMAL_DELAY:
        LD      DLYDelay_Timer,#TWO_SECOND
        LD      DLYINIT_Counter,#8
        LD      R6,#TAB_DLY_INIT/256
        LD      R7,#TAB_DLY_INIT%256
        JP      DLY_INIT_DELAY
        

DLY_NORMAL:
        TM      UserFlag,#DetectFlag
        JP      Z,DLY_EXIT
        CP      SystemStatus,#SYSTEM_NORMAL
        JP      NE,DLY_FAILED
        CP      AccuSW_Save,#DLY_CHANGED
        JR      EQ,DLY_NORMAL_ACCU
        CP      DelaySW_Save,#DLY_SKIP
        JR      EQ,DLY_NORMAL_DELAY
        LD      DLYDelay_Timer,#TWO_SECOND
        TM      UserFlag,#DLY_NORMAL_START
        JR      NZ,DLY_NORMAL_COMP1
	OR      UserFlag,#DLY_NORMAL_START
	LD      LCDBlink_Timer,#SIX_TEN_SECOND
        LD      display_set1,#display_set1_WN|display_set1_Q1
        LD      display_set3,#display_set3_AC
        JP      DLY_NORMAL_PROCESS
DLY_NORMAL_COMP1:
        CP      display_set1,#display_set1_WN|display_set1_Q1
        JR      NE,DLY_NORMAL_Q
	CP      LCDBlink_Timer,#00h
        JR      NE,DLY_NORMAL_PROCESS
        LD      display_set1,#display_set1_WN|display_set1_Q2
;        LD      display_set2,#display_set2_P
        LD      display_set3,#display_set3_AC
        LD      LCDBlink_Timer,#SIX_TEN_SECOND
        JP      DLY_NORMAL_PROCESS
DLY_NORMAL_Q:
	CP      LCDBlink_Timer,#00H
        JR      NE,DLY_NORMAL_PROCESS
        LD      display_set1,#display_set1_WN|display_set1_Q1
;        LD      display_set2,#display_set2_P
        LD      display_set3,#display_set3_AC
        LD      LCDBlink_Timer,#SIX_TEN_SECOND

        
DLY_NORMAL_PROCESS:
		CALL    clear_buffer_routine
		CALL    set_state_data
		CALL    set_input_volt_display_data
		CALL    set_output_curr_display_data
		CALL    set_output_volt_display_data
;=====================================
DLY_START:
	CALL	WriteDisplayData
DLY_EXIT:
	RET


;=====================================
DLY_FAILED:
        
        LD      DLYDelay_Timer,#SIX_TEN_SECOND
        LD      display_set3,#display_set3_AC
        CP      LCDBlink_Timer,#00h
        JR      NE,DLY_FAILED_PROCESS
        CP      display_set1,#display_set1_UL
        JR      NE,DLY_FAILED_LOGO
        LD      display_set1,#display_set1_UL|DLY_SD
        LD      LCDBlink_Timer,#SIX_TEN_SECOND
        JP      DLY_FAILED_PROCESS
DLY_FAILED_LOGO:
        LD      display_set1,#display_set1_UL
        LD      LCDBlink_Timer,#SIX_TEN_SECOND
DLY_FAILED_PROCESS:
		
        CP      Temp_Protect,#TEMP_PROTECTED
        JR      EQ,DLY_TEMP_FAIL
        CP      LoadState,#LOAD_PROT
        JR      EQ,FAIL_LOAD_PROC
        CP      Volt_Protect,#VOLT_PROTECTED
        JR      EQ,DLY_VOLT_FAIL
        JP      DLY_NORMAL_PROCESS
DLY_TEMP_FAIL:
        LD      R6,#TAB_TEMP/256
        LD      R7,#TAB_TEMP%256
        CALL    GET_DLY_INIT_DATA
        LD      display_set2,#display_set2_P
        LD      display_set3,#00H
        LD      DLYINIT_Timer,#EIGHT_TEN_SECOND
        JP      DLY_NORMAL_PROCESS

FAIL_LOAD_PROC:
        LD      R6,#TAB_LOAD/256
        LD      R7,#TAB_LOAD%256
        CALL    GET_DLY_INIT_DATA
        LD      display_set3,#00H
        LD      display_set2,#00H
        LD      DLYINIT_Timer,#EIGHT_TEN_SECOND
        JP      DLY_NORMAL_PROCESS

DLY_VOLT_FAIL:
        LD      R6,#TAB_INPUT/256
        LD      R7,#TAB_INPUT%256
        CALL    GET_DLY_INIT_DATA
        LD      display_set2,#00H
        LD      display_set3,#00H
        LD      DLYINIT_Timer,#EIGHT_TEN_SECOND
        JP      DLY_NORMAL_PROCESS


;入口	R0,COMMAND_ID
;出口   无
WriteCommand::
	LD	R6,#COMMAND_ID_TAB/256
	LD	R7,#COMMAND_ID_TAB%256
	RCF
	RLC	R0
	ADD	R7,R0
	ADC	R6,#0
	LDCI	R1,@RR6
	LDC	R2,@RR6	;取COMMAND-->R1,R2
	
	CS	LOWO
	
	LD	R3,#8
write_contin	
	DATA_PIN	HIGHO
	RLC	R1
	JR	C,is_send_high_bit
	DATA_PIN	LOWO
is_send_high_bit:
	MAKEWRCLK
	DEC	R3
	JR	NZ,write_contin
	
	LD	R3,#4
		
write_contin_B:	
	DATA_PIN	HIGHO
	RLC	R2
	JR	C,is_send_high_bit_B
	DATA_PIN	LOWO
is_send_high_bit_B:
	MAKEWRCLK
	DEC	R3
	JR	NZ,write_contin_B
	CS  HIGHO
	RET
	;---------------------------------
	
WriteDisplayData::
	LD	R1,#0A0H
	LD	R3,#8
	
	CS	LOWO
WRINGD:
	DATA_PIN HIGHO
	RLC	R1
	JR	C,iiiissf
	DATA_PIN LOWO
iiiissf:
	MAKEWRCLK
	DEC	R3
	JR	NZ,WRINGD	;
	
	DATA_PIN	LOWO 	
	MAKEWRCLK

	;DATA_PIN	LOWO 	;写完10BIT命令
	;MAKEWRCLK

	LD	R2,#ADC_Buffer
write_data_do:
	LD	R1,@R2
	;CALL	WriteData
	
	;LD	R0,R1	;
	;AND	R1,#0FH	;提取低四位数据(对应显示地址+0,COM0--COM4,高四位未用)
	CALL	WriteDo
	
	;RR	R0
	;RR	R0
	;RR	R0
	;RR	R0
	;AND	R0,#0fH
	;LD	R1,R0
	;CALL	WriteDo ;提取高四位数据(对应显示地址+2)

	
	
	
	INC	R2
	CP	R2,#ADC_Buffer+16
	JR	ULT,write_data_do
	
	CS	HIGHO
	RET
	;=====================

;WriteData::
;	RET
;====================================================
;向1623发送8位数据	
WriteDo:
	LD	R3,#8
JJJJJJJJJJJJJJJJ:
	DATA_PIN HIGHO
	RRC	R1
	JR	C,SKFJDJF
	DATA_PIN LOWO
SKFJDJF:
	MAKEWRCLK
	DEC	R3
	JR	NZ,JJJJJJJJJJJJJJJJ
	RET
;----------------------------------------------
DELAY_us::
        LD	R8,#0CH
loop_us:
        NOP
	DEC	R8            ;6
        JR	NZ,loop_us    ;12/10
        RET



;AVR_LCD 移植
clear_buffer_routine:
	LD      R1,#ADC_Buffer
	clear_ADC_Buffer:
		CLR     @R1
		INC     R1
		CP      R1,#(ADC_Buffer+16)
		JP      ULT,clear_ADC_Buffer
		RET
;入口
;将数据显示在123位 VoltIn_Value1,VoltIn_Value2,VoltIn_Value3
set_input_volt_display_data::
	LD	R7,#disp_tab1%256
	LD	R6,#disp_tab1/256
	
	LD	R2,VoltIn_Value1
	LD	R3,VoltIn_Value2
	LD	R4,VoltIn_Value3
	
	;ADD	R7,R2
	;ADC	R6,#0
	RCF
	RLC	R2
	ADD	R7,R2
	ADC	R6,#0
	LDCI	R2,@RR6
	OR	ADC_Buffer+2,R2
	LDCI	R2,@RR6
	OR	ADC_Buffer+3,R2
	;LDCI	R2,@RR6
	;OR	ADC_Buffer+5,R2

	LD	R7,#disp_tab2%256
	LD	R6,#disp_tab2/256
	ADD	R7,R3
	ADC	R6,#0
	RCF
	RLC	R3
	ADD	R7,R3
	ADC	R6,#0
	LDCI	R2,@RR6
	OR	ADC_Buffer+3,R2
	LDCI	R2,@RR6
	OR	ADC_Buffer+4,R2
	LDCI	R2,@RR6
	OR	ADC_Buffer+5,R2

	LD	R7,#disp_tab3%256
	LD	R6,#disp_tab3/256
	ADD	R7,R4
	ADC	R6,#0
	RCF
	RLC	R4
	ADD	R7,R4
	ADC	R6,#0
	LDCI	R2,@RR6
	OR	ADC_Buffer+5,R2
	LDCI	R2,@RR6
	OR	ADC_Buffer+6,R2
	LDCI	R2,@RR6
	OR	ADC_Buffer+7,R2

	RET
;======================================
;入口:VoltOut_Value1,VoltOut_Value2,VoltOut_Value3
;
set_output_volt_display_data::
	
	LD	R7,#disp_tab2%256
	LD	R6,#disp_tab2/256
	LD	R2,VoltOut_Value1
	LD	R3,VoltOut_Value2
	LD	R4,VoltOut_Value3
	
	ADD	R7,R2
	ADC	R6,#0
	RCF
	RLC	R2
	ADD	R7,R2
	ADC	R6,#0
	LDCI	R2,@RR6
	OR	ADC_Buffer+10,R2
	LDCI	R2,@RR6
	OR	ADC_Buffer+11,R2
	LDCI	R2,@RR6
	;LD	R6,R2
	;AND	R2,#07H
	OR	ADC_Buffer+12,R2
	;AND	R6,#30H

⌨️ 快捷键说明

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