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

📄 bu1923a.lis

📁 sunplus spca514 cdmp3 源码
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                         .module bu1923a.c
                         .area data(ram, con, rel)
 0000                 _rds_display_type::
 0000                   .blkb 1
                         .area idata
 0000 00                .byte 0
                         .area data(ram, con, rel)
 0001                   .dbfile D:\avrmcu\AT980\bu1923\bu1923a.c
 0001                   .dbsym s rds_display_type _rds_display_type c
 0001                 _c_word_val::
 0001                   .blkb 2
                         .area idata
 0001 6802              .word 616
                         .area data(ram, con, rel)
 0003                   .dbfile D:\avrmcu\AT980\bu1923\bu1923a.c
 0003                   .dbsym s c_word_val _c_word_val i
 0003                 _rds_status::
 0003                   .blkb 1
                         .area idata
 0003 00                .byte 0
                         .area data(ram, con, rel)
 0004                   .dbfile D:\avrmcu\AT980\bu1923\bu1923a.c
 0004                   .dbsym s rds_status _rds_status c
 0004                 _pty_is_searching::
 0004                   .blkb 1
                         .area idata
 0004 00                .byte 0
                         .area data(ram, con, rel)
 0005                   .dbfile D:\avrmcu\AT980\bu1923\bu1923a.c
 0005                   .dbsym s pty_is_searching _pty_is_searching c
 0005                 _rds_step:
 0005                   .blkb 1
                         .area idata
 0005 01                .byte 1
                         .area data(ram, con, rel)
 0006                   .dbfile D:\avrmcu\AT980\bu1923\bu1923a.c
 0006                   .dbsym s rds_step _rds_step c
                         .area lit(rom, con, rel)
 0000                 _matrix_H::
 0000 0002              .word 512
 0002 0001              .word 256
 0004 8000              .word 128
 0006 4000              .word 64
 0008 2000              .word 32
 000A 1000              .word 16
 000C 0800              .word 8
 000E 0400              .word 4
 0010 0200              .word 2
 0012 0100              .word 1
 0014 DC02              .word 732
 0016 6E01              .word 366
 0018 B700              .word 183
 001A 8702              .word 647
 001C 9F03              .word 927
 001E 1303              .word 787
 0020 5503              .word 853
 0022 7603              .word 886
 0024 BB01              .word 443
 0026 0102              .word 513
 0028 DC03              .word 988
 002A EE01              .word 494
 002C F700              .word 247
 002E A702              .word 679
 0030 8F03              .word 911
 0032 1B03              .word 795
 0034                   .dbsym s matrix_H _matrix_H A[52:26]i
                         .area text(rom, con, rel)
 0000                   .dbfile D:\avrmcu\AT980\bu1923\bu1923a.c
 0000                   .dbfunc s close_rds _close_rds fI
                         .even
 0000                 _close_rds::
 0000                   .dbline -1
 0000                   .dbline 45
                       ; 
                       ; #include <macros.h>
                       ; #include "BU1923.H"
                       ; #include "..\bu2624\bu2624.h"
                       ; #include <iom163.h>
                       ; //#define pty_dis_type  rds_dis_string[0]
                       ; //#define pty_search_type rds_dis_string[1]
                       ; //#define pty_search_delay rds_dis_string[2]
                       ; //#define 
                       ; unsigned char rds_display_type = 0;
                       ; unsigned int c_word_val = C_OFF_WORD;
                       ; //unsigned char off_word_bit;
                       ; unsigned char rds_status = 0;
                       ; unsigned long rds_bit_buffer;
                       ; unsigned char rds_dis_buffer[10];
                       ; unsigned char rds_dis_string[65];
                       ; unsigned char rds_dis_control;
                       ; unsigned char rds_buffer0_flag;
                       ; unsigned int rds_buffer[4];
                       ; unsigned char pty_is_searching = 0;
                       ; static unsigned long buffer_reg;
                       ; static unsigned int syndrome_reg;
                       ; //const unsigned int gx = 0x1b9;
                       ; //const unsigned int gx_m = 0x31b;
                       ; static unsigned char bit_count;
                       ; RDS_DATA_STRUCT rds_data;//={0,0,0,0,0,0,0,0};
                       ; static unsigned char rds_step = SEARCH_SYC_STEP;
                       ; //static unsigned int temp_syc_word;
                       ; 
                       ; const unsigned int matrix_H[26]=
                       ; {
                       ;     0x200,0x100,0x080,0x040,0x020,0x010,0x008,0x004,0x002,0x001,
                       ;     0x2dc,0x16e,0x0b7,0x287,0x39f,0x313,0x355,0x376,
                       ;     0x1bb,0x201,0x3dc,0x1ee,0x0f7,0x2a7,0x38f,0x31b
                       ; };
                       ; extern unsigned char is_autosearching;
                       ; //extern unsigned char is_search_all_station;
                       ; extern unsigned char search_ok;
                       ; extern unsigned char search_dir;
                       ; extern unsigned char autosrch_step;
                       ; unsigned char rds_delay;
                       ; void get_rds_block(void);
                       ; void rds_syc_detect(void);
                       ; void close_rds(void)
                       ; {
 0000                   .dbline 46
                       ;     GIMSK &= 0x7f;//ENIR_EN3 = 0;  //disable irterupt
 0000 8BB7              in R24,0x3b
 0002 8F77              andi R24,127
 0004 8BBF              out 0x3b,R24
 0006                   .dbline -2
 0006                   .dbline 47
                       ; }
 0006                 L2:
 0006                   .dbline 0 ; func end
 0006 0895              ret
 0008                   .dbfunc s rds_init _rds_init fI
                         .even
 0008                 _rds_init::
 0008                   .dbline -1
 0008                   .dbline 49
                       ; void rds_init()
                       ; {
 0008                   .dbline 57
                       ;     //ELVR_LB3 = 1;
                       ;     //ELVR_LA3 = 1;               //following edge
                       ;     //ICR03 = 20;      //interrupt levels REMOTE CONTROLLED = 19
                       ;                     //timer = 2
                       ;     //EIRR_ER3 = 0;  //clear interrupt request
                       ;     //MCUCR |= 0x08; 
                       ;     
                       ;     rds_data.A_word = 0;
 0008 2224              clr R2
 000A 3324              clr R3
 000C 30920200          sts _rds_data+1,R3
 0010 20920100          sts _rds_data,R2
 0014                   .dbline 58
                       ;     rds_data.B_word = 0;
 0014 30920400          sts _rds_data+2+1,R3
 0018 20920300          sts _rds_data+2,R2
 001C                   .dbline 59
                       ;     rds_data.C_word = 0;
 001C 30920600          sts _rds_data+4+1,R3
 0020 20920500          sts _rds_data+4,R2
 0024                   .dbline 60
                       ;     rds_data.D_word = 0;
 0024 30920800          sts _rds_data+6+1,R3
 0028 20920700          sts _rds_data+6,R2
 002C                   .dbline 61
                       ;     rds_data.block_count = 0;
 002C 20920900          sts _rds_data+8,R2
 0030                   .dbline 62
                       ;     rds_data.word_err_count = 0;
 0030 20920A00          sts _rds_data+9,R2
 0034                   .dbline 63
                       ;     rds_data.syc_flag = 0;
 0034 20920B00          sts _rds_data+10,R2
 0038                   .dbline 64
                       ;     rds_data.err_flag = 0;
 0038 20920C00          sts _rds_data+11,R2
 003C                   .dbline 65
                       ;     rds_step = SEARCH_SYC_STEP;
 003C 81E0              ldi R24,1
 003E 80930500          sts _rds_step,R24
 0042                   .dbline 66
                       ;     rds_bit_buffer = 0;
 0042 00E0              ldi R16,<L11
 0044 10E0              ldi R17,>L11
 0046 0E940000          xcall lpm32
 004A 10936A00          sts _rds_bit_buffer+1,R17
 004E 00936900          sts _rds_bit_buffer,R16
 0052 30936C00          sts _rds_bit_buffer+2+1,R19
 0056 20936B00          sts _rds_bit_buffer+2,R18
 005A                   .dbline 67
                       ;     rds_delay = 60;
 005A 8CE3              ldi R24,60
 005C 80930000          sts _rds_delay,R24
 0060                   .dbline 68
                       ;     bit_count = 0;
 0060 2224              clr R2
 0062 20920D00          sts _bit_count,R2
 0066                   .dbline 69
                       ;     rds_status = 0;
 0066 20920300          sts _rds_status,R2
 006A                   .dbline 70
                       ;     rds_buffer0_flag = 0;
 006A 20921C00          sts _rds_buffer0_flag,R2
 006E                   .dbline -2
 006E                   .dbline 72
                       ;     //ENIR_EN3 = 1;  //enable irterupt
                       ; }
 006E                 L3:
 006E                   .dbline 0 ; func end
 006E 0895              ret
 0070                   .dbfunc s open_rds _open_rds fI
                         .even
 0070                 _open_rds::
 0070                   .dbline -1
 0070                   .dbline 74
                       ; void open_rds(void)
                       ; {
 0070                   .dbline 75
                       ;     MCUCR |= 0x08;
 0070 85B7              in R24,0x35
 0072 8860              ori R24,8
 0074 85BF              out 0x35,R24
 0076                   .dbline 76
                       ;     GIMSK |= 0x80;
 0076 8BB7              in R24,0x3b
 0078 8068              ori R24,128
 007A 8BBF              out 0x3b,R24
 007C                   .dbline -2
 007C                   .dbline 78
                       ;     //printf("rds int init completed\n");
                       ; }
 007C                 L12:
 007C                   .dbline 0 ; func end
 007C 0895              ret
                         .area vector(rom, abs)
                         .org 8
 0008 0C943F00          jmp _int1_isr
                         .area text(rom, con, rel)
 007E                   .dbfile D:\avrmcu\AT980\bu1923\bu1923a.c
 007E                   .dbfunc s int1_isr _int1_isr fI
                         .even
 007E                 _int1_isr::
 007E 0E940000          xcall push_lset
 0082                   .dbline -1
 0082                   .dbline 81
                       ; #pragma interrupt_handler int1_isr:3
                       ; void int1_isr(void)
                       ; {
 0082                   .dbline 83
                       ;     //EIRR_ER3 = 0;
                       ;     rds_bit_buffer<<=1;
 0082 50906C00          lds R5,_rds_bit_buffer+2+1
 0086 40906B00          lds R4,_rds_bit_buffer+2
 008A 30906A00          lds R3,_rds_bit_buffer+1
 008E 20906900          lds R2,_rds_bit_buffer
 0092 220C              lsl R2
 0094 331C              rol R3
 0096 441C              rol R4
 0098 551C              rol R5
 009A 30926A00          sts _rds_bit_buffer+1,R3
 009E 20926900          sts _rds_bit_buffer,R2
 00A2 50926C00          sts _rds_bit_buffer+2+1,R5
 00A6 40926B00          sts _rds_bit_buffer+2,R4
 00AA                   .dbline 84
                       ;     if(RDATA)
 00AA 819B              sbis 0x10,1
 00AC 18C0              rjmp L14
 00AE                   .dbline 85
                       ;         rds_bit_buffer |=1;
 00AE 00E0              ldi R16,<L16
 00B0 10E0              ldi R17,>L16
 00B2 0E940000          xcall lpm32
 00B6 50906C00          lds R5,_rds_bit_buffer+2+1
 00BA 40906B00          lds R4,_rds_bit_buffer+2
 00BE 30906A00          lds R3,_rds_bit_buffer+1
 00C2 20906900          lds R2,_rds_bit_buffer
 00C6 202A              or R2,R16
 00C8 312A              or R3,R17
 00CA 422A              or R4,R18
 00CC 532A              or R5,R19
 00CE 30926A00          sts _rds_bit_buffer+1,R3
 00D2 20926900          sts _rds_bit_buffer,R2
 00D6 50926C00          sts _rds_bit_buffer+2+1,R5
 00DA 40926B00          sts _rds_bit_buffer+2,R4
 00DE                 L14:
 00DE                   .dbline 86
                       ;     if(!rds_data.syc_flag)
 00DE 20900B00          lds R2,_rds_data+10
 00E2 2220              tst R2
 00E4 61F4              brne L17
 00E6                   .dbline 87
                       ;     {   
 00E6                   .dbline 88
                       ;         if(bit_count>=25)
 00E6 80910D00          lds R24,_bit_count
 00EA 8931              cpi R24,25
 00EC 10F0              brlo L20
 00EE                   .dbline 89
                       ;             rds_syc_detect();
 00EE 0BD0              xcall _rds_syc_detect
 00F0 07C0              xjmp L18
 00F2                 L20:
 00F2                   .dbline 91
                       ;         else
                       ;             bit_count++;
 00F2 80910D00          lds R24,_bit_count
 00F6 8F5F              subi R24,255    ; addi 1
 00F8 80930D00          sts _bit_count,R24
 00FC                   .dbline 92

⌨️ 快捷键说明

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