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

📄 main.lis

📁 CC1000通信
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00A8                   .dbline -2
 00A8           L11:
 00A8 0E940000          xcall pop_gset1
 00AC                   .dbline 0 ; func end
 00AC 0895              ret
 00AE                   .dbsym r MainValue 20 c
 00AE                   .dbend
 00AE                   .dbfunc e init_usart _init_usart fV
                        .even
 00AE           _init_usart::
 00AE                   .dbline -1
 00AE                   .dbline 164
 00AE           ;    
 00AE           ; }
 00AE           ; 
 00AE           ; void init_usart(void)
 00AE           ; {
 00AE                   .dbline 166
 00AE           ; 
 00AE           ;       UCSR0B =  0x00;                                                                
 00AE 2224              clr R2
 00B0 2AB8              out 0xa,R2
 00B2                   .dbline 167
 00B2           ;       UCSR0A =  0x00;
 00B2 2BB8              out 0xb,R2
 00B4                   .dbline 168
 00B4           ;       UCSR0C =  0x06;
 00B4 86E0              ldi R24,6
 00B6 80939500          sts 149,R24
 00BA                   .dbline 169
 00BA           ;       UBRR0L =  0x67;       //BOUDRATE 2400                                                         
 00BA 87E6              ldi R24,103
 00BC 89B9              out 0x9,R24
 00BE                   .dbline 170
 00BE           ;       UBRR0H =  0x00;                                                                 
 00BE 20929000          sts 144,R2
 00C2                   .dbline 171
 00C2           ;       UCSR0B =  0x18;
 00C2 88E1              ldi R24,24
 00C4 8AB9              out 0xa,R24
 00C6                   .dbline -2
 00C6           L12:
 00C6                   .dbline 0 ; func end
 00C6 0895              ret
 00C8                   .dbend
 00C8                   .dbfunc e Init _Init fV
 00C8           ;      MainValue -> R20
 00C8           ;           addr -> R22
                        .even
 00C8           _Init::
 00C8 0E940000          xcall push_gset2
 00CC                   .dbline -1
 00CC                   .dbline 175
 00CC           ; }
 00CC           ; 
 00CC           ; void Init()
 00CC           ; {
 00CC                   .dbline 180
 00CC           ;       char MainValue;
 00CC           ;       char addr;
 00CC           ; 
 00CC           ;       
 00CC           ;       WriteToCC1000Register(CC1000_MAIN,0x3F);    // Put CC1000 into power-down
 00CC 2FE3              ldi R18,63
 00CE 0027              clr R16
 00D0 0E940000          xcall _WriteToCC1000Register
 00D4                   .dbline 181
 00D4           ;       WriteToCC1000Register(CC1000_PA_POW,0x00);  // Turn off PA to minimise current draw
 00D4 2227              clr R18
 00D6 0BE0              ldi R16,11
 00D8 0E940000          xcall _WriteToCC1000Register
 00DC                   .dbline 183
 00DC           ;       
 00DC           ;       MainValue=ReadFromCC1000Register(CC1000_MAIN);
 00DC 0027              clr R16
 00DE 0E940000          xcall _ReadFromCC1000Register
 00E2 402F              mov R20,R16
 00E4                   .dbline 184
 00E4           ;       WriteToCC1000Register(CC1000_MAIN,MainValue & 0xFE);         // Reset CC1000   原先是WriteToCC1000Register(CC1000_MAIN,MainValue & 0xFA);by yu
 00E4 242F              mov R18,R20
 00E6 2E7F              andi R18,254
 00E8 0027              clr R16
 00EA 0E940000          xcall _WriteToCC1000Register
 00EE                   .dbline 185
 00EE           ;       WriteToCC1000Register(CC1000_MAIN,MainValue | 0x01); 
 00EE 242F              mov R18,R20
 00F0 2160              ori R18,1
 00F2 0027              clr R16
 00F4 0E940000          xcall _WriteToCC1000Register
 00F8                   .dbline 189
 00F8           ;     
 00F8           ;       
 00F8           ; 
 00F8           ;       WriteToCC1000Register(CC1000_MAIN,0x3A);
 00F8 2AE3              ldi R18,58
 00FA 0027              clr R16
 00FC 0E940000          xcall _WriteToCC1000Register
 0100                   .dbline 191
 0100           ; 
 0100           ;       delay(38);
 0100 06E2              ldi R16,38
 0102 10E0              ldi R17,0
 0104 7DDF              xcall _delay
 0106                   .dbline 193
 0106           ; 
 0106           ;       for(addr = 1; addr <= 0x1c; addr ++)
 0106 61E0              ldi R22,1
 0108 0BC0              xjmp L17
 010A           L14:
 010A                   .dbline 194
 010A 80E0              ldi R24,<_ConfigurationRX-1
 010C 90E0              ldi R25,>_ConfigurationRX-1
 010E E62F              mov R30,R22
 0110 FF27              clr R31
 0112 E80F              add R30,R24
 0114 F91F              adc R31,R25
 0116 2491              lpm R18,Z
 0118 062F              mov R16,R22
 011A 0E940000          xcall _WriteToCC1000Register
 011E           L15:
 011E                   .dbline 193
 011E 6395              inc R22
 0120           L17:
 0120                   .dbline 193
 0120 8CE1              ldi R24,28
 0122 8617              cp R24,R22
 0124 90F7              brsh L14
 0126                   .dbline 197
 0126           ;               WriteToCC1000Register(addr, ConfigurationRX[addr - 1]);
 0126           ;               //WriteToCC1000Register(addr, ConfigurationRX[addr - 1]);
 0126           ; /////////////////////////////////////////by yu ////////////////////////////////////////////// 
 0126           ;       WriteToCC1000Register(0x1c,0x00);   //仿造Pic 里的void ConfigureCC1000()
 0126 2227              clr R18
 0128 0CE1              ldi R16,28
 012A 0E940000          xcall _WriteToCC1000Register
 012E                   .dbline 199
 012E           ; ///////////////////////////////////////////////////////////////////////////////////////
 012E           ;       for(addr = 0x40; addr <= 0x46; addr ++)
 012E 60E4              ldi R22,64
 0130 0BC0              xjmp L22
 0132           L19:
 0132                   .dbline 200
 0132 80E0              ldi R24,<_ConfigurationTX+20-64
 0134 90E0              ldi R25,>_ConfigurationTX+20-64
 0136 E62F              mov R30,R22
 0138 FF27              clr R31
 013A E80F              add R30,R24
 013C F91F              adc R31,R25
 013E 2491              lpm R18,Z
 0140 062F              mov R16,R22
 0142 0E940000          xcall _WriteToCC1000Register
 0146           L20:
 0146                   .dbline 199
 0146 6395              inc R22
 0148           L22:
 0148                   .dbline 199
 0148 86E4              ldi R24,70
 014A 8617              cp R24,R22
 014C 90F7              brsh L19
 014E                   .dbline 274
 014E           ;               WriteToCC1000Register(addr, ConfigurationTX[addr - 0x40 + 0x14]); 
 014E           ;               //WriteToCC1000Register(addr, ConfigurationRX[addr - 0x40 + 0x14]); 
 014E           ;               //原先是WriteToCC1000Register(addr, Configuration[addr - 0x40 + 0x1C]);
 014E           ; /*
 014E           ; //////////////////////////////添加小郭的程序////////////////////////////////////////////////////////////
 014E           ; 
 014E           ;  WriteToCC1000Register(CC1000_MAIN,0x3a);          //RXTX=0;F_REQ=0(RX:Register A ,TX:Register B);RX_PD=1;TX_PD=1;FS_PD=1;CORE_PD=0;BIAS_PD=1;REST_N=0
 014E           ;  WriteToCC1000Register(CC1000_PA_POW,0x00); 
 014E           ;  WriteToCC1000Register(CC1000_MAIN,0x3b);       
 014E           ;  //cal_complete=ReadfromCC1000Register(CC1000_MAIN);
 014E           ; // cal_complete=0;
 014E           ; // WriteToCC1000Register(CC1000_MAIN,cal_complete);
 014E           ;  delay(35);
 014E           ; // WriteToCC1000Register(CC1000_MAIN,0x01);
 014E           ; // writes 24-bit frequency value used for RX to 433.9164 MHz.
 014E           ; // Check CC1000 data sheet for equations used to find
 014E           ; // 0x582000.
 014E           ;  WriteToCC1000Register(CC1000_FREQ_2A,0x58);       
 014E           ;  WriteToCC1000Register(CC1000_FREQ_1A,0x20);
 014E           ;  WriteToCC1000Register(CC1000_FREQ_0A,0x00);
 014E           ; // writes 24-bit frequency value used for TX to 433.9164 MHz.
 014E           ; // Check CC1000 data sheet for equations used to find
 014E           ; // 0x448856.
 014E           ;  WriteToCC1000Register(CC1000_FREQ_2B,0x42);       
 014E           ;  WriteToCC1000Register(CC1000_FREQ_1B,0x14);
 014E           ;  WriteToCC1000Register(CC1000_FREQ_0B,0x9C);
 014E           ; // sets frequency separation between 0 value and 1 value
 014E           ; //设定误码率
 014E           ;  WriteToCC1000Register(CC1000_FSEP1,0x02);
 014E           ;  WriteToCC1000Register(CC1000_FSEP0,0x80);
 014E           ;  WriteToCC1000Register(CC1000_CURRENT,0x81);
 014E           ; // sets some internal current levels, and enables RSSI output to pin
 014E           ;  WriteToCC1000Register(CC1000_FRONT_END,0x12);
 014E           ;  WriteToCC1000Register(CC1000_PA_POW,0xff);
 014E           ; // sets the PLL reference divider to divide by 6
 014E           ;  WriteToCC1000Register(CC1000_PLL,0x18);   
 014E           ; // sets External LNA control lock indicator to output on the CHP_OUT pin                  
 014E           ;  WriteToCC1000Register(CC1000_LOCK,0x10);
 014E           ;  WriteToCC1000Register(CC1000_CAL,0x26);   
 014E           ; // sets threshold level for peak detector (not used in this design) 
 014E           ;  WriteToCC1000Register(CC1000_MODEM2,0x8E);    
 014E           ; // sets the averaging filter to free-running and controlled by writes
 014E           ; // to bit 4 of this register.
 014E           ; // Sets averaging filter sensitivity to .6dB worst-case loss of sensitivity
 014E           ;  WriteToCC1000Register(CC1000_MODEM1,0x6F); 
 014E           ; // baud rate to 2.4 k, Manchester, and crystal freq. to 11.0592 MHz
 014E           ;  WriteToCC1000Register(CC1000_MODEM0,0x2B);            
 014E           ; // sets capacitor array values for RX and TX
 014E           ;  WriteToCC1000Register(CC1000_MATCH,0x70); 
 014E           ; // disables dithering and data shaping  
 014E           ;  WriteToCC1000Register(CC1000_FSCTRL,0x01); 
 014E           ; // sets prescaling to nominal values  
 014E           ; 
 014E           ;  WriteToCC1000Register(CC1000_FSHAPE7,0x1c);
 014E           ;  WriteToCC1000Register(CC1000_FSHAPE6,0x16);
 014E           ;  WriteToCC1000Register(CC1000_FSHAPE5,0x10);
 014E           ;  WriteToCC1000Register(CC1000_FSHAPE4,0x0a);
 014E           ;  WriteToCC1000Register(CC1000_FSHAPE3,0x06);
 014E           ;  WriteToCC1000Register(CC1000_FSHAPE2,0x03);
 014E           ;  WriteToCC1000Register(CC1000_FSHAPE1,0x01);
 014E           ;  WriteToCC1000Register(CC1000_FSDELAY,0x1f);
 014E           ;  
 014E           ;  WriteToCC1000Register(CC1000_PRESCALER,0x00);
 014E           ; 
 014E           ;  WriteToCC1000Register(CC1000_TEST6,0x10);
 014E           ;  WriteToCC1000Register(CC1000_TEST5,0x08);
 014E           ;  WriteToCC1000Register(CC1000_TEST4,0x25);
 014E           ;  WriteToCC1000Register(CC1000_TEST3,0x04);
 014E           ;  WriteToCC1000Register(CC1000_TEST2,0x00);
 014E           ;  WriteToCC1000Register(CC1000_TEST1,0x00);
 014E           ;  WriteToCC1000Register(CC1000_TEST0,0x00);
 014E           ;  //////////////////////////////////////////////////////////////////////////////////////////
 014E           ; */
 014E           ;       
 014E           ;       WakeUpCC1000ToRX(0x44,0x60);
 014E 20E6              ldi R18,96
 0150 04E4              ldi R16,68
 0152 0E940000          xcall _WakeUpCC1000ToRX
 0156           L25:
 0156                   .dbline 278
 0156           L26:
 0156                   .dbline 278
 0156           ;       //设置DIO为输入
 0156           ;       //PORTE = 0x00;
 0156           ;     //DDRE  = 0x00;
 0156           ;       while(!CalibrateCC1000());
 0156 0E940000          xcall _CalibrateCC1000
 015A 0023              tst R16
 015C E1F3              breq L25
 015E                   .dbline 281
 015E           ;       //////////////////////
 015E           ;       
 015E           ;       WakeUpCC1000ToTX(0x81,0x48);     //PIC的程序与数据手册上的算法正好反了,先RX,再TX的
 015E 28E4              ldi R18,72
 0160 01E8              ldi R16,129
 0162 0E940000          xcall _WakeUpCC1000ToTX
 0166           L28:
 0166                   .dbline 286
 0166           L29:
 0166                   .dbline 286
 0166           ;       //设置DIO为输出
 0166           ;       // PORTE = 0x00;
 0166           ;     // DDRE  = 0x40;
 0166           ;       
 0166           ;       while(!CalibrateCC1000());
 0166 0E940000          xcall _CalibrateCC1000
 016A 0023              tst R16
 016C E1F3              breq L28
 016E                   .dbline 319
 016E           ;       /////////////////
 016E           ;       //SetupCC1000TX(0x44,0x60);
 016E           ;       
 016E           ; 
 016E           ; /*
 016E           ;       WriteToCC1000Register(CC1000_MAIN,0x3F);    // 
 016E           ;       WriteToCC1000Register(CC1000_PA_POW,0x00);  // Power down
 016E           ; 
 016E           ;       MainValue=ReadFromCC1000Register(CC1000_MAIN);
 016E           ;       WriteToCC1000Register(CC1000_MAIN,MainValue & 0xFB);         // CORE_PD=0
 016E           ; 
 016E           ;       delay(38);
 016E           ; 
 016E           ;       MainValue=ReadFromCC1000Register(CC1000_MAIN);
 016E           ;       WriteToCC1000Register(CC1000_MAIN,MainValue & 0xFD);         // BLAS_PD=0
 016E           ; 
 016E           ;       delay(12);
 016E           ; 
 016E           ;       MainValue=ReadFromCC1000Register(CC1000_MAIN);
 016E           ;       WriteToCC1000Register(CC1000_MAIN,(MainValue & 0xE7) | 0xC0);         //RXTX=1,F_REG=1,TX_PD=0,FS_PD=0 
 016E           ;       WriteToCC1000Register(CC1000_PA_POW,0x00);
 016E           ;       WriteToCC1000Register(CC1000_CURRENT, 0x81);
 016E           ;       WriteToCC1000Register(CC1000_PLL, 0x48);
 016E           ; 
 016E           ;       delay(12);
 016E           ;       WriteToCC1000Register(CC1000_PA_POW,0x80);
 016E           ;       delay(2);       
 016E           ;       */
 016E           ;       
 016E           ;       //1-----------
 016E           ;       //  SetupCC1000RX(0x44,0x60);
 016E           ;       //2-------------------
 016E           ;       MainValue=ReadFromCC1000Register(CC1000_MAIN);
 016E 0027              clr R16
 0170 0E940000          xcall _ReadFromCC1000Register
 0174 402F              mov R20,R16
 0176                   .dbline 320
 0176           ;       WriteToCC1000Register(CC1000_MAIN,MainValue & 0xFB);         // CORE_PD=0
 0176 242F              mov R18,R20
 0178 2B7F              andi R18,251
 017A 0027              clr R16
 017C 0E940000          xcall _WriteToCC1000Register
 0180                   .dbline 321
 0180           ;     delay(38);
 0180 06E2              ldi R16,38
 0182 10E0              ldi R17,0
 0184 3DDF              xcall _delay
 0186                   .dbline 322
 0186           ;     MainValue=ReadFromCC1000Register(CC1000_MAIN);
 0186 0027              clr R16
 0188 0E940000          xcall _ReadFromCC1000Register
 018C 402F              mov R20,R16
 018E                   .dbline 323
 018E           ;       WriteToCC1000Register(CC1000_MAIN,MainValue & 0xFD);         // BLAS_PD=0

⌨️ 快捷键说明

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