?? tea5767.lst
字號:
__text_start:
__start:
0030 E5CF LDI R28,0x5F
0031 E0D8 LDI R29,0x8
0032 BFCD OUT 0x3D,R28
0033 BFDE OUT 0x3E,R29
0034 51C0 SUBI R28,0x10
0035 40D0 SBCI R29,0
0036 EA0A LDI R16,0xAA
0037 8308 STD Y+0,R16
0038 2400 CLR R0
0039 E6EB LDI R30,0x6B
003A E0F0 LDI R31,0
003B E010 LDI R17,0
003C 36EB CPI R30,0x6B
003D 07F1 CPC R31,R17
003E F011 BEQ 0x0041
003F 9201 ST R0,Z+
0040 CFFB RJMP 0x003C
0041 8300 STD Z+0,R16
0042 E5E4 LDI R30,0x54
0043 E0F0 LDI R31,0
0044 E6A0 LDI R26,0x60
0045 E0B0 LDI R27,0
0046 E010 LDI R17,0
0047 35EF CPI R30,0x5F
0048 07F1 CPC R31,R17
0049 F021 BEQ 0x004E
004A 95C8 LPM
004B 9631 ADIW R30,1
004C 920D ST R0,X+
004D CFF9 RJMP 0x0047
004E 940E0154 CALL _main
_exit:
0050 CFFF RJMP _exit
FILE: tea5767.c
(0001) #include<iom32v.h>
(0002) #include<macros.h>
(0003) #define uchar unsigned char
(0004) #define uint unsigned int
(0005) #define ulong unsigned long
(0006) void delay()
(0007) {
(0008) uint i=0;
_delay:
i --> R16
0051 2700 CLR R16
0052 2711 CLR R17
(0009) for (i=0;i<2000;i++)
0053 C002 RJMP 0x0056
0054 5F0F SUBI R16,0xFF
0055 4F1F SBCI R17,0xFF
0056 3D00 CPI R16,0xD0
0057 E0E7 LDI R30,7
0058 071E CPC R17,R30
0059 F3D0 BCS 0x0054
005A 9508 RET
_inputbyte:
mid --> R20
i --> R22
CD --> R10
005B 940E020B CALL push_gset3
005D 2EA0 MOV R10,R16
(0010) ;
(0011) }
(0012) unsigned char radio_write_data[5]={0x69,0x28,0xa0,0x13,0x00}; //要寫入TEA5767的數據
(0013) void inputbyte(uchar CD) //寫入一字節數據
(0014) {
(0015) uchar i,mid=0;
005E 2744 CLR R20
(0016) for (i=0;i<8;i++)
005F 2766 CLR R22
0060 C00C RJMP 0x006D
(0017) {
(0018) mid=CD&0x80;
0061 2D4A MOV R20,R10
0062 7840 ANDI R20,0x80
(0019) if (mid==0)
0063 F411 BNE 0x0066
(0020) PORTC&=~BIT(PA0);
0064 98A8 CBI 0x15,0
0065 C001 RJMP 0x0067
(0021) else
(0022) PORTC|=BIT(PA0);
0066 9AA8 SBI 0x15,0
(0023) PORTC|=BIT(PA1);
0067 9AA9 SBI 0x15,1
(0024) delay();
0068 DFE8 RCALL _delay
(0025) PORTC&=~BIT(PA1);
0069 98A9 CBI 0x15,1
(0026) delay();
006A DFE6 RCALL _delay
(0027) CD=CD<<1;
006B 0CAA LSL R10
006C 9563 INC R22
006D 3068 CPI R22,0x8
006E F390 BCS 0x0061
006F 940E0204 CALL pop_gset3
0071 9508 RET
_GetKey:
0072 940E020D CALL push_gset2
(0028) }
(0029) }
(0030) long radio=87000000;
(0031) int N=0;
(0032) void GetKey(void)
(0033) {
(0034) if(!(PINA&0x20)){
0074 99CD SBIC 0x19,5
0075 C06D RJMP 0x00E3
(0035) radio+=100000;
0076 EA40 LDI R20,0xA0
0077 E856 LDI R21,0x86
0078 E061 LDI R22,1
0079 E070 LDI R23,0
007A 90400067 LDS R4,radio+2
007C 90500068 LDS R5,radio+3
007E 90200065 LDS R2,radio
0080 90300066 LDS R3,radio+1
0082 0E24 ADD R2,R20
0083 1E35 ADC R3,R21
0084 1E46 ADC R4,R22
0085 1E57 ADC R5,R23
0086 92300066 STS radio+1,R3
0088 92200065 STS radio,R2
008A 92500068 STS radio+3,R5
008C 92400067 STS radio+2,R4
(0036) if (radio>108000000)
008E E040 LDI R20,0
008F EF53 LDI R21,0xF3
0090 E66F LDI R22,0x6F
0091 E076 LDI R23,6
0092 1542 CP R20,R2
0093 0553 CPC R21,R3
0094 0564 CPC R22,R4
0095 0575 CPC R23,R5
0096 F464 BGE 0x00A3
(0037) radio=87000000;
0097 EC40 LDI R20,0xC0
0098 E853 LDI R21,0x83
0099 E26F LDI R22,0x2F
009A E075 LDI R23,5
009B 93500066 STS radio+1,R21
009D 93400065 STS radio,R20
009F 93700068 STS radio+3,R23
00A1 93600067 STS radio+2,R22
(0038) N=(long)((radio-225000)*4)/32768;
00A3 90400067 LDS R4,radio+2
00A5 90500068 LDS R5,radio+3
00A7 90200065 LDS R2,radio
00A9 90300066 LDS R3,radio+1
00AB E044 LDI R20,4
00AC E050 LDI R21,0
00AD E060 LDI R22,0
00AE E070 LDI R23,0
00AF 925A ST R5,-Y
00B0 924A ST R4,-Y
00B1 923A ST R3,-Y
00B2 922A ST R2,-Y
00B3 018A MOVW R16,R20
00B4 019B MOVW R18,R22
00B5 940E01D1 CALL empy32s
00B7 EA40 LDI R20,0xA0
00B8 EB5B LDI R21,0xBB
00B9 E06D LDI R22,0xD
00BA E070 LDI R23,0
00BB 0118 MOVW R2,R16
00BC 0129 MOVW R4,R18
00BD 1A24 SUB R2,R20
00BE 0A35 SBC R3,R21
00BF 0A46 SBC R4,R22
00C0 0A57 SBC R5,R23
00C1 E040 LDI R20,0
00C2 E850 LDI R21,0x80
00C3 E060 LDI R22,0
00C4 E070 LDI R23,0
00C5 937A ST R23,-Y
00C6 936A ST R22,-Y
00C7 935A ST R21,-Y
00C8 934A ST R20,-Y
00C9 0181 MOVW R16,R2
00CA 0192 MOVW R18,R4
00CB 940E0166 CALL div32s
00CD 9310006A STS N+1,R17
00CF 93000069 STS N,R16
(0039) PORTC|=BIT(PA2);
00D1 9AAA SBI 0x15,2
(0040) inputbyte(N>>8);
00D2 2F01 MOV R16,R17
00D3 2711 CLR R17
00D4 FD07 SBRC R16,7
00D5 9510 COM R17
00D6 DF84 RCALL _inputbyte
(0041) inputbyte(N);
00D7 91000069 LDS R16,N
00D9 DF81 RCALL _inputbyte
(0042) inputbyte(0xa0);
00DA EA00 LDI R16,0xA0
00DB DF7F RCALL _inputbyte
(0043) inputbyte(0x13);
00DC E103 LDI R16,0x13
00DD DF7D RCALL _inputbyte
(0044) inputbyte(0x00);
00DE 2700 CLR R16
00DF DF7B RCALL _inputbyte
(0045) PORTC&=~BIT(PA2);
00E0 98AA CBI 0x15,2
(0046) delay();
00E1 DF6F RCALL _delay
(0047)
(0048) }
00E2 C06E RJMP 0x0151
(0049) else if(!(PINA&0x10)){
00E3 99CC SBIC 0x19,4
00E4 C06C RJMP 0x0151
(0050) radio-=100000;
00E5 EA40 LDI R20,0xA0
00E6 E856 LDI R21,0x86
00E7 E061 LDI R22,1
00E8 E070 LDI R23,0
00E9 90400067 LDS R4,radio+2
00EB 90500068 LDS R5,radio+3
00ED 90200065 LDS R2,radio
00EF 90300066 LDS R3,radio+1
00F1 1A24 SUB R2,R20
00F2 0A35 SBC R3,R21
00F3 0A46 SBC R4,R22
00F4 0A57 SBC R5,R23
00F5 92300066 STS radio+1,R3
00F7 92200065 STS radio,R2
00F9 92500068 STS radio+3,R5
00FB 92400067 STS radio+2,R4
(0051) if (radio<87000000)
00FD EC40 LDI R20,0xC0
00FE E853 LDI R21,0x83
00FF E26F LDI R22,0x2F
0100 E075 LDI R23,5
0101 1624 CP R2,R20
0102 0635 CPC R3,R21
0103 0646 CPC R4,R22
0104 0657 CPC R5,R23
0105 F464 BGE 0x0112
(0052) radio=108000000;
0106 E040 LDI R20,0
0107 EF53 LDI R21,0xF3
0108 E66F LDI R22,0x6F
0109 E076 LDI R23,6
010A 93500066 STS radio+1,R21
010C 93400065 STS radio,R20
010E 93700068 STS radio+3,R23
0110 93600067 STS radio+2,R22
(0053) N=(long)((radio-225000)*4)/32768;
0112 90400067 LDS R4,radio+2
0114 90500068 LDS R5,radio+3
0116 90200065 LDS R2,radio
0118 90300066 LDS R3,radio+1
011A E044 LDI R20,4
011B E050 LDI R21,0
011C E060 LDI R22,0
011D E070 LDI R23,0
011E 925A ST R5,-Y
011F 924A ST R4,-Y
0120 923A ST R3,-Y
0121 922A ST R2,-Y
0122 018A MOVW R16,R20
0123 019B MOVW R18,R22
0124 940E01D1 CALL empy32s
0126 EA40 LDI R20,0xA0
0127 EB5B LDI R21,0xBB
0128 E06D LDI R22,0xD
0129 E070 LDI R23,0
012A 0118 MOVW R2,R16
012B 0129 MOVW R4,R18
012C 1A24 SUB R2,R20
012D 0A35 SBC R3,R21
012E 0A46 SBC R4,R22
012F 0A57 SBC R5,R23
0130 E040 LDI R20,0
0131 E850 LDI R21,0x80
0132 E060 LDI R22,0
0133 E070 LDI R23,0
0134 937A ST R23,-Y
0135 936A ST R22,-Y
0136 935A ST R21,-Y
0137 934A ST R20,-Y
0138 0181 MOVW R16,R2
0139 0192 MOVW R18,R4
013A 940E0166 CALL div32s
013C 9310006A STS N+1,R17
013E 93000069 STS N,R16
(0054) PORTC|=BIT(PA2);
0140 9AAA SBI 0x15,2
(0055) inputbyte(N>>8);
0141 2F01 MOV R16,R17
0142 2711 CLR R17
0143 FD07 SBRC R16,7
0144 9510 COM R17
0145 DF15 RCALL _inputbyte
(0056) inputbyte(N);
0146 91000069 LDS R16,N
0148 DF12 RCALL _inputbyte
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -