📄 no2.lst
字号:
220 01C7 MOVW R24,R14
221 3081 CPI R24,1
222 E0E0 LDI R30,0
223 079E CPC R25,R30
224 F069 BEQ 0x0232
225 3082 CPI R24,2
226 E0E0 LDI R30,0
227 079E CPC R25,R30
228 F069 BEQ 0x0236
229 3083 CPI R24,3
22A E0E0 LDI R30,0
22B 079E CPC R25,R30
22C F069 BEQ 0x023A
22D 3084 CPI R24,4
22E E0E0 LDI R30,0
22F 079E CPC R25,R30
230 F061 BEQ 0x023D
231 C00D RJMP 0x023F
(0283) {case 1:
(0284) time_flag = 1; break;
232 2400 CLR R0
233 9403 INC R0
234 820C STD Y+4,R0
235 C009 RJMP 0x023F
(0285) case 2:
(0286) alarm_flag= 1; break;
236 2400 CLR R0
237 9403 INC R0
238 820D STD Y+5,R0
239 C005 RJMP 0x023F
(0287) case 3:
(0288) m=1; break;
23A 24CC CLR R12
23B 94C3 INC R12
23C C002 RJMP 0x023F
(0289) case 4:
(0290) n=1; break;
23D 24AA CLR R10
23E 94A3 INC R10
(0291) default:
(0292) ;
(0293)
(0294) }
(0295)
(0296) //时间设置
(0297) Lcd_Character_16X16( time_flag, 0, 0, time_logo[3] );
23F EC80 LDI R24,0xC0
240 E090 LDI R25,0
241 839B STD Y+3,R25
242 838A STD Y+2,R24
243 2422 CLR R2
244 8228 STD Y+0,R2
245 2722 CLR R18
246 810C LDD R16,Y+4
247 DF33 RCALL _Lcd_Character_16X16
(0298) Lcd_Character_16X16( time_flag, 0, 16, time_logo[1] );
248 E880 LDI R24,0x80
249 E090 LDI R25,0
24A 839B STD Y+3,R25
24B 838A STD Y+2,R24
24C E180 LDI R24,0x10
24D 8388 STD Y+0,R24
24E 2722 CLR R18
24F 810C LDD R16,Y+4
250 DF2A RCALL _Lcd_Character_16X16
(0299) Lcd_Character_16X16( time_flag, 0, 32, time_logo[2] );
251 EA80 LDI R24,0xA0
252 E090 LDI R25,0
253 839B STD Y+3,R25
254 838A STD Y+2,R24
255 E280 LDI R24,0x20
256 8388 STD Y+0,R24
257 2722 CLR R18
258 810C LDD R16,Y+4
259 DF21 RCALL _Lcd_Character_16X16
(0300) Lcd_Character_16X16( time_flag, 0, 48, menu[0] );
25A E080 LDI R24,0
25B E091 LDI R25,1
25C 839B STD Y+3,R25
25D 838A STD Y+2,R24
25E E380 LDI R24,0x30
25F 8388 STD Y+0,R24
260 2722 CLR R18
261 810C LDD R16,Y+4
262 DF18 RCALL _Lcd_Character_16X16
(0301) //闹钟设置
(0302) Lcd_Character_16X16( alarm_flag, 2, 0, time_logo[3] );
263 EC80 LDI R24,0xC0
264 E090 LDI R25,0
265 839B STD Y+3,R25
266 838A STD Y+2,R24
267 2422 CLR R2
268 8228 STD Y+0,R2
269 E022 LDI R18,2
26A 810D LDD R16,Y+5
26B DF0F RCALL _Lcd_Character_16X16
(0303) Lcd_Character_16X16( alarm_flag, 2, 16, time_logo[1] );
26C E880 LDI R24,0x80
26D E090 LDI R25,0
26E 839B STD Y+3,R25
26F 838A STD Y+2,R24
270 E180 LDI R24,0x10
271 8388 STD Y+0,R24
272 E022 LDI R18,2
273 810D LDD R16,Y+5
274 DF06 RCALL _Lcd_Character_16X16
(0304) Lcd_Character_16X16( alarm_flag, 2, 32, time_logo[2] );
275 EA80 LDI R24,0xA0
276 E090 LDI R25,0
277 839B STD Y+3,R25
278 838A STD Y+2,R24
279 E280 LDI R24,0x20
27A 8388 STD Y+0,R24
27B E022 LDI R18,2
27C 810D LDD R16,Y+5
27D DEFD RCALL _Lcd_Character_16X16
(0305) Lcd_Character_16X16( alarm_flag, 2, 48, menu[1] );
27E E280 LDI R24,0x20
27F E091 LDI R25,1
280 839B STD Y+3,R25
281 838A STD Y+2,R24
282 E380 LDI R24,0x30
283 8388 STD Y+0,R24
284 E022 LDI R18,2
285 810D LDD R16,Y+5
286 DEF4 RCALL _Lcd_Character_16X16
(0306)
(0307) Lcd_Character_16X16( m, 4, 0, time_logo[3] );
287 EC80 LDI R24,0xC0
288 E090 LDI R25,0
289 839B STD Y+3,R25
28A 838A STD Y+2,R24
28B 2422 CLR R2
28C 8228 STD Y+0,R2
28D E024 LDI R18,4
28E 2D0C MOV R16,R12
28F DEEB RCALL _Lcd_Character_16X16
(0308) Lcd_Character_16X16( m, 4, 16, time_logo[1] );
290 E880 LDI R24,0x80
291 E090 LDI R25,0
292 839B STD Y+3,R25
293 838A STD Y+2,R24
294 E180 LDI R24,0x10
295 8388 STD Y+0,R24
296 E024 LDI R18,4
297 2D0C MOV R16,R12
298 DEE2 RCALL _Lcd_Character_16X16
(0309) Lcd_Character_16X16( m, 4, 32, time_logo[2] );
299 EA80 LDI R24,0xA0
29A E090 LDI R25,0
29B 839B STD Y+3,R25
29C 838A STD Y+2,R24
29D E280 LDI R24,0x20
29E 8388 STD Y+0,R24
29F E024 LDI R18,4
2A0 2D0C MOV R16,R12
2A1 DED9 RCALL _Lcd_Character_16X16
(0310) Lcd_Character_16X16( m, 4, 48, menu[2] );
2A2 E480 LDI R24,0x40
2A3 E091 LDI R25,1
2A4 839B STD Y+3,R25
2A5 838A STD Y+2,R24
2A6 E380 LDI R24,0x30
2A7 8388 STD Y+0,R24
2A8 E024 LDI R18,4
2A9 2D0C MOV R16,R12
2AA DED0 RCALL _Lcd_Character_16X16
(0311)
(0312) Lcd_Character_16X16( n, 6, 0, time_logo[3] );
2AB EC80 LDI R24,0xC0
2AC E090 LDI R25,0
2AD 839B STD Y+3,R25
2AE 838A STD Y+2,R24
2AF 2422 CLR R2
2B0 8228 STD Y+0,R2
2B1 E026 LDI R18,6
2B2 2D0A MOV R16,R10
2B3 DEC7 RCALL _Lcd_Character_16X16
(0313) Lcd_Character_16X16( n, 6, 16, time_logo[1] );
2B4 E880 LDI R24,0x80
2B5 E090 LDI R25,0
2B6 839B STD Y+3,R25
2B7 838A STD Y+2,R24
2B8 E180 LDI R24,0x10
2B9 8388 STD Y+0,R24
2BA E026 LDI R18,6
2BB 2D0A MOV R16,R10
2BC DEBE RCALL _Lcd_Character_16X16
(0314) Lcd_Character_16X16( n, 6, 32, time_logo[2] );
2BD EA80 LDI R24,0xA0
2BE E090 LDI R25,0
2BF 839B STD Y+3,R25
2C0 838A STD Y+2,R24
2C1 E280 LDI R24,0x20
2C2 8388 STD Y+0,R24
2C3 E026 LDI R18,6
2C4 2D0A MOV R16,R10
2C5 DEB5 RCALL _Lcd_Character_16X16
(0315) Lcd_Character_16X16( n, 6, 48, menu[3] );
2C6 E680 LDI R24,0x60
2C7 E091 LDI R25,1
2C8 839B STD Y+3,R25
2C9 838A STD Y+2,R24
2CA E380 LDI R24,0x30
2CB 8388 STD Y+0,R24
2CC E026 LDI R18,6
2CD 2D0A MOV R16,R10
2CE DEAC RCALL _Lcd_Character_16X16
2CF 9626 ADIW R28,6
2D0 940C 030D JMP pop_xgset00FC
(0316) }
(0317) void main()
(0318) {
(0319) unsigned int i,j,k=1;
_main:
j --> R12
i --> R12
k --> R10
2D2 E081 LDI R24,1
2D3 E090 LDI R25,0
2D4 015C MOVW R10,R24
(0320) //init_port();//自己加,主要是控制线所在端口为输出
(0321) DDRB = 0xff;
2D5 EF8F LDI R24,0xFF
2D6 BB87 OUT 0x17,R24
(0322) Lcd_Function(1);
2D7 E001 LDI R16,1
2D8 DF3D RCALL _Lcd_Function
2D9 C02C RJMP 0x0306
(0323)
(0324) while(1)
(0325) { i=key_press();
2DA DEF3 RCALL _key_press
2DB 2EC0 MOV R12,R16
2DC 24DD CLR R13
(0326) if(i)
2DD 20CC TST R12
2DE F411 BNE 0x02E1
2DF 20DD TST R13
2E0 F129 BEQ 0x0306
(0327) {
(0328) j=key_scan();
2E1 DEFD RCALL _key_scan
2E2 2EC0 MOV R12,R16
2E3 24DD CLR R13
(0329) switch(j)
2E4 01C6 MOVW R24,R12
2E5 3081 CPI R24,1
2E6 E0E0 LDI R30,0
2E7 079E CPC R25,R30
2E8 F029 BEQ 0x02EE
2E9 3082 CPI R24,2
2EA E0E0 LDI R30,0
2EB 079E CPC R25,R30
2EC F029 BEQ 0x02F2
2ED C007 RJMP 0x02F5
(0330) {
(0331) case 1:
(0332) k=k+1;
2EE 01C5 MOVW R24,R10
2EF 9601 ADIW R24,1
2F0 015C MOVW R10,R24
(0333) break;
2F1 C003 RJMP 0x02F5
(0334) case 2:
(0335) k=k-1;
2F2 01C5 MOVW R24,R10
2F3 9701 SBIW R24,1
2F4 015C MOVW R10,R24
(0336) break;
(0337) default:
(0338) ;
(0339)
(0340) }
(0341)
(0342) if(k>4) k=1;
2F5 E084 LDI R24,4
2F6 E090 LDI R25,0
2F7 158A CP R24,R10
2F8 059B CPC R25,R11
2F9 F410 BCC 0x02FC
2FA E081 LDI R24,1
2FB 015C MOVW R10,R24
(0343) if(k<1) k=4;
2FC 01C5 MOVW R24,R10
2FD 3081 CPI R24,1
2FE E0E0 LDI R30,0
2FF 079E CPC R25,R30
300 F418 BCC 0x0304
301 E084 LDI R24,4
302 E090 LDI R25,0
303 015C MOVW R10,R24
(0344)
(0345) Lcd_Function(k);
FILE: <library>
304 2D0A MOV R16,R10
305 DF10 RCALL _Lcd_Function
306 CFD3 RJMP 0x02DA
307 9508 RET
pop_xgset003C:
308 90A9 LD R10,Y+
309 90B9 LD R11,Y+
30A 90C9 LD R12,Y+
30B 90D9 LD R13,Y+
30C 9508 RET
pop_xgset00FC:
30D 90A9 LD R10,Y+
30E 90B9 LD R11,Y+
30F 90C9 LD R12,Y+
310 90D9 LD R13,Y+
311 90E9 LD R14,Y+
312 90F9 LD R15,Y+
313 9508 RET
push_xgsetF0FC:
314 937A ST R23,-Y
315 936A ST R22,-Y
push_xgset30FC:
316 935A ST R21,-Y
317 934A ST R20,-Y
push_xgset00FC:
318 92FA ST R15,-Y
319 92EA ST R14,-Y
push_xgset003C:
31A 92DA ST R13,-Y
31B 92CA ST R12,-Y
31C 92BA ST R11,-Y
31D 92AA ST R10,-Y
31E 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -