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

📄 main.asm

📁 凌阳61 串口和usb isp在线调试程序
💻 ASM
字号:
//main.asm
.include spce061a.inc
.include Resource.inc

.TEXT
.public _main
_main:
	//erase 0xfc00 ~ 0xffff
	r1 = 0xfc00
	call F_Flash_Erase     
	r1 = 0xfd00
	call F_Flash_Erase
	r1 = 0xfe00
	call F_Flash_Erase
	r1 = 0xff00
	call F_Flash_Erase
	//write ISP code to flash
	r1 = 0xfc00
	r3 = [_RES_CODE_BIN_SA]
?L0:
	r2 = [r3++]
	call F_Flash_WriteWord
	r1 += 1
	cmp r1, 0x0
	jnz ?L0

	// Beep to tell user that finished
	r1 = 0xff
	r2 = 0x7f
	call F_Beep
?L1:
	//write over! you can reset the cpu now
	r1 = 0x0001
	[P_Watchdog_Clear] = r1
	jmp ?L1
	retf

// r1: Freqency, r2: Length
F_Beep:
	r3 = 0
	[P_DAC_Ctrl] = r3
?BL:
	r3 = 0xffff
	[P_DAC1] = r3
	[P_DAC2] = r3
	call F_Delay
	r3 = 0x0000
	[P_DAC1] = r3
	[P_DAC2] = r3
	call F_Delay
	r2 -= 1
	cmp r2, 0
	jne ?BL
	retf
// r1: delay count
F_Delay:
	push r1 to [sp]
?DL:
	nop
	r1 -= 1
	cmp r1, 0
	jne ?DL
	pop r1 from [sp]
	retf

// r1:Addr, r2:Data
F_Flash_WriteWord:
	push r1, r3 to [sp]
	r3 = 0xaaaa
	[P_Flash_Ctrl] = r3
	r3 = 0x5533
	[P_Flash_Ctrl] = r3
	[r1] = r2
	pop r1, r3 from [sp]
retf

// r1:Addr
F_Flash_Erase:
	push r1, r2 to [sp]
	r2 = 0xaaaa
	[P_Flash_Ctrl] = r2
	r2 = 0x5511
	[P_Flash_Ctrl] = r2
	[r1] = r1
	pop r1, r2 from [sp]
retf

⌨️ 快捷键说明

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