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

📄 main.asm

📁 以&#1049307 &#1049319 &#1049287 &#1049289 &#1049317 &#1049301 &#1049288 &#1049283 为核心设计的&#1049320 &#1
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;==========================================================
              .listinclude

#INCLUDE	ht46rb50.INC
#INCLUDE	MACRO.H

#INCLUDE	User_Con.asm





;;***********************************************************
;;**********************Mask option**************************
;;***********************************************************
;;MCU Body:		HT46RB50
;;Product:		18DIP
;;VDD:			5V
;;Fsys:			12MHZ
;;Pull-High:		all pull-high
;;WDT:			WDT enable
;;WDT Clock Soure:	T1
;;CLR WDT:		One clear instruction
;;Output mode PA0~7:	CMOS output
;;Wake-Up:		all none wake-up
;;Project name:		USB
;;Programmer:		dolphin
;;Established date:	2006/03/01
;;***********************************************************
;;***********************************************************
;;***********************************************************






;;**********************Code section*************************
;;***********************************************************
MAIN.     SECTION      AT 0H  'CODE'

	ORG	0
        JMP	L_START
;;-----------------------------------------------------------
	ORG	04H
	RETI			;INT
	
	ORG	08H
	RETI			;TME0

	ORG 	0CH
	JMP	ISR_TMR1	;TMR1
	
	ORG	10H
	JMP	ISR_USB		;USB
	
	ORG	14H
	JMP	ISR_AD		;ADC
	
	ORG	18H
	RETI			;RS232
	
	
	
;;-----------------------------------------------------------
L_START:
	CLR	WDT

	CALL	INI_PORT		;initial port


        MOV     A,0FFH
L_DELAYYY:
        NOP  
        SDZ     ACC
        JMP     L_DELAYYY     

        SET     PA.2
	CALL	Clear_RAM		;clear all ram
        CLR     PA.2


	SET 	USC.4                   ;V33C

	CLR	F_FsysClock		;UCC.6,12MHz                     
	MOV	A,125
	MOV	M_IdleTime,A		;set USB idle time is 125*4ms=500ms
	SET	F_ReportProtocol	;
	SET	M_Stall			;stall=FFH
	SET 	F_AddressStatus       	;          
	SET	F_USBClockOn		;UCC.3,USB ON  

	CALL	INI_Timer               ;RAM			;initial ram               
;=================================================================






;=================================================================
        MOV     A,45
        MOV     M_DIV_1S,A

        MOV      A,5
        MOV      M_DIV_01S,A


        MOV      A,0 
        MOV      CH1_TestMode,A 

        MOV      A,0 
        MOV      CH2_TestMode,A 

        MOV      A,2              ;    
        MOV      M_CH1_5SecTime,A
        MOV      A,2              ;    
        MOV      M_CH2_5SecTime,A

        LED_ON  

;=================================================================================
;EUI   USB 
;EADI  ADC
;ET1I  Timer1
;EMI   General Interrupt.. 

        CLR     USBF 
        SET     EUI
        SET     EMI
;=================================================================================

         
;=================================================================================
L_Enumerate_Ok:
	CLR	WDT
	SNZ	F_ConfigurationStatus
        JMP     L_Enumerate_Ok
;=================================================================================

        MOV     A,255
L_UsbOkDelay:
        NOP
        NOP
        NOP
        NOP 
        SDZ     ACC
        JMP     L_UsbOkDelay
;=================================================================================





;=================================================================================
        ;CH1_Charge1_On
       
        CH1_DeChargeOFF
        
        ;CH1_PWM_ON

        MOV      A,00H                  ;0FFH;075H
        MOV      PWM0,A
        MOV      M_CH1_PWM_BUF,A


        ;CH2_Charge2_On
        
        CH2_DeChargeOFF

        ;CH2_PWM_ON

        MOV      A,00H                  ;0FFH;075H
        MOV      PWM1,A
        MOV      M_CH2_PWM_BUF,A


        MOV      A,6 
        MOV      M_CH1_Sample_Num,a      ;point
        MOV      M_CH2_Sample_Num,a      ;point
;=================================================================================









;=================================================================================
;Timer1 On..
	SET	TMR1C.4		   ;Timer1 on
        CLR     T1F
;Enable Timer1 Interrupt..
        SET     ET1I               ;Enable Timer1 Interrupt...
;=================================================================================



;=================================================================================
        CLR     EADI

	MOV	A,00000010B
	MOV	ACSR,A		
	MOV	A,00110000B     
	MOV	ADCR,A		
        select_chanel_0            ;From Channel 0 Start...   
        Adc_start

        CLR     ADF
;Enable ADC  Interrupt..
        SET     EADI                ;Enable ADC Interrupt...
;=================================================================================

         LED_OFF  


;=================================================================================
Main_Loop:
	CLR	WDT



;Check If Usb Vbus PowerDown....
;--------------------------------------------------------------
        SZ       PA.6
        JMP      L_Errot_Proc

        sz       F_CH1_NoChargeBat            ;no charge baterry...
        JMP      L_Errot_Proc

        SZ       F_CH1_BatReverse             ;bat is  placed reversely.. 
        JMP      L_Errot_Proc

        sz       F_CH2_NoChargeBat            ;no charge baterry...
        JMP      L_Errot_Proc

        SZ       F_CH2_BatReverse             ;bat is  placed reversely.. 
        JMP      L_Errot_Proc

        SZ       F_CH1_BadBattery             ;CH1 is bad battery...
        JMP      L_Errot_Proc

        SZ       F_CH2_BadBattery             ;CH2 is bad battery...
        JMP      L_Errot_Proc


;       JMP      L_VbusPowerNormal 
;-----------------------------------------------------------------
;L_VbusPowerNormal:
;-----------------------------------------------------------------





;CH1  or CH2 Charging Led  Indicator.....
;-----------------------------------------------------------------
        SZ      F_CH1_Chargeing           ;
        JMP     L_LED_ON
        SZ      F_CH2_Chargeing           ;
        JMP     L_LED_ON
        LED_OFF
        JMP     L_LED_ONOFF_COM
L_LED_ON:            
        LED_ON
L_LED_ONOFF_COM:
;----------------------------------------------------------




;----------------------------------------------------------
;        CALL     L_CH1CheckVoltageProc 

L_CH1CheckVoltageProc:
;second part    voltage check..........
;=================================================================================
;       CH1  Test voltage...
;=================================================================================
        SZ      F_CH1_AA                  ;If is AA Not Check AAA...
        JMP     L_CH1_checkdischarge
        SZ      F_CH1_AAA                  ;If is AA Not Check AAA...
        JMP     L_CH1_checkdischarge
        JMP     L_CH1_TestModeCom         ;in decharge  mode go... 


L_CH1_checkdischarge:

        SZ       PA.5                      ;judge if decharge...
        JMP      L_CH1_IsChargeIng

        MOV      A,CH1_TestMode
        SUB      A,11
        SZ       C
        JMP      L_CH1_TestModeCom         ;in decharge mode go... 

        sz       F_CH1_DisChargeOk
        JMP      L_CH1_TestModeCom         ;in decharge modego... 

        SZ       F_CH1_NoBat               ;no charge bateery GO..
        JMP      L_CH1_TestModeCom         ; 

        CLR      M_CH1_DisChargeTimes

        CLR       M_CH1_AA_NoBatTimes
        CLR       M_CH1_AAA_NoBatTimes


;        CLR       M_CH1_0Delta_Times
;        CLR       M_CH1_NDelta_Times



        CLR      M_CH1_CurrentState        ;Cal charge time... 
        CLR      M_CH1_Volume

        CLR      F_CH1ChargeOver

        CLR      M_CH1_NoChargeBatCount
        CLR      M_CH1_NoChargeBatTime       ;


        CLR      M_CH1ChargeSec
        CLR      M_CH1ChargeMin
        CLR      M_CH1ChargeHour
        CLR      F_CH1StartCharge
        CLR      M_CH1_Volume

        CLR      M_CH1_BatValueH           ;Clear voltage..
        CLR      M_CH1_BatValueL


        SET      F_CH1_DisChargeing        ; decharge 
        CLR      F_CH1_BatReverse          ;bateery reverse
        CLR      F_CH1_NoChargeBat         ;no charge battery
        CLR      F_CH1_Chargeing           ;in charging
        CLR      F_CH1_NoBat               ;no bateery 

        MOV      A,11  
        MOV      CH1_TestMode,A
        JMP      L_CH1_TestModeCom 
;-----------------------------------------------------
L_CH1_IsChargeIng:
        MOV      A,CH1_TestMode
        SUB      A,11
        SNZ      C
        JMP      L_CH1_TestModeCom          ;now in charging mode go...


        MOV      A,0  
        MOV      CH1_TestMode,A
        JMP      L_CH1_TestModeCom 
;-----------------------------------------------------


;-----------------------------------------------------
L_CH1_TestModeCom:
        MOV     A,CH1_TestMode
        XOR     A,0
        SZ      Z
        JMP     L_CH1_TestMode_0
        
        MOV     A,CH1_TestMode
        XOR     A,1 
        SZ      Z
        JMP     L_CH1_TestMode_1

        MOV     A,CH1_TestMode
        XOR     A,2
        SZ      Z
        JMP     L_CH1_TestMode_2

        MOV     A,CH1_TestMode
        XOR     A,3
        SZ      Z
        JMP     L_CH1_TestMode_3
        
        MOV     A,CH1_TestMode
        XOR     A,4
        SZ      Z
        JMP     L_CH1_TestMode_4
        
        MOV     A,CH1_TestMode
        XOR     A,5
        SZ      Z
        JMP     L_CH1_TestMode_5
        
        MOV     A,CH1_TestMode
        XOR     A,6
        SZ      Z
        JMP     L_CH1_TestMode_6
        
        MOV     A,CH1_TestMode
        XOR     A,7
        SZ      Z
        JMP     L_CH1_TestMode_7


        MOV     A,CH1_TestMode
        XOR     A,8
        SZ      Z
        JMP     L_CH1_TestMode_8
        
        MOV     A,CH1_TestMode
        XOR     A,9
        SZ      Z
        JMP     L_CH1_TestMode_9
        

        MOV     A,CH1_TestMode
        XOR     A,10
        SZ      Z
        JMP     L_CH1_TestMode_10

        MOV     A,CH1_TestMode
        XOR     A,11
        SZ      Z
        JMP     L_CH1_TestMode_11

        MOV     A,CH1_TestMode
        XOR     A,12
        SZ      Z
        JMP     L_CH1_TestMode_12

        MOV     A,CH1_TestMode
        XOR     A,13
        SZ      Z
        JMP     L_CH1_TestMode_13

        MOV     A,CH1_TestMode
        XOR     A,14
        SZ      Z
        JMP     L_CH1_TestMode_14

;       MOV     A,CH1_TestMode
;       XOR     A,15
;       SZ      Z
;       JMP     L_CH1_TestMode_15

        JMP     L_CH1_EndTestMode  
;----------------------------------------------------------------------

;============================================================================

⌨️ 快捷键说明

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