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

📄 nrf2401.lst

📁 著名的RF射频芯片nRF2401应用程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0236 2EA8      MOV	R10,R24
    0237 C010      RJMP	0x0248
(0142) 		  {for (i=0;i<16;i++)
    0238 24CC      CLR	R12
    0239 C003      RJMP	0x023D
(0143) 			lcd_write_data(0x00);
    023A 2700      CLR	R16
    023B DF69      RCALL	_lcd_write_data
    023C 94C3      INC	R12
    023D 2D8C      MOV	R24,R12
    023E 3180      CPI	R24,0x10
    023F F3D0      BCS	0x023A
(0144) 			lcd_write_comm(++x);
    0240 2F86      MOV	R24,R22
    0241 5F8F      SUBI	R24,0xFF
    0242 2F68      MOV	R22,R24
    0243 2F08      MOV	R16,R24
    0244 DF75      RCALL	_lcd_write_comm
(0145) 			lcd_write_comm(y); 	 
    0245 2F04      MOV	R16,R20
    0246 DF73      RCALL	_lcd_write_comm
    0247 94A3      INC	R10
    0248 2D8A      MOV	R24,R10
    0249 3480      CPI	R24,0x40
    024A F368      BCS	0x0238
(0146) 			
(0147) 		  
(0148) 		  }
(0149) 		    
(0150) 		  lcd_write_comm(0x36);        //开启绘图功能显示 	
    024B E306      LDI	R16,0x36
    024C DF6D      RCALL	_lcd_write_comm
(0151) 		    	
(0152) 		if(hang==1)
    024D 2D8E      MOV	R24,R14
    024E 3081      CPI	R24,1
    024F F419      BNE	0x0253
(0153)     	{
(0154)     	y=0x80; 
    0250 E840      LDI	R20,0x80
(0155) 		x=0x80;}
    0251 E860      LDI	R22,0x80
    0252 C00E      RJMP	0x0261
(0156) 		else if(hang==2)
    0253 2D8E      MOV	R24,R14
    0254 3082      CPI	R24,2
    0255 F419      BNE	0x0259
(0157) 		{
(0158) 		y=0x80;
    0256 E840      LDI	R20,0x80
(0159) 		x=0x90;}
    0257 E960      LDI	R22,0x90
    0258 C008      RJMP	0x0261
(0160) 		else if(hang==3)
    0259 2D8E      MOV	R24,R14
    025A 3083      CPI	R24,3
    025B F419      BNE	0x025F
(0161) 		{y=0x88;
    025C E848      LDI	R20,0x88
(0162) 		 x=0x80;}
    025D E860      LDI	R22,0x80
    025E C002      RJMP	0x0261
(0163) 		else
(0164) 		{y=0x88;
    025F E848      LDI	R20,0x88
(0165) 		x=0x90;}
    0260 E960      LDI	R22,0x90
(0166) 		
(0167) 		lcd_write_comm(x);             //设置x 坐标 
    0261 2F06      MOV	R16,R22
    0262 DF57      RCALL	_lcd_write_comm
(0168) 		lcd_write_comm(y);             //设置y 坐标
    0263 2F04      MOV	R16,R20
    0264 DF55      RCALL	_lcd_write_comm
(0169) 
(0170) 		
(0171) 		for (j=0;j<16;j++)
    0265 24AA      CLR	R10
    0266 C010      RJMP	0x0277
(0172) 		  {for (i=0;i<16;i++)
    0267 24CC      CLR	R12
    0268 C003      RJMP	0x026C
(0173) 			lcd_write_data(0xff);
    0269 EF0F      LDI	R16,0xFF
    026A DF3A      RCALL	_lcd_write_data
    026B 94C3      INC	R12
    026C 2D8C      MOV	R24,R12
    026D 3180      CPI	R24,0x10
    026E F3D0      BCS	0x0269
(0174) 	
(0175) 			lcd_write_comm(++x);
    026F 2F86      MOV	R24,R22
    0270 5F8F      SUBI	R24,0xFF
    0271 2F68      MOV	R22,R24
    0272 2F08      MOV	R16,R24
    0273 DF46      RCALL	_lcd_write_comm
(0176) 			lcd_write_comm(y);
    0274 2F04      MOV	R16,R20
    0275 DF44      RCALL	_lcd_write_comm
    0276 94A3      INC	R10
    0277 2D8A      MOV	R24,R10
    0278 3180      CPI	R24,0x10
    0279 F368      BCS	0x0267
    027A D230      RCALL	pop_gset5
    027B 9508      RET
FILE: F:\programme\nrf2401\initial.c
(0001) //ICC-AVR application builder : 2006-8-29 21:21:04
(0002) // Target : M8
(0003) // Crystal: 8.0000Mhz
(0004) 
(0005) #include <iom8v.h>
(0006) #include <macros.h>
(0007) 
(0008) void port_init(void)
(0009) {
(0010)  DDRB  = 0x46;     //0100 0110
_port_init:
    027C E486      LDI	R24,0x46
    027D BB87      OUT	0x17,R24
(0011)  PORTB = 0x80;     //1000 0000
    027E E880      LDI	R24,0x80
    027F BB88      OUT	0x18,R24
(0012)  
(0013)  DDRC  = 0x0A;     //0000 1010
    0280 E08A      LDI	R24,0xA
    0281 BB84      OUT	0x14,R24
(0014)  PORTC = 0x00;     //m103 output only
    0282 2422      CLR	R2
    0283 BA25      OUT	0x15,R2
(0015)  
(0016)  DDRD  = 0xF0;     //1111 0000
    0284 EF80      LDI	R24,0xF0
    0285 BB81      OUT	0x11,R24
(0017)  PORTD = 0xEC;     //1110 1100
    0286 EE8C      LDI	R24,0xEC
    0287 BB82      OUT	0x12,R24
    0288 9508      RET
(0018)  
(0019) }
(0020) 
(0021) void init_devices(void)
(0022) {
(0023)  CLI(); //disable all interrupts
_init_devices:
    0289 94F8      BCLR	7
(0024)  port_init();
    028A DFF1      RCALL	_port_init
(0025)  nrf2401A_Init();
    028B D19F      RCALL	_nrf2401A_Init
(0026)  MCUCR = 0x02;
    028C E082      LDI	R24,2
    028D BF85      OUT	0x35,R24
(0027)  GICR  = 0x40;
    028E E480      LDI	R24,0x40
    028F BF8B      OUT	0x3B,R24
(0028)  TIMSK = 0x00; //timer interrupt sources
    0290 2422      CLR	R2
    0291 BE29      OUT	0x39,R2
(0029)  
(0030)  SEI(); //re-enable interrupts
    0292 9478      BSET	7
    0293 9508      RET
_main:
  i                    --> Y+3
  detect               --> Y+3
  kk                   --> R10
  KeyValue             --> R22
    0294 9722      SBIW	R28,2
FILE: F:\programme\nrf2401\main.c
(0001) #include <stdio.h>
(0002) #include <iom8v.h>
(0003) #include <macros.h>
(0004) #include "config.h"
(0005) unsigned char hz0[65]={"智能家电控制系统                输入                            "};
(0006) unsigned char KeyFlag=0;
(0007) uchar zhishi=123;
(0008) unsigned char KeyI[3];
(0009) extern uchar TxBuf[],RxBuf[];
(0010) 
(0011) void main(void)
(0012) { uchar KeyValue,kk,detect;
(0013)   uint i;
(0014)   init_devices();
    0295 DFF3      RCALL	_init_devices
(0015)   screen(hz0);
    0296 E600      LDI	R16,0x60
    0297 E010      LDI	R17,0
    0298 DF41      RCALL	_screen
    0299 C0D9      RJMP	0x0373
(0016)   
(0017)    // display_int(KeyI,0x88,3);
(0018)      
(0019)    while(1)
(0020)   { 
(0021)     RfRecvProc();  
    029A D1CE      RCALL	_RfRecvProc
(0022) 	if(KeyFlag==1)
    029B 918000A1  LDS	R24,KeyFlag
    029D 3081      CPI	R24,1
    029E F429      BNE	0x02A4
(0023) 	{
(0024) 	 KeyFlag=0;
    029F 2422      CLR	R2
    02A0 922000A1  STS	KeyFlag,R2
(0025) 	 KeyValue=KeyI[2];
    02A2 916000BB  LDS	R22,KeyI+2
(0026) 	}	
(0027) 	// displayint(0x9d,KeyValue);
(0028) 	 
(0029)    switch(KeyValue)        
    02A4 2F46      MOV	R20,R22
    02A5 2755      CLR	R21
    02A6 3649      CPI	R20,0x69
    02A7 E0E0      LDI	R30,0
    02A8 075E      CPC	R21,R30
    02A9 F409      BNE	0x02AB
    02AA C045      RJMP	0x02F0
    02AB 364B      CPI	R20,0x6B
    02AC E0E0      LDI	R30,0
    02AD 075E      CPC	R21,R30
    02AE F409      BNE	0x02B0
    02AF C06D      RJMP	0x031D
    02B0 364C      CPI	R20,0x6C
    02B1 E0E0      LDI	R30,0
    02B2 075E      CPC	R21,R30
    02B3 F409      BNE	0x02B5
    02B4 C098      RJMP	0x034D
    02B5 3740      CPI	R20,0x70
    02B6 E0E0      LDI	R30,0
    02B7 075E      CPC	R21,R30
    02B8 F151      BEQ	0x02E3
    02B9 3742      CPI	R20,0x72
    02BA E0E0      LDI	R30,0
    02BB 075E      CPC	R21,R30
    02BC F409      BNE	0x02BE
    02BD C044      RJMP	0x0302
    02BE 3743      CPI	R20,0x73
    02BF E0E0      LDI	R30,0
    02C0 075E      CPC	R21,R30
    02C1 F409      BNE	0x02C3
    02C2 C070      RJMP	0x0333
    02C3 3744      CPI	R20,0x74
    02C4 E0E0      LDI	R30,0
    02C5 075E      CPC	R21,R30
    02C6 F409      BNE	0x02C8
    02C7 C07C      RJMP	0x0344
    02C8 3745      CPI	R20,0x75
    02C9 E0E0      LDI	R30,0
    02CA 075E      CPC	R21,R30
    02CB F409      BNE	0x02CD
    02CC C089      RJMP	0x0356
    02CD 374A      CPI	R20,0x7A
    02CE E0E0      LDI	R30,0
    02CF 075E      CPC	R21,R30
    02D0 F409      BNE	0x02D2
    02D1 C042      RJMP	0x0314
    02D2 E78A      LDI	R24,0x7A
    02D3 E090      LDI	R25,0
    02D4 1784      CP	R24,R20
    02D5 0795      CPC	R25,R21
    02D6 F034      BLT	0x02DD
    02D7 354A      CPI	R20,0x5A
    02D8 E0E0      LDI	R30,0
    02D9 075E      CPC	R21,R30
    02DA F409      BNE	0x02DC
    02DB C08C      RJMP	0x0368
    02DC C095      RJMP	0x0372
    02DD 374D      CPI	R20,0x7D
    02DE E0E0      LDI	R30,0
    02DF 075E      CPC	R21,R30
    02E0 F409      BNE	0x02E2
    02E1 C07D      RJMP	0x035F
    02E2 C08F      RJMP	0x0372
(0030)    {
(0031)     case 112:kk=0;  displayint(0x98,kk);
    02E3 24AA      CLR	R10
    02E4 2D2A      MOV	R18,R10
    02E5 2733      CLR	R19
    02E6 E908      LDI	R16,0x98
    02E7 E010      LDI	R17,0
    02E8 DE29      RCALL	_displayint
(0032) 	                nrf2401A_SendData();
    02E9 D169      RCALL	_nrf2401A_SendData
(0033) 					delay(2000);
    02EA ED00      LDI	R16,0xD0
    02EB E017      LDI	R17,7
    02EC DE8D      RCALL	_delay
(0034) 					nrf2401A_RxOn();
    02ED D133      RCALL	_nrf2401A_RxOn
(0035) 	                KeyValue=0; break;
    02EE 2766      CLR	R22
    02EF C083      RJMP	0x0373
(0036)     case 105:kk=1;displayint(0x98,kk);
    02F0 24AA      CLR	R10
    02F1 94A3      INC	R10
    02F2 2D2A      MOV	R18,R10
    02F3 2733      CLR	R19
    02F4 E908      LDI	R16,0x98
    02F5 E010      LDI	R17,0
    02F6 DE1B      RCALL	_displayint
(0037) 	              display_int(RxBuf,0x80,12);KeyValue=0;break;
    02F7 E08C      LDI	R24,0xC
    02F8 E090      LDI	R25,0
    02F9 8399      STD	Y+1,R25
    02FA 8388      STD	Y+0,R24
    02FB E820      LDI	R18,0x80
    02FC E030      LDI	R19,0
    02FD EB0C      LDI	R16,0xBC
    02FE E010      LDI	R17,0
    02FF DE59      RCALL	_display_int
    0300 2766      CLR	R22
    0301 C071      RJMP	0x0373
(0038) 	case 114:kk=2;displayint(0x98,kk);
    0302 E082      LDI	R24,2
    0303 2EA8      MOV	R10,R24
    0304 2F28      MOV	R18,R24
    0305 2733      CLR	R19
    0306 E908      LDI	R16,0x98
    0307 E010      LDI	R17,0
    0308 DE09      RCALL	_displayint
(0039) 	              display_int(RxBuf+12,0x80,12);KeyValue=0;break;
    0309 E08C      LDI	R24,0xC
    030A E090      LDI	R25,0
    030B 8399      STD	Y+1,R25
    030C 8388      STD	Y+0,R24
    030D E820      LDI	R18,0x80
    030E E030      LDI	R19,0
    030F EC08      LDI	R16,0xC8
    0310 E010      LDI	R17,0
    0311 DE47      RCALL	_display_int
    0312 2766      CLR	R22
    0313 C05F      RJMP	0x0373
(0040) 	case 122:kk=3;displayint(0x98,kk);KeyValue=0;break;
    0314 E083      LDI	R24,3
    0315 2EA8      MOV	R10,R24
    0316 2F28      MOV	R18,R24
    0317 2733      CLR	R19
    0318 E908      LDI	R16,0x98
    0319 E010      LDI	R17,0
    031A DDF7      RCALL	_displayint
    031B 2766      CLR	R22
    031C C056      RJMP	0x0373
(0041) 	case 107:kk=4;displayint(0x98,kk);zhishi++;
    031D E084      LDI	R24,4
    031E 2EA8      MOV	R10,R24
    031F 2F28      MOV	R18,R24
    0320 2733      CLR	R19
    0321 E908      LDI	R16,0x98
    0322 E010      LDI	R17,0
    0323 DDEE      RCALL	_displayint
    0324 918000A2  LDS	R24,zhishi
    0326 5F8F      SUBI	R24,0xFF
    0327 938000A2  STS	zhishi,R24
(0042) 	               displayint(0x9a,zhishi);
    0329 2F28      MOV	R18,R24
    032A 2733      CLR	R19
    032B E90A      LDI	R16,0x9A
    032C E010      LDI	R17,0
    032D DDE4      RCALL	_displayint
(0043) 				   nrf2401A_WR(0xa5);
    032E EA05      LDI	R16,0xA5
    032F E010      LDI	R17,0
    0330 D091      RCALL	_nrf2401A_WR
(0044) 	               KeyValue=0;break; 
    0331 2766      CLR	R22
    0332 C040      RJMP	0x0373
(0045) 	                                                       
(0046) 	case 115:kk=5;displayint(0x98,kk);
    0333 E085      LDI	R24,5
    0334 2EA8      MOV	R10,R24
    0335 2F28      MOV	R18,R24
    0336 2733      CLR	R19
    0337 E908      LDI	R16,0x98
    0338 E010      LDI	R17,0
    0339 DDD8      RCALL	_displayint
(0047) 	               zhishi=nrf2401A_RD();
    033A D0A1      RCALL	_nrf2401A_RD
    033B 930000A2  STS	zhishi,R16
(0048) 				   displayint(0x9a,zhishi);
    033D 2F20      MOV	R18,R16
    033E 2733      CLR	R19
    033F E90A      LDI	R16,0x9A
    0340 E010      LDI	R17,0
    0341 DDD0      RCALL	_displayint
(0049) 				   KeyValue=0;break;

⌨️ 快捷键说明

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