📄 initiate.asm
字号:
;;********************************************************************
Clear_RAM:
MOV A,C_Ramaddress
MOV MP0,A
MOV A,C_Ramnumber
Clear_RAMLOOP:
CLR R0
INC MP0
SDZ ACC
JMP Clear_RAMLOOP
RET
;;********************************************************************
INI_RAM:
MOV A,80H
MOV TMR1C,A
MOV A,C_PollingL
MOV TMR1L,A
MOV A,C_PollingH
MOV TMR1H,A ;;If system clock is 12MHZ then each 34.66 microsecond polling rxd start bit one time.
MOV A,OFFSET R_ReceiveBuffer
MOV R_ReBufferAddress,A
MOV R_TrBufferAddress,A
RET
;;********************************************************************
INI_PORT:
MOV A,10111100B
MOV PA,A
mov a,01000011B
mov pac,a
MOV A,11110011B
MOV PB,A
MOV A,00001100B
MOV PBC,A
RET
;;********************************************************************
INI_IRREC:
mov a,5
mov R_PreCodeNum,a ;
mov a,7
mov R_KeyCodeNum,a ;
mov a,20h
mov USR,a
clr recHbyte
clr recLbyte
clr F_Polling
CLR F_Maximize
;clr F_LastFrame
;CLR F_continuouskey
ret
;;********************************************************************
INI_USB:
set F_FsysClock ;;The MCU systerm clock is 6MHZ
MOV A,62
MOV R_IdleTime,A
SET F_ReportProtocol
SET F_USBClockOn
CLR F_PS2mode
SET F_USBmode ;;The device is USB device.
RET
;;********************************************************************
SBR_Delaysecond:
MOV A,2
MOV R_TEMP2,A
SET R_TEMP1
SET ACC
L_Wait3s:
CLR WDT
SNZ F_Suspend ;about 1ms
RET
SDZ ACC
JMP L_Wait3s
SDZ R_TEMP1
JMP L_Wait3s ;260ms
SDZ R_TEMP2
JMP L_Wait3s
RET
;;********************************************************************
SBR_Delay2us:
MOV A,04H
SDZ ACC
JMP $-1
RET
;;********************************************************************
delay89ms: ;6*178*25*5*2/3,6MHz
mov a,05h ;7
mov r_delayvalue1,a
delayloop1:
mov a,019h ;021h
mov r_delayvalue2,a
delayloop2:
mov a,0b2h ;fa
mov r_delayvalue3,a
delayloop3:
clr wdt
NOP
NOP
sdz r_delayvalue3
jmp delayloop3
sdz r_delayvalue2
jmp delayloop2
sdz r_delayvalue1
jmp delayloop1
ret
delay108ms: ;6*250*27*4*2/3,6MHz
mov a,04h ;7
mov r_delayvalue1,a
loop108ms1:
mov a,01bh
mov r_delayvalue2,a
loop108ms2:
mov a,0fah ;fa
mov r_delayvalue3,a
loop108ms3:
clr wdt
NOP
NOP
sdz r_delayvalue3
jmp loop108ms3
sdz r_delayvalue2
jmp loop108ms2
sdz r_delayvalue1
jmp loop108ms1
ret
delay03ms:
mov a,04bh
mov r_delayvalue1,a
loop03ms:
clr wdt
NOP
NOP
sdz r_delayvalue1
jmp loop03ms
ret
delay106ms:
mov a,06h
mov r_delayvalue1,a
delayloop5:
mov a,019h
mov r_delayvalue2,a
delayloop6:
mov a,0b2h
mov r_delayvalue3,a
delayloop7:
clr wdt
NOP
NOP
sdz r_delayvalue3
jmp delayloop7
sdz r_delayvalue2
jmp delayloop6
sdz r_delayvalue1
jmp delayloop5
ret
delay840us:
mov a,0d2h
mov r_delayvalue1,a
loop840us:
clr wdt
nop
nop
sdz r_delayvalue1
jmp loop840us
ret
delay54ms: ;6*250*27*4*2/3,6MHz
mov a,02h ;7
mov r_delayvalue1,a
loop54ms1:
mov a,01bh
mov r_delayvalue2,a
loop54ms2:
mov a,0fah ;fa
mov r_delayvalue3,a
loop54ms3:
clr wdt
NOP
NOP
sdz r_delayvalue3
jmp loop54ms3
sdz r_delayvalue2
jmp loop54ms2
sdz r_delayvalue1
jmp loop54ms1
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -