?? main1.asm
字號:
include ht82k96e.inc
include usbrf.inc
include usbFIFO.inc
sel_reg_line equ usr.5
sel_ps2_line equ usr.4
extern bKB_KeyUpt :bit
extern bFLAG_HvRpt :bit
extern btime_out_KB :bit
extern baddr_state :bit
extern bcfgvalue :bit
extern breseume_s :bit
extern bRmtWakeup :bit
;for KB
scanin equ pa
extern examine_kb_state :near
extern setled :near
extern KB_initial :near
extern kb_suspend :near
extern kb_io_config :near
;rf_proc.asm
extern Ram_init :near
extern config_USB :near
extern start_timer :near
extern ReportKBTime :byte
extern TempKBTime :byte
extern TempKBTime_L :byte
extern temp1 :byte
extern temp2 :byte
extern KB_LED :byte
main .section 'code'
;-----------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------
; main program here
;-----------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------
main_start:
mov a,status
and a,00110000b
xor a,00110000b
sz z
jmp watch_wake
clr wdt
mov a,10000111b
mov WDTS,a
call kb_io_config
call Ram_init
call KB_initial
call config_USB
set baddr_state ; USB in address state
clr wdts.3
set wdts.7 ;clear usb reset
set on_usb_clk
clr sel_ps2_line
set sel_reg_line ;set usb mode
mov a,00000011b
mov intc,a
clr timer0_on
;------------------------------------------------------------------------------------------------
mainloop:
clr wdt
sz suspend_line
jmp Tosuspend
;------------------------------------------------------------------------------------------------
maintag:
SZ bCfgValue ;Has configured ?
JMP maintag_cnt ;Yes
JMP MainLoop ;No
maintag_cnt:
jmp examine_kb_state
exit_of_examine_kb_state:
;------------------------------------------------------------------------------------------------
NeedReportCheck:
;Whether has device been configured ?
;Yes: May report data ?
SZ bCfgValue ;Has configured ?
JMP HasConfigured ;Yes
JMP MainLoop ;No
HasConfigured:
;In Normal State
SZ bFLAG_HvRpt ;ever reported ?
JMP Check_Mouse_KB_state ;Yes
;Report all data immediately
call start_timer
SZ bFLAG_HvRpt ;ever reported ?
JMP Check_Mouse_KB_state ;Yes
;Report all data immediately
set bKB_KeyUpt
clr tempkbtime_L
clr tempkbtime
SET bFLAG_HvRpt ;has reported
;reset key changed flag
jmp Mainloop
;-----------------------------------------------------------------------------------
Check_Mouse_KB_State:
SZ ReportKBTime
jmp check_TIME_OUT_KB
JMP MainLoop ;Has Idle time
;-----------------------------------------------------------------------------------
check_time_out_KB:
SZ btime_out_KB
set bKB_KeyUpt
JMP MainLoop
;-----------------------------------------------------------------------------------
ToSuspend:
clr timer1_on
call kb_suspend
wait_about_3s:
;about wait_3s for 6MHz crystal
mov a,16
mov temp2,a
set temp1
set acc
wait_3s:
clr wdt
snz suspend_line ;about 850
jmp exit_of_suspend
sdz acc
jmp wait_3s
sdz temp1
jmp wait_3s ;217ms
sdz temp2
jmp wait_3s
;------------------------------------------------------------------------------------------
ToSuspend_again:
clr on_usb_clk
clr regulator_off
nop
halt
watch_wake:
;check I/O wakeup
clr acc
mov a,10
mov temp1,a
wait_debounce:
clr wdt
snz suspend_line
jmp exit_of_resume_mode
sdz acc
jmp wait_debounce
sdz temp1
jmp wait_debounce
mov a,scanin
xor a,0ffh
sz z
jmp wait_reseume_out
;------------------------------------------------------------------------------------------
RemoteWakeup:
;out wakeup pulse
snz bRmtWakeup
jmp ToSuspend_again
set on_usb_clk
clr regulator_off
set wakeup_line
nop
nop
nop
nop
nop
nop
clr wakeup_line
set breseume_s
;------------------------------------------------------------------------------------------
wait_reseume_out:
clr wdt
snz breseume_s
jmp exit_of_resume_mode
jmp wait_reseume_out
;------------------------------------------------------------------------------------------
exit_of_resume_mode:
snz suspend_line
jmp exit_of_suspend
jmp ToSuspend_again
;------------------------------------------------------------------------------------------
exit_of_suspend:
CLR bFLAG_HvRpt ;reset to nonreport
call kb_io_config
mov a,kb_led
call setled
set timer1_on
jmp mainloop
;----------------------------------------------------------------------------------------------
public main_start
public exit_of_examine_kb_state
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -