📄 lcd_hg1286.lis
字号:
0394 02E0 ldi R16,2
0396 62DE rcall _dis
0398 .dbline 203
0398 ; lcd_dis(3,0x2,(Minutes+temp2*6));
0398 20900000 lds R2,_temp2
039C 86E0 ldi R24,6
039E 829D mul R24,R2
03A0 1001 movw R2,R0
03A2 80E0 ldi R24,<_Minutes
03A4 90E0 ldi R25,>_Minutes
03A6 280E add R2,R24
03A8 391E adc R3,R25
03AA 3982 std y+1,R3
03AC 2882 std y+0,R2
03AE 22E0 ldi R18,2
03B0 03E0 ldi R16,3
03B2 87DE rcall _lcd_dis
03B4 .dbline 204
03B4 ; lcd_dis(3,0x3,(Minutes+temp2*6+2));
03B4 20900000 lds R2,_temp2
03B8 86E0 ldi R24,6
03BA 829D mul R24,R2
03BC 1001 movw R2,R0
03BE 80E0 ldi R24,<_Minutes+2
03C0 90E0 ldi R25,>_Minutes+2
03C2 280E add R2,R24
03C4 391E adc R3,R25
03C6 3982 std y+1,R3
03C8 2882 std y+0,R2
03CA 23E0 ldi R18,3
03CC 03E0 ldi R16,3
03CE 79DE rcall _lcd_dis
03D0 .dbline 205
03D0 ; lcd_dis(3,0x4,(Minutes+temp2*6+4));
03D0 20900000 lds R2,_temp2
03D4 86E0 ldi R24,6
03D6 829D mul R24,R2
03D8 1001 movw R2,R0
03DA 80E0 ldi R24,<_Minutes+4
03DC 90E0 ldi R25,>_Minutes+4
03DE 280E add R2,R24
03E0 391E adc R3,R25
03E2 3982 std y+1,R3
03E4 2882 std y+0,R2
03E6 24E0 ldi R18,4
03E8 03E0 ldi R16,3
03EA 6BDE rcall _lcd_dis
03EC .dbline 206
03EC ; lcd_dis(3,0x5,dao); //显示“到!”
03EC 80E0 ldi R24,<_dao
03EE 90E0 ldi R25,>_dao
03F0 9983 std y+1,R25
03F2 8883 std y+0,R24
03F4 25E0 ldi R18,5
03F6 03E0 ldi R16,3
03F8 64DE rcall _lcd_dis
03FA .dbline 207
03FA ; lcd_dis(3,0x6,(dao+2));
03FA 80E0 ldi R24,<_dao+2
03FC 90E0 ldi R25,>_dao+2
03FE 9983 std y+1,R25
0400 8883 std y+0,R24
0402 26E0 ldi R18,6
0404 03E0 ldi R16,3
0406 5DDE rcall _lcd_dis
0408 .dbline -2
0408 L43:
0408 .dbline 0 ; func end
0408 2296 adiw R28,2
040A 0895 ret
040C .dbend
040C .dbfunc e delay_1us _delay_1us fV
.even
040C _delay_1us::
040C .dbline -1
040C .dbline 217
040C ; }
040C ; /********************延时函数***************
040C ; *函 数:dalay
040C ; *函数功能:软件延时
040C ; *入口参数:无
040C ; *返 回 值:无
040C ; *备 注:
040C ; ****************************************************/
040C ; void delay_1us(void) //1us延时函数
040C ; {
040C .dbline 218
040C ; asm("nop");
040C 0000 nop
040E .dbline -2
040E L47:
040E .dbline 0 ; func end
040E 0895 ret
0410 .dbend
0410 .dbfunc e delay_nus _delay_nus fV
0410 ; i -> R20,R21
0410 ; n -> R10,R11
.even
0410 _delay_nus::
0410 00D0 rcall push_xgset300C
0412 5801 movw R10,R16
0414 .dbline -1
0414 .dbline 222
0414 ; }
0414 ;
0414 ; void delay_nus(unsigned int n) //N us延时函数
0414 ; {
0414 .dbline 223
0414 ; unsigned int i=0;
0414 4427 clr R20
0416 5527 clr R21
0418 .dbline 224
0418 ; for (i=0;i<n;i++);
0418 02C0 rjmp L52
041A L49:
041A .dbline 224
041A L50:
041A .dbline 224
041A 4F5F subi R20,255 ; offset = 1
041C 5F4F sbci R21,255
041E L52:
041E .dbline 224
041E 4A15 cp R20,R10
0420 5B05 cpc R21,R11
0422 D8F3 brlo L49
0424 X10:
0424 .dbline 225
0424 ; delay_1us();
0424 F3DF rcall _delay_1us
0426 .dbline -2
0426 L48:
0426 .dbline 0 ; func end
0426 00C0 rjmp pop_xgset300C
0428 .dbsym r i 20 i
0428 .dbsym r n 10 i
0428 .dbend
0428 .dbfunc e delay_1ms _delay_1ms fV
0428 ; i -> R16,R17
.even
0428 _delay_1ms::
0428 .dbline -1
0428 .dbline 228
0428 ; }
0428 ; void delay_1ms(void) //1ms延时函数
0428 ; {
0428 .dbline 230
0428 ; unsigned int i;
0428 ; for (i=0;i<1140;i++);
0428 0027 clr R16
042A 1127 clr R17
042C 02C0 rjmp L57
042E L54:
042E .dbline 230
042E L55:
042E .dbline 230
042E 0F5F subi R16,255 ; offset = 1
0430 1F4F sbci R17,255
0432 L57:
0432 .dbline 230
0432 0437 cpi R16,116
0434 E4E0 ldi R30,4
0436 1E07 cpc R17,R30
0438 D0F3 brlo L54
043A X11:
043A .dbline -2
043A L53:
043A .dbline 0 ; func end
043A 0895 ret
043C .dbsym r i 16 i
043C .dbend
043C .dbfunc e delay_nms _delay_nms fV
043C ; i -> R20,R21
043C ; n -> R10,R11
.even
043C _delay_nms::
043C 00D0 rcall push_xgset300C
043E 5801 movw R10,R16
0440 .dbline -1
0440 .dbline 233
0440 ; }
0440 ; void delay_nms(unsigned int n) //N ms延时函数
0440 ; {
0440 .dbline 234
0440 ; unsigned int i=0;
0440 4427 clr R20
0442 5527 clr R21
0444 .dbline 235
0444 ; for (i=0;i<n;i++)
0444 03C0 rjmp L62
0446 L59:
0446 .dbline 236
0446 ; delay_1ms();
0446 F0DF rcall _delay_1ms
0448 L60:
0448 .dbline 235
0448 4F5F subi R20,255 ; offset = 1
044A 5F4F sbci R21,255
044C L62:
044C .dbline 235
044C 4A15 cp R20,R10
044E 5B05 cpc R21,R11
0450 D0F3 brlo L59
0452 X12:
0452 .dbline -2
0452 L58:
0452 .dbline 0 ; func end
0452 00C0 rjmp pop_xgset300C
0454 .dbsym r i 20 i
0454 .dbsym r n 10 i
0454 .dbend
0454 .dbfunc e display _display fV
.even
0454 _display::
0454 4A93 st -y,R20
0456 5A93 st -y,R21
0458 .dbline -1
0458 .dbline 240
0458 ; }
0458 ;
0458 ; void display(void)
0458 ; {
0458 .dbline 241
0458 ; switch(page){
0458 40910000 lds R20,_page
045C 5527 clr R21
045E 4030 cpi R20,0
0460 4507 cpc R20,R21
0462 69F0 breq L67
0464 X13:
0464 4130 cpi R20,1
0466 E0E0 ldi R30,0
0468 5E07 cpc R21,R30
046A 81F0 breq L68
046C X14:
046C 4230 cpi R20,2
046E E0E0 ldi R30,0
0470 5E07 cpc R21,R30
0472 89F0 breq L69
0474 X15:
0474 4330 cpi R20,3
0476 E0E0 ldi R30,0
0478 5E07 cpc R21,R30
047A 91F0 breq L70
047C X16:
047C 15C0 rjmp L65
047E L67:
047E .dbline 242
047E ; case 0: page0();flag=1;page=1;break; //欢迎界面
047E 60DE rcall _page0
0480 .dbline 242
0480 81E0 ldi R24,1
0482 80930000 sts _flag,R24
0486 .dbline 242
0486 80930000 sts _page,R24
048A .dbline 242
048A 0EC0 rjmp L65
048C L68:
048C .dbline 243
048C ; case 1: page1();flag=0; break; //参数设置页面
048C 85DE rcall _page1
048E .dbline 243
048E 2224 clr R2
0490 20920000 sts _flag,R2
0494 .dbline 243
0494 09C0 rjmp L65
0496 L69:
0496 .dbline 244
0496 ; case 2: page2();flag=0; break; //开始界面
0496 A1DE rcall _page2
0498 .dbline 244
0498 2224 clr R2
049A 20920000 sts _flag,R2
049E .dbline 244
049E 04C0 rjmp L65
04A0 L70:
04A0 .dbline 245
04A0 ; case 3: page3();flag=0; break; //结束界面
04A0 BCDE rcall _page3
04A2 .dbline 245
04A2 2224 clr R2
04A4 20920000 sts _flag,R2
04A8 .dbline 245
04A8 .dbline 246
04A8 ; default:break;
04A8 L65:
04A8 .dbline -2
04A8 L63:
04A8 .dbline 0 ; func end
04A8 5991 ld R21,y+
04AA 4991 ld R20,y+
04AC 0895 ret
04AE .dbend
04AE ; }
04AE ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -