📄 vfd.lis
字号:
; VFD_alpha_V,
; VFD_alpha_W,
; VFD_alpha_X,
; VFD_alpha_Y,
; VFD_alpha_Z,
; };
; unsigned char Set_String(unsigned char *str);
; extern unsigned char Mchvol,Bassvol,Treblevol,Balanceval,Loudnessval;
; unsigned char *err_msg,blink_time;
; extern unsigned int radio_count,freq;
; extern unsigned char is_autosearching;
; extern unsigned char amfm_flag,g_ui_tmp_msg_cnt,station_no;
; #ifdef SGJM_RDS
; extern unsigned char rds_status;
; extern unsigned char pty_is_searching;
; extern unsigned char rds_dis_buffer[65];
; extern unsigned char rds_dis_string[65];
; extern unsigned char rds_display_type;
; #endif
; extern unsigned char muted;
; unsigned int info;
; extern unsigned char hm_flag,time_val[];
; unsigned int num_trans(unsigned char num)
; {
0000 .dbline 247
; return num_xlate[num];
0000 80E0 ldi R24,<_num_xlate
0002 90E0 ldi R25,>_num_xlate
0004 E02F mov R30,R16
0006 FF27 clr R31
0008 EE0F lsl R30
000A FF1F rol R31
000C E80F add R30,R24
000E F91F adc R31,R25
0010 0591 lpm R16,Z+
0012 1491 lpm R17,Z
0014 .dbline -2
0014 L2:
0014 .dbline 0 ; func end
0014 0895 ret
0016 .dbsym r num 16 c
0016 .dbfunc s display_digit _display_digit fI
; r2 -> R20
; r -> R22
; num -> R10,R11
.even
0016 _display_digit::
0016 0E940000 xcall push_gset3
001A 5801 movw R10,R16
001C .dbline -1
001C .dbline 250
; }
; void display_digit(unsigned int num)
; {
001C .dbline 252
; unsigned char r,r2;
; r = 2;
001C 62E0 ldi R22,2
001E L4:
001E .dbline 254
; do
; {
001E .dbline 255
; r2 = num%10;
001E 2AE0 ldi R18,10
0020 30E0 ldi R19,0
0022 8501 movw R16,R10
0024 0E940000 xcall mod16u
0028 A801 movw R20,R16
002A .dbline 256
; num /= 10;
002A 2AE0 ldi R18,10
002C 30E0 ldi R19,0
002E 8501 movw R16,R10
0030 0E940000 xcall div16u
0034 5801 movw R10,R16
0036 .dbline 257
; g_vfd_grid_buffer[r] = num_trans(r2);
0036 042F mov R16,R20
0038 E3DF xcall _num_trans
003A 1801 movw R2,R16
003C 80E0 ldi R24,<_g_vfd_grid_buffer
003E 90E0 ldi R25,>_g_vfd_grid_buffer
0040 E62F mov R30,R22
0042 FF27 clr R31
0044 EE0F lsl R30
0046 FF1F rol R31
0048 E80F add R30,R24
004A F91F adc R31,R25
004C 2082 std z+0,R2
004E 3182 std z+1,R3
0050 .dbline 258
; r++;
0050 6395 inc R22
0052 .dbline 259
0052 L5:
0052 .dbline 259
; }while(num);
0052 AA20 tst R10
0054 21F7 brne L4
0056 BB20 tst R11
0058 11F7 brne L4
005A .dbline -2
005A .dbline 260
; }
005A L3:
005A 0E940000 xcall pop_gset3
005E .dbline 0 ; func end
005E 0895 ret
0060 .dbsym r r2 20 c
0060 .dbsym r r 22 c
0060 .dbsym r num 10 i
0060 .dbfunc s tuner_display _tuner_display fI
.area func_lit(rom, con, rel)
0000 L125:
0000 5F00 .word `L14
0002 BF00 .word `L30
0004 CB00 .word `L34
0006 7801 .word `L95
0008 9B01 .word `L106
.area text(rom, con, rel)
0060 .dbfile D:\avrmcu\AT980\AT980\vfd.c
.area func_lit(rom, con, rel)
000A L94:
000A 3001 .word `L59
000C 3401 .word `L61
000E 3801 .word `L63
0010 3C01 .word `L65
0012 4001 .word `L67
0014 4401 .word `L69
0016 4801 .word `L71
0018 4C01 .word `L73
001A 5001 .word `L75
001C 5401 .word `L77
001E 5801 .word `L79
0020 5C01 .word `L81
0022 6001 .word `L83
0024 6401 .word `L85
0026 6801 .word `L87
0028 6C01 .word `L89
002A 7401 .word `L55
002C 7401 .word `L55
002E 7401 .word `L55
0030 7401 .word `L55
0032 7401 .word `L55
0034 7401 .word `L55
0036 7401 .word `L55
0038 7401 .word `L55
003A 7401 .word `L55
003C 7401 .word `L55
003E 7401 .word `L55
0040 7401 .word `L55
0042 7401 .word `L55
0044 7401 .word `L55
0046 7401 .word `L55
0048 7001 .word `L91
.area text(rom, con, rel)
0060 .dbfile D:\avrmcu\AT980\AT980\vfd.c
; r -> R22
; r2 -> R20
.even
0060 _tuner_display::
0060 0E940000 xcall push_gset2
0064 .dbline -1
0064 .dbline 263
;
; void tuner_display(void)
; {
0064 .dbline 267
;
; unsigned char r,r2;
;
; switch(display_type)
0064 40910000 lds R20,_display_type
0068 5527 clr R21
006A 4030 cpi R20,0
006C E0E0 ldi R30,0
006E 5E07 cpc R21,R30
0070 0CF4 brge X2
0072 B7C1 xjmp L8
0074 X2:
0074 84E0 ldi R24,4
0076 90E0 ldi R25,0
0078 8417 cp R24,R20
007A 9507 cpc R25,R21
007C 5CF0 brlt L124
007E 80E0 ldi R24,<L125
0080 90E0 ldi R25,>L125
0082 FA01 movw R30,R20
0084 EE0F lsl R30
0086 FF1F rol R31
0088 E80F add R30,R24
008A F91F adc R31,R25
008C 0590 lpm R0,Z+
008E 1490 lpm R1,Z
0090 F001 movw R30,R0
0092 0994 ijmp
0094 L124:
0094 4E30 cpi R20,14
0096 E0E0 ldi R30,0
0098 5E07 cpc R21,R30
009A 09F4 brne X3
009C 83C1 xjmp L116
009E X3:
009E 4F30 cpi R20,15
00A0 E0E0 ldi R30,0
00A2 5E07 cpc R21,R30
00A4 09F0 breq L11
00A6 9DC1 xjmp L8
00A8 X0:
00A8 .dbline 268
; {
00A8 L11:
00A8 .dbline 272
;
; case DISPLAY_DIGIT:
;
; if(blink_time<3)
00A8 80910200 lds R24,_blink_time
00AC 8330 cpi R24,3
00AE 08F0 brlo X4
00B0 98C1 xjmp L9
00B2 X4:
00B2 .dbline 273
; display_digit(radio_count);
00B2 10910100 lds R17,_radio_count+1
00B6 00910000 lds R16,_radio_count
00BA ADDF xcall _display_digit
00BC .dbline 274
; break;
00BC 92C1 xjmp L9
00BE L14:
00BE .dbline 278
;
; case DIS_FREQUENCY:
;
; display_digit(freq);
00BE 10910100 lds R17,_freq+1
00C2 00910000 lds R16,_freq
00C6 A7DF xcall _display_digit
00C8 .dbline 279
; if(g_ui_tmp_msg_cnt)
00C8 20900000 lds R2,_g_ui_tmp_msg_cnt
00CC 2220 tst R2
00CE D1F0 breq L15
00D0 .dbline 280
; {
00D0 .dbline 281
; r = station_no;
00D0 60910000 lds R22,_station_no
00D4 .dbline 282
; r++;
00D4 6395 inc R22
00D6 .dbline 283
; r2 =r/10;
00D6 1AE0 ldi R17,10
00D8 062F mov R16,R22
00DA 0E940000 xcall div8u
00DE 402F mov R20,R16
00E0 .dbline 284
; g_vfd_grid_buffer[9] = num_trans(r2);
00E0 8FDF xcall _num_trans
00E2 1801 movw R2,R16
00E4 30921A00 sts _g_vfd_grid_buffer+18+1,R3
00E8 20921900 sts _g_vfd_grid_buffer+18,R2
00EC .dbline 285
; r2 =r%10;
00EC 1AE0 ldi R17,10
00EE 062F mov R16,R22
00F0 0E940000 xcall mod8u
00F4 402F mov R20,R16
00F6 .dbline 286
; g_vfd_grid_buffer[8] = num_trans(r2);
00F6 84DF xcall _num_trans
00F8 1801 movw R2,R16
00FA 30921800 sts _g_vfd_grid_buffer+16+1,R3
00FE 20921700 sts _g_vfd_grid_buffer+16,R2
0102 .dbline 287
; }
0102 1CC0 xjmp L16
0104 L15:
0104 .dbline 289
; else
; {
0104 .dbline 290
; if(amfm_flag)
0104 20900000 lds R2,_amfm_flag
0108 2220 tst R2
010A 61F0 breq L19
010C .dbline 291
; {
010C .dbline 292
; g_vfd_grid_buffer[9] = VFD_alpha_A;
010C 83EE ldi R24,4579
010E 91E1 ldi R25,17
0110 90931A00 sts _g_vfd_grid_buffer+18+1,R25
0114 80931900 sts _g_vfd_grid_buffer+18,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -