📄 main.lis
字号:
.module main.c
.area data(ram, con, rel)
0000 _display_type::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile D:\avrmcu\AT980\AT980\main.c
0001 .dbsym s display_type _display_type c
0001 _led_val::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile D:\avrmcu\AT980\AT980\main.c
0002 .dbsym s led_val _led_val c
0002 _tick_flag::
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile D:\avrmcu\AT980\AT980\main.c
0003 .dbsym s tick_flag _tick_flag c
0003 _key_buff::
0003 .blkb 2
.area idata
0003 FFFF .word 65535
.area data(ram, con, rel)
0005 .dbfile D:\avrmcu\AT980\AT980\main.c
0005 .dbsym s key_buff _key_buff i
0005 _dvd_key::
0005 .blkb 2
.area idata
0005 FFFF .word 65535
.area data(ram, con, rel)
0007 .dbfile D:\avrmcu\AT980\AT980\main.c
0007 .dbsym s dvd_key _dvd_key i
0007 _g_ui_tmp_msg_cnt::
0007 .blkb 1
.area idata
0007 00 .byte 0
.area data(ram, con, rel)
0008 .dbfile D:\avrmcu\AT980\AT980\main.c
0008 .dbsym s g_ui_tmp_msg_cnt _g_ui_tmp_msg_cnt c
0008 _work_mode::
0008 .blkb 1
.area idata
0008 00 .byte 0
.area data(ram, con, rel)
0009 .dbfile D:\avrmcu\AT980\AT980\main.c
0009 .dbsym s work_mode _work_mode c
.area text(rom, con, rel)
0000 .dbfile D:\avrmcu\AT980\AT980\main.c
0000 .dbfunc s get_uicc_key _get_uicc_key fI
; j -> <dead>
; i -> R20
; key -> R16,R17
.even
0000 _get_uicc_key::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 34
; #include <macros.h>
; #include <iom163.h>
; #include <eeprom.h>
; #include "..\bu2624\bu2624.h"
; #include "..\main.h"
; #include "..\key.h"
; #include "..\uicc_def.h"
; #include "..\io.h"
; #include "..\key_lut.h"
; #define SLEEP_TIME_TAG 30
; #define SLEEP_MAX_CNT 4
; extern NV_SETTINGS gps;
; extern unsigned int info;
; extern unsigned char amfm_flag;
; unsigned char display_type=0,g_avtv;
; extern unsigned char radio_is_muted, rds_display_type;
; extern unsigned int g_ui_timing_cnt;
; unsigned char led_val=0;
; extern unsigned int g_vfd_grid_buffer[];
; //unsigned char display_default_type = 0;
; unsigned char tick_flag=0;
; unsigned int key_buff=0xffff;
; unsigned char uicc_code,last_key;
; unsigned int dvd_key=0xffff;
; unsigned char g_ui_tmp_msg_cnt=0;
; extern unsigned char repeat,muted;
; extern unsigned char Mchvol,Bassvol,Treblevol,Balanceval,Loudnessval;
; extern unsigned char Cchvol,SWchvol,Schvol;
; extern unsigned char is_autosearching;
; unsigned char work_mode=0,work_mode1;
; extern unsigned char *err_msg;
; extern const UI_KEY_MAP key_map[];
; unsigned char get_uicc_key(unsigned int key)
; {
0004 .dbline 36
; unsigned char i,j;
; for(i=0;i<MAX_KEY_CNT;i++)
0004 4427 clr R20
0006 18C0 xjmp L5
0008 L2:
0008 .dbline 37
; if(key_map[i].input_key == key)
0008 83E0 ldi R24,3
000A 849F mul R24,R20
000C F001 movw R30,R0
000E 80E0 ldi R24,<_key_map
0010 90E0 ldi R25,>_key_map
0012 E80F add R30,R24
0014 F91F adc R31,R25
0016 0590 lpm R0,Z+
0018 1490 lpm R1,Z
001A F001 movw R30,R0
001C E017 cp R30,R16
001E F107 cpc R31,R17
0020 51F4 brne L6
0022 .dbline 38
; {
0022 .dbline 39
; return key_map[i].uicc_key;
0022 83E0 ldi R24,3
0024 849F mul R24,R20
0026 F001 movw R30,R0
0028 80E0 ldi R24,<_key_map+2
002A 90E0 ldi R25,>_key_map+2
002C E80F add R30,R24
002E F91F adc R31,R25
0030 0491 lpm R16,Z
0032 1127 clr R17
0034 05C0 xjmp L1
0036 L6:
0036 L3:
0036 .dbline 36
0036 4395 inc R20
0038 L5:
0038 .dbline 36
0038 4C32 cpi R20,44
003A 30F3 brlo L2
003C .dbline 41
; }
; return 0xff;
003C 0FEF ldi R16,255
003E 10E0 ldi R17,0
0040 .dbline -2
0040 L1:
0040 0E940000 xcall pop_gset1
0044 .dbline 0 ; func end
0044 0895 ret
0046 .dbsym l j 1 c
0046 .dbsym r i 20 c
0046 .dbsym r key 16 i
0046 .dbfunc s DEC_power _DEC_power fI
; val -> R20
.even
0046 _DEC_power::
0046 0E940000 xcall push_gset1
004A 402F mov R20,R16
004C .dbline -1
004C .dbline 44
; }
; void DEC_power(unsigned char val)
; {
004C .dbline 45
; if(val)
004C 4423 tst R20
004E 31F0 breq L10
0050 .dbline 46
; led_val |= 0x10;
0050 80910100 lds R24,_led_val
0054 8061 ori R24,16
0056 80930100 sts _led_val,R24
005A 05C0 xjmp L11
005C L10:
005C .dbline 48
; else
; led_val &= 0x0f;
005C 80910100 lds R24,_led_val
0060 8F70 andi R24,15
0062 80930100 sts _led_val,R24
0066 L11:
0066 .dbline 49
; VFD_LL_RefreshLED(led_val);
0066 00910100 lds R16,_led_val
006A 1127 clr R17
006C 0E940000 xcall _VFD_LL_RefreshLED
0070 .dbline -2
0070 .dbline 50
; }
0070 L9:
0070 0E940000 xcall pop_gset1
0074 .dbline 0 ; func end
0074 0895 ret
0076 .dbsym r val 20 c
0076 .dbfunc s Set_AVTV _Set_AVTV fI
.even
0076 _Set_AVTV::
0076 .dbline -1
0076 .dbline 52
; void Set_AVTV(void)
; {
0076 .dbline 53
; if(g_avtv)
0076 20900300 lds R2,_g_avtv
007A 2220 tst R2
007C 11F0 breq L13
007E .dbline 54
; Set_TV();
007E AA9A SBI 0x15,2
0080 01C0 xjmp L14
0082 L13:
0082 .dbline 56
0082 AA98 CBI 0x15,2
0084 L14:
0084 .dbline -2
0084 .dbline 57
; else
; Set_AV();
; }
0084 L12:
0084 .dbline 0 ; func end
0084 0895 ret
0086 .dbfunc s ui_input_handler _ui_input_handler fI
.area func_lit(rom, con, rel)
0000 L52:
0000 F000 .word `L31
0002 0201 .word `L34
0004 2601 .word `L40
0006 1401 .word `L37
0008 3801 .word `L43
000A 4A01 .word `L46
000C 5C01 .word `L49
.area text(rom, con, rel)
0086 .dbfile D:\avrmcu\AT980\AT980\main.c
.area func_lit(rom, con, rel)
000E L78:
000E 9C01 .word `L57
0010 B001 .word `L60
0012 D801 .word `L66
0014 C401 .word `L63
0016 EC01 .word `L69
0018 0002 .word `L72
001A 1402 .word `L75
.area text(rom, con, rel)
0086 .dbfile D:\avrmcu\AT980\AT980\main.c
.area func_lit(rom, con, rel)
001C L92:
001C 7502 .word `L88
001E 8002 .word `L89
0020 8B02 .word `L90
0022 9602 .word `L91
.area text(rom, con, rel)
0086 .dbfile D:\avrmcu\AT980\AT980\main.c
; tmp -> R20,R21
.even
0086 _ui_input_handler::
0086 0E940000 xcall push_gset2
008A .dbline -1
008A .dbline 59
; void ui_input_handler(void)
; {
008A .dbline 61
; unsigned int tmp;
; if(work_mode == POWER_OFF_MODE)
008A 80910800 lds R24,_work_mode
008E 8530 cpi R24,5
0090 A9F4 brne L16
0092 .dbline 62
; {
0092 .dbline 63
; if(uicc_code== UICC_POWER)
0092 80910200 lds R24,_uicc_code
0096 8A3A cpi R24,170
0098 09F0 breq X5
009A 14C3 xjmp L17
009C X5:
009C .dbline 64
; {
009C .dbline 65
; g_avtv = 0;
009C 2224 clr R2
009E 20920300 sts _g_avtv,R2
00A2 .dbline 66
; Set_AV();
00A2 AA98 CBI 0x15,2
00A4 .dbline 67
; work_mode = work_mode1;
00A4 20900000 lds R2,_work_mode1
00A8 20920800 sts _work_mode,R2
00AC .dbline 68
; work_mode_convert();
00AC 0E940000 xcall _work_mode_convert
00B0 .dbline 69
; led_val &= 0x1e;
00B0 80910100 lds R24,_led_val
00B4 8E71 andi R24,30
00B6 80930100 sts _led_val,R24
00BA .dbline 74
;
; // delay_ms(100);
; // muted = 0;
; //MCU_mute();
; }
00BA .dbline 76
; else
; {
00BA .dbline 81
; #ifdef CLOCK_STANDBY
; clock_operator();
; #endif
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -