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

📄 lvd.asm

📁 LVD电源低电检测等程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;;==============================================



;;==============================================
		chip	W65C02S					; Define chip :	ST2024C	base on	65c02.
		pw		128						; .LST's page width	= 128 characters.
		case	on						; Don't	care Upper-case	or lower-case.
		externs	on						; Make all labels public.
;;==============================================
;;==============================================
		.include ST2203U.DEF
		.include RAM_ext.inc
		.include CONSTANT.inc
		.include macro.inc
		.include Disp.inc
;;==============================================
		.include Main.inc
;;==============================================



;;==============================================
.Global		F_Test_Bonding
.Global		F_Lvd00
.Global		F_Lvd01
.Global		F_Lvd10
.Global		F_Lvd11
.Global		F_CaculateOneBankCkeckSum

.Global		F_GetPictuieNum
.Global		F_CheckPictuieTrueOrFalse
.Global		F_JudgeTabPicNum
.Global		F_JudgeTabCheckSum
.Global		F_Caculate8K_CkeckSum
.Global		F_GetSize
.Global		F_GetPicInformation
.Global		F_Get_ImageInf
.Global		F_Get_Ver
;;==============================================
;;==============================================
PS2_6500		.SECTION
;;==============================================
F_Test_Bonding_WriteSub:
		LDA		R_Disp_Mosaic_Flag0
		STA		R_Des_Add_L
		LDA		R_Disp_Mosaic_Flag0+1
		STA		R_Des_Add_H
		JSR		F_FlashOneDataWrite
		RTS
;;==============================================
F_Test_Bonding_WriteSub_1:
		LDA		R_Disp_Mosaic_Flag0+2
		STA		R_Des_Add_L
		LDA		R_Disp_Mosaic_Flag0+3
		STA		R_Des_Add_H
		JSR		F_FlashOneDataWrite
		RTS
;;==============================================
F_Test_Bonding_Write55H:
		LDA		#055H
		STA		<R_TempL
		STZ		R_Source_Add_Bank_L
		STZ		R_Source_Add_Bank_H
		LDA		#<R_TempL
		STA		R_Source_Add_L
		LDA		#>R_TempL
		STA		R_Source_Add_H
		RTS
;;==============================================
F_Test_Bonding_WriteAAH:
		LDA		#0AAH
		STA		<R_TempL
		STZ		R_Source_Add_Bank_L
		STZ		R_Source_Add_Bank_H
		LDA		#<R_TempL
		STA		R_Source_Add_L
		LDA		#>R_TempL
		STA		R_Source_Add_H
		RTS
;;==============================================
F_Test_Bonding_Sub0:
		LDA		#055H
		STA		<R_TempL
		LDA		R_Disp_Mosaic_Flag0+0
		STA		R_Blk_Num_L
		LDA		R_Disp_Mosaic_Flag0+1
		STA		R_Blk_Num_H
		LDA		#<8000H
		STA		R_Des_Add_L
		LDA		#>8000H
		STA		R_Des_Add_H
		STZ		R_Source_Add_Bank_L
		STZ		R_Source_Add_Bank_H
		RTS
;;==============================================
F_Test_Bonding_Sub1:
		LDA		#<R_TempL
		STA		R_Source_Add_L
		LDA		#>R_TempL
		STA		R_Source_Add_H
		JSR		F_FlashOneDataWrite
		RTS
;;==============================================
F_Test_Bonding_Sub2:
		LDA		#0AAH
		STA		<R_TempL
		LDA		R_Disp_Mosaic_Flag0+2
		STA		R_Blk_Num_L
		LDA		R_Disp_Mosaic_Flag0+3
		STA		R_Blk_Num_H
		LDA		#<8001H
		STA		R_Des_Add_L
		LDA		#>8001H
		STA		R_Des_Add_H
		STZ		R_Source_Add_Bank_L
		STZ		R_Source_Add_Bank_H
		RTS
;;==============================================
F_Test_Bonding_Sub3:
		LDA		R_Disp_Mosaic_Flag0+0
		STA		R_Blk_Num_L
		LDA		R_Disp_Mosaic_Flag0+1
		STA		R_Blk_Num_H
		LDA		#<8000H
		STA		R_Source_Add_L
		LDA		#>8000H
		STA		R_Source_Add_H
		STZ		R_Des_Add_Bank_L
		STZ		R_Des_Add_Bank_H
		RTS
;;==============================================
F_Test_Bonding_Sub4:
		LDA		#<R_TempL
		STA		R_Des_Add_L
		LDA		#>R_TempL
		STA		R_Des_Add_H
		JSR		F_FlashOneDataRead
		LDA		<R_TempL
		RTS
;;==============================================
F_Test_Bonding_Sub5:
		LDA		R_Disp_Mosaic_Flag0+2
		STA		R_Blk_Num_L
		LDA		R_Disp_Mosaic_Flag0+3
		STA		R_Blk_Num_H
		LDA		#<8001H
		STA		R_Source_Add_L
		LDA		#>8001H
		STA		R_Source_Add_H
		STZ		R_Des_Add_Bank_L
		STZ		R_Des_Add_Bank_H
		RTS
;;=============================================
F_Test_Bonding:
		BBR1	<R_SysFlag2,L_Test_Bonding_CS2
L_Test_Bonding_CS0:
.IF	PROGRAM_VERSION=MASKROM_VERSION
		JMP		L_Test_Bonding_Error
.ENDIF	;MaskUpDate=0
		JMP		L_Test_Bonding_CS0_Countion
L_Test_Bonding_CS2:
		LDA		#04H
		STA		R_Blk_Num_L
		STZ		R_Blk_Num_H
		JSR		F_EraseFlash_32K
;		JSR		F_BlockErase
		STZ		R_Disp_Mosaic_Flag0+0
		LDA		#80H
		STA		R_Disp_Mosaic_Flag0+1
		LDA		#01H
		STA		R_Disp_Mosaic_Flag0+2
		LDA		#80H
		STA		R_Disp_Mosaic_Flag0+3
		STZ		R_Disp_Mosaic_Flag0+4
L_Test_Bonding:
		JSR		F_Test_Bonding_Write55H
		LDA		#<04H
		STA		R_Blk_Num_L
		LDA		#>00H
		STA		R_Blk_Num_H
		JSR		F_Test_Bonding_WriteSub
		JSR		F_Test_Bonding_WriteAAH
		LDA		#<04H
		STA		R_Blk_Num_L
		LDA		#>00H
		STA		R_Blk_Num_H
		JSR		F_Test_Bonding_WriteSub_1
		LDA		#<04H
		STA		R_Blk_Num_L
		LDA		#>00H
		STA		R_Blk_Num_H
		LDA		R_Disp_Mosaic_Flag0
		STA		R_Source_Add_L
		LDA		R_Disp_Mosaic_Flag0+1
		STA		R_Source_Add_H
		STZ		R_Des_Add_Bank_L
		STZ		R_Des_Add_Bank_H
		LDA		#<R_TempL
		STA		R_Des_Add_L
		LDA		#>R_TempL
		STA		R_Des_Add_H
		JSR		F_FlashOneDataRead
		LDA		<R_TempL
		CMP		#055H
		BEQ		L_Test_Bonding_1

		JMP		L_Test_Bonding_Error
L_Test_Bonding_1:
		LDA		#<04H
		STA		R_Blk_Num_L
		LDA		#>00H
		STA		R_Blk_Num_H
		LDA		R_Disp_Mosaic_Flag0+2
		STA		R_Source_Add_L
		LDA		R_Disp_Mosaic_Flag0+3
		STA		R_Source_Add_H
		STZ		R_Des_Add_Bank_L
		STZ		R_Des_Add_Bank_H
		LDA		#<R_TempL
		STA		R_Des_Add_L
		LDA		#>R_TempL
		STA		R_Des_Add_H
		JSR		F_FlashOneDataRead
		LDA		<R_TempL
		CMP		#0AAH
		BEQ		L_Test_Bonding_2
		JMP		L_Test_Bonding_Error
L_Test_Bonding_2:
		INC		R_Disp_Mosaic_Flag0+4
		LDA		R_Disp_Mosaic_Flag0+4
		CMP		#15
		BCS		L_Test_Bonding_3
		CLC
		ROL		R_Disp_Mosaic_Flag0+2
		ROL		R_Disp_Mosaic_Flag0+3
		LDA		R_Disp_Mosaic_Flag0+3
		ORA		#80H
		STA		R_Disp_Mosaic_Flag0+3
		LDA		R_Disp_Mosaic_Flag0+3
		STA		R_Disp_Mosaic_Flag0+1
		LDA		R_Disp_Mosaic_Flag0+2
		STA		R_Disp_Mosaic_Flag0
		LDA		R_Disp_Mosaic_Flag0+2
		ORA		#01H
		STA		R_Disp_Mosaic_Flag0+2
		JMP		L_Test_Bonding
L_Test_Bonding_3:
		LDA		#04H
		STA		R_Blk_Num_L
		LDA		#00H
		STA		R_Blk_Num_H
		JSR		F_EraseFlash_32K
;		JSR		F_BlockErase
L_Test_Bonding_4:
		LDA		#05H
		STA		R_Blk_Num_L
		LDA		#00H
		STA		R_Blk_Num_H
		JSR		F_EraseFlash_32K
;		JSR		F_BlockErase
L_Test_Bonding_5:
		LDA		#04H
		STA		R_Disp_Mosaic_Flag0
		LDA		#00H
		STA		R_Disp_Mosaic_Flag0+1
		LDA		#05H
		STA		R_Disp_Mosaic_Flag0+2
		LDA		#00H
		STA		R_Disp_Mosaic_Flag0+3
		STZ		R_Disp_Mosaic_Flag0+4
L_Test_Bonding6:
		JSR		F_Test_Bonding_Sub0
		JSR		F_Test_Bonding_Sub1
		LDA		#0AAH
		STA		<R_TempL
		JSR		F_Test_Bonding_Sub2
		JSR		F_Test_Bonding_Sub1
		JSR		F_Test_Bonding_Sub3
		JSR		F_Test_Bonding_Sub4
		CMP		#055H
		BEQ		L_Test_Bonding_7
		JMP		L_Test_Bonding_Error
L_Test_Bonding_7:
		JSR		F_Test_Bonding_Sub5
		JSR		F_Test_Bonding_Sub4
		CMP		#0AAH
		BEQ		L_Test_Bonding_8
		JMP		L_Test_Bonding_Error
L_Test_Bonding_8:
		LDA		#04H
		STA		R_Blk_Num_L
		LDA		#00H
		STA		R_Blk_Num_H
		JSR		F_EraseFlash_32K
;		JSR		F_BlockErase
		LDA		#06H
		STA		R_Blk_Num_L
		LDA		#00H
		STA		R_Blk_Num_H
		JSR		F_EraseFlash_32K
;		JSR		F_BlockErase
		LDA		#04H
		STA		R_Disp_Mosaic_Flag0
		STZ		R_Disp_Mosaic_Flag0+1
		LDA		#06H
		STA		R_Disp_Mosaic_Flag0+2
		STZ		R_Disp_Mosaic_Flag0+3
		STZ		R_Disp_Mosaic_Flag0+4
L_Test_Bonding9:
		JSR		F_Test_Bonding_Sub0
		JSR		F_Test_Bonding_Sub1
		LDA		#0AAH
		STA		<R_TempL
		JSR		F_Test_Bonding_Sub2
		JSR		F_Test_Bonding_Sub1
		JSR		F_Test_Bonding_Sub3
		JSR		F_Test_Bonding_Sub4
		CMP		#055H
		BEQ		L_Test_Bonding_10
		JMP		L_Test_Bonding_Error
L_Test_Bonding_10:
		JSR		F_Test_Bonding_Sub5
		JSR		F_Test_Bonding_Sub4
		CMP		#0AAH
		BEQ		L_Test_Bonding_11
		JMP		L_Test_Bonding_Error
L_Test_Bonding_11:

		LDA		#04H
		STA		R_Blk_Num_L
		LDA		#00H
		STA		R_Blk_Num_H
		JSR		F_EraseFlash_32K
;		JSR		F_BlockErase
		LDA		#08H
		STA		R_Blk_Num_L
		LDA		#00H
		STA		R_Blk_Num_H
		JSR		F_EraseFlash_32K
;		JSR		F_BlockErase
		LDA		#04H
		STA		R_Disp_Mosaic_Flag0
		STZ		R_Disp_Mosaic_Flag0+1
		LDA		#08H
		STA		R_Disp_Mosaic_Flag0+2
		STZ		R_Disp_Mosaic_Flag0+3
		STZ		R_Disp_Mosaic_Flag0+4
L_Test_Bonding12:
		JSR		F_Test_Bonding_Sub0
		JSR		F_Test_Bonding_Sub1
		LDA		#0AAH
		STA		<R_TempL
		JSR		F_Test_Bonding_Sub2
		JSR		F_Test_Bonding_Sub1
		JSR		F_Test_Bonding_Sub3
		JSR		F_Test_Bonding_Sub4
		CMP		#055H
		BEQ		L_Test_Bonding_13
		JMP		L_Test_Bonding_Error
L_Test_Bonding_13:
		JSR		F_Test_Bonding_Sub5
		JSR		F_Test_Bonding_Sub4
		CMP		#0AAH
		BEQ		L_Test_Bonding_14
		JMP		L_Test_Bonding_Error
L_Test_Bonding_14:
		LDA		#04H
		STA		R_Blk_Num_L
		STZ		R_Blk_Num_H
		JSR		F_EraseFlash_32K
;		JSR		F_BlockErase
		LDA		#16
		STA		R_Blk_Num_L
		STZ		R_Blk_Num_H
		JSR		F_EraseFlash_32K
;		JSR		F_BlockErase
		LDA		#04H
		STA		R_Disp_Mosaic_Flag0
		STZ		R_Disp_Mosaic_Flag0+1
		LDA		#16
		STA		R_Disp_Mosaic_Flag0+2
		STZ		R_Disp_Mosaic_Flag0+3
		STZ		R_Disp_Mosaic_Flag0+4
L_Test_Bonding15:
		JSR		F_Test_Bonding_Sub0
		JSR		F_Test_Bonding_Sub1
		LDA		#0AAH
		STA		<R_TempL
		JSR		F_Test_Bonding_Sub2
		JSR		F_Test_Bonding_Sub1
		JSR		F_Test_Bonding_Sub3
		JSR		F_Test_Bonding_Sub4
		CMP		#055H
		BEQ		L_Test_Bonding_16
		JMP		L_Test_Bonding_Error
L_Test_Bonding_16:
		JSR		F_Test_Bonding_Sub5
		JSR		F_Test_Bonding_Sub4
		CMP		#0AAH
		BEQ		L_Test_Bonding_17
		JMP		L_Test_Bonding_Error
L_Test_Bonding_17:



L_Test_Bonding_CS0_Countion:
L_Test_Bonding_OK:
		LDA		#0FFH
		STA		<PCA
		LDA		#0FFH
		STA		<PCC
		LDA		#01H
		STA		<PA
		LDA		#04H
		STA		<PC
		SEI
		SMB6	<IENAL
		CLI
		LDA		#00000110B						; System Clock=OSC,Enable OSC,OSCX.
		STA		<SYS								; WAI-1	mode
		WAI										; Delay	0.5	second
		STZ		<IREQ
		LDA		#0FFH
		STA		<BTREQ
		LDA		#02H
		STA		<PA
		WAI										; Delay	0.5	second
		STZ		<IREQ
		LDA		#0FFH
		STA		<BTREQ
		LDA		#04H
		STA		<PA
		WAI										; Delay	0.5	second
		STZ		<IREQ
		LDA		#0FFH
		STA		<BTREQ
		LDA		#040H
		STA		<PA
		WAI										; Delay	0.5	second
		STZ		<IREQ
		LDA		#0FFH
		STA		<BTREQ
		LDA		#080H
		STA		<PA
		WAI										; Delay	0.5	second
		STZ		<IREQ
		LDA		#0FFH
		STA		<BTREQ
		LDA		#024H
		STA		<PC
		WAI										; Delay	0.5	second
		STZ		<IREQ
		LDA		#0FFH
		STA		<BTREQ


		LDA		#008H+C_ST7636R_X_Off
		STA		<R_CursorX
		LDA		#00H+C_ST7636R_Y_Off
		STA		<R_CursorY
		LDA		#'O'
		STA		R_Disp_CharL
		JSR		820H
.IF	MaskUpDate=0
		DW		03H
.ELSE
;		DW		03H
		DW		03H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF	;MaskUpDate=0
		DW		F_Disp_NumOrABC-1
		LDA		#010H+C_ST7636R_X_Off
		STA		<R_CursorX
		LDA		#00H+C_ST7636R_Y_Off
		STA		<R_CursorY
		LDA		#'K'
		STA		R_Disp_CharL
		JSR		820H
.IF	MaskUpDate=0
		DW		03H
.ELSE
;		DW		03H
		DW		03H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF	;MaskUpDate=0
		DW		F_Disp_NumOrABC-1
		BRA		$

L_Test_Bonding_Error:
		LDA		#008H+C_ST7636R_X_Off
		STA		<R_CursorX
		LDA		#00H+C_ST7636R_Y_Off
		STA		<R_CursorY

⌨️ 快捷键说明

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