📄 main1.lst
字号:
"File: MAIN1.ASM Holtek Cross-Assembler Version 2.86 Page 1
1 0000 include ht82k96e.inc
2 0000 include usbrf.inc
3 0000 include usbFIFO.inc
4 0000
5 0000 sel_reg_line equ usr.5
6 0000 sel_ps2_line equ usr.4
7 0000
8 0000
9 0000
10 0000
11 0000 extern bKB_KeyUpt :bit
12 0000 extern bFLAG_HvRpt :bit
13 0000 extern btime_out_KB :bit
14 0000 extern baddr_state :bit
15 0000 extern bcfgvalue :bit
16 0000 extern breseume_s :bit
17 0000 extern bRmtWakeup :bit
18 0000
19 0000
20 0000 ;for KB
21 0000 scanin equ pa
22 0000 extern examine_kb_state :near
23 0000 extern setled :near
24 0000 extern KB_initial :near
25 0000 extern kb_suspend :near
26 0000 extern kb_io_config :near
27 0000
28 0000
29 0000
30 0000 ;rf_proc.asm
31 0000 extern Ram_init :near
32 0000
33 0000 extern config_USB :near
34 0000 extern start_timer :near
35 0000 extern ReportKBTime :byte
36 0000 extern TempKBTime :byte
37 0000 extern TempKBTime_L :byte
38 0000 extern temp1 :byte
39 0000 extern temp2 :byte
40 0000
41 0000 extern KB_LED :byte
42 0000
43 0000 main .section 'code'
44 0000 ;-----------------------------------------------------------------------------------
45 0000 ;-----------------------------------------------------------------------------------
46 0000 ; main program here
47 0000 ;-----------------------------------------------------------------------------------
48 0000 ;-----------------------------------------------------------------------------------
49 0000
50 0000
51 0000 main_start:
52 0000
53 0000 070A mov a,status
"File: MAIN1.ASM Holtek Cross-Assembler Version 2.86 Page 2
54 0001 0E30 and a,00110000b
55 0002 0C30 xor a,00110000b
56 0003 3D0A sz z
57 0004 2800 R jmp watch_wake
58 0005 0001 clr wdt
59 0006 0F87 mov a,10000111b
60 0007 0089 mov WDTS,a
61 0008
62 0008 2000 E call kb_io_config
63 0009 2000 E call Ram_init
64 000A 2000 E call KB_initial
65 000B 2000 E call config_USB
66 000C
67 000C
68 000C 3000 E set baddr_state ; USB in address state
69 000D 3589 clr wdts.3
70 000E 3389 set wdts.7 ;clear usb reset
71 000F 319C set on_usb_clk
72 0010 361B clr sel_ps2_line
73 0011 329B set sel_reg_line ;set usb mode
74 0012
75 0012 0F03 mov a,00000011b
76 0013 008B mov intc,a
77 0014 360E clr timer0_on
78 0015 ;------------------------------------------------------------------------------------------------
79 0015 mainloop:
80 0015 0001 clr wdt
81 0016 3C1A sz suspend_line
82 0017 2800 R jmp Tosuspend
83 0018 ;------------------------------------------------------------------------------------------------
84 0018 maintag:
85 0018 3C00 E SZ bCfgValue ;Has configured ?
86 0019 2800 R JMP maintag_cnt ;Yes
87 001A 2800 R JMP MainLoop ;No
88 001B maintag_cnt:
89 001B 2800 E jmp examine_kb_state
90 001C exit_of_examine_kb_state:
91 001C
92 001C ;------------------------------------------------------------------------------------------------
93 001C NeedReportCheck:
94 001C ;Whether has device been configured ?
95 001C ;Yes: May report data ?
96 001C 3C00 E SZ bCfgValue ;Has configured ?
97 001D 2800 R JMP HasConfigured ;Yes
98 001E 2800 R JMP MainLoop ;No
99 001F HasConfigured:
100 001F ;In Normal State
101 001F
102 001F 3C00 E SZ bFLAG_HvRpt ;ever reported ?
103 0020 2800 R JMP Check_Mouse_KB_state ;Yes
104 0021 ;Report all data immediately
105 0021 2000 E call start_timer
106 0022 3C00 E SZ bFLAG_HvRpt ;ever reported ?
107 0023 2800 R JMP Check_Mouse_KB_state ;Yes
108 0024 ;Report all data immediately
109 0024 3000 E set bKB_KeyUpt
110 0025 1F00 E clr tempkbtime_L
111 0026 1F00 E clr tempkbtime
112 0027 3000 E SET bFLAG_HvRpt ;has reported
113 0028
"File: MAIN1.ASM Holtek Cross-Assembler Version 2.86 Page 3
114 0028 ;reset key changed flag
115 0028 2800 R jmp Mainloop
116 0029 ;-----------------------------------------------------------------------------------
117 0029 Check_Mouse_KB_State:
118 0029 1080 E SZ ReportKBTime
119 002A 2800 R jmp check_TIME_OUT_KB
120 002B 2800 R JMP MainLoop ;Has Idle time
121 002C ;-----------------------------------------------------------------------------------
122 002C check_time_out_KB:
123 002C 3C00 E SZ btime_out_KB
124 002D 3000 E set bKB_KeyUpt
125 002E 2800 R JMP MainLoop
126 002F ;-----------------------------------------------------------------------------------
127 002F ToSuspend:
128 002F 3611 clr timer1_on
129 0030 2000 E call kb_suspend
130 0031
131 0031 wait_about_3s:
132 0031 ;about wait_3s for 6MHz crystal
133 0031 0F02 mov a,2
134 0032 0080 E mov temp2,a
135 0033 1F80 E set temp1
136 0034 1F85 set acc
137 0035 wait_3s:
138 0035 0001 clr wdt
139 0036 381A snz suspend_line ;about 850
140 0037 2800 R jmp exit_of_suspend
141 0038 1785 sdz acc
142 0039 2800 R jmp wait_3s
143 003A 1780 E sdz temp1
144 003B 2800 R jmp wait_3s ;217ms
145 003C 1780 E sdz temp2
146 003D 2800 R jmp wait_3s
147 003E
148 003E ;------------------------------------------------------------------------------------------
149 003E ToSuspend_again:
150 003E 359C clr on_usb_clk
151 003F 361C clr regulator_off
152 0040 0000 nop
153 0041 0002 halt
154 0042 watch_wake:
155 0042 ;check I/O wakeup
156 0042 1F05 clr acc
157 0043 0F0A mov a,10
158 0044 0080 E mov temp1,a
159 0045
160 0045 wait_debounce:
161 0045 0001 clr wdt
162 0046 381A snz suspend_line
163 0047 2800 R jmp exit_of_resume_mode
164 0048 1785 sdz acc
165 0049 2800 R jmp wait_debounce
166 004A 1780 E sdz temp1
167 004B 2800 R jmp wait_debounce
168 004C
169 004C 0712 mov a,scanin
170 004D 0CFF xor a,0ffh
171 004E 3D0A sz z
172 004F 2800 R jmp wait_reseume_out
173 0050 ;------------------------------------------------------------------------------------------
"File: MAIN1.ASM Holtek Cross-Assembler Version 2.86 Page 4
174 0050 RemoteWakeup:
175 0050 ;out wakeup pulse
176 0050
177 0050 3800 E snz bRmtWakeup
178 0051 2800 R jmp ToSuspend_again
179 0052
180 0052 319C set on_usb_clk
181 0053 361C clr regulator_off
182 0054
183 0054 309A set wakeup_line
184 0055 0000 nop
185 0056 0000 nop
186 0057 0000 nop
187 0058 0000 nop
188 0059 0000 nop
189 005A 0000 nop
190 005B 349A clr wakeup_line
191 005C 3000 E set breseume_s
192 005D ;------------------------------------------------------------------------------------------
193 005D wait_reseume_out:
194 005D 0001 clr wdt
195 005E 3800 E snz breseume_s
196 005F 2800 R jmp exit_of_resume_mode
197 0060 2800 R jmp wait_reseume_out
198 0061
199 0061 ;------------------------------------------------------------------------------------------
200 0061 exit_of_resume_mode:
201 0061 381A snz suspend_line
202 0062 2800 R jmp exit_of_suspend
203 0063 2800 R jmp ToSuspend_again
204 0064
205 0064 ;------------------------------------------------------------------------------------------
206 0064
207 0064 exit_of_suspend:
208 0064 3400 E CLR bFLAG_HvRpt ;reset to nonreport
209 0065 2000 E call kb_io_config
210 0066 0700 E mov a,kb_led
211 0067 2000 E call setled
212 0068 3211 set timer1_on
213 0069 2800 R jmp mainloop
214 006A ;----------------------------------------------------------------------------------------------
215 006A
216 006A
217 006A
218 006A public main_start
219 006A public exit_of_examine_kb_state
220 006A
221 006A END
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -