⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bu2624.lis

📁 sunplus spca514 cdmp3 源码
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                         .module bu2624.c
                         .area eeprom(rom, con, rel)
                         .area data(ram, con, rel)
                         .area text(rom, con, rel)
 0000                   .dbfile D:\avrmcu\AT980\bu2624\bu2624.c
 0000                   .dbfunc s soft_delay _soft_delay fI
                       ;              i -> R16
                         .even
 0000                 _soft_delay::
 0000                   .dbline -1
 0000                   .dbline 75
                       ; //Use SANYO LC72130 PLL Frequency Synthesizer  //dzh 2001/03/23
                       ; #include "..\main.h"
                       ; #include "..\bu1923\bu1923.h"
                       ; #define BU2624
                       ; //#define TEST_IF
                       ; #ifdef BU2624
                       ; #include <iom163.h>
                       ; #include "bu2624.h"
                       ; #include "..\io.h"
                       ; #pragma data:eeprom
                       ; NV_SETTINGS gps;
                       ; #pragma data:data
                       ; unsigned char search_dir;
                       ; extern void MCU_mute(void);
                       ; #ifdef SGJM_RDS
                       ; extern unsigned char rds_status;
                       ; extern unsigned char rds_display_type;
                       ; extern unsigned char display_type;
                       ; extern unsigned char rds_step,pty_is_searching;
                       ; extern RDS_DATA_STRUCT rds_data;
                       ; extern unsigned char rds_dis_string[65];
                       ; #endif
                       ; unsigned char rdelay20ms;
                       ; extern unsigned char g_ui_tmp_msg_cnt;
                       ; #ifdef TTY
                       ; extern BOOL key_is_pressed;
                       ; #endif
                       ; #define AM_BAND      1
                       ; static unsigned int dataout0;
                       ; static unsigned char dataout1;
                       ; static unsigned int  In_Pdata;
                       ; static unsigned int In_Cdata;
                       ; unsigned int radio_count;
                       ; extern unsigned char muted;
                       ; unsigned char radio_is_muted;
                       ; //unsigned int   FMreq_DIVIDER;
                       ; #include <eeprom.h>
                       ; unsigned char autosrch_step;
                       ; unsigned char search_ok;
                       ;         /*0--search is not ok
                       ;          1-- search a station
                       ;          2-- full search end;
                       ;         */
                       ; //unsigned char radio_delay200ms;
                       ; unsigned char is_autosearching;
                       ; unsigned char is_stereo;
                       ; unsigned char   station_no;
                       ; unsigned char amfm_flag;
                       ; //unsigned char ok_count;
                       ; //unsigned char unok_count;
                       ; //#define  FM_SHIFT    1
                       ; unsigned int freq;
                       ; //unsigned long Ifcount;//Ifcount1;
                       ; void mute_radio(void);
                       ; //extern unsigned char radio_station_changed;
                       ; //unsigned char station_num;
                       ; #define IF_FM 1070
                       ; #define IF_AM 450
                       ; 
                       ; #define IF_CENTER   160
                       ; #define IFM_MIN (IF_FM*160-480+IF_CENTER)
                       ; #define IFM_MAX (IF_FM*160+480+IF_CENTER)
                       ; 
                       ; #define IAM_MIN (IF_AM*16-64)
                       ; #define IAM_MAX (IF_AM*16+64)
                       ; 
                       ; //void ps_restore_amfm();
                       ; //void ps_restore_station();
                       ; //void use_addr_as_io(void);
                       ; void switch_fmam(void);
                       ; #ifdef TTY
                       ; extern void wait_key_pressed(void);
                       ; #endif
                       ; void soft_delay(void)
                       ; {
 0000                   .dbline 77
                       ;    register unsigned char i;
                       ;    for(i=0;i<30;i++)
 0000 0027              clr R16
 0002 01C0              xjmp L6
 0004                 L3:
 0004                   .dbline 78
 0004                   .dbline 79
 0004                 L4:
 0004                   .dbline 77
 0004 0395              inc R16
 0006                 L6:
 0006                   .dbline 77
 0006 0E31              cpi R16,30
 0008 E8F3              brlo L3
 000A                   .dbline -2
 000A                   .dbline 80
                       ;    {
                       ;    }
                       ; }
 000A                 L2:
 000A                   .dbline 0 ; func end
 000A 0895              ret
 000C                   .dbsym r i 16 c
 000C                   .dbfunc s init_radio _init_radio fI
                         .even
 000C                 _init_radio::
 000C 2297              sbiw R28,2
 000E                   .dbline -1
 000E                   .dbline 83
                       ; 
                       ; void init_radio(void)    //default MONO out
                       ; {
 000E                   .dbline 92
                       ;    
                       ;   //register unsigned char addr; 
                       ;    //set_dout_in();
                       ;    //radio_stb_lo();
                       ;    //radio_clk_hi();
                       ;    //AMreq_STEP = radio_country[gps->ps_radio_standard].AM_step;  
                       ;    //FMreq_STEP = radio_country[gps->ps_radio_standard].FM_step;  
                       ;    //unsigned int *addr;
                       ;    radio_is_muted = 1;
 000E 81E0              ldi R24,1
 0010 80930800          sts _radio_is_muted,R24
 0014                   .dbline 93
                       ;    mute_radio();
 0014 82D0              xcall _mute_radio
 0016                   .dbline 94
                       ;    delay_ms(100);
 0016 04E6              ldi R16,100
 0018 10E0              ldi R17,0
 001A 0E940000          xcall _delay_ms
 001E                   .dbline 95
                       ;    amfm_flag=EEPROMread((int)&(gps.ps_amfm_flag));
 001E 00E0              ldi R16,<_gps
 0020 10E0              ldi R17,>_gps
 0022 0E940000          xcall _EEPROMread
 0026 1801              movw R2,R16
 0028 20920200          sts _amfm_flag,R2
 002C                   .dbline 96
                       ;    if(amfm_flag)
 002C 2220              tst R2
 002E E9F0              breq L8
 0030                   .dbline 97
                       ;    {
 0030                   .dbline 98
                       ;         station_no = EEPROMread((int)&(gps.ps_am_no));
 0030 00E0              ldi R16,<_gps+3
 0032 10E0              ldi R17,>_gps+3
 0034 0E940000          xcall _EEPROMread
 0038 1801              movw R2,R16
 003A 20920300          sts _station_no,R2
 003E                   .dbline 99
                       ;         if(station_no>=MAX_AM_STATION)
 003E 822D              mov R24,R2
 0040 8431              cpi R24,20
 0042 40F0              brlo L11
 0044                   .dbline 100
                       ;         {
 0044                   .dbline 101
                       ;           station_no = 0;
 0044 2224              clr R2
 0046 20920300          sts _station_no,R2
 004A                   .dbline 102
                       ;           EEPROMwrite((int)&(gps.ps_am_no),0);
 004A 2227              clr R18
 004C 00E0              ldi R16,<_gps+3
 004E 10E0              ldi R17,>_gps+3
 0050 0E940000          xcall _EEPROMwrite
 0054                   .dbline 103
 0054                 L11:
 0054                   .dbline 103
                       ;         };
 0054                   .dbline 104
                       ;         EEPROM_READ((int)&gps.ps_amfre,freq);
 0054 82E0              ldi R24,2
 0056 90E0              ldi R25,0
 0058 8883              std y+0,R24
 005A 9983              std y+1,R25
 005C 20E0              ldi R18,<_freq
 005E 30E0              ldi R19,>_freq
 0060 00E0              ldi R16,<_gps+6
 0062 10E0              ldi R17,>_gps+6
 0064 0E940000          xcall _EEPROMReadBytes
 0068                   .dbline 106
                       ;     //station_no = gps.ps_am_no;
                       ;    }
 0068 1CC0              xjmp L9
 006A                 L8:
 006A                   .dbline 108
                       ;    else
                       ;    {
 006A                   .dbline 109
                       ;         station_no = EEPROMread((int)&(gps.ps_fm_no));
 006A 00E0              ldi R16,<_gps+2
 006C 10E0              ldi R17,>_gps+2
 006E 0E940000          xcall _EEPROMread
 0072 1801              movw R2,R16
 0074 20920300          sts _station_no,R2
 0078                   .dbline 110
                       ;         if(station_no>=MAX_FM_STATION)
 0078 822D              mov R24,R2
 007A 8E31              cpi R24,30
 007C 40F0              brlo L16
 007E                   .dbline 111
                       ;         {
 007E                   .dbline 112
                       ;           station_no = 0;
 007E 2224              clr R2
 0080 20920300          sts _station_no,R2
 0084                   .dbline 113
                       ;           EEPROMwrite((int)&(gps.ps_fm_no),0);
 0084 2227              clr R18
 0086 00E0              ldi R16,<_gps+2
 0088 10E0              ldi R17,>_gps+2
 008A 0E940000          xcall _EEPROMwrite
 008E                   .dbline 114
 008E                 L16:
 008E                   .dbline 114
                       ;         };
 008E                   .dbline 116
                       ;         //*addr = &gps.ps_fm_station[station_no];
                       ;          EEPROM_READ((int)&gps.ps_fmfre,freq);
 008E 82E0              ldi R24,2
 0090 90E0              ldi R25,0
 0092 8883              std y+0,R24
 0094 9983              std y+1,R25
 0096 20E0              ldi R18,<_freq
 0098 30E0              ldi R19,>_freq
 009A 00E0              ldi R16,<_gps+4
 009C 10E0              ldi R17,>_gps+4
 009E 0E940000          xcall _EEPROMReadBytes
 00A2                   .dbline 117
                       ;    }
 00A2                 L9:
 00A2                   .dbline 123
                       ;   // AMreq_MIN = radio_country[gps->ps_radio_standard].AM_start;
                       ;   // AMreq_MAX = radio_country[gps->ps_radio_standard].AM_end;
                       ;   // FMreq_MIN = radio_country[gps->ps_radio_standard].FM_start;
                       ;   // FMreq_MAX = radio_country[gps->ps_radio_standard].FM_end;
                       ; 
                       ;     is_autosearching = 0;
 00A2 2224              clr R2
 00A4 20920500          sts _is_autosearching,R2
 00A8                   .dbline 124
                       ;     switch_fmam();
 00A8 AFD0              xcall _switch_fmam
 00AA                   .dbline 125
                       ;     delay_ms(100);
 00AA 04E6              ldi R16,100
 00AC 10E0              ldi R17,0
 00AE 0E940000          xcall _delay_ms
 00B2                   .dbline 126
                       ;     radio_is_muted = 0;
 00B2 2224              clr R2
 00B4 20920800          sts _radio_is_muted,R2
 00B8                   .dbline 127
                       ;     mute_radio();
 00B8 30D0              xcall _mute_radio
 00BA                   .dbline 130
                       ;     
                       ;     #ifdef SGJM_RDS
                       ;     rds_init();
 00BA 0E940000          xcall _rds_init
 00BE                   .dbline 131
                       ;     pty_is_searching = 0;
 00BE 2224              clr R2
 00C0 20920000          sts _pty_is_searching,R2
 00C4                   .dbline -2
 00C4                   .dbline 134
                       ;     #endif
                       ;     
                       ; }
 00C4                 L7:
 00C4 2296              adiw R28,2
 00C6                   .dbline 0 ; func end
 00C6 0895              ret
 00C8                   .dbfunc s send_word_to_bu2624 _send_word_to_bu2624 fI
                       ;              i -> R20
                       ;          data1 -> R22,R23
                         .even
 00C8                 _send_word_to_bu2624::
 00C8 0E940000          xcall push_gset2
 00CC B801              movw R22,R16
 00CE                   .dbline -1
 00CE                   .dbline 137
                       ; 
                       ; void send_word_to_bu2624( unsigned int data1)
                       ; {
 00CE                   .dbline 140
                       ;    char i;
                       ;    
                       ;    for( i=0; i<16; i++)
 00CE 4427              clr R20
 00D0 10C0              xjmp L24
 00D2                 L21:
 00D2                   .dbline 141
                       ;    {
 00D2                   .dbline 142
                       ;         radio_clk_lo();
 00D2 9498              CBI 0x12,4
 00D4                   .dbline 143
                       ;         if( data1 & 0x01)
 00D4 CB01              movw R24,R22
 00D6 8170              andi R24,1
 00D8 9070              andi R25,0
 00DA 8030              cpi R24,0
 00DC 8907              cpc R24,R25

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -