📄 main.lis
字号:
0020 ; {time_da0=time_da;}
0020 .dbline 134
0020 20901B00 lds R2,_time_da
0024 30901C00 lds R3,_time_da+1
0028 30921A00 sts _time_da0+1,R3
002C 20921900 sts _time_da0,R2
0030 .dbline 134
0030 10C0 xjmp L3
0032 L2:
0032 .dbline 136
0032 ; else
0032 ; {if (da_counter==128)
0032 .dbline 136
0032 80911700 lds R24,_da_counter
0036 8038 cpi R24,128
0038 61F4 brne L4
003A .dbline 137
003A ; {
003A .dbline 138
003A ; micros_nu0=micros_nu;
003A 20901600 lds R2,_micros_nu
003E 20921500 sts _micros_nu0,R2
0042 .dbline 139
0042 ; time_da0=time_da;
0042 20901B00 lds R2,_time_da
0046 30901C00 lds R3,_time_da+1
004A 30921A00 sts _time_da0+1,R3
004E 20921900 sts _time_da0,R2
0052 .dbline 140
0052 ; }
0052 L4:
0052 .dbline 141
0052 ; }
0052 L3:
0052 .dbline 142
0052 ; OCR1A=time_da0;
0052 20901900 lds R2,_time_da0
0056 30901A00 lds R3,_time_da0+1
005A 3BBC out 0x2b,R3
005C 2ABC out 0x2a,R2
005E .dbline 143
005E ; if (da_counter>=128)
005E 80911700 lds R24,_da_counter
0062 8038 cpi R24,128
0064 18F0 brlo L6
0066 .dbline 144
0066 ; {da_counter=0;}
0066 .dbline 144
0066 2224 clr R2
0068 20921700 sts _da_counter,R2
006C .dbline 144
006C L6:
006C .dbline 145
006C ; i=tabsin[da_counter];
006C 80E0 ldi R24,<_tabsin
006E 90E0 ldi R25,>_tabsin
0070 E0911700 lds R30,_da_counter
0074 FF27 clr R31
0076 E80F add R30,R24
0078 F91F adc R31,R25
007A 2491 lpm R18,Z
007C .dbline 146
007C ; j=tabcos[da_counter];
007C 80E0 ldi R24,<_tabcos
007E 90E0 ldi R25,>_tabcos
0080 E0911700 lds R30,_da_counter
0084 FF27 clr R31
0086 E80F add R30,R24
0088 F91F adc R31,R25
008A 0491 lpm R16,Z
008C .dbline 147
008C ; PORTD&=~(1<<DA_CS);
008C 9698 cbi 0x12,6
008E .dbline 148
008E ; PORTD&=~(1<<DA_AB);
008E 9798 cbi 0x12,7
0090 .dbline 149
0090 ; DATA_OUT=i; //送正弦值
0090 28BB out 0x18,R18
0092 .dbline 150
0092 ; asm("nop");
0092 0000 nop
0094 .dbline 151
0094 ; PORTA&=~(1<<DA_WR);
0094 D998 cbi 0x1b,1
0096 .dbline 152
0096 ; PORTA|=(1<<DA_WR);
0096 D99A sbi 0x1b,1
0098 .dbline 153
0098 ; PORTD|=(1<<DA_AB);
0098 979A sbi 0x12,7
009A .dbline 154
009A ; DATA_OUT=j; //送正弦值
009A 08BB out 0x18,R16
009C .dbline 155
009C ; asm("nop");
009C 0000 nop
009E .dbline 156
009E ; PORTA&=~(1<<DA_WR);
009E D998 cbi 0x1b,1
00A0 .dbline 157
00A0 ; PORTA|=(1<<DA_WR);
00A0 D99A sbi 0x1b,1
00A2 .dbline 158
00A2 ; PORTD|=(1<<DA_CS);
00A2 969A sbi 0x12,6
00A4 .dbline 159
00A4 ; if ((state|0b11111110)==0b11111110) //判断正反转
00A4 80910800 lds R24,_state
00A8 8E6F ori R24,254
00AA 8E3F cpi R24,254
00AC 31F5 brne L8
00AE .dbline 160
00AE ; { //正转
00AE .dbline 161
00AE ; if (ac_bd_state==0) //ac相处理
00AE 20900900 lds R2,_ac_bd_state
00B2 2220 tst R2
00B4 89F4 brne L10
00B6 .dbline 162
00B6 ; {
00B6 .dbline 163
00B6 ; if (da_counter==0)
00B6 20901700 lds R2,_da_counter
00BA 2220 tst R2
00BC 31F4 brne L12
00BE .dbline 164
00BE ; {
00BE .dbline 165
00BE ; PORTC&=~(1<<DA_SIN);
00BE AF98 cbi 0x15,7
00C0 .dbline 166
00C0 ; PORTC&=~(1<<DA_COS);
00C0 AE98 cbi 0x15,6
00C2 .dbline 167
00C2 ; ac_bd_state=1;
00C2 81E0 ldi R24,1
00C4 80930900 sts _ac_bd_state,R24
00C8 .dbline 168
00C8 ; }
00C8 3DC0 xjmp L9
00CA L12:
00CA .dbline 170
00CA ; else
00CA ; {
00CA .dbline 171
00CA ; if (da_counter==64)
00CA 80911700 lds R24,_da_counter
00CE 8034 cpi R24,64
00D0 C9F5 brne L9
00D2 .dbline 172
00D2 ; {
00D2 .dbline 173
00D2 ; PORTC&=~(1<<DA_SIN);
00D2 AF98 cbi 0x15,7
00D4 .dbline 174
00D4 ; PORTC|=(1<<DA_COS);
00D4 AE9A sbi 0x15,6
00D6 .dbline 175
00D6 ; }
00D6 .dbline 176
00D6 ; }
00D6 .dbline 177
00D6 ; }
00D6 36C0 xjmp L9
00D8 L10:
00D8 .dbline 179
00D8 ; else //bd相处理
00D8 ; {
00D8 .dbline 180
00D8 ; if (da_counter==0)
00D8 20901700 lds R2,_da_counter
00DC 2220 tst R2
00DE 31F4 brne L16
00E0 .dbline 181
00E0 ; {
00E0 .dbline 182
00E0 ; PORTC|=(1<<DA_SIN);
00E0 AF9A sbi 0x15,7
00E2 .dbline 183
00E2 ; PORTC|=(1<<DA_COS);
00E2 AE9A sbi 0x15,6
00E4 .dbline 184
00E4 ; ac_bd_state=0;
00E4 2224 clr R2
00E6 20920900 sts _ac_bd_state,R2
00EA .dbline 185
00EA ; }
00EA 2CC0 xjmp L9
00EC L16:
00EC .dbline 187
00EC ; else
00EC ; {
00EC .dbline 188
00EC ; if (da_counter==64)
00EC 80911700 lds R24,_da_counter
00F0 8034 cpi R24,64
00F2 41F5 brne L9
00F4 .dbline 189
00F4 ; {
00F4 .dbline 190
00F4 ; PORTC|=(1<<DA_SIN);
00F4 AF9A sbi 0x15,7
00F6 .dbline 191
00F6 ; PORTC&=~(1<<DA_COS);
00F6 AE98 cbi 0x15,6
00F8 .dbline 192
00F8 ; }
00F8 .dbline 193
00F8 ; }
00F8 .dbline 194
00F8 ; }
00F8 .dbline 195
00F8 ; }
00F8 25C0 xjmp L9
00FA L8:
00FA .dbline 197
00FA ; else //反转
00FA ; {
00FA .dbline 198
00FA ; if (ac_bd_state==0) //ac相处理
00FA 20900900 lds R2,_ac_bd_state
00FE 2220 tst R2
0100 89F4 brne L20
0102 .dbline 199
0102 ; {
0102 .dbline 200
0102 ; if (da_counter==0)
0102 20901700 lds R2,_da_counter
0106 2220 tst R2
0108 31F4 brne L22
010A .dbline 201
010A ; {
010A .dbline 202
010A ; PORTC&=~(1<<DA_SIN);
010A AF98 cbi 0x15,7
010C .dbline 203
010C ; PORTC|=(1<<DA_COS);
010C AE9A sbi 0x15,6
010E .dbline 204
010E ; ac_bd_state=1;
010E 81E0 ldi R24,1
0110 80930900 sts _ac_bd_state,R24
0114 .dbline 205
0114 ; }
0114 17C0 xjmp L21
0116 L22:
0116 .dbline 207
0116 ; else
0116 ; {
0116 .dbline 208
0116 ; if (da_counter==64)
0116 80911700 lds R24,_da_counter
011A 8034 cpi R24,64
011C 99F4 brne L21
011E .dbline 209
011E ; {
011E .dbline 210
011E ; PORTC&=~(1<<DA_SIN);
011E AF98 cbi 0x15,7
0120 .dbline 211
0120 ; PORTC&=~(1<<DA_COS);
0120 AE98 cbi 0x15,6
0122 .dbline 212
0122 ; }
0122 .dbline 213
0122 ; }
0122 .dbline 214
0122 ; }
0122 10C0 xjmp L21
0124 L20:
0124 .dbline 216
0124 ; else //bd相处理
0124 ; {
0124 .dbline 217
0124 ; if (da_counter==0)
0124 20901700 lds R2,_da_counter
0128 2220 tst R2
012A 31F4 brne L26
012C .dbline 218
012C ; {
012C .dbline 219
012C ; PORTC|=(1<<DA_SIN);
012C AF9A sbi 0x15,7
012E .dbline 220
012E ; PORTC&=~(1<<DA_COS);
012E AE98 cbi 0x15,6
0130 .dbline 221
0130 ; ac_bd_state=0;
0130 2224 clr R2
0132 20920900 sts _ac_bd_state,R2
0136 .dbline 222
0136 ; }
0136 06C0 xjmp L27
0138 L26:
0138 .dbline 224
0138 ; else
0138 ; {
0138 .dbline 225
0138 ; if (da_counter==64)
0138 80911700 lds R24,_da_counter
013C 8034 cpi R24,64
013E 11F4 brne L28
0140 .dbline 226
0140 ; {
0140 .dbline 227
0140 ; PORTC|=(1<<DA_SIN);
0140 AF9A sbi 0x15,7
0142 .dbline 228
0142 ; PORTC|=(1<<DA_COS);
0142 AE9A sbi 0x15,6
0144 .dbline 229
0144 ; }
0144 L28:
0144 .dbline 230
0144 ; }
0144 L27:
0144 .dbline 231
0144 ; }
0144 L21:
0144 .dbline 232
0144 ; }
0144 L9:
0144 .dbline 233
0144 ; if (micros_nu0==32) //根据细分数对地址指针步进
0144 80911500 lds R24,_micros_nu0
0148 8032 cpi R24,32
014A 31F4 brne L30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -