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

📄 detectaphone.lst

📁 一个关于窃听器源代码(使用PROTEUS串口例子)
💻 LST
📖 第 1 页 / 共 4 页
字号:
    047C 9894      CBI	0x12,4
(0485)     DelayMs(50);                              // 激活MC55串口
    047D E302      LDI	R16,0x32
    047E E010      LDI	R17,0
    047F D05D      RCALL	_DelayMs
(0486) 	SetRTS();
    0480 9A94      SBI	0x12,4
(0487) 
(0488) //	DelayMs(1000);                              // 激活MC55串口
(0489) 		
(0490)     TxIndex = 0;
    0481 2422      CLR	R2
    0482 922000A5  STS	TxIndex,R2
(0491)     RxIndex = 0;
    0484 922000C6  STS	RxIndex,R2
(0492) 	
(0493) 	while(!DetQEITING());
    0486 DF83      RCALL	_DetQEITING
    0487 2300      TST	R16
    0488 F3E9      BEQ	0x0486
(0494) 	
(0495) 	PutString("AT",2,0);
    0489 2422      CLR	R2
    048A 8228      STD	Y+0,R2
    048B E022      LDI	R18,2
    048C E908      LDI	R16,0x98
    048D E010      LDI	R17,0
    048E DDE2      RCALL	_PutString
(0496) 
(0497) 	DelayMs(500);      
    048F EF04      LDI	R16,0xF4
    0490 E011      LDI	R17,1
    0491 D04B      RCALL	_DelayMs
(0498)   
(0499) 	PutString("AT",2,1);
    0492 E081      LDI	R24,1
    0493 8388      STD	Y+0,R24
    0494 E022      LDI	R18,2
    0495 E908      LDI	R16,0x98
    0496 E010      LDI	R17,0
    0497 DDD9      RCALL	_PutString
(0500) 	
(0501) 	PutString("ATV0",4,1);
    0498 E081      LDI	R24,1
    0499 8388      STD	Y+0,R24
    049A E024      LDI	R18,4
    049B E903      LDI	R16,0x93
    049C E010      LDI	R17,0
    049D DDD3      RCALL	_PutString
(0502) 
(0503) 	PutString("ATE0",4,1);
    049E E081      LDI	R24,1
    049F 8388      STD	Y+0,R24
    04A0 E024      LDI	R18,4
    04A1 E80E      LDI	R16,0x8E
    04A2 E010      LDI	R17,0
    04A3 DDCD      RCALL	_PutString
(0504) 
(0505) 	PutString("AT+CNMI=2,1",11,1);
    04A4 E081      LDI	R24,1
    04A5 8388      STD	Y+0,R24
    04A6 E02B      LDI	R18,0xB
    04A7 E802      LDI	R16,0x82
    04A8 E010      LDI	R17,0
    04A9 DDC7      RCALL	_PutString
(0506) 
(0507) 	PutString("AT+CMGF=1",9,1);
    04AA E081      LDI	R24,1
    04AB 8388      STD	Y+0,R24
    04AC E029      LDI	R18,0x9
    04AD E708      LDI	R16,0x78
    04AE E010      LDI	R17,0
    04AF DDC1      RCALL	_PutString
(0508) 
(0509) 	Delete_SMS(ALL);
    04B0 EF0F      LDI	R16,0xFF
    04B1 DE75      RCALL	_Delete_SMS
(0510) 	
(0511) 	PhoneNum_to_EEPROM();
    04B2 D06C      RCALL	_PhoneNum_to_EEPROM
(0512) 	
(0513) 	EEPROM_to_PhoneNum();
    04B3 D07E      RCALL	_EEPROM_to_PhoneNum
    04B4 9621      ADIW	R28,1
    04B5 9508      RET
(0514) 
(0515) }
(0516) 
(0517) /////////////////////////////////////////////////////////////////////////////////
(0518) /////////////////////////////////////////////////////////////////////////////////
(0519) /////////////////////////////////////////////////////////////////////////////////
(0520) /////////////////////////////////////////////////////////////////////////////////
(0521) 
(0522) /*
(0523) #pragma interrupt_handler int0_isr:2
(0524) void int0_isr(void)
(0525) {
(0526)  //external interupt on INT0
(0527)  DialNum();
(0528)  
(0529) }
(0530) 
(0531) #pragma interrupt_handler int1_isr:3
(0532) void int1_isr(void)
(0533) {
(0534)  //external interupt on INT1
(0535) }
(0536) */
(0537) ////////////////////////////////////////////////////////////////////////////////
(0538) 
(0539) void port_init(void)
(0540) {
(0541)  PORTB = 0x01;
_port_init:
    04B6 E081      LDI	R24,1
    04B7 BB88      OUT	0x18,R24
(0542)  DDRB  = 0x01;
    04B8 BB87      OUT	0x17,R24
(0543)  PORTC = 0x00; //m103 output only
    04B9 2422      CLR	R2
    04BA BA25      OUT	0x15,R2
(0544)  DDRC  = 0x02;
    04BB E082      LDI	R24,2
    04BC BB84      OUT	0x14,R24
(0545)  PORTD = 0x0C;
    04BD E08C      LDI	R24,0xC
    04BE BB82      OUT	0x12,R24
(0546)  DDRD  = 0x50;
    04BF E580      LDI	R24,0x50
    04C0 BB81      OUT	0x11,R24
    04C1 9508      RET
(0547) }
(0548) 
(0549) //UART0 initialize
(0550) // desired baud rate: 19200
(0551) // actual: baud rate:19200 (0.0%)
(0552) // char size: 8 bit
(0553) // parity: Disabled
(0554) //#ifdef XTAL == 3.6864
(0555)  
(0556) void uart0_init(void)
(0557) {
(0558)  UCSRB = 0x00; //disable while setting baud rate
_uart0_init:
    04C2 2422      CLR	R2
    04C3 B82A      OUT	0x0A,R2
(0559)  UCSRA = 0x00;
    04C4 B82B      OUT	0x0B,R2
(0560)  UCSRC = BIT(URSEL) | 0x06;
    04C5 E886      LDI	R24,0x86
    04C6 BD80      OUT	0x20,R24
(0561)  UBRRL = 0x0B; //set baud rate lo
    04C7 E08B      LDI	R24,0xB
    04C8 B989      OUT	0x09,R24
(0562)  UBRRH = 0x00; //set baud rate hi
    04C9 BC20      OUT	0x20,R2
(0563)  UCSRB = 0xD8;
    04CA ED88      LDI	R24,0xD8
    04CB B98A      OUT	0x0A,R24
    04CC 9508      RET
(0564) }
(0565) //#endif
(0566) 
(0567) //#ifdef XTAL == 7.3728
(0568) /*void uart0_init(void)
(0569) {
(0570)  UCSRB = 0x00; //disable while setting baud rate
(0571)  UCSRA = 0x00;
(0572)  UCSRC = BIT(URSEL) | 0x06;
(0573)  UBRRL = 0x17; //set baud rate lo
(0574)  UBRRH = 0x00; //set baud rate hi
(0575)  UCSRB = 0xD8;
(0576) }*/
(0577) //#endif
(0578) 
(0579) //call this routine to initialize all peripherals
(0580) void init_devices(void)
(0581) {
(0582)  //stop errant interrupts until set up
(0583)  CLI(); //disable all interrupts
_init_devices:
    04CD 94F8      BCLR	7
(0584)  port_init();
    04CE DFE7      RCALL	_port_init
(0585)  uart0_init();
    04CF DFF2      RCALL	_uart0_init
(0586) 
(0587)  MCUCR = 0x00;
    04D0 2422      CLR	R2
    04D1 BE25      OUT	0x35,R2
(0588)  GICR  = 0x00; //0xC0;
    04D2 BE2B      OUT	0x3B,R2
(0589)  TIMSK = 0x00; //timer interrupt sources
    04D3 BE29      OUT	0x39,R2
(0590)  SEI(); //re-enable interrupts
    04D4 9478      BSET	7
(0591)  
(0592)  InitMC55();
    04D5 DF91      RCALL	_InitMC55
    04D6 9508      RET
(0593) }
(0594) 
(0595) 
(0596) 
(0597) //
(0598) void main(void)
(0599) {
(0600) DelayMs(1000); 
_main:
    04D7 EE08      LDI	R16,0xE8
    04D8 E013      LDI	R17,3
    04D9 D003      RCALL	_DelayMs
(0601)  init_devices();
    04DA DFF2      RCALL	_init_devices
(0602)  work();
    04DB DF5B      RCALL	_work
    04DC 9508      RET
_DelayMs:
  i                    --> R20
  ms                   --> R16
    04DD D077      RCALL	push_gset1
FILE: D:\MyProject\SMS-MC55\Code\窃听器delay\delay.c
(0001) ////////////////////////////////////////////////////////////////////////////////
(0002) // ICC-AVR application builder : 2006-6-25 下午 06:02:39
(0003) // Target : M8
(0004) // Crystal: 3.6864Mhz
(0005) // Author:  Anwarye
(0006) // Title:   Detcetaphone
(0007) ////////////////////////////////////////////////////////////////////////////////
(0008) 
(0009) #include <iom8v.h>
(0010) #include <macros.h>
(0011) //#include "define.h"
(0012) 
(0013) extern volatile unsigned char          PhoneNum[12]; 
(0014) 
(0015) 
(0016) void DelayMs(unsigned int ms)
(0017) {
    04DE C00A      RJMP	0x04E9
(0018)     unsigned int i;
(0019)     while(ms--)
(0020) 	{
(0021) 	    for(i=0;i<450;i++)   // 3.6864MHz  =  450  ,7.3728MHz = 900
    04DF 2744      CLR	R20
    04E0 2755      CLR	R21
    04E1 C003      RJMP	0x04E5
(0022) 	    {
(0023) 	        asm("NOP");
    04E2 0000      NOP
    04E3 5F4F      SUBI	R20,0xFF
    04E4 4F5F      SBCI	R21,0xFF
    04E5 3C42      CPI	R20,0xC2
    04E6 E0E1      LDI	R30,1
    04E7 075E      CPC	R21,R30
    04E8 F3C8      BCS	0x04E2
    04E9 0118      MOVW	R2,R16
    04EA 5001      SUBI	R16,1
    04EB 4010      SBCI	R17,0
    04EC 2022      TST	R2
    04ED F789      BNE	0x04DF
    04EE 2033      TST	R3
    04EF F779      BNE	0x04DF
    04F0 D067      RCALL	pop_gset1
    04F1 9508      RET
_Write_EEPROM:
  Address              --> R22
  Data                 --> R20
    04F2 D060      RCALL	push_gset2
    04F3 01B9      MOVW	R22,R18
    04F4 2F40      MOV	R20,R16
(0024) 		}
(0025) 	}
(0026) }
(0027) 
(0028) void Write_EEPROM(unsigned char Data,unsigned int Address)
(0029) {
(0030)     if(EECR&0x20) DelayMs(8);
    04F5 9BE5      SBIS	0x1C,5
    04F6 C003      RJMP	0x04FA
    04F7 E008      LDI	R16,0x8
    04F8 E010      LDI	R17,0
    04F9 DFE3      RCALL	_DelayMs
(0031)     EEARH=Address>>8;
    04FA 011B      MOVW	R2,R22
    04FB 2C23      MOV	R2,R3
    04FC 2433      CLR	R3
    04FD BA2F      OUT	0x1F,R2
(0032)     EEARL=Address&0x00ff;
    04FE 01CB      MOVW	R24,R22
    04FF 7090      ANDI	R25,0
    0500 BB8E      OUT	0x1E,R24
(0033)     EEDR=Data;
    0501 BB4D      OUT	0x1D,R20
(0034)     EECR=EECR|0x04;
    0502 9AE2      SBI	0x1C,2
(0035)     EECR=EECR|0x02;
    0503 9AE1      SBI	0x1C,1
(0036)     DelayMs(8);
    0504 E008      LDI	R16,0x8
    0505 E010      LDI	R17,0
    0506 DFD6      RCALL	_DelayMs
    0507 D03D      RCALL	pop_gset2
    0508 9508      RET
_Read_EEPROM:
  i                    --> R20
  Address              --> R20
    0509 D04B      RCALL	push_gset1
    050A 01A8      MOVW	R20,R16
(0037) }
(0038) 
(0039) unsigned char Read_EEPROM(unsigned int Address)
(0040) {
(0041)     unsigned char i;
(0042) 	
(0043)     if(EECR&0x01) DelayMs(8);
    050B 9BE0      SBIS	0x1C,0
    050C C003      RJMP	0x0510
    050D E008      LDI	R16,0x8
    050E E010      LDI	R17,0
    050F DFCD      RCALL	_DelayMs
(0044)     EEARH=Address>>8;
    0510 011A      MOVW	R2,R20
    0511 2C23      MOV	R2,R3
    0512 2433      CLR	R3
    0513 BA2F      OUT	0x1F,R2
(0045)     EEARL=Address&0x00ff;
    0514 01CA      MOVW	R24,R20
    0515 7090      ANDI	R25,0
    0516 BB8E      OUT	0x1E,R24
(0046)     EECR=EECR|0x01;
    0517 9AE0      SBI	0x1C,0
(0047)     DelayMs(10);
    0518 E00A      LDI	R16,0xA
    0519 E010      LDI	R17,0
    051A DFC2      RCALL	_DelayMs
(0048)     i=EEDR;
    051B B34D      IN	R20,0x1D
(0049)     return(i);
    051C 2F04      MOV	R16,R20
    051D D03A      RCALL	pop_gset1
    051E 9508      RET
_PhoneNum_to_EEPROM:
  ch                   --> R20
  n                    --> R22
    051F D033      RCALL	push_gset2
(0050) }
(0051) 
(0052) void PhoneNum_to_EEPROM(void)
(0053) {
(0054)     unsigned char n,ch;
(0055) 	for(n=0;n<12;n++)
    0520 2766      CLR	R22
    0521 C00C      RJMP	0x052E
(0056) 	{
(0057) 	    ch = PhoneNum[n];
    0522 E680      LDI	R24,0x60
    0523 E090      LDI	R25,0
    0524 2FE6      MOV	R30,R22
    0525 27FF      CLR	R31
    0526 0FE8      ADD	R30,R24
    0527 1FF9      ADC	R31,R25
    0528 8140      LDD	R20,Z+0
(0058) 	    Write_EEPROM(ch,n);
    0529 2F26      MOV	R18,R22
    052A 2733      CLR	R19
    052B 2F04      MOV	R16,R20
    052C DFC5      RCALL	_Write_EEPROM
    052D 9563      INC	R22
    052E 306C      CPI	R22,0xC
    052F F390      BCS	0x0522
    0530 D014      RCALL	pop_gset2
    0531 9508      RET
_EEPROM_to_PhoneNum:
  ch                   --> R20
  n                    --> R22
    0532 D020      RCALL	push_gset2
(0059) 	}
(0060) }
(0061) 
(0062) void EEPROM_to_PhoneNum(void)
(0063) {
(0064)     unsigned char n,ch;
(0065) 	for(n=0;n<12;n++)
    0533 2766      CLR	R22
    0534 C00C      RJMP	0x0541
(0066) 	{
(0067) 	    ch = Read_EEPROM(n);
    0535 2F06      MOV	R16,R22
    0536 2711      CLR	R17
    0537 DFD1      RCALL	_Read_EEPROM
    0538 2F40      MOV	R20,R16
(0068) 	    PhoneNum[n] = ch;
FILE: <library>
    0539 E680      LDI	R24,0x60
    053A E090      LDI	R25,0
    053B 2FE6      MOV	R30,R22
    053C 27FF      CLR	R31
    053D 0FE8      ADD	R30,R24
    053E 1FF9      ADC	R31,R25
    053F 8340      STD	Z+0,R20
    0540 9563      INC	R22
    0541 306C      CPI	R22,0xC
    0542 F390      BCS	0x0535
    0543 D001      RCALL	pop_gset2
    0544 9508      RET
pop_gset2:
    0545 E0E2      LDI	R30,2
    0546 C012      RJMP	pop
pop_gset3:
    0547 E0E4      LDI	R30,4
    0548 C010      RJMP	pop
pop_gset4:
    0549 E0E8      LDI	R30,0x8
    054A C00E      RJMP	pop
pop_gset5:
    054B 27EE      CLR	R30
    054C C00C      RJMP	pop
push_gset5:
    054D 92FA      ST	R15,-Y
    054E 92EA      ST	R14,-Y
push_gset4:
    054F 92DA      ST	R13,-Y
    0550 92CA      ST	R12,-Y
push_gset3:
    0551 92BA      ST	R11,-Y
    0552 92AA      ST	R10,-Y
push_gset2:
    0553 937A      ST	R23,-Y
    0554 936A      ST	R22,-Y
push_gset1:
    0555 935A      ST	R21,-Y
    0556 934A      ST	R20,-Y
    0557 9508      RET
pop_gset1:
    0558 E0E1      LDI	R30,1
pop:
    0559 9149      LD	R20,Y+
    055A 9159      LD	R21,Y+
    055B FDE0      SBRC	R30,0
    055C 9508      RET
    055D 9169      LD	R22,Y+
    055E 9179      LD	R23,Y+
    055F FDE1      SBRC	R30,1
    0560 9508      RET
    0561 90A9      LD	R10,Y+
    0562 90B9      LD	R11,Y+
    0563 FDE2      SBRC	R30,2
    0564 9508      RET
    0565 90C9      LD	R12,Y+
    0566 90D9      LD	R13,Y+
    0567 FDE3      SBRC	R30,3
    0568 9508      RET
    0569 90E9      LD	R14,Y+
    056A 90F9      LD	R15,Y+
    056B 9508      RET

⌨️ 快捷键说明

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