📄 display.lst
字号:
192 000000 movc
193 000000 mov seg2buf,a
194 000000 ;----
195 000000 ;求得十位值
196 000000 b0mov y,#font_tbl$m
197 000000 b0mov z,#font_tbl$l
198 000000 swap timerbuf
199 000000 and a,#0fh
200 000000 b0bts0 fz
201 000000 jmp hidedisplay
202 000000 add z,a
203 000000 mov a,#0
204 000000 adc y,a
205 000000 movc
206 000000 mov seg1buf,a
207 000000 ret
208 000000 ;-----
209 000000 hidedisplay:
210 000000 mov_ seg1buf,#0ffh
211 000000 ret
212 000000 ;------------------
213 000000 mngetdata80:
214 000000 ;-----
215 000000 b0bts0 firstsettimeflag
216 000000 jmp mngetdata50
217 000000 mov a,#0ffh
218 000000 mov seg1buf,a
219 000000 mov seg2buf,a
220 000000 mov seg3buf,a
221 000000 mov seg4buf,a
222 000000 bset timecomeflag
223 000000 bclr timekeyflag
224 000000 ;// bclr ptcout ;close IGBT
225 000000 bclr fpwm1out
226 000000 bclr ftc1enb ;stop t1 count
227 000000 bclr ptpwm
228 000000 ret
229 000000 ;-----
230 000000 mngetdata50:
231 000000 bclr timekeyflag
232 000000 bclr firstsettimeflag
233 000000 bset timecomeflag
234 000000 ;----
235 000000 mngetdata90:
236 000000 ret
237 000000
238 000000 /*
239 000000 ;********************************************
240 000000 ;name:conv_hex_bcd
241 000000 ;function:小于10000的十六进制转换BCD码(要作10000以上的加个条件判断)
242 000000 ;input: hexh,hexl
243 000000 ;output:bcdh,bcdl
244 000000 ;register:
245 000000 ;********************************************
246 000000 conv_hex_bcd:
247 000000 clr bcdl
248 000000 clr bcdh
249 000000 gethighnibble:
250 000000 mov a,hexl
251 000000 sub a,#100
252 000000 mov hexl,a
253 000000 b0bts1 fc
254 000000 jmp getmidnibble10
255 000000 ;----
256 000000 highnibbleinc:
257 000000 mov a,#1
258 000000 add bcdh,a
259 000000 mov a,bcdh
260 000000 and a,#0fh
261 000000 sub a,#0ah
262 000000 b0bts1 fc
263 000000 jmp gethighnibble
264 000000 mov a,#06h
265 000000 add bcdh,a
266 000000 jmp gethighnibble
267 000000 ;----
268 000000 getmidnibble10:
269 000000 mov a,hexh
270 000000 sub a,#1
271 000000 mov hexh,a
272 000000 b0bts1 fc
273 000000 jmp getmidnibble00
274 000000 jmp highnibbleinc
275 000000 ;----
276 000000 getmidnibble00:
277 000000 mov a,#100
278 000000 add hexl,a
279 000000 getmidnibble:
280 000000 mov a,hexl
281 000000 sub a,#10
282 000000 mov hexl,a
283 000000 b0bts1 fc
284 000000 jmp getlownibble00
285 000000 incms bcdl
286 000000 nop
287 000000 jmp getmidnibble
288 000000 ;----
289 000000 getlownibble00:
290 000000 add a,#10
291 000000 swapm bcdl
292 000000 or bcdl,a
293 000000 ret
294 000000 ;********************************************
295 000000 ;name:conv_bcd_hex
296 000000 ;function:小于10000的BCD码转换为十六进制
297 000000 ;input: bcdl,bcdh
298 000000 ;output:hexl,hexh
299 000000 ;register:var3,var4,var5,var6,var7,var8
300 000000 ;********************************************
301 000000 conv_bcd_hex:
302 000000 clr var3
303 000000 clr var4
304 000000 clr var5
305 000000 clr var6
306 000000 ;----
307 000000 ;x1000
308 000000 swap bcdh
309 000000 and a,#0fh
310 000000 mov var7,a
311 000000 mov_ var8,#8
312 000000 mov_ var3,#0e8h
313 000000 mov_ var4,#03h
314 000000 call mulsub ;two byte multiply
315 000000 mov_ hexl,var5
316 000000 mov_ hexh,var6
317 000000 ;----
318 000000 ;x100
319 000000 clr var3
320 000000 clr var4
321 000000 clr var5
322 000000 clr var6
323 000000 mov a,bcdh
324 000000 and a,#0fh
325 000000 mov var7,a
326 000000 mov_ var8,#8
327 000000 mov a,#100
328 000000 mov var3,a
329 000000 call mulsub ;two byte multiply
330 000000 mov a,var5
331 000000 add hexl,a
332 000000 mov a,var6
333 000000 adc hexh,a
334 000000 ;----
335 000000 ;x10
336 000000 clr var3
337 000000 clr var4
338 000000 clr var5
339 000000 clr var6
340 000000 swap bcdl
341 000000 and a,#0fh
342 000000 mov var7,a
343 000000 mov_ var8,#8
344 000000 mov a,#10
345 000000 mov var3,a
346 000000 call mulsub ;two byte multiply
347 000000 mov a,var5
348 000000 add hexl,a
349 000000 mov a,var6
350 000000 adc hexh,a
351 000000 ;----
352 000000 ;x1
353 000000 mov a,bcdl
354 000000 and a,#0fh
355 000000 add hexl,a
356 000000 mov a,#0
357 000000 adc hexh,a
358 000000 ret
359 000000 ;**********************************************
360 000000 ;两个BYTE的数相乘
361 000000 mulsub:
362 000000 bclr fc
363 000000 rrcm var7
364 000000 b0bts1 fc
365 000000 jmp deccount
366 000000 mov a,var3
367 000000 add var5,a
368 000000 mov a,var4
369 000000 adc var6,a
370 000000 ;----
371 000000 deccount:
372 000000 decms var8
373 000000 jmp adjustposition
374 000000 ret
375 000000 ;----
376 000000 adjustposition:
377 000000 bclr fc
378 000000 rlcm var3
379 000000 rlcm var4
380 000000 jmp mulsub
381 000000 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -