📄 led164.asm
字号:
.include hardware.inc
.public _LED164_Init
.public _SetIObit
.public _Clear_WatchDog
.code
//==================================================================
_LED164_Init:
r1=0x80 //49MHz
[P_SystemClock]=r1;
//IOA
r1=[P_IOB_Buffer]
r1|=0x00c0
[P_IOA_Dir]=r1;
[P_IOA_Attrib]=r1;
r1=0x0000
[P_IOA_Data]=r1
//IOB
// r1=0xffff
// [P_IOB_Dir]=r1;
// [P_IOB_Attrib]=r1;
// r1=0x0000
// [P_IOB_Data]=r1
retf
//==============================================================
_SetIObit:.proc
push r1,r2 to [sp]
push bp to [sp]
bp=sp+5
r2=[bp+1] //IO position
r1=[bp+2] //IO status
jz Clr_IO
Set_IO:
r1=[P_IOA_Buffer]
r1|=r2
[P_IOA_Buffer]=r1
// [P_IOB_Buffer]=r1
pop bp from [sp]
pop r2,r1 from [sp]
retf
Clr_IO:
r2^=0xffff //取反
r1=[P_IOA_Buffer]
r1&=r2
[P_IOA_Buffer]=r1
// [P_IOB_Buffer]=r1
pop bp from [sp]
pop r2,r1 from [sp]
retf
.endp
//==============================
_Clear_WatchDog: .PROC
R1=0x0001;
[P_Watchdog_Clear]=R1;
retf;
.ENDP
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -