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

📄 ledavr-5k.src

📁 两个三位数码管显示输入与输出电压的接触式交流稳压器
💻 SRC
📖 第 1 页 / 共 4 页
字号:
 	LD	Vout_ADValueL,R1
 	LD	Vout_ADValueH,R0
	RET
ret_zero_volt:
	CLR	Vout_ADValueL
	CLR	Vout_ADValueH
	RET   
;*********************************             

;calc_outvolt::   ;V=10*AD/13;(220v)V=10*AD/27(110v)
        ;入口:RR6 ADC
        ;RCF
        ;RLC	R7
        ;RLC	R6
        ;LD	R1,R7
        ;LD	R0,R6
        
        ;RCF	
        ;RLC	R7
        ;RLC	R6
        
        ;RCF	
        ;RLC	R7
        ;RLC	R6
        
        
        ;ADD	R7,R1
        ;ADC	R6,R0
        
        ;CP	StandardVoltFlag,#Input127V
        ;JR	EQ,set_110Vout
        
        ;LD	R3,#13
        ;CALL	Out_Volt_div
        ;ADD	R1,#5
        ;ADC	R0,#0
        ;JP	rejtjel
        

;set_110Vout:
	;LD	R3,#12;13
        ;CALL	Out_Volt_div
        ;SUB     R1,#5
        ;SBC     R0,#0
        
;rejtjel:
        ;LD      Vout_ADValueL,R1		
        ;LD      Vout_ADValueH,R0
        ;LD	OutVoltRegulate,R1
        ;LD	OutVoltRegulate+1,R0
        
        ;RET
;************************************
Out_Volt_div::
	CLR	R0
	CLR	R1
Div_OutLoop:	
	SUB	R7,R3
	SBC	R6,#0
	JR	C,exit_out_div
	INC	R1
	CP	R1,#0
	JR	NE,Div_OutLoop
	INC	R0
	JP	Div_OutLoop
exit_out_div:
	RET

;---------------------------------------------------------------------
;=====================================================================
DC_2V:  .EQU    102     ;2.25V直流 (8K2/(10K+8K2))
MAX_SAMPLE_TIME:        .EQU    264
MIN_SAMPLE_TIME:        .EQU    139
SampleNew::
wait_first_do:
        CLRWDT  
        TM      UserFlag,#FreshAdc
        JR      Z,wait_first_do
        AND     UserFlag,#~FreshAdc     ;去掉第一个不稳定数据
        CLR     R8
        CLR     R9
        OR      UserFlag,#BasePoint     ;直流相位点未找到
        CLR     R4
        CLR     R5      ;和
        
        CLR     R6      ;次数
        CLR     R7
wait_adc_act_over:
        AND     UserFlag,#~FreshAdc
wait_adc_act_over_:
        CLRWDT  
        TM      UserFlag,#FreshAdc
        JR      Z,wait_adc_act_over_
        LD      R0,AdataH
        LD      R1,AdataL               ;取出AD值
        LD      R3,R0
        
        SUB     R3,#DC_2V
        JR      NC,compare_c
        COM     R3
        INC     R3
compare_c:
        CP      R3,#3
        JR      UGT,not_base_point      ;不是直流相位点
        ;是直流相位点
        TM      UserFlag,#BasePoint
        JR      Z,is_end_point
        AND     UserFlag,#~BasePoint    ;是开始计算起始点
        CLR     R8
        CLR     R9
        ;OR     P0,#02H         ;TEST
        
        JR      compare_next_p
        ;--------------------
is_end_point:   
        ;>(256-80)*80=14ms,允许结束
        ;CP     R2,#80                  
        ;JR     ULT,set_adc_over        ;
        CP      R8,#MIN_SAMPLE_TIME/256
        JR      UGT,set_adc_over
        JR      ULT,is_continue_sum
        CP      R9,#MIN_SAMPLE_TIME%256
        JR      UGT,set_adc_over
        JR      is_continue_sum
        ;---------------
not_base_point:
        TM      UserFlag,#BasePoint
        JR      NZ,base_point_not_found ;未出现过直流相位点
is_continue_sum:        
        CLR     R3      ;AD值规格化
        RCF
        RLC     R0
        RLC     R3
        RCF
        RLC     R0
        RLC     R3
        OR      R0,R1

        SUB     R0,#409%256
        SBC     R3,#409/256
        JR      NC,add_ccongn
        COM     R0
        COM     R3
        ADD     R0,#1
        ADC     R3,#0
        
add_ccongn:
        ADD     R5,R0
        ADC     R4,R3   ;绝对值和
        INC     R7      ;次数
        JR      NZ,compare_next_p
        INC     R6
;       JR      wait_adc_act_over
        ;------------
compare_next_p:
        ;出现过直流相位点且规定采样时间未结束,转继续采样
base_point_not_found:   
        ;DEC    R2              ;
        INC     R9
        JR      NZ,sikip_hgekjhte
        INC     R8
sikip_hgekjhte:
        CP      R8,#MAX_SAMPLE_TIME/256
        JR      UGT,set_adc_over
        JR      ULT,wait_adc_act_over
        CP      R9,#MAX_SAMPLE_TIME%256 
        JR      ULT,wait_adc_act_over   ;未出现过直流相位点且规定采样时间未结束,转继续采样

set_adc_over:
        ;AND    P0,#~02H        ;TEST
        LD      R3,R6
        OR      R3,R7
        JR      Z,_is_return_zero
        
        LD      R0,R4
        LD      R1,R5
        
        LD      R3,R7
        LD      R2,R6
        
        RCF
        RRC     R2
        RRC     R3
        ;LD     CurrentCycle+1,R3;保存电流周期
        ;LD     CurrentCycle,R2
        
        CALL    dbl_divs                ;
        LD      R7,R1                   ;平均值->RR8
        LD      R6,R0
        RET
        ;余数*10                        ;提高计算精度,计算一位小数
;       CALL    mul_10
;       LD      R1,R5
;       LD      R0,R4                   ;
;       CALL    dbl_divs
;       LD      R6,R0
;       LD      R7,R1
;       
;       LD      R5,R9                   ;整数位*10
;       LD      R4,R8
;       CALL    mul_10
;       ADD     R7,R5                   ;+小数位退出,
;       ADC     R6,R4
;       RET
        
_is_return_zero:
        CLR     R6
        CLR     R7
        RET
;=====================================================================




;=================
VOLT_200:               .EQU    260;

calc_involt::

        ;======================================
        LD      R1,R7
        LD      R0,R6
        
        SUB     R1,#VOLT_200%256
        SBC     R0,#VOLT_200/256
        JR      NC,calc_continu_in
        COM     R1
        COM     R0
        ADD     R1,#1
        ADC     R0,#0
        CALL    calc_IN_volt_acture
        COM     R1
        COM     R0
        ADD     R1,#201
        ADC     R0,#0
        JR      NC,ret_zero_volt_in
        JR      rejtjel_in
calc_continu_in:
        CALL    calc_IN_volt_acture
        ADD     R1,#200
        ADC     R0,#0
rejtjel_in:
	;CP	StandardVoltFlag,#Input127V
	;JR	EQ,load_outV
	SUB	R1,#3
	SBC	R0,#0
        RET
ret_zero_volt_in:
        CLR     R1
        CLR     R0
        RET

;=====================================
calc_IN_volt_acture: ;10.25/13
        LD      R7,R1
        LD      R6,R0
        RCF
        RRC     R6
        RRC     R7	
        RCF
        RRC     R6
        RRC     R7
        ;(VIN-200Vdc)/4 =>(R6,R7)
        RCF
        RLC     R1	;(VIN-200Vdc)*2=>(R0,R1)
        RLC     R0	;
        LD      R5,R1
        LD      R4,R0
        ADD     R1,R7	
        ADC     R0,R6
;(VIN-200Vdc)*2+(VIN-200Vdc)/4=>(R0,R1)
        RCF
        RLC     R5	
        RLC     R4
        RCF
        RLC     R5
        RLC     R4
        
        ADD     R1,R5	;
        ADC     R0,R4
        ;(VIN-200Vdc)*2*4+(VIN-200Vdc)*2+(VIN-200Vdc)/4
        LD      R3,#13
        CLR     R2
        CALL    dbl_divs        
        RET
;=========================
;RR0/RR2-->RR0 余数:RR4
dbl_divs::
        CLRWDT
        LD      R6,#16
        
        CLR     R4
        CLR     R5
 _divs_do:
        RCF
        RLC     R1	;低位
        RLC     R0	;高位
        
        RLC     R5	;
        RLC     R4	;
        ;(R0,R1)*2=>(R4,R5,R0,R1)
        CP      R4,R2		;最高字比较
        JR      ULT,no_go
        JR      UGT,go_sub
        CP      R5,R3		;第三字节比较
        JR      ULT,no_go
   go_sub:
        SUB     R5,R3
        SBC     R4,R2
        OR      R1,#1
   sub_en:
   no_go:
        DEC     R6
        JR      NZ,_divs_do
        RET
;===============================================================================

                



;================================================
TAB0_WELCOME:
         .DB     15,15,15,15,15,15,15,16 ;       W
;================================================
TAB0_WELCOME1:
         .DB     15,15,15,15,15,15,16,18 ;      WE
;=================================================
TAB0_WELCOME2:
         .DB     15,15,15,15,15,16,18,21 ;     WEL
;=================================================
TAB0_WELCOME3:
         .DB     15,15,15,15,16,18,21,13 ;    WELC
=================================================
TAB0_WELCOME4:
         .DB     15,15,15,16,18,21,13,0  ;   WELCO
;=================================================
TAB0_WELCOME5:
         .DB     15,15,16,18,21,13,00,22 ;  WELCOM
;=================================================
TAB0_WELCOME6:
         .DB     15,16,18,21,13,00,22,18 ; WELCOME
;=================================================
TAB0_WELCOME7:
         .DB     16,18,21,13,00,22,18,15 ;WELCOME       
;================================================
TAB1_WELCOME:
         .DB     15,15,15,15,15,15,15,15 ;      SPAC
;=================================================





;==================================================
TAB1_ACCU:
        .DB     23,11,18,13,15,15,15,27 ;PREC.H
;=================================================
TAB2_ACCU:
        .DB     23,11,18,13,15,15,15,21 ;PREC.L
;================================================
TAB1_DELAY:
         .DB    10,18,21,17,25,15, 6, 26 ;DELAY 6S
;================================================
TAB2_DELAY:
         .DB    10,18,21,17,25,15, 3, 24 ;DELAY 3m       
;================================================
TAB_INPUT:
         .DB    15,14,19,23,20,12,15, 21 ;INPUT L
;================================================
TAB_OUTPUT:
         .DB    0,20,12,23,20,12,15, 27 ;OUTPUT H
;================================================
TAB_TEMP:
         .DB    12,18,22,23,15,15,15, 27 ;TEMP.  H
;================================================
TAB_LOAD:
         .DB    0,28,18,11,21,0,17, 10 ;OVERLOAD     

disp_tab1:
  .DB   089H, 051H ;0
  .DB   000H, 050H ;1
  .DB   08AH, 015H ;2
  .DB   082H, 055H ;3
  .DB   003H, 054H ;4
  .DB   083H, 045H ;5
  .DB   08BH, 045H ;6
  .DB   000H, 051H ;7
  .DB   08BH, 055H ;8
  .DB   083H, 055H ;9
     
  .DB   0E0H, 051H  ;D 10   
  .DB   00BH, 01DH  ;R   11 
  .DB   060H, 001H  ;T    12
  .DB   089H, 001H  ;C    13
  .DB   0E0H, 001H  ;I    14
  .DB   000H, 000H  ;SPACE15
  .DB   00DH, 058H  ;W    16
  .DB   00BH, 055H  ;A    17
  .DB   08BH, 005H  ;E    18
  .DB   019H, 058H  ;N    19
  .DB   089H, 050H  ;U    20
  .DB   089H, 000H  ;L    21
  .DB   019H, 052H  ;M    22
  .DB   00BH, 015H  ;P    23
  .DB   019H, 052H  ;m    24
  .DB   083H, 054H  ;Y    25
  .DB   090H, 045H  ;S  26
  .DB   00BH, 054H ;H   27
  .DB   050H, 002H ;V      28 
  .DB   002H, 004H ;-      29 
  .DB   014H, 00AH ;X      30 
  .DB	09H, 0AH	;K	31
disp_tab2:
  .DB   0A0H, 018H, 009H ;0
  .DB   000H, 000H, 009H ;1
  .DB   080H, 01AH, 005H ;2
  .DB   000H, 01AH, 00DH ;3
  .DB   020H, 002H, 00DH ;4
  .DB   020H, 01AH, 00CH ;5
  .DB   0A0H, 01AH, 00CH ;6
  .DB   000H, 010H, 009H ;7
  .DB   0A0H, 01AH, 00DH ;8
  .DB   020H, 01AH, 00DH ;9
     
  .DB   000H, 078H, 009H  ;D    
  .DB   0A0H, 092H, 005H  ;R    
  .DB   000H, 070H, 000H  ;T    
  .DB   0A0H, 018H, 000H  ;C    
  .DB   000H, 078H, 000H  ;I    
  .DB   000H, 000H, 000H  ;SPACE
  .DB   0A0H, 084H, 009H  ;W    
  .DB   0A0H, 012H, 00DH  ;A    
  .DB   0A0H, 01AH, 004H  ;E    
  .DB   0A0H, 081H, 009H  ;N    
  .DB   0A0H, 008H, 009H  ;U    
  .DB   0A0H, 008H, 000H  ;L    
  .DB   0A0H, 001H, 00BH  ;M    
  .DB   0A0H, 012H, 005H  ;P    
  .DB   0A0H, 001H, 00BH  ;m    
  .DB   020H, 00AH, 00DH  ;Y    
  .DB   000H, 019H, 00CH  ;S  
  .DB   0A0H, 002H, 00DH ;H     27
  .DB   000H, 041H, 002H ;V      28 
  .DB   000H, 002H, 004H ;-      29 
  .DB   000H, 085H, 002H ;X      30 
  .DB	50H,10H,02H

disp_tab3:
  .DB   090H, 018H, 005H ;0
  .DB   000H, 000H, 005H ;1
  .DB   0A0H, 058H, 001H ;2
  .DB   020H, 058H, 005H ;3
  .DB   030H, 040H, 005H ;4
  .DB   030H, 058H, 004H ;5
  .DB   0B0H, 058H, 004H ;6
  .DB   000H, 010H, 005H ;7
  .DB   0B0H, 058H, 005H ;8
  .DB   030H, 058H, 005H ;9
     
  .DB   000H, 01EH, 005H  ;D    
  .DB   0B0H, 0D0H, 001H  ;R    
  .DB   000H, 016H, 000H  ;T    
  .DB   090H, 018H, 000H  ;C    
  .DB   000H, 01EH, 000H  ;I    
  .DB   000H, 000H, 000H  ;SPACE
  .DB   0D0H, 080H, 005H  ;W    
  .DB   0B0H, 050H, 005H  ;A    
  .DB   0B0H, 058H, 000H  ;E    
  .DB   090H, 081H, 005H  ;N    
  .DB   090H, 008H, 005H  ;U    
  .DB   090H, 008H, 000H  ;L    
  .DB   090H, 021H, 005H  ;M    
  .DB   0B0H, 050H, 001H  ;P    
  .DB   090H, 021H, 005H  ;m    
  .DB   030H, 048H, 005H  ;Y    
  .DB   000H, 059H, 004H  ;S  
  .DB   0B0H, 040H, 005H ;H     27
  .DB   000H, 025H, 000H ;V      28 
  .DB   020H, 040H, 000H ;-      29 
  .DB   040H, 0A1H, 000H ;X      30 
  .DB	90h,50h,00h		;k31

disp_tab4:
  .DB   08AH, 091H ;0
  .DB   000H, 090H ;1
  .DB   0A8H, 051H ;2
  .DB   0A0H, 0D1H ;3
  .DB   022H, 0D0H ;4
  .DB   0A2H, 0C1H ;5
  .DB   0AAH, 0C1H ;6
  .DB   000H, 091H ;7
  .DB   0AAH, 0D1H ;8
  .DB   0A2H, 0D1H ;9
     
  .DB   080H, 097H  ;D    
  .DB   02AH, 059H  ;R    
  .DB   000H, 007H  ;T    
  .DB   08AH, 001H  ;C    
  .DB   080H, 007H  ;I    
  .DB   000H, 000H  ;SPACE
  .DB   04AH, 098H  ;W    
  .DB   02AH, 0D1H  ;A    
  .DB   0AAH, 041H  ;E    
  .DB   01AH, 098H  ;N    
  .DB   08AH, 090H  ;U    
  .DB   08AH, 000H  ;L    
  .DB   01AH, 0B0H  ;M    
  .DB   02AH, 051H  ;P    
  .DB   01AH, 0B0H  ;m    
  .DB   0A2H, 0D0H  ;Y    
  .DB   090H, 0C1H  ;S  
  .DB   02AH, 0D0H ;H   27
  .DB   010H, 024H ;V      28 
  .DB   020H, 040H ;-      29 
  .DB   050H, 028H  ;X      30 
  .DB	0ah,48h		;k	31
;======================================================================

;======================================================================
        .END

⌨️ 快捷键说明

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