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

📄 cc2420.lis

📁 该程序通过调试
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 01B0 4068              ori R20,128
 01B2                   .dbline 217
 01B2           ;   AddrL<<=6;
 01B2 660F              lsl R22
 01B4 660F              lsl R22
 01B6 660F              lsl R22
 01B8 660F              lsl R22
 01BA 660F              lsl R22
 01BC 660F              lsl R22
 01BE                   .dbline 218
 01BE           ;   AddrL&=0XDF;      //读写操作位置0,表示写操作
 01BE 6F7D              andi R22,223
 01C0                   .dbline 220
 01C0           ;   
 01C0           ;   enable_spi();         //使能SPI口 
 01C0 0E940000          xcall _enable_spi
 01C4                   .dbline 221
 01C4           ;   statuevalue=SpiWrite(AddrH);  
 01C4 042F              mov R16,R20
 01C6 0E940000          xcall _SpiWrite
 01CA 402F              mov R20,R16
 01CC                   .dbline 222
 01CC           ;   SpiWrite(AddrL);
 01CC 062F              mov R16,R22
 01CE 0E940000          xcall _SpiWrite
 01D2                   .dbline 224
 01D2           ;   
 01D2           ;   SpiWrite(p_Data); 
 01D2 0C81              ldd R16,y+4
 01D4 0E940000          xcall _SpiWrite
 01D8                   .dbline 226
 01D8           ;    
 01D8           ;   disable_spi();      //禁止SPI口 
 01D8 0E940000          xcall _disable_spi
 01DC                   .dbline 227
 01DC           ;   return statuevalue;
 01DC 042F              mov R16,R20
 01DE                   .dbline -2
 01DE           L24:
 01DE 0E940000          xcall pop_gset2
 01E2                   .dbline 0 ; func end
 01E2 0895              ret
 01E4                   .dbsym r statuevalue 20 c
 01E4                   .dbsym l p_Data 4 c
 01E4                   .dbsym r AddrL 22 c
 01E4                   .dbsym r AddrH 20 c
 01E4                   .dbend
 01E4                   .dbfunc e Read_RAM _Read_RAM fc
 01E4           ;    statuevalue -> R20
 01E4           ;              i -> R22
 01E4           ;         p_Data -> R10,R11
 01E4           ;       Data_Num -> R12
 01E4           ;          AddrL -> R22
 01E4           ;          AddrH -> R20
                        .even
 01E4           _Read_RAM::
 01E4 0E940000          xcall push_gset4
 01E8 622F              mov R22,R18
 01EA 402F              mov R20,R16
 01EC C884              ldd R12,y+8
 01EE AA84              ldd R10,y+10
 01F0 BB84              ldd R11,y+11
 01F2                   .dbline -1
 01F2                   .dbline 240
 01F2           ; }
 01F2           ; 
 01F2           ; /*******************************************
 01F2           ; *函数功能:读RAM
 01F2           ; *输入参数:p_Data:存储数据的缓存首地址;
 01F2           ;            Data_Num:要读取的字节数
 01F2           ;                  AddrH:在选定的RAM存储块中确定RAM地址
 01F2           ;                  AddrL:选择RAM存储块
 01F2           ; *输出参数:无
 01F2           ; *返 回 值:状态寄存器的值
 01F2           ; ********************************************/
 01F2           ; unsigned char Read_RAM(unsigned char AddrH,unsigned char AddrL,unsigned char Data_Num,unsigned char *p_Data)  
 01F2           ; {
 01F2                   .dbline 242
 01F2           ;   unsigned char statuevalue,i;
 01F2           ;   AddrH|=0X80;      //访问RAM位置1
 01F2 4068              ori R20,128
 01F4                   .dbline 243
 01F4           ;   AddrL<<=6;
 01F4 660F              lsl R22
 01F6 660F              lsl R22
 01F8 660F              lsl R22
 01FA 660F              lsl R22
 01FC 660F              lsl R22
 01FE 660F              lsl R22
 0200                   .dbline 244
 0200           ;   AddrL|=0X20;      //读写操作位置1,表示读操作
 0200 6062              ori R22,32
 0202                   .dbline 246
 0202           ;   
 0202           ;   enable_spi();         //使能SPI口 
 0202 0E940000          xcall _enable_spi
 0206                   .dbline 247
 0206           ;   statuevalue=SpiWrite(AddrH);  
 0206 042F              mov R16,R20
 0208 0E940000          xcall _SpiWrite
 020C 402F              mov R20,R16
 020E                   .dbline 248
 020E           ;   SpiWrite(AddrL);
 020E 062F              mov R16,R22
 0210 0E940000          xcall _SpiWrite
 0214                   .dbline 250
 0214           ;   
 0214           ;   for (i=0;i<Data_Num;i++)
 0214 6627              clr R22
 0216 09C0              xjmp L29
 0218           L26:
 0218                   .dbline 251
 0218                   .dbline 252
 0218 0FEF              ldi R16,255
 021A 0E940000          xcall _SpiWrite
 021E E62F              mov R30,R22
 0220 FF27              clr R31
 0222 EA0D              add R30,R10
 0224 FB1D              adc R31,R11
 0226 0083              std z+0,R16
 0228                   .dbline 253
 0228           L27:
 0228                   .dbline 250
 0228 6395              inc R22
 022A           L29:
 022A                   .dbline 250
 022A 6C15              cp R22,R12
 022C A8F3              brlo L26
 022E                   .dbline 255
 022E           ;   {
 022E           ;     *(p_Data+i)=SpiWrite(0xff);
 022E           ;   }
 022E           ;   
 022E           ;   disable_spi();      //禁止SPI口 
 022E 0E940000          xcall _disable_spi
 0232                   .dbline 256
 0232           ;   return statuevalue;
 0232 042F              mov R16,R20
 0234                   .dbline -2
 0234           L25:
 0234 0E940000          xcall pop_gset4
 0238                   .dbline 0 ; func end
 0238 0895              ret
 023A                   .dbsym r statuevalue 20 c
 023A                   .dbsym r i 22 c
 023A                   .dbsym r p_Data 10 pc
 023A                   .dbsym r Data_Num 12 c
 023A                   .dbsym r AddrL 22 c
 023A                   .dbsym r AddrH 20 c
 023A                   .dbend
 023A                   .dbfunc e Read_RAM_Byte _Read_RAM_Byte fc
 023A           ;      readvalue -> R20
 023A           ;          AddrL -> R20
 023A           ;          AddrH -> R22
                        .even
 023A           _Read_RAM_Byte::
 023A 0E940000          xcall push_gset2
 023E 422F              mov R20,R18
 0240 602F              mov R22,R16
 0242                   .dbline -1
 0242                   .dbline 267
 0242           ; }
 0242           ; 
 0242           ; /*******************************************
 0242           ; *函数功能:读一字节RAM
 0242           ; *输入参数:AddrH:在选定的RAM存储块中确定RAM地址
 0242           ;                  AddrL:选择RAM存储块
 0242           ; *输出参数:无
 0242           ; *返 回 值:读取的数据值
 0242           ; ********************************************/
 0242           ; unsigned char Read_RAM_Byte(unsigned char AddrH,unsigned char AddrL)
 0242           ; {
 0242                   .dbline 269
 0242           ;   unsigned char readvalue;
 0242           ;   AddrH|=0X80;      //访问RAM位置1
 0242 6068              ori R22,128
 0244                   .dbline 270
 0244           ;   AddrL<<=6;
 0244 440F              lsl R20
 0246 440F              lsl R20
 0248 440F              lsl R20
 024A 440F              lsl R20
 024C 440F              lsl R20
 024E 440F              lsl R20
 0250                   .dbline 271
 0250           ;   AddrL|=0X20;      //读写操作位置1,表示读操作
 0250 4062              ori R20,32
 0252                   .dbline 273
 0252           ;   
 0252           ;   enable_spi();         //使能SPI口 
 0252 0E940000          xcall _enable_spi
 0256                   .dbline 274
 0256           ;   SpiWrite(AddrH);  
 0256 062F              mov R16,R22
 0258 0E940000          xcall _SpiWrite
 025C                   .dbline 275
 025C           ;   SpiWrite(AddrL);                         
 025C 042F              mov R16,R20
 025E 0E940000          xcall _SpiWrite
 0262                   .dbline 277
 0262           ;   
 0262           ;   readvalue=SpiWrite(0xff); 
 0262 0FEF              ldi R16,255
 0264 0E940000          xcall _SpiWrite
 0268 402F              mov R20,R16
 026A                   .dbline 279
 026A           ;   
 026A           ;   disable_spi();      //禁止SPI口 
 026A 0E940000          xcall _disable_spi
 026E                   .dbline 280
 026E           ;   return readvalue;
 026E 042F              mov R16,R20
 0270                   .dbline -2
 0270           L30:
 0270 0E940000          xcall pop_gset2
 0274                   .dbline 0 ; func end
 0274 0895              ret
 0276                   .dbsym r readvalue 20 c
 0276                   .dbsym r AddrL 20 c
 0276                   .dbsym r AddrH 22 c
 0276                   .dbend
 0276                   .dbfunc e PowerOff _PowerOff fV
                        .even
 0276           _PowerOff::
 0276                   .dbline -1
 0276                   .dbline 290
 0276           ; }
 0276           ; 
 0276           ; /*******************************************
 0276           ; *函数功能:关闭电压校准器模式
 0276           ; *输入参数:无
 0276           ; *输出参数:无
 0276           ; *返 回 值:无
 0276           ; ********************************************/
 0276           ; void PowerOff(void)
 0276           ; {
 0276                   .dbline 291
 0276           ;   PORTE &=~(1<<VREGEN);     //禁止电压校准器   
 0276 1B98              cbi 0x3,3
 0278                   .dbline -2
 0278           L31:
 0278                   .dbline 0 ; func end
 0278 0895              ret
 027A                   .dbend
 027A                   .dbfunc e PwOff_PwDown _PwOff_PwDown fV
                        .even
 027A           _PwOff_PwDown::
 027A 2197              sbiw R28,1
 027C                   .dbline -1
 027C                   .dbline 301
 027C           ; }
 027C           ; 
 027C           ; /*******************************************
 027C           ; *函数功能:从电压校准器关闭模式转换到掉电模式 
 027C           ; *输入参数:无
 027C           ; *输出参数:无
 027C           ; *返 回 值:无
 027C           ; ********************************************/
 027C           ; void PwOff_PwDown(void)  
 027C           ; {
 027C                   .dbline 302
 027C           ;   PORTE |=1<<VREGEN;     //启动电压校准器  
 027C 1B9A              sbi 0x3,3
 027E                   .dbline 303
 027E           ;   Delay600us();  
 027E 0E940000          xcall _Delay600us
 0282                   .dbline 305
 0282           ;   
 0282           ;   enable_spi();     //使能SPI口 
 0282 0E940000          xcall _enable_spi
 0286                   .dbline 306
 0286           ;   Write_ConfigureWord(MAIN,0x78,0x00);  //先将reset位设置为低  
 0286 2224              clr R2
 0288 2882              std y+0,R2
 028A 28E7              ldi R18,120
 028C 00E1              ldi R16,16
 028E CFDE              xcall _Write_ConfigureWord
 0290                   .dbline 307
 0290           ;   Write_ConfigureWord(MAIN,0xf8,0x00);  //先将reset位设置为高,完成复位过程
 0290 2224              clr R2
 0292 2882              std y+0,R2
 0294 28EF              ldi R18,248
 0296 00E1              ldi R16,16
 0298 CADE              xcall _Write_ConfigureWord
 029A                   .dbline 308
 029A           ;   disable_spi();      //禁止SPI口 
 029A 0E940000          xcall _disable_spi
 029E                   .dbline -2
 029E           L32:
 029E 2196              adiw R28,1
 02A0                   .dbline 0 ; func end
 02A0 0895              ret
 02A2                   .dbend
 02A2                   .dbfunc e AllStates_PwDown _AllStates_PwDown fV
                        .even
 02A2           _AllStates_PwDown::
 02A2                   .dbline -1
 02A2                   .dbline 319
 02A2           ;   
 02A2           ; }
 02A2           ; 
 02A2           ; /*******************************************
 02A2           ; *函数功能:其他任何模式转换到掉电模式 
 02A2           ; *输入参数:无
 02A2           ; *输出参数:无
 02A2           ; *返 回 值:无

⌨️ 快捷键说明

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