📄 bu1923a.lis
字号:
.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 + -