📄 nrf.lst
字号:
__text_start:
__start:
2E E5CF LDI R28,0x5F
2F E0D4 LDI R29,4
30 BFCD OUT 0x3D,R28
31 BFDE OUT 0x3E,R29
32 51CE SUBI R28,0x1E
33 40D0 SBCI R29,0
34 EA0A LDI R16,0xAA
35 8308 STD Y+0,R16
36 2400 CLR R0
37 E6E8 LDI R30,0x68
38 E0F0 LDI R31,0
39 E010 LDI R17,0
3A 36E8 CPI R30,0x68
3B 07F1 CPC R31,R17
3C F011 BEQ 0x003F
3D 9201 ST R0,Z+
3E CFFB RJMP 0x003A
3F 8300 STD Z+0,R16
40 E5E4 LDI R30,0x54
41 E0F0 LDI R31,0
42 E6A0 LDI R26,0x60
43 E0B0 LDI R27,0
44 E010 LDI R17,0
45 E000 LDI R16,0
46 BF0B OUT 0x3B,R16
47 35EC CPI R30,0x5C
48 07F1 CPC R31,R17
49 F021 BEQ 0x004E
4A 95C8 LPM
4B 9631 ADIW R30,1
4C 920D ST R0,X+
4D CFF9 RJMP 0x0047
4E 940E 0132 CALL _main
_exit:
50 CFFF RJMP _exit
FILE: C:\DOCUME~1\Administrator\桌面\nrftest\nrf_main.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #include "nrf905.h"
(0004) #include "lcd.h"
(0005) #include "delay.h"
(0006)
(0007) void led_on( void )
(0008) {
(0009) DDRD |= ( 1 << PD0 );
_led_on:
51 9A88 SBI 0x11,0
(0010) PORTD &=~ ( 1 << PB0 );
52 9890 CBI 0x12,0
53 9508 RET
(0011) }
(0012) void led_of( void )
(0013) {
(0014) DDRD |= ( 1 << PB0 );
_led_of:
54 9A88 SBI 0x11,0
(0015) PORTD |= ( 1 << PB0 );
55 9A90 SBI 0x12,0
56 9508 RET
(0016) }
(0017)
(0018) void port_key_init( void )
(0019) {
(0020) DDRA = 0X00;
_port_key_init:
57 2422 CLR R2
58 BA2A OUT 0x1A,R2
(0021) PORTA = 0XFF;
59 EF8F LDI R24,0xFF
5A BB8B OUT 0x1B,R24
5B 9508 RET
_get_key:
5C 934A ST R20,-Y
5D 935A ST R21,-Y
5E 9721 SBIW R28,1
(0022) }
(0023)
(0024) void get_key( void )
(0025) {
(0026) switch( PINA & 0xff )
5F B349 IN R20,0x19
60 2755 CLR R21
61 7050 ANDI R21,0
62 3D4F CPI R20,0xDF
63 E0E0 LDI R30,0
64 075E CPC R21,R30
65 F409 BNE 0x0067
66 C067 RJMP 0x00CE
67 ED8F LDI R24,0xDF
68 E090 LDI R25,0
69 1784 CP R24,R20
6A 0795 CPC R25,R21
6B F084 BLT 0x007C
6C 374F CPI R20,0x7F
6D E0E0 LDI R30,0
6E 075E CPC R21,R30
6F F409 BNE 0x0071
70 C071 RJMP 0x00E2
71 374F CPI R20,0x7F
72 E0E0 LDI R30,0
73 075E CPC R21,R30
74 F40C BGE 0x0076
75 C075 RJMP 0x00EB
76 3B4F CPI R20,0xBF
77 E0E0 LDI R30,0
78 075E CPC R21,R30
79 F409 BNE 0x007B
7A C05D RJMP 0x00D8
7B C06F RJMP 0x00EB
7C 3E4F CPI R20,0xEF
7D E0E0 LDI R30,0
7E 075E CPC R21,R30
7F F409 BNE 0x0081
80 C043 RJMP 0x00C4
81 3E4F CPI R20,0xEF
82 E0E0 LDI R30,0
83 075E CPC R21,R30
84 F40C BGE 0x0086
85 C065 RJMP 0x00EB
86 3F47 CPI R20,0xF7
87 E0E0 LDI R30,0
88 075E CPC R21,R30
89 F181 BEQ 0x00BA
8A 3F4B CPI R20,0xFB
8B E0E0 LDI R30,0
8C 075E CPC R21,R30
8D F111 BEQ 0x00B0
8E 3F4D CPI R20,0xFD
8F E0E0 LDI R30,0
90 075E CPC R21,R30
91 F0A1 BEQ 0x00A6
92 3F4E CPI R20,0xFE
93 E0E0 LDI R30,0
94 075E CPC R21,R30
95 F031 BEQ 0x009C
96 3F4F CPI R20,0xFF
97 E0E0 LDI R30,0
98 075E CPC R21,R30
99 F409 BNE 0x009B
9A C050 RJMP 0x00EB
9B C04F RJMP 0x00EB
(0027) {
(0028) case 0b11111111: break;
(0029) case 0b11111110: nrf905_SendData('0'); LCD_write_char( 1, 8, '0' ); break;
9C E300 LDI R16,0x30
9D 940E 01DA CALL _nrf905_SendData
9F E380 LDI R24,0x30
A0 8388 STD Y+0,R24
A1 E028 LDI R18,0x8
A2 E001 LDI R16,1
A3 940E 02B3 CALL _LCD_write_char
A5 C045 RJMP 0x00EB
(0030) case 0b11111101: nrf905_SendData('1'); LCD_write_char( 1, 8, '1' ); break;
A6 E301 LDI R16,0x31
A7 940E 01DA CALL _nrf905_SendData
A9 E381 LDI R24,0x31
AA 8388 STD Y+0,R24
AB E028 LDI R18,0x8
AC E001 LDI R16,1
AD 940E 02B3 CALL _LCD_write_char
AF C03B RJMP 0x00EB
(0031) case 0b11111011: nrf905_SendData('2'); LCD_write_char( 1, 8, '2' ); break;
B0 E302 LDI R16,0x32
B1 940E 01DA CALL _nrf905_SendData
B3 E382 LDI R24,0x32
B4 8388 STD Y+0,R24
B5 E028 LDI R18,0x8
B6 E001 LDI R16,1
B7 940E 02B3 CALL _LCD_write_char
B9 C031 RJMP 0x00EB
(0032) case 0b11110111: nrf905_SendData('3'); LCD_write_char( 1, 8, '3' ); break;
BA E303 LDI R16,0x33
BB 940E 01DA CALL _nrf905_SendData
BD E383 LDI R24,0x33
BE 8388 STD Y+0,R24
BF E028 LDI R18,0x8
C0 E001 LDI R16,1
C1 940E 02B3 CALL _LCD_write_char
C3 C027 RJMP 0x00EB
(0033) case 0b11101111: nrf905_SendData('4'); LCD_write_char( 1, 8, '4' ); break;
C4 E304 LDI R16,0x34
C5 940E 01DA CALL _nrf905_SendData
C7 E384 LDI R24,0x34
C8 8388 STD Y+0,R24
C9 E028 LDI R18,0x8
CA E001 LDI R16,1
CB 940E 02B3 CALL _LCD_write_char
CD C01D RJMP 0x00EB
(0034) case 0b11011111: nrf905_SendData('5'); LCD_write_char( 1, 8, '5' ); break;
CE E305 LDI R16,0x35
CF 940E 01DA CALL _nrf905_SendData
D1 E385 LDI R24,0x35
D2 8388 STD Y+0,R24
D3 E028 LDI R18,0x8
D4 E001 LDI R16,1
D5 940E 02B3 CALL _LCD_write_char
D7 C013 RJMP 0x00EB
(0035) case 0b10111111: nrf905_SendData('6'); LCD_write_char( 1, 8, '6' ); break;
D8 E306 LDI R16,0x36
D9 940E 01DA CALL _nrf905_SendData
DB E386 LDI R24,0x36
DC 8388 STD Y+0,R24
DD E028 LDI R18,0x8
DE E001 LDI R16,1
DF 940E 02B3 CALL _LCD_write_char
E1 C009 RJMP 0x00EB
(0036) case 0b01111111: nrf905_SendData('7'); LCD_write_char( 1, 8, '7' ); break;
E2 E307 LDI R16,0x37
E3 940E 01DA CALL _nrf905_SendData
E5 E387 LDI R24,0x37
E6 8388 STD Y+0,R24
E7 E028 LDI R18,0x8
E8 E001 LDI R16,1
E9 940E 02B3 CALL _LCD_write_char
EB 9621 ADIW R28,1
EC 9159 LD R21,Y+
ED 9149 LD R20,Y+
EE 9508 RET
(0037) }
(0038) }
(0039)
(0040) void led_port_init( void )
(0041) {
(0042) DDRA = 0xff;
_led_port_init:
EF EF8F LDI R24,0xFF
F0 BB8A OUT 0x1A,R24
(0043) PORTA = 0XFF;
F1 BB8B OUT 0x1B,R24
F2 9508 RET
_led_onon:
t --> R16
F3 934A ST R20,-Y
F4 935A ST R21,-Y
(0044) }
(0045)
(0046) void led_onon( uchar t )
(0047) {
(0048) switch( t )
F5 2F40 MOV R20,R16
F6 2755 CLR R21
F7 3340 CPI R20,0x30
F8 E0E0 LDI R30,0
F9 075E CPC R21,R30
FA F0E9 BEQ 0x0118
FB 3341 CPI R20,0x31
FC E0E0 LDI R30,0
FD 075E CPC R21,R30
FE F0E1 BEQ 0x011B
FF 3342 CPI R20,0x32
100 E0E0 LDI R30,0
101 075E CPC R21,R30
102 F0D9 BEQ 0x011E
103 3343 CPI R20,0x33
104 E0E0 LDI R30,0
105 075E CPC R21,R30
106 F0D1 BEQ 0x0121
107 3344 CPI R20,0x34
108 E0E0 LDI R30,0
109 075E CPC R21,R30
10A F0C9 BEQ 0x0124
10B 3345 CPI R20,0x35
10C E0E0 LDI R30,0
10D 075E CPC R21,R30
10E F0C1 BEQ 0x0127
10F 3346 CPI R20,0x36
110 E0E0 LDI R30,0
111 075E CPC R21,R30
112 F0B9 BEQ 0x012A
113 3347 CPI R20,0x37
114 E0E0 LDI R30,0
115 075E CPC R21,R30
116 F0B1 BEQ 0x012D
117 C017 RJMP 0x012F
(0049) {
(0050) case '0': PORTA = 0B11111110; break;
118 EF8E LDI R24,0xFE
119 BB8B OUT 0x1B,R24
11A C014 RJMP 0x012F
(0051) case '1': PORTA = 0B11111101; break;
11B EF8D LDI R24,0xFD
11C BB8B OUT 0x1B,R24
11D C011 RJMP 0x012F
(0052) case '2': PORTA = 0B11111011; break;
11E EF8B LDI R24,0xFB
11F BB8B OUT 0x1B,R24
120 C00E RJMP 0x012F
(0053) case '3': PORTA = 0B11110111; break;
121 EF87 LDI R24,0xF7
122 BB8B OUT 0x1B,R24
123 C00B RJMP 0x012F
(0054) case '4': PORTA = 0B11101111; break;
124 EE8F LDI R24,0xEF
125 BB8B OUT 0x1B,R24
126 C008 RJMP 0x012F
(0055) case '5': PORTA = 0B11011111; break;
127 ED8F LDI R24,0xDF
128 BB8B OUT 0x1B,R24
129 C005 RJMP 0x012F
(0056) case '6': PORTA = 0B10111111; break;
12A EB8F LDI R24,0xBF
12B BB8B OUT 0x1B,R24
12C C002 RJMP 0x012F
(0057) case '7': PORTA = 0B01111111; break;
12D E78F LDI R24,0x7F
12E BB8B OUT 0x1B,R24
(0058) default : break;
12F 9159 LD R21,Y+
130 9149 LD R20,Y+
131 9508 RET
_main:
r_tmp --> R10
132 9722 SBIW R28,2
(0059) }
(0060) }
(0061)
(0062) #define receive
(0063) //#define send
(0064) void main( void )
(0065) {
(0066) uchar r_tmp;
(0067) port_key_init();
133 DF23 RCALL _port_key_init
(0068) led_port_init();
134 DFBA RCALL _led_port_init
(0069) LCD_init();
135 940E 0273 CALL _LCD_init
(0070) SPI_Init();
137 940E 018F CALL _SPI_Init
(0071) nrf905_Init();
139 940E 01B9 CALL _nrf905_Init
(0072)
(0073) #ifdef send
(0074)
(0075) LCD_write_string( 2, 3, "fasong" );
(0076) while( 1 ) get_key();
(0077)
(0078) #endif
(0079)
(0080) #ifdef receive
(0081) LCD_write_string( 2, 3, "jieshou" );
13B E680 LDI R24,0x60
13C E090 LDI R25,0
13D 8399 STD Y+1,R25
13E 8388 STD Y+0,R24
13F E023 LDI R18,3
140 E002 LDI R16,2
141 940E 029E CALL _LCD_write_string
143 C00E RJMP 0x0152
(0082)
(0083) while( 1 )
(0084) {
(0085) led_of();
144 DF0F RCALL _led_of
145 C00A RJMP 0x0150
(0086) //led_on();
(0087) while( PINB & 0b00001000 )
(0088) {
(0089) /*
(0090) led_on();
(0091) r_tmp = nrf905_ReadData();
(0092) LCD_write_char( 1, 6, r_tmp );
(0093) delay_nms( 1 );
(0094) */
(0095) r_tmp = nrf905_ReadData();
146 940E 01E4 CALL _nrf905_ReadData
148 2EA0 MOV R10,R16
(0096) LCD_write_char( 1, 6, r_tmp );
149 82A8 STD Y+0,R10
14A E026 LDI R18,6
14B E001 LDI R16,1
14C 940E 02B3 CALL _LCD_write_char
(0097) led_onon( r_tmp );
14E 2D0A MOV R16,R10
14F DFA3 RCALL _led_onon
150 99B3 SBIC 0x16,3
151 CFF4 RJMP 0x0146
152 CFF1 RJMP 0x0144
153 9622 ADIW R28,2
154 9508 RET
_DelayMs:
i --> R10
ms --> R12
155 92AA ST R10,-Y
156 92CA ST R12,-Y
157 2EC0 MOV R12,R16
FILE: C:\DOCUME~1\Administrator\桌面\nrftest\nrf905.C
(0001) #define _nrf905_c_
(0002) #include "nrf905.h"
(0003) #include "LCD.h"
(0004)
(0005) //延时--------------------------------------------------
(0006) void DelayMs( uchar ms )
(0007) {
(0008) char i;
(0009)
(0010) for( i = 0; i < ms; i++ )
158 24AA CLR R10
159 C004 RJMP 0x015E
(0011) {
(0012) DelayUs( 1000 );
15A EE08 LDI R16,0xE8
15B E013 LDI R17,3
15C D006 RCALL _DelayUs
15D 94A3 INC R10
15E 14AC CP R10,R12
15F F3D0 BCS 0x015A
(0013) }
(0014)
(0015) return;
160 90C9 LD R12,Y+
161 90A9 LD R10,Y+
162 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -