?? pp.lis
字號:
04BC L117:
04BC .dbline 234
04BC 4DE7 ldi R20,125
04BE 50E0 ldi R21,0
04C0 60E0 ldi R22,0
04C2 70E0 ldi R23,0
04C4 22B6 in R2,0x32
04C6 3324 clr R3
04C8 4424 clr R4
04CA 5524 clr R5
04CC 2416 cp R2,R20
04CE 3506 cpc R3,R21
04D0 4606 cpc R4,R22
04D2 5706 cpc R5,R23
04D4 9CF3 brlt L116
04D6 .dbline 235
04D6 2224 clr R2
04D8 22BE out 0x32,R2
04DA .dbline 236
04DA 0150 subi R16,1
04DC 1040 sbci R17,0
04DE .dbline 237
04DE L114:
04DE .dbline 232
04DE 0030 cpi R16,0
04E0 0107 cpc R16,R17
04E2 61F7 brne L117
04E4 X15:
04E4 .dbline -2
04E4 L112:
04E4 00D0 rcall pop_gset2
04E6 .dbline 0 ; func end
04E6 0895 ret
04E8 .dbsym r time 16 i
04E8 .dbend
04E8 .dbfunc e init_atmega _init_atmega fV
.even
04E8 _init_atmega::
04E8 .dbline -1
04E8 .dbline 241
04E8 ; while(TCNT0<(fosc/64/1000));
04E8 ; TCNT0=0;
04E8 ; time--;
04E8 ; }
04E8 ; }
04E8 ; //************************************************************ATMEGA8初始化38//
04E8 ; void init_atmega(void)
04E8 ; {
04E8 .dbline 242
04E8 ; SFIOR&=(~(1<<PUD));//上拉SFIOR
04E8 80B7 in R24,0x30
04EA 8B7F andi R24,251
04EC 80BF out 0x30,R24
04EE .dbline 243
04EE ; DDRB=0xFF;
04EE 8FEF ldi R24,255
04F0 87BB out 0x17,R24
04F2 .dbline 244
04F2 ; DDRD=0xF8;//,PD7(E),PD6(RW),PD5(RS),PD4(SPS),PD2(ICC),PD1(TXD),PD0(RXD);
04F2 88EF ldi R24,248
04F4 81BB out 0x11,R24
04F6 .dbline 245
04F6 ; PORTD=0xFB;
04F6 8BEF ldi R24,251
04F8 82BB out 0x12,R24
04FA .dbline 246
04FA ; DDRC=0x0F;//PC4,PC3(REN),PC2(GREEN),PC0(BUZZER)
04FA 8FE0 ldi R24,15
04FC 84BB out 0x14,R24
04FE .dbline 247
04FE ; PORTC=0x01;
04FE 81E0 ldi R24,1
0500 85BB out 0x15,R24
0502 .dbline 248
0502 ; UCSRB=(1<<RXEN)|(1<<TXEN);
0502 88E1 ldi R24,24
0504 8AB9 out 0xa,R24
0506 .dbline 249
0506 ; UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
0506 86E8 ldi R24,134
0508 80BD out 0x20,R24
050A .dbline 250
050A ; UBRRH=(fosc/16/(baud+1))/256;
050A 2224 clr R2
050C 20BC out 0x20,R2
050E .dbline 251
050E ; UBRRL=(fosc/16/(baud+1))%256;
050E 8AE1 ldi R24,26
0510 89B9 out 0x9,R24
0512 .dbline 252
0512 ; TCCR2=0x0a;
0512 8AE0 ldi R24,10
0514 85BD out 0x25,R24
0516 .dbline 253
0516 ; TCNT2=0x00;
0516 24BC out 0x24,R2
0518 .dbline 254
0518 ; OCR2=fosc/8/2000;//500us
0518 84EF ldi R24,500
051A 91E0 ldi R25,1
051C 83BD out 0x23,R24
051E .dbline 255
051E ; TIMSK=1<<OCIE2;
051E 80E8 ldi R24,128
0520 89BF out 0x39,R24
0522 .dbline 256
0522 ; TCCR0=(1<<CS01)|(1<<CS00);//64分頻
0522 83E0 ldi R24,3
0524 83BF out 0x33,R24
0526 .dbline 257
0526 ; TCNT0=0;
0526 22BE out 0x32,R2
0528 .dbline 258
0528 ; SEI();
0528 7894 sei
052A .dbline -2
052A L119:
052A .dbline 0 ; func end
052A 0895 ret
052C .dbend
052C .dbfunc e RxGsm _RxGsm fV
052C ; i -> R20
.even
052C _RxGsm::
052C 00D0 rcall push_gset1
052E 2397 sbiw R28,3
0530 .dbline -1
0530 .dbline 262
0530 ; }
0530 ; //*****************************************************************接收遠程41//
0530 ; void RxGsm(void)
0530 ; {
0530 .dbline 264
0530 ; unsigned char i;
0530 ; switch(RxGsmAddr)
0530 40910200 lds R20,_RxGsmAddr
0534 5527 clr R21
0536 4030 cpi R20,0
0538 4507 cpc R20,R21
053A 71F0 breq L124
053C X16:
053C 4130 cpi R20,1
053E E0E0 ldi R30,0
0540 5E07 cpc R21,R30
0542 71F0 breq L125
0544 4230 cpi R20,2
0546 E0E0 ldi R30,0
0548 5E07 cpc R21,R30
054A F1F0 breq L128
054C 4330 cpi R20,3
054E E0E0 ldi R30,0
0550 5E07 cpc R21,R30
0552 09F4 brne X19
0554 8DC0 rjmp L145
0556 X19:
0556 DEC0 rjmp L121
0558 X17:
0558 .dbline 265
0558 ; {
0558 L124:
0558 .dbline 267
0558 ; case(0)://接收停止
0558 ; {
0558 .dbline 268
0558 ; RxGsmAddr=0;return;
0558 2224 clr R2
055A 20920200 sts _RxGsmAddr,R2
055E .dbline 268
055E DAC0 rjmp L120
0560 L125:
0560 .dbline 271
0560 ; }
0560 ; case(1)://接收初始
0560 ; {
0560 .dbline 272
0560 ; if(!(PIND&0x04)&&(RxCalAddr==1))
0560 8299 sbic 0x10,2
0562 D8C0 rjmp L120
0564 80910100 lds R24,_RxCalAddr
0568 8130 cpi R24,1
056A 09F0 breq X20
056C D3C0 rjmp L120
056E X20:
056E .dbline 273
056E ; {RxGsmAddr=2;RxUartWait=0;RxUartAddr=1;return;}
056E .dbline 273
056E 82E0 ldi R24,2
0570 80930200 sts _RxGsmAddr,R24
0574 .dbline 273
0574 2224 clr R2
0576 3324 clr R3
0578 30920E00 sts _RxUartWait+1,R3
057C 20920D00 sts _RxUartWait,R2
0580 .dbline 273
0580 81E0 ldi R24,1
0582 80931200 sts _RxUartAddr,R24
0586 .dbline 273
0586 C6C0 rjmp L120
0588 X18:
0588 .dbline 274
0588 ; else return;
0588 L128:
0588 .dbline 277
0588 ; }
0588 ; case(2)://接收是否完成
0588 ; {
0588 .dbline 278
0588 ; if(!(PIND&0x04)&&(RxCalAddr==1))
0588 8299 sbic 0x10,2
058A 6EC0 rjmp L129
058C 80910100 lds R24,_RxCalAddr
0590 8130 cpi R24,1
0592 09F0 breq X21
0594 69C0 rjmp L129
0596 X21:
0596 .dbline 279
0596 ; {
0596 .dbline 280
0596 ; if(RxUartAddr) return;
0596 20901200 lds R2,_RxUartAddr
059A 2220 tst R2
059C 09F0 breq L131
059E .dbline 280
059E BAC0 rjmp L120
05A0 L131:
05A0 .dbline 281
05A0 ; if(CmpsRom(RxUartDbuf,RxUartLeng,"DD",2)) {RxGsmAddr=1;OutToneCount=4;return;}//DD
05A0 82E0 ldi R24,2
05A2 8A83 std y+2,R24
05A4 80E0 ldi R24,<L135
05A6 90E0 ldi R25,>L135
05A8 9983 std y+1,R25
05AA 8883 std y+0,R24
05AC 20910F00 lds R18,_RxUartLeng
05B0 00E0 ldi R16,<_RxUartDbuf
05B2 10E0 ldi R17,>_RxUartDbuf
05B4 4BDF rcall _CmpsRom
05B6 0023 tst R16
05B8 39F0 breq L133
05BA .dbline 281
05BA .dbline 281
05BA 81E0 ldi R24,1
05BC 80930200 sts _RxGsmAddr,R24
05C0 .dbline 281
05C0 84E0 ldi R24,4
05C2 80930600 sts _OutToneCount,R24
05C6 .dbline 281
05C6 A6C0 rjmp L120
05C8 L133:
05C8 .dbline 282
05C8 ; OutToneCount=2;
05C8 82E0 ldi R24,2
05CA 80930600 sts _OutToneCount,R24
05CE .dbline 283
05CE ; CopyRam(RxUartDbuf+2,RxUartLeng,writecaltemp,16);//寫信息到卡
05CE 80E1 ldi R24,16
05D0 8A83 std y+2,R24
05D2 80E0 ldi R24,<_writecaltemp
05D4 90E0 ldi R25,>_writecaltemp
05D6 9983 std y+1,R25
05D8 8883 std y+0,R24
05DA 20910F00 lds R18,_RxUartLeng
05DE 00E0 ldi R16,<_RxUartDbuf+2
05E0 10E0 ldi R17,>_RxUartDbuf+2
05E2 1CDF rcall _CopyRam
05E4 .dbline 284
05E4 ; checktemp=0;
05E4 2224 clr R2
05E6 20921D01 sts _checktemp,R2
05EA .dbline 285
05EA 42E0 ldi R20,2
05EC 0DC0 rjmp L140
05EE L137:
05EE .dbline 285
05EE .dbline 285
05EE 80E0 ldi R24,<_writecal1
05F0 90E0 ldi R25,>_writecal1
05F2 E42F mov R30,R20
05F4 FF27 clr R31
05F6 E80F add R30,R24
05F8 F91F adc R31,R25
05FA E491 lpm R30,Z
05FC 20901D01 lds R2,_checktemp
0600 2E26 eor R2,R30
0602 20921D01 sts _checktemp,R2
0606 .dbline 285
0606 L138:
0606 .dbline 285
0606 4395 inc R20
0608 L140:
0608 .dbline 285
0608 ; for(i=2;i<=11;i++){checktemp^=writecal1[i];}
0608 8BE0 ldi R24,11
060A 8417 cp R24,R20
060C 80F7 brsh L137
060E .dbline 286
060E 4427 clr R20
0610 0DC0 rjmp L144
0612 L141:
0612 .dbline 286
0612 .dbline 286
0612 80E0 ldi R24,<_writecaltemp
0614 90E0 ldi R25,>_writecaltemp
0616 E42F mov R30,R20
0618 FF27 clr R31
061A E80F add R30,R24
061C F91F adc R31,R25
061E 2080 ldd R2,z+0
0620 30901D01 lds R3,_checktemp
0624 3224 eor R3,R2
0626 30921D01 sts _checktemp,R3
062A .dbline 286
062A L142:
062A .dbline 286
062A 4395 inc R20
062C L144:
062C .dbline 286
062C ; for(i=0;i<16;i++){checktemp^=writecaltemp[i];}
062C 4031 cpi R20,16
062E 88F3 brlo L141
0630 .dbline 287
0630 ; RxGsmAddr=3;RxUartAddr=1;RxUartWait=20;
0630 83E0 ldi R24,3
0632 80930200 sts _RxGsmAddr,R24
0636 .dbline 287
0636 81E0 ldi R24,1
0638 80931200 sts _RxUartAddr,R24
063C .dbline 287
063C 84E1 ldi R24,20
063E 90E0 ldi R25,0
0640 90930E00 sts _RxUartWait+1,R25
0644 80930D00 sts _RxUartWait,R24
0648 .dbline 288
0648 ; TxRomUart(writecal1,12);TxRamUart(writecaltemp,16);TxRamUart(&checktemp,1);
0648 2CE
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -