📄 洗衣机.lst
字号:
455 E021 LDI R18,1
456 E005 LDI R16,5
457 DC80 RCALL _Char_Set_XY
(0044) default:break;
(0045) }
(0046) set_buff=0;
458 2422 CLR R2
459 9220 0196 STS set_buff,R2
45B C050 RJMP 0x04AC
(0047) while(nn==1&&flag_start==0)//水位设置标志位为1
(0048) {
(0049) set_buff=key2_scan();
45C DE2C RCALL _key2_scan
45D 9300 0196 STS set_buff,R16
(0050) wat_lv+=set_buff;
45F 9030 0060 LDS R3,wat_lv
461 0E30 ADD R3,R16
462 9230 0060 STS wat_lv,R3
(0051)
(0052) if(BBBuffer==1)
464 9180 0193 LDS R24,BBBuffer
466 3081 CPI R24,1
467 F009 BEQ 0x0469
468 C042 RJMP 0x04AB
(0053) {
(0054) if(wat_lv>=4)//判断溢出
469 2D83 MOV R24,R3
46A 3084 CPI R24,4
46B F018 BCS 0x046F
(0055) wat_lv=1;
46C E081 LDI R24,1
46D 9380 0060 STS wat_lv,R24
(0056) if(wat_lv<=0)
46F E080 LDI R24,0
470 9020 0060 LDS R2,wat_lv
472 1582 CP R24,R2
473 F018 BCS 0x0477
(0057) wat_lv=3;
474 E083 LDI R24,3
475 9380 0060 STS wat_lv,R24
(0058) switch(wat_lv)
477 9140 0060 LDS R20,wat_lv
479 2755 CLR R21
47A 3041 CPI R20,1
47B E0E0 LDI R30,0
47C 075E CPC R21,R30
47D F0C9 BEQ 0x0497
47E 3042 CPI R20,2
47F E0E0 LDI R30,0
480 075E CPC R21,R30
481 F069 BEQ 0x048F
482 3043 CPI R20,3
483 E0E0 LDI R30,0
484 075E CPC R21,R30
485 F009 BEQ 0x0487
486 C017 RJMP 0x049E
(0059) {
(0060) case 3:Char_Set_XY(5,1,"高");break;
487 E688 LDI R24,0x68
488 E091 LDI R25,1
489 8399 STD Y+1,R25
48A 8388 STD Y+0,R24
48B E021 LDI R18,1
48C E005 LDI R16,5
48D DC4A RCALL _Char_Set_XY
48E C00F RJMP 0x049E
(0061) case 2:Char_Set_XY(5,1,"中");break;
48F E685 LDI R24,0x65
490 E091 LDI R25,1
491 8399 STD Y+1,R25
492 8388 STD Y+0,R24
493 E021 LDI R18,1
494 E005 LDI R16,5
495 DC42 RCALL _Char_Set_XY
496 C007 RJMP 0x049E
(0062) case 1:Char_Set_XY(5,1,"低");break;
497 E682 LDI R24,0x62
498 E091 LDI R25,1
499 8399 STD Y+1,R25
49A 8388 STD Y+0,R24
49B E021 LDI R18,1
49C E005 LDI R16,5
49D DC3A RCALL _Char_Set_XY
(0063) default:break;
(0064) }
(0065) BBBuffer=0;
49E 2422 CLR R2
49F 9220 0193 STS BBBuffer,R2
(0066) data_buff[0]='w';
4A1 E787 LDI R24,0x77
4A2 9380 017C STS data_buff,R24
(0067) data_buff[1]=wat_lv;
4A4 9020 0060 LDS R2,wat_lv
4A6 9220 017D STS data_buff+1,R2
(0068) Putstr(data_buff);
4A8 E70C LDI R16,0x7C
4A9 E011 LDI R17,1
4AA DE76 RCALL _Putstr
(0069) }
(0070) key_scan();//扫描设置键盘
4AB DD8A RCALL _key_scan
4AC 9180 0065 LDS R24,nn
4AE 3081 CPI R24,1
4AF F429 BNE 0x04B5
4B0 9020 0064 LDS R2,flag_start
4B2 2022 TST R2
4B3 F409 BNE 0x04B5
4B4 CFA7 RJMP 0x045C
4B5 9622 ADIW R28,2
4B6 9159 LD R21,Y+
4B7 9149 LD R20,Y+
4B8 9508 RET
_set_health:
4B9 934A ST R20,-Y
4BA 935A ST R21,-Y
4BB 9722 SBIW R28,2
(0071) }
(0072)
(0073)
(0074)
(0075) }
(0076)
(0077) void set_health()//洗衣强度
(0078) {
(0079)
(0080) cls;//清屏
4BC E081 LDI R24,1
4BD 8388 STD Y+0,R24
4BE 2722 CLR R18
4BF 2700 CLR R16
4C0 DCD0 RCALL _W_1byte
(0081) Delay(2);
4C1 E002 LDI R16,2
4C2 E010 LDI R17,0
4C3 DD44 RCALL _Delay
(0082) Char_Set_XY(0,1,"洗衣强度:");
4C4 E587 LDI R24,0x57
4C5 E091 LDI R25,1
4C6 8399 STD Y+1,R25
4C7 8388 STD Y+0,R24
4C8 E021 LDI R18,1
4C9 2700 CLR R16
4CA DC0D RCALL _Char_Set_XY
(0083) Delay(1);
4CB E001 LDI R16,1
4CC E010 LDI R17,0
4CD DD3A RCALL _Delay
(0084) switch (health)
4CE 9140 0063 LDS R20,health
4D0 2755 CLR R21
4D1 3041 CPI R20,1
4D2 E0E0 LDI R30,0
4D3 075E CPC R21,R30
4D4 F069 BEQ 0x04E2
4D5 3042 CPI R20,2
4D6 E0E0 LDI R30,0
4D7 075E CPC R21,R30
4D8 F009 BEQ 0x04DA
4D9 C00F RJMP 0x04E9
(0085) {
(0086) case 2:Char_Set_XY(5,1,"强");break;
4DA E584 LDI R24,0x54
4DB E091 LDI R25,1
4DC 8399 STD Y+1,R25
4DD 8388 STD Y+0,R24
4DE E021 LDI R18,1
4DF E005 LDI R16,5
4E0 DBF7 RCALL _Char_Set_XY
4E1 C007 RJMP 0x04E9
(0087) case 1:Char_Set_XY(5,1,"弱");break;
4E2 E581 LDI R24,0x51
4E3 E091 LDI R25,1
4E4 8399 STD Y+1,R25
4E5 8388 STD Y+0,R24
4E6 E021 LDI R18,1
4E7 E005 LDI R16,5
4E8 DBEF RCALL _Char_Set_XY
(0088) default:break;
(0089) }
(0090) set_buff=0;
4E9 2422 CLR R2
4EA 9220 0196 STS set_buff,R2
4EC C047 RJMP 0x0534
(0091) while(nn==2&&flag_start==0)//洗衣强度标志位为2
(0092) {
(0093) speed=health;
4ED 9020 0063 LDS R2,health
4EF 9220 0081 STS speed,R2
(0094) set_buff=key2_scan();
4F1 DD97 RCALL _key2_scan
4F2 9300 0196 STS set_buff,R16
(0095) health+=set_buff;
4F4 9030 0063 LDS R3,health
4F6 0E30 ADD R3,R16
4F7 9230 0063 STS health,R3
(0096) if(BBBuffer==1)
4F9 9180 0193 LDS R24,BBBuffer
4FB 3081 CPI R24,1
4FC F5B1 BNE 0x0533
(0097) {
(0098) if(health>=3)//判断溢出
4FD 2D83 MOV R24,R3
4FE 3083 CPI R24,3
4FF F018 BCS 0x0503
(0099) health=1;
500 E081 LDI R24,1
501 9380 0063 STS health,R24
(0100) if(health<=0)
503 E080 LDI R24,0
504 9020 0063 LDS R2,health
506 1582 CP R24,R2
507 F018 BCS 0x050B
(0101) health=2;
508 E082 LDI R24,2
509 9380 0063 STS health,R24
(0102) switch (health)
50B 9140 0063 LDS R20,health
50D 2755 CLR R21
50E 3041 CPI R20,1
50F E0E0 LDI R30,0
510 075E CPC R21,R30
511 F069 BEQ 0x051F
512 3042 CPI R20,2
513 E0E0 LDI R30,0
514 075E CPC R21,R30
515 F009 BEQ 0x0517
516 C00F RJMP 0x0526
(0103) {
(0104) case 2:Char_Set_XY(5,1,"强");break;
517 E584 LDI R24,0x54
518 E091 LDI R25,1
519 8399 STD Y+1,R25
51A 8388 STD Y+0,R24
51B E021 LDI R18,1
51C E005 LDI R16,5
51D DBBA RCALL _Char_Set_XY
51E C007 RJMP 0x0526
(0105) case 1:Char_Set_XY(5,1,"弱");break;
51F E581 LDI R24,0x51
520 E091 LDI R25,1
521 8399 STD Y+1,R25
522 8388 STD Y+0,R24
523 E021 LDI R18,1
524 E005 LDI R16,5
525 DBB2 RCALL _Char_Set_XY
(0106) default:break;
(0107) }
(0108) BBBuffer=0;
526 2422 CLR R2
527 9220 0193 STS BBBuffer,R2
(0109) data_buff[0]='h';
529 E688 LDI R24,0x68
52A 9380 017C STS data_buff,R24
(0110) data_buff[1]=health;
52C 9020 0063 LDS R2,health
52E 9220 017D STS data_buff+1,R2
(0111) Putstr(data_buff);
530 E70C LDI R16,0x7C
531 E011 LDI R17,1
532 DDEE RCALL _Putstr
(0112) }
(0113) key_scan();//扫描设置键盘
533 DD02 RCALL _key_scan
534 9180 0065 LDS R24,nn
536 3082 CPI R24,2
537 F429 BNE 0x053D
538 9020 0064 LDS R2,flag_start
53A 2022 TST R2
53B F409 BNE 0x053D
53C CFB0 RJMP 0x04ED
53D 9622 ADIW R28,2
53E 9159 LD R21,Y+
53F 9149 LD R20,Y+
540 9508 RET
_set_cycle:
541 9722 SBIW R28,2
(0114)
(0115) }
(0116)
(0117) }
(0118)
(0119) void set_cycle()//电动机循环次数
(0120) {
(0121) cls;//清屏
542 E081 LDI R24,1
543 8388 STD Y+0,R24
544 2722 CLR R18
545 2700 CLR R16
546 DC4A RCALL _W_1byte
(0122) Delay(2);
547 E002 LDI R16,2
548 E010 LDI R17,0
549 DCBE RCALL _Delay
(0123) Char_Set_XY(0,1,"循环次数 次");
54A E484 LDI R24,0x44
54B E091 LDI R25,1
54C 8399 STD Y+1,R25
54D 8388 STD Y+0,R24
54E E021 LDI R18,1
54F 2700 CLR R16
550 DB87 RCALL _Char_Set_XY
(0124) Delay(1);
551 E001 LDI R16,1
552 E010 LDI R17,0
553 DCB4 RCALL _Delay
(0125) Char_Set_XY(4,1,":");
554 E482 LDI R24,0x42
555 E091 LDI R25,1
556 8399 STD Y+1,R25
557 8388 STD Y+0,R24
558 E021 LDI R18,1
559 E004 LDI R16,4
55A DB7D RCALL _Char_Set_XY
(0126) W_1byte(0,1,0x30+cycle);
55B 9180 0061 LDS R24,cycle
55D 5D80 SUBI R24,0xD0
55E 8388 STD Y+0,R24
55F E021 LDI R18,1
560 2700 CLR R16
561 DC2F RCALL _W_1byte
(0127)
(0128) set_buff=0;
562 2422 CLR R2
563 9220 0196 STS set_buff,R2
565 C036 RJMP 0x059C
(0129) while(nn==3&&flag_start==0)//电动机循环设置标志位为3
(0130) {
(0131) // display(cycle);
(0132) set_buff=key2_scan();
566 DD22 RCALL _key2_scan
567 9300 0196 STS set_buff,R16
(0133) cycle+=set_buff;
569 9030 0061 LDS R3,cycle
56B 0E30 ADD R3,R16
56C 9230 0061 STS cycle,R3
(0134) if(BBBuffer==1)
56E 9180 0193 LDS R24,BBBuffer
570 3081 CPI R24,1
571 F549 BNE 0x059B
(0135) {
(0136) if(cycle>=10)//判断溢出
572 2D83 MOV R24,R3
573 308A CPI R24,0xA
574 F018 BCS 0x0578
(0137) cycle=1;
575 E081 LDI R24,1
576 9380 0061 STS cycle,R24
(0138) if(cycle<=0)
578 E080 LDI R24,0
579 9020 0061 LDS R2,cycle
57B 1582 CP R24,R2
57C F018 BCS 0x0580
(0139) cycle=9;
57D E089 LDI R24,0x9
57E 9380 0061 STS cycle,R24
(0140) Char_Set_XY(4,1,":");
580 E482 LDI R24,0x42
581 E091 LDI R25,1
582 8399 STD Y+1,R25
583 8388 STD Y+0,R24
584 E021 LDI R18,1
585 E004 LDI R16,4
586 DB51 RCALL _Char_Set_XY
(0141) W_1byte(0,1,0x30+cycle);//显示数字
587 9180 0061 LDS R24,cycle
589 5D80 SUBI R24,0xD0
58A 8388 STD Y+0,R24
58B E021 LDI R18,1
58C 2700 CLR R16
58D DC03 RCALL _W_1byte
(0142) BBBuffer=0;
58E 2422 CLR R2
58F 9220 0193 STS BBBuffer,R2
(0143) data_buff[0]='c';//发数据
591 E683 LDI R24,0x63
592 9380 017C STS data_buff,R24
(0144) data_buff[1]=cycle;
594 9020 0061 LDS R2,cycle
596 9220 017D STS data_buff+1,R2
(0145) Putstr(data_buff);
598 E70C LDI R16,0x7C
599 E011 LDI R17,1
59A DD86 RCALL _Putstr
(0146) }
(0147) key_scan();//扫描设置键盘
59B DC9A RCALL _key_scan
59C 9180 0065 LDS R24,nn
59E 3083 CPI R24,3
59F F429 BNE 0x05A5
5A0 9020 0064 LDS R2,flag_start
5A2 2022 TST R2
5A3 F409 BNE 0x05A5
5A4 CFC1 RJMP 0x0566
5A5 9622 ADIW R28,2
5A6 9508 RET
_set_replay:
5A7 9722 SBIW R28,2
(0148)
(0149) }
(0150)
(0151)
(0152) }
(0153)
(0154)
(0155) void set_replay()//洗衣加排水重复次数
(0156) {
(0157) cls;//清屏
5A8 E081 LDI R24,1
5A9 8388 STD Y+0,R24
5AA 2722 CLR R18
5AB 2700 CLR R16
5AC DBE4 RCALL _W_1byte
(0158) Delay(2);
5AD E002 LDI R16,2
5AE E010 LDI R17,0
5AF DC58 RCALL _Delay
(0159) Char_Set_XY(0,1,"洗衣重复次数 次");
5B0 E381 LDI R24,0x31
5B1 E091 LDI R25,1
5B2 8399 STD Y+1,R25
5B3 8388 STD Y+0,R24
5B4 E021 LDI R18,1
5B5 2700 CLR R16
5B6 DB21 RCALL _Char_Set_XY
(0160) Char_Set_XY(6,1,":");
5B7 E48
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -