📄 main.lis
字号:
011E 0E940000 xcall push_gset1
0122 .dbline -1
0122 .dbline 179
0122 ; while (!(UCSR1A & (1<<UDRE1)));
0122 ; UDR1 = *data++;
0122 ; }
0122 ; }
0122 ; void init_par(void)
0122 ; {
0122 .dbline 181
0122 ; unsigned char ll,i,tt;
0122 ; CLEAR_CLK();
0122 149A sbi 0x2,4
0124 .dbline 182
0124 ; CLEAR_RST();
0124 169A sbi 0x2,6
0126 .dbline 183
0126 ; ll=EEPROMread(DS1302_FLAG);
0126 01E0 ldi R16,1
0128 10E0 ldi R17,0
012A 0E940000 xcall _EEPROMread
012E 402F mov R20,R16
0130 .dbline 184
0130 ; if(ll==0xFF)
0130 0F3F cpi R16,255
0132 F9F4 brne L37
0134 .dbline 185
0134 ; {
0134 .dbline 186
0134 ; time_data[0]=0x48;
0134 88E4 ldi R24,72
0136 8093E000 sts _time_data,R24
013A .dbline 187
013A ; time_data[1]=0x34;
013A 84E3 ldi R24,52
013C 8093E100 sts _time_data+1,R24
0140 .dbline 188
0140 ; time_data[2]=0x15;
0140 85E1 ldi R24,21
0142 8093E200 sts _time_data+2,R24
0146 .dbline 189
0146 ; time_data[3]=0x02;
0146 82E0 ldi R24,2
0148 8093E300 sts _time_data+3,R24
014C .dbline 190
014C ; time_data[4]=0x03;
014C 83E0 ldi R24,3
014E 8093E400 sts _time_data+4,R24
0152 .dbline 191
0152 ; time_data[5]=0x07;
0152 87E0 ldi R24,7
0154 8093E500 sts _time_data+5,R24
0158 .dbline 192
0158 ; time_data[6]=0x08;
0158 88E0 ldi R24,8
015A 8093E600 sts _time_data+6,R24
015E .dbline 193
015E ; Set_1302(time_data);
015E 00E0 ldi R16,<_time_data
0160 10E0 ldi R17,>_time_data
0162 0E940000 xcall _Set_1302
0166 .dbline 194
0166 ; EEPROMwrite(DS1302_FLAG,0x05);
0166 25E0 ldi R18,5
0168 01E0 ldi R16,1
016A 10E0 ldi R17,0
016C 0E940000 xcall _EEPROMwrite
0170 .dbline 195
0170 ; }
0170 04C0 xjmp L38
0172 L37:
0172 .dbline 197
0172 ; else
0172 ; W_1302(0x80,0x00);
0172 2227 clr R18
0174 00E8 ldi R16,128
0176 0E940000 xcall _W_1302
017A L38:
017A .dbline 198
017A ; Set_charge();
017A 0E940000 xcall _Set_charge
017E .dbline 199
017E ; tt=EEPROMread(EVEN_FLAG);
017E 03E0 ldi R16,3
0180 10E0 ldi R17,0
0182 0E940000 xcall _EEPROMread
0186 402F mov R20,R16
0188 .dbline 200
0188 ; if(tt==0xff)
0188 0F3F cpi R16,255
018A 89F4 brne L45
018C .dbline 201
018C ; {
018C .dbline 202
018C ; for(i=0;i<16;i++)
018C 4427 clr R20
018E 08C0 xjmp L50
0190 L47:
0190 .dbline 203
0190 21E0 ldi R18,1
0192 042F mov R16,R20
0194 1127 clr R17
0196 0050 subi R16,0 ; offset = 512
0198 1E4F sbci R17,254
019A 0E940000 xcall _EEPROMwrite
019E L48:
019E .dbline 202
019E 4395 inc R20
01A0 L50:
01A0 .dbline 202
01A0 4031 cpi R20,16
01A2 B0F3 brlo L47
01A4 .dbline 206
01A4 ; EEPROMwrite(0x200+i,0x01);
01A4 ; // for(i=3;i<8;i++)
01A4 ; // EEPROMwrite(0x100+i,0x01);
01A4 ; EEPROMwrite(EVEN_FLAG,0xaa);
01A4 2AEA ldi R18,170
01A6 03E0 ldi R16,3
01A8 10E0 ldi R17,0
01AA 0E940000 xcall _EEPROMwrite
01AE .dbline 207
01AE ; }
01AE L45:
01AE .dbline 208
01AE L46:
01AE .dbline -2
01AE L36:
01AE 0E940000 xcall pop_gset1
01B2 .dbline 0 ; func end
01B2 0895 ret
01B4 .dbsym r tt 20 c
01B4 .dbsym r ll 20 c
01B4 .dbsym r i 20 c
01B4 .dbend
01B4 .dbfunc e timer1_init _timer1_init fV
.even
01B4 _timer1_init::
01B4 .dbline -1
01B4 .dbline 212
01B4 ; else ;
01B4 ;
01B4 ; }
01B4 ; void timer1_init(void)
01B4 ; {
01B4 .dbline 213
01B4 ; TCCR1B = 0x00; //stop
01B4 2224 clr R2
01B6 2EBC out 0x2e,R2
01B8 .dbline 214
01B8 ; TCNT1H = 0xFD; //setup
01B8 8DEF ldi R24,253
01BA 8DBD out 0x2d,R24
01BC .dbline 215
01BC ; TCNT1L = 0xE5;
01BC 85EE ldi R24,229
01BE 8CBD out 0x2c,R24
01C0 .dbline 216
01C0 ; TCCR1A = 0x00;
01C0 2FBC out 0x2f,R2
01C2 .dbline 217
01C2 ; TCCR1B = 0x05; //start Timer
01C2 85E0 ldi R24,5
01C4 8EBD out 0x2e,R24
01C6 .dbline -2
01C6 L51:
01C6 .dbline 0 ; func end
01C6 0895 ret
01C8 .dbend
01C8 .dbfunc e timer0_init _timer0_init fV
.even
01C8 _timer0_init::
01C8 .dbline -1
01C8 .dbline 220
01C8 ; }
01C8 ; void timer0_init(void) //1ms
01C8 ; {
01C8 .dbline 221
01C8 ; TCCR0 = 0x00; //stop
01C8 2224 clr R2
01CA 23BE out 0x33,R2
01CC .dbline 223
01CC ; // ASSR = 0x00; //set async mode
01CC ; TCNT0 = 0x54; //set count
01CC 84E5 ldi R24,84
01CE 82BF out 0x32,R24
01D0 .dbline 225
01D0 ; // OCR0 = 0xAC;
01D0 ; TCCR0 = 0x04; //start timer
01D0 84E0 ldi R24,4
01D2 83BF out 0x33,R24
01D4 .dbline -2
01D4 L52:
01D4 .dbline 0 ; func end
01D4 0895 ret
01D6 .dbend
.area vector(rom, abs)
.org 64
0040 0C94EB00 jmp _timer0_ovf_isr
.area text(rom, con, rel)
01D6 .dbfile F:\yyjapp\yymk\software\main.c
01D6 .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
01D6 _timer0_ovf_isr::
01D6 2A92 st -y,R2
01D8 3A92 st -y,R3
01DA 8A93 st -y,R24
01DC 9A93 st -y,R25
01DE 2FB6 in R2,0x3f
01E0 2A92 st -y,R2
01E2 .dbline -1
01E2 .dbline 230
01E2 .dbline 232
01E2 84E5 ldi R24,84
01E4 82BF out 0x32,R24
01E6 .dbline 233
01E6 80910000 lds R24,_commtimer
01EA 90910100 lds R25,_commtimer+1
01EE 0196 adiw R24,1
01F0 90930100 sts _commtimer+1,R25
01F4 80930000 sts _commtimer,R24
01F8 .dbline 234
01F8 8EE9 ldi R24,1950
01FA 97E0 ldi R25,7
01FC 20900000 lds R2,_commtimer
0200 30900100 lds R3,_commtimer+1
0204 8215 cp R24,R2
0206 9305 cpc R25,R3
0208 30F4 brsh L54
020A .dbline 235
020A .dbline 236
020A 2224 clr R2
020C 3324 clr R3
020E 30920100 sts _commtimer+1,R3
0212 20920000 sts _commtimer,R2
0216 .dbline 238
0216 L54:
0216 .dbline -2
0216 L53:
0216 2990 ld R2,y+
0218 2FBE out 0x3f,R2
021A 9991 ld R25,y+
021C 8991 ld R24,y+
021E 3990 ld R3,y+
0220 2990 ld R2,y+
0222 .dbline 0 ; func end
0222 1895 reti
0224 .dbend
0224 .dbfunc e beep _beep fV
0224 ; second -> R16
.even
0224 _beep::
0224 .dbline -1
0224 .dbline 241
0224 ; }
0224 ;
0224 ; #pragma interrupt_handler timer0_ovf_isr:17
0224 ; void timer0_ovf_isr(void)
0224 ; {
0224 ; // unsigned char oop;
0224 ; TCNT0 = 0x54; //1ms
0224 ; commtimer++;
0224 ; if(commtimer>1950)
0224 ; {
0224 ; commtimer=0;
0224 ; // WDR();
0224 ; }
0224 ; }
0224 ; void beep(unsigned char second)
0224 ; {
0224 .dbline 242
0224 ; beep_second=second;
0224 00930500 sts _beep_second,R16
0228 .dbline 243
0228 ; beep_flag=1;
0228 81E0 ldi R24,1
022A 80930600 sts _beep_flag,R24
022E .dbline 244
022E ; CLEAR_BELL();
022E BD9A sbi 0x17,5
0230 .dbline 245
0230 ; CLEAR_LED0();
0230 8F9A sbi 0x11,7
0232 .dbline 246
0232 ; timer=0;
0232 2224 clr R2
0234 3324 clr R3
0236 30920400 sts _timer+1,R3
023A 20920300 sts _timer,R2
023E .dbline -2
023E L56:
023E .dbline 0 ; func end
023E 0895 ret
0240 .dbsym r second 16 c
0240 .dbend
0240 .dbfunc e COMM_RX _COMM_RX fV
.even
0240 _COMM_RX::
0240 0E940000 xcall push_gset1
0244 .dbline -1
0244 .dbline 249
0244 ; }
0244 ; void COMM_RX(void)
0244 ; {
0244 .dbline 250
0244 ; RxHead0=0;
0244 2224 clr R2
0246 2092D500 sts _RxHead0,R2
024A .dbline 252
024A ;
024A ; sio_flag=0;
024A 20927700 sts _sio_flag,R2
024E .dbline 254
024E ; // CLEAR_LED0();
024E ; switch(RX_BUF0[1])
024E 40910900 lds R20,_RX_BUF0+1
0252 5527 clr R21
0254 4232 cpi R20,34
0256 E0E0 ldi R30,0
0258 5E07 cpc R21,R30
025A 89F0 breq L63
025C 82E2 ldi R24,34
025E 90E0 ldi R25,0
0260 8417 cp R24,R20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -