📄 nrf2401.lst
字号:
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 + -