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