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

📄 tea5767.lis

📁 用TEA5767 自己动手制作的收音机。效果很好
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module tea5767.c
                        .area text(rom, con, rel)
 0000                   .dbfile tea5767.c
 0000                   .dbfunc e delay _delay fV
 0000           ;              i -> R16,R17
                        .even
 0000           _delay::
 0000                   .dbline -1
 0000                   .dbline 7
 0000           ; #include<iom32v.h>
 0000           ; #include<macros.h>
 0000           ; #define uchar unsigned char 
 0000           ; #define uint unsigned int 
 0000           ; #define ulong unsigned long 
 0000           ; void delay()
 0000           ; {
 0000                   .dbline 8
 0000           ; uint i=0;
 0000 0027              clr R16
 0002 1127              clr R17
 0004                   .dbline 9
 0004           ; for (i=0;i<2000;i++)
 0004 02C0              xjmp L5
 0006           L2:
 0006                   .dbline 10
 0006           L3:
 0006                   .dbline 9
 0006 0F5F              subi R16,255  ; offset = 1
 0008 1F4F              sbci R17,255
 000A           L5:
 000A                   .dbline 9
 000A 003D              cpi R16,208
 000C E7E0              ldi R30,7
 000E 1E07              cpc R17,R30
 0010 D0F3              brlo L2
 0012                   .dbline -2
 0012           L1:
 0012                   .dbline 0 ; func end
 0012 0895              ret
 0014                   .dbsym r i 16 i
 0014                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile tea5767.c
 0000           _radio_write_data::
 0000                   .blkb 2
                        .area idata
 0000 6928              .byte 'i,40
                        .area data(ram, con, rel)
 0002                   .dbfile tea5767.c
 0002                   .blkb 2
                        .area idata
 0002 A013              .byte 160,19
                        .area data(ram, con, rel)
 0004                   .dbfile tea5767.c
 0004                   .blkb 1
                        .area idata
 0004 00                .byte 0
                        .area data(ram, con, rel)
 0005                   .dbfile tea5767.c
 0005                   .dbsym e radio_write_data _radio_write_data A[5:5]c
                        .area text(rom, con, rel)
 0014                   .dbfile tea5767.c
 0014                   .dbfunc e inputbyte _inputbyte fV
 0014           ;            mid -> R20
 0014           ;              i -> R22
 0014           ;             CD -> R10
                        .even
 0014           _inputbyte::
 0014 0E940000          xcall push_gset3
 0018 A02E              mov R10,R16
 001A                   .dbline -1
 001A                   .dbline 14
 001A           ; ;
 001A           ; }
 001A           ; unsigned char radio_write_data[5]={0x69,0x28,0xa0,0x13,0x00};   //要写入TEA5767的数据
 001A           ; void inputbyte(uchar CD)  //写入一字节数据
 001A           ; {
 001A                   .dbline 15
 001A           ; uchar i,mid=0;
 001A 4427              clr R20
 001C                   .dbline 16
 001C           ; for (i=0;i<8;i++)
 001C 6627              clr R22
 001E 0CC0              xjmp L10
 0020           L7:
 0020                   .dbline 17
 0020           ; {
 0020                   .dbline 18
 0020           ; mid=CD&0x80;
 0020 4A2D              mov R20,R10
 0022 4078              andi R20,128
 0024                   .dbline 19
 0024           ; if (mid==0)
 0024 11F4              brne L11
 0026                   .dbline 20
 0026           ; PORTC&=~BIT(PA0);
 0026 A898              cbi 0x15,0
 0028 01C0              xjmp L12
 002A           L11:
 002A                   .dbline 22
 002A           ; else 
 002A           ; PORTC|=BIT(PA0);
 002A A89A              sbi 0x15,0
 002C           L12:
 002C                   .dbline 23
 002C A99A              sbi 0x15,1
 002E                   .dbline 24
 002E E8DF              xcall _delay
 0030                   .dbline 25
 0030 A998              cbi 0x15,1
 0032                   .dbline 26
 0032 E6DF              xcall _delay
 0034                   .dbline 27
 0034 AA0C              lsl R10
 0036                   .dbline 28
 0036           L8:
 0036                   .dbline 16
 0036 6395              inc R22
 0038           L10:
 0038                   .dbline 16
 0038 6830              cpi R22,8
 003A 90F3              brlo L7
 003C                   .dbline -2
 003C           L6:
 003C 0E940000          xcall pop_gset3
 0040                   .dbline 0 ; func end
 0040 0895              ret
 0042                   .dbsym r mid 20 c
 0042                   .dbsym r i 22 c
 0042                   .dbsym r CD 10 c
 0042                   .dbend
                        .area data(ram, con, rel)
 0005                   .dbfile tea5767.c
 0005           _radio::
 0005                   .blkb 4
                        .area idata
 0005 C0832F05          .word 33728,1327
                        .area data(ram, con, rel)
 0009                   .dbfile tea5767.c
 0009                   .dbsym e radio _radio L
 0009           _N::
 0009                   .blkb 2
                        .area idata
 0009 0000              .word 0
                        .area data(ram, con, rel)
 000B                   .dbfile tea5767.c
 000B                   .dbsym e N _N I
                        .area text(rom, con, rel)
 0042                   .dbfile tea5767.c
 0042                   .dbfunc e GetKey _GetKey fV
                        .even
 0042           _GetKey::
 0042 0E940000          xcall push_gset2
 0046                   .dbline -1
 0046                   .dbline 33
 0046           ; PORTC|=BIT(PA1); 
 0046           ; delay();
 0046           ; PORTC&=~BIT(PA1);
 0046           ; delay();
 0046           ; CD=CD<<1;
 0046           ; }
 0046           ; }
 0046           ; long radio=87000000;
 0046           ; int N=0;
 0046           ; void GetKey(void)     
 0046           ; { 
 0046                   .dbline 34
 0046           ;               if(!(PINA&0x20)){
 0046 CD99              sbic 0x19,5
 0048 6DC0              rjmp L14
 004A                   .dbline 34
 004A                   .dbline 35
 004A           ;               radio+=100000;
 004A 40EA              ldi R20,160
 004C 56E8              ldi R21,134
 004E 61E0              ldi R22,1
 0050 70E0              ldi R23,0
 0052 40900700          lds R4,_radio+2
 0056 50900800          lds R5,_radio+2+1
 005A 20900500          lds R2,_radio
 005E 30900600          lds R3,_radio+1
 0062 240E              add R2,R20
 0064 351E              adc R3,R21
 0066 461E              adc R4,R22
 0068 571E              adc R5,R23
 006A 30920600          sts _radio+1,R3
 006E 20920500          sts _radio,R2
 0072 50920800          sts _radio+2+1,R5
 0076 40920700          sts _radio+2,R4
 007A                   .dbline 36
 007A           ;               if (radio>108000000)
 007A 40E0              ldi R20,0
 007C 53EF              ldi R21,243
 007E 6FE6              ldi R22,111
 0080 76E0              ldi R23,6
 0082 4215              cp R20,R2
 0084 5305              cpc R21,R3
 0086 6405              cpc R22,R4
 0088 7505              cpc R23,R5
 008A 64F4              brge L16
 008C                   .dbline 37
 008C           ;               radio=87000000;
 008C 40EC              ldi R20,192
 008E 53E8              ldi R21,131
 0090 6FE2              ldi R22,47
 0092 75E0              ldi R23,5
 0094 50930600          sts _radio+1,R21
 0098 40930500          sts _radio,R20
 009C 70930800          sts _radio+2+1,R23
 00A0 60930700          sts _radio+2,R22
 00A4           L16:
 00A4                   .dbline 38
 00A4           ;               N=(long)((radio-225000)*4)/32768;
 00A4 40900700          lds R4,_radio+2
 00A8 50900800          lds R5,_radio+2+1
 00AC 20900500          lds R2,_radio
 00B0 30900600          lds R3,_radio+1
 00B4 44E0              ldi R20,4
 00B6 50E0              ldi R21,0
 00B8 60E0              ldi R22,0
 00BA 70E0              ldi R23,0
 00BC 5A92              st -y,R5
 00BE 4A92              st -y,R4
 00C0 3A92              st -y,R3
 00C2 2A92              st -y,R2
 00C4 8A01              movw R16,R20
 00C6 9B01              movw R18,R22
 00C8 0E940000          xcall empy32s
 00CC 40EA              ldi R20,160
 00CE 5BEB              ldi R21,187
 00D0 6DE0              ldi R22,13
 00D2 70E0              ldi R23,0
 00D4 1801              movw R2,R16

⌨️ 快捷键说明

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