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

📄 new.lst

📁 包含无线收发模块 NREF905的所有功能库函数 本库函数与外部函数接口简单易用
💻 LST
📖 第 1 页 / 共 5 页
字号:
    01CE 934A      ST	R20,-Y
    01CF 0181      MOVW	R16,R2
    01D0 0192      MOVW	R18,R4
    01D1 D563      RCALL	div32u
    01D2 E04A      LDI	R20,0xA
    01D3 E050      LDI	R21,0
    01D4 E060      LDI	R22,0
    01D5 E070      LDI	R23,0
    01D6 937A      ST	R23,-Y
    01D7 936A      ST	R22,-Y
    01D8 935A      ST	R21,-Y
    01D9 934A      ST	R20,-Y
    01DA D55C      RCALL	mod32u
    01DB 0118      MOVW	R2,R16
    01DC 0129      MOVW	R4,R18
    01DD E340      LDI	R20,0x30
    01DE E050      LDI	R21,0
    01DF E060      LDI	R22,0
    01E0 E070      LDI	R23,0
    01E1 0E24      ADD	R2,R20
    01E2 1E35      ADC	R3,R21
    01E3 1E46      ADC	R4,R22
    01E4 1E57      ADC	R5,R23
    01E5 0181      MOVW	R16,R2
    01E6 0192      MOVW	R18,R4
    01E7 D277      RCALL	_lcd_write_data
(0037)  lcd_write_data(temp%10+0x30);
    01E8 E04A      LDI	R20,0xA
    01E9 E050      LDI	R21,0
    01EA E060      LDI	R22,0
    01EB E070      LDI	R23,0
    01EC 01FE      MOVW	R30,R28
    01ED 8020      LDD	R2,Z+0
    01EE 8031      LDD	R3,Z+1
    01EF 8042      LDD	R4,Z+2
    01F0 8053      LDD	R5,Z+3
    01F1 937A      ST	R23,-Y
    01F2 936A      ST	R22,-Y
    01F3 935A      ST	R21,-Y
    01F4 934A      ST	R20,-Y
    01F5 0181      MOVW	R16,R2
    01F6 0192      MOVW	R18,R4
    01F7 D53F      RCALL	mod32u
    01F8 0118      MOVW	R2,R16
    01F9 0129      MOVW	R4,R18
    01FA E340      LDI	R20,0x30
    01FB E050      LDI	R21,0
    01FC E060      LDI	R22,0
    01FD E070      LDI	R23,0
    01FE 0E24      ADD	R2,R20
    01FF 1E35      ADC	R3,R21
    0200 1E46      ADC	R4,R22
    0201 1E57      ADC	R5,R23
    0202 0181      MOVW	R16,R2
    0203 0192      MOVW	R18,R4
    0204 D25A      RCALL	_lcd_write_data
    0205 9660      ADIW	R28,0x10
    0206 D5B1      RCALL	pop_gset3
    0207 9508      RET
_main:
  detect               --> Y+3
  kk                   --> R22
  KeyValue             --> R10
    0208 9722      SBIW	R28,2
(0038) }
(0039) 
(0040) void main(void)
(0041) { unsigned char KeyValue,kk,detect;
(0042)    CLI();                     //disable all interrupts
    0209 94F8      BCLR	7
(0043)   
(0044)   spi_init();
    020A DE76      RCALL	_spi_init
(0045)  
(0046)      
(0047)   DDRB=0x6f;                //0110 1111b
    020B E68F      LDI	R24,0x6F
    020C BB87      OUT	0x17,R24
(0048)   PORTB=0xd4;               //1101 0100b
    020D ED84      LDI	R24,0xD4
    020E BB88      OUT	0x18,R24
(0049)   //SET(PORTB,CSN);
(0050)   
(0051)   DDRC=0x00;
    020F 2422      CLR	R2
    0210 BA24      OUT	0x14,R2
(0052)   PORTC=0x00;
    0211 BA25      OUT	0x15,R2
(0053)   
(0054)   DDRD=0xf8;               //1111 1000b
    0212 EF88      LDI	R24,0xF8
    0213 BB81      OUT	0x11,R24
(0055)   PORTD=0xfc;              //1111 1100b
    0214 EF8C      LDI	R24,0xFC
    0215 BB82      OUT	0x12,R24
(0056)   
(0057)   timer0_init();
    0216 D49F      RCALL	_timer0_init
(0058)   
(0059)   MCUCR = 0x02;
    0217 E082      LDI	R24,2
    0218 BF85      OUT	0x35,R24
(0060)   GICR  = 0x40;
    0219 E480      LDI	R24,0x40
    021A BF8B      OUT	0x3B,R24
(0061)   TIMSK = 0x01; //timer interrupt sources
    021B E081      LDI	R24,1
    021C BF89      OUT	0x39,R24
(0062)  
(0063)   
(0064)  // DDRD=0xff;
(0065)   // PORTD=0xf8;
(0066)   
(0067)  // MCUCR = 0x02;
(0068)  // GICR  = 0x40;
(0069)   //TIMSK = 0x00; //timer interrupt sources
(0070)   
(0071)  // nrf905_Init();
(0072)   SEI(); //re-enable interrupts
    021D 9478      BSET	7
(0073)   screen(hz0);
    021E E600      LDI	R16,0x60
    021F E010      LDI	R17,0
    0220 D273      RCALL	_screen
    0221 C0D7      RJMP	0x02F9
(0074)    
(0075)    while(1)
(0076)   {
(0077)    
(0078)   //  nrf905_RxOn(); 
(0079)    // detect=RfRecvProc();
(0080) 	
(0081)    // lcd_write_comm(0x9f);
(0082)    // lcd_write_data(detect);
(0083)     displayint(0x8a,value_T);
    0222 912000C6  LDS	R18,value_T
    0224 2733      CLR	R19
    0225 E80A      LDI	R16,0x8A
    0226 E010      LDI	R17,0
    0227 D1AB      RCALL	_displayint
(0084) 	displayint(0x8c,times);
    0228 912000A1  LDS	R18,times
    022A 2733      CLR	R19
    022B E80C      LDI	R16,0x8C
    022C E010      LDI	R17,0
    022D D1A5      RCALL	_displayint
(0085) 	print_temp(0x90);
    022E E900      LDI	R16,0x90
    022F DE54      RCALL	_print_temp
(0086) 	//if(detect=='Y')
(0087) 	//{detect=='N';	}
(0088) 	
(0089)     if(KeyFlag==1)
    0230 918000C7  LDS	R24,KeyFlag
    0232 3081      CPI	R24,1
    0233 F429      BNE	0x0239
(0090) 	{
(0091) 	 KeyValue=KeyV;
    0234 90A000C8  LDS	R10,KeyV
(0092) 	 KeyFlag=0;
    0236 2422      CLR	R2
    0237 922000C7  STS	KeyFlag,R2
(0093) 	}
(0094)    switch(KeyValue)        //此时相当按一次键处理两次程序
    0239 2D4A      MOV	R20,R10
    023A 2755      CLR	R21
    023B 3649      CPI	R20,0x69
    023C E0E0      LDI	R30,0
    023D 075E      CPC	R21,R30
    023E F409      BNE	0x0240
    023F C04A      RJMP	0x028A
    0240 364B      CPI	R20,0x6B
    0241 E0E0      LDI	R30,0
    0242 075E      CPC	R21,R30
    0243 F409      BNE	0x0245
    0244 C05F      RJMP	0x02A4
    0245 364C      CPI	R20,0x6C
    0246 E0E0      LDI	R30,0
    0247 075E      CPC	R21,R30
    0248 F409      BNE	0x024A
    0249 C074      RJMP	0x02BE
    024A 3740      CPI	R20,0x70
    024B E0E0      LDI	R30,0
    024C 075E      CPC	R21,R30
    024D F151      BEQ	0x0278
    024E 3742      CPI	R20,0x72
    024F E0E0      LDI	R30,0
    0250 075E      CPC	R21,R30
    0251 F409      BNE	0x0253
    0252 C03F      RJMP	0x0292
    0253 3743      CPI	R20,0x73
    0254 E0E0      LDI	R30,0
    0255 075E      CPC	R21,R30
    0256 F409      BNE	0x0258
    0257 C054      RJMP	0x02AC
    0258 3744      CPI	R20,0x74
    0259 E0E0      LDI	R30,0
    025A 075E      CPC	R21,R30
    025B F409      BNE	0x025D
    025C C058      RJMP	0x02B5
    025D 3745      CPI	R20,0x75
    025E E0E0      LDI	R30,0
    025F 075E      CPC	R21,R30
    0260 F409      BNE	0x0262
    0261 C06D      RJMP	0x02CF
    0262 374A      CPI	R20,0x7A
    0263 E0E0      LDI	R30,0
    0264 075E      CPC	R21,R30
    0265 F409      BNE	0x0267
    0266 C033      RJMP	0x029A
    0267 E78A      LDI	R24,0x7A
    0268 E090      LDI	R25,0
    0269 1784      CP	R24,R20
    026A 0795      CPC	R25,R21
    026B F034      BLT	0x0272
    026C 354A      CPI	R20,0x5A
    026D E0E0      LDI	R30,0
    026E 075E      CPC	R21,R30
    026F F409      BNE	0x0271
    0270 C080      RJMP	0x02F1
    0271 C087      RJMP	0x02F9
    0272 374D      CPI	R20,0x7D
    0273 E0E0      LDI	R30,0
    0274 075E      CPC	R21,R30
    0275 F409      BNE	0x0277
    0276 C069      RJMP	0x02E0
    0277 C081      RJMP	0x02F9
(0095)    {
(0096)     case 112:kk=0;displayint(0x98,kk);
    0278 2766      CLR	R22
    0279 2F26      MOV	R18,R22
    027A 2733      CLR	R19
    027B E908      LDI	R16,0x98
    027C E010      LDI	R17,0
    027D D155      RCALL	_displayint
(0097) 	              nrf905_SpiTest();
    027E D306      RCALL	_nrf905_SpiTest
(0098) 	              display_int(RxBuf,0x80,10);
    027F E08A      LDI	R24,0xA
    0280 E090      LDI	R25,0
    0281 8399      STD	Y+1,R25
    0282 8388      STD	Y+0,R24
    0283 E820      LDI	R18,0x80
    0284 E030      LDI	R19,0
    0285 EC09      LDI	R16,0xC9
    0286 E010      LDI	R17,0
    0287 D18F      RCALL	_display_int
(0099) 	              KeyValue=0;   break;
    0288 24AA      CLR	R10
    0289 C06F      RJMP	0x02F9
(0100)     case 105:kk=1;displayint(0x98,kk);KeyValue=0;break;
    028A E061      LDI	R22,1
    028B 2F26      MOV	R18,R22
    028C 2733      CLR	R19
    028D E908      LDI	R16,0x98
    028E E010      LDI	R17,0
    028F D143      RCALL	_displayint
    0290 24AA      CLR	R10
    0291 C067      RJMP	0x02F9
(0101) 	case 114:kk=2;displayint(0x98,kk);KeyValue=0;break;
    0292 E062      LDI	R22,2
    0293 2F26      MOV	R18,R22
    0294 2733      CLR	R19
    0295 E908      LDI	R16,0x98
    0296 E010      LDI	R17,0
    0297 D13B      RCALL	_displayint
    0298 24AA      CLR	R10
    0299 C05F      RJMP	0x02F9
(0102) 	case 122:kk=3;displayint(0x98,kk);print_temp(0x9a);KeyValue=0;break;
    029A E063      LDI	R22,3
    029B 2F26      MOV	R18,R22
    029C 2733      CLR	R19
    029D E908      LDI	R16,0x98
    029E E010      LDI	R17,0
    029F D133      RCALL	_displayint
    02A0 E90A      LDI	R16,0x9A
    02A1 DDE2      RCALL	_print_temp
    02A2 24AA      CLR	R10
    02A3 C055      RJMP	0x02F9
(0103) 	case 107:kk=4;displayint(0x98,kk);//RfSendProc();1122445645633312345
    02A4 E064      LDI	R22,4
    02A5 2F26      MOV	R18,R22
    02A6 2733      CLR	R19
    02A7 E908      LDI	R16,0x98
    02A8 E010      LDI	R17,0
    02A9 D129      RCALL	_displayint
(0104) 	                                  KeyValue=0;break;
    02AA 24AA      CLR	R10
    02AB C04D      RJMP	0x02F9
(0105) 	case 115:kk=5;displayint(0x98,kk);nrf905_SendData();KeyValue=0;break;
    02AC E065      LDI	R22,5
    02AD 2F26      MOV	R18,R22
    02AE 2733      CLR	R19
    02AF E908      LDI	R16,0x98
    02B0 E010      LDI	R17,0
    02B1 D121      RCALL	_displayint
    02B2 D30B      RCALL	_nrf905_SendData
    02B3 24AA      CLR	R10
    02B4 C044      RJMP	0x02F9
(0106) 	case 116:kk=6;displayint(0x98,kk);nrf905_ReadData();KeyValue=0;break;
    02B5 E066      LDI	R22,6
    02B6 2F26      MOV	R18,R22
    02B7 2733      CLR	R19
    02B8 E908      LDI	R16,0x98
    02B9 E010      LDI	R17,0
    02BA D118      RCALL	_displayint
    02BB D30E      RCALL	_nrf905_ReadData
    02BC 24AA      CLR	R10
    02BD C03B      RJMP	0x02F9
(0107) 	case 108:kk=7;displayint(0x98,kk);display_int(RxBuf,0x80,12);KeyValue=0;break;
    02BE E067      LDI	R22,7
    02BF 2F26      MOV	R18,R22
    02C0 2733      CLR	R19
    02C1 E908      LDI	R16,0x98
    02C2 E010      LDI	R17,0
    02C3 D10F      RCALL	_displayint
    02C4 E08C      LDI	R24,0xC
    02C5 E090      LDI	R25,0
    02C6 8399      STD	Y+1,R25
    02C7 8388      STD	Y+0,R24
    02C8 E820      LDI	R18,0x80
    02C9 E030      LDI	R19,0
    02CA EC09      LDI	R16,0xC9
    02CB E010      LDI	R17,0
    02CC D14A      RCALL	_display_int
    02CD 24AA      CLR	R10
    02CE C02A      RJMP	0x02F9
(0108) 	case 117:kk=8;displayint(0x98,kk);display_int(RxBuf+12,0x80,12);KeyValue=0;break;
    02CF E068      LDI	R22,0x8
    02D0 2F26      MOV	R18,R22
    02D1 2733      CLR	R19
    02D2 E908      LDI	R16,0x98
    02D3 E010      LDI	R17,0
    02D4 D0FE      RCALL	_displayint
    02D5 E08C      LDI	R24,0xC
    02D6 E090      LDI	R25,0
    02D7 8399      STD	Y+1,R25
    02D8 8388      STD	Y+0,R24
    02D9 E820      LDI	R18,0x80
    02DA E030      LDI	R19,0
    02DB ED05      LDI	R16,0xD5
    02DC E010      LDI	R17,0
    02DD D139      RCALL	_display_int
    02DE 24AA      CLR	R10
    02DF C019      RJMP	0x02F9
(0109) 	case 125:kk=9;displayint(0x98,kk);display_int(RxBuf+24,0x80,8);KeyValue=0;break;
    02E0 E069      LDI	R22,0x9
    02E1 2F26      MOV	R18,R22
    02E2 2733      CLR	R19
    02E3 E908      LDI	R16,0x98
    02E4 E010      LDI	R17,0
    02E5 D0ED      RCALL	_displayint
    02E6 E088      LDI	R24,0x8
    02E7 E090      LDI	R25,0
    02E8 8399      STD	Y+1,R25
    02E9 8388      STD	Y+0,R24
    02EA E820      LDI	R18,0x80
    02EB E030      LDI	R19,0
    02EC EE01      LDI	R16,0xE1
    02ED E010      LDI	R17,0
    02EE D128      RCALL	_display_int
    02EF 24AA      CLR	R10
    02F0 C008      RJMP	0x02F9
(0110) 	case 90: kk='k'; KeyValue=0;
    02F1 E66B      LDI	R22,0x6B
    02F2 24AA      CLR	R10
(0111) 	                 //display_int(RxBuf,0x80,12);
(0112) 	                 lcd_write_comm(0x98);
    02F3 E908      LDI	R16,0x98
    02F4 E010      LDI	R17,0
    02F5 D17E      RCALL	_lcd_write_comm
(0113) 	                 lcd_write_data('k');
    02F6 E60B      LDI	R16,0x6B
    02F7 E010      LDI	R17,0
    02F8 D166      RCALL	_lcd_write_data
    02F9 CF28      RJMP	0x0222
    02FA 9622      ADIW	R28,2
    02FB 9508      RET
_int0_isr:
    02FC 922A      ST	R2,-Y
    02FD 923A      ST	R3,-Y
    02FE 938A      ST	R24,-Y
    02FF 939A      ST	R25,-Y
    0300 B62F      IN	R2,0x3F
    0301 922A      ST	R2,-Y
(0114) 	               break;
(0115) 	default :break;
(0116)    }  
(0117)   
(0118)   
(0119)   }
(0120) }
(0121)   
(0122)   
(0123) #pragma interrupt_handler int0_isr:2
(0124) void int0_isr(void)
(0125) {
(0126)  static unsigned char IntNum;
(0127)  times++;
    0302 918000A1  LDS	R24,times
    0304 5F8F      SUBI	R24,0xFF
    0305 938000A1  STS	times,R24
(0128)    if((IntNum>0)&&(IntNum<9))
    0307 2422      CLR	R2
    0308 903000C4  LDS	R3,IntNum
    030A 1423      CP	R2,R3
    030B F470      BCC	0x031A
    030C 2D83      MOV	R24,R3
    030D 3089      CPI	R24,0x9
    030E F458      BCC	0x031A

⌨️ 快捷键说明

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