📄 ps2_study.lst
字号:
077C DE2F RCALL _LCD_char
(0412) LCD_char(27,0,r,1);
077D E081 LDI R24,1
077E 838A STD R24,2+Y
077F EA80 LDI R24,0xA0
0780 E094 LDI R25,4
0781 8388 STD R24,0+Y
0782 8399 STD R25,1+Y
0783 2722 CLR R18
0784 E10B LDI R16,0x1B
0785 DE26 RCALL _LCD_char
(0413) LCD_char(45,0,t,1);
0786 E081 LDI R24,1
0787 838A STD R24,2+Y
0788 EC80 LDI R24,0xC0
0789 E094 LDI R25,4
078A 8388 STD R24,0+Y
078B 8399 STD R25,1+Y
078C 2722 CLR R18
078D E20D LDI R16,0x2D
078E DE1D RCALL _LCD_char
(0414) LCD_char(54,0,u,1);
078F E081 LDI R24,1
0790 838A STD R24,2+Y
0791 ED80 LDI R24,0xD0
0792 E094 LDI R25,4
0793 8388 STD R24,0+Y
0794 8399 STD R25,1+Y
0795 2722 CLR R18
0796 E306 LDI R16,0x36
0797 DE14 RCALL _LCD_char
(0415) LCD_char(9,4,w,1);
0798 E081 LDI R24,1
0799 838A STD R24,2+Y
079A EF80 LDI R24,0xF0
079B E094 LDI R25,4
079C 8388 STD R24,0+Y
079D 8399 STD R25,1+Y
079E E024 LDI R18,4
079F E009 LDI R16,0x9
07A0 DE0B RCALL _LCD_char
(0416) LCD_char(18,4,x,1);
07A1 E081 LDI R24,1
07A2 838A STD R24,2+Y
07A3 E080 LDI R24,0
07A4 E095 LDI R25,5
07A5 8388 STD R24,0+Y
07A6 8399 STD R25,1+Y
07A7 E024 LDI R18,4
07A8 E102 LDI R16,0x12
07A9 DE02 RCALL _LCD_char
(0417) LCD_char(27,4,y,1);
07AA E081 LDI R24,1
07AB 838A STD R24,2+Y
07AC E180 LDI R24,0x10
07AD E095 LDI R25,5
07AE 8388 STD R24,0+Y
07AF 8399 STD R25,1+Y
07B0 E024 LDI R18,4
07B1 E10B LDI R16,0x1B
07B2 DDF9 RCALL _LCD_char
(0418) if(wed1==2)
07B3 91800082 LDS R24,0x82
07B5 3082 CPI R24,2
07B6 F009 BEQ 0x07B8
07B7 C057 RJMP 0x080F
(0419) {
(0420)
(0421) LCD_char(0,0,c,0);
07B8 2422 CLR R2
07B9 822A STD R2,2+Y
07BA EB80 LDI R24,0xB0
07BB E093 LDI R25,3
07BC 8388 STD R24,0+Y
07BD 8399 STD R25,1+Y
07BE 2722 CLR R18
07BF 2700 CLR R16
07C0 DDEB RCALL _LCD_char
(0422) //LCD_char(9,0,b,0);
(0423) LCD_char(18,0,f,0);
07C1 2422 CLR R2
07C2 822A STD R2,2+Y
07C3 EE80 LDI R24,0xE0
07C4 E093 LDI R25,3
07C5 8388 STD R24,0+Y
07C6 8399 STD R25,1+Y
07C7 2722 CLR R18
07C8 E102 LDI R16,0x12
07C9 DDE2 RCALL _LCD_char
(0424) // LCD_char(27,0,d,0);
(0425) //LCD_char(36,0,e,0);
(0426) LCD_char(45,0,a,0);
07CA 2422 CLR R2
07CB 822A STD R2,2+Y
07CC E980 LDI R24,0x90
07CD E093 LDI R25,3
07CE 8388 STD R24,0+Y
07CF 8399 STD R25,1+Y
07D0 2722 CLR R18
07D1 E20D LDI R16,0x2D
07D2 DDD9 RCALL _LCD_char
(0427) // LCD_char(54,0,g,0);
(0428) LCD_char(0,4,v,0);
07D3 2422 CLR R2
07D4 822A STD R2,2+Y
07D5 EE80 LDI R24,0xE0
07D6 E094 LDI R25,4
07D7 8388 STD R24,0+Y
07D8 8399 STD R25,1+Y
07D9 E024 LDI R18,4
07DA 2700 CLR R16
07DB DDD0 RCALL _LCD_char
(0429) // LCD_char(9,4,i,0);
(0430) //LCD_char(18,4,j,0);
(0431) LCD_char(27,4,h,0);
07DC 2422 CLR R2
07DD 822A STD R2,2+Y
07DE E080 LDI R24,0
07DF E094 LDI R25,4
07E0 8388 STD R24,0+Y
07E1 8399 STD R25,1+Y
07E2 E024 LDI R18,4
07E3 E10B LDI R16,0x1B
07E4 DDC7 RCALL _LCD_char
(0432) //LCD_char(36,4,l,0);
(0433) LCD_char(45,4,o,0);
07E5 2422 CLR R2
07E6 822A STD R2,2+Y
07E7 E780 LDI R24,0x70
07E8 E094 LDI R25,4
07E9 8388 STD R24,0+Y
07EA 8399 STD R25,1+Y
07EB E024 LDI R18,4
07EC E20D LDI R16,0x2D
07ED DDBE RCALL _LCD_char
(0434) //LCD_char(54,4,m,0);
(0435) LCD_char(0,0,n,1);
07EE E081 LDI R24,1
07EF 838A STD R24,2+Y
07F0 E580 LDI R24,0x50
07F1 E094 LDI R25,4
07F2 8388 STD R24,0+Y
07F3 8399 STD R25,1+Y
07F4 2722 CLR R18
07F5 2700 CLR R16
07F6 DDB5 RCALL _LCD_char
(0436) // LCD_char(9,0,p,1);
(0437) // LCD_char(18,0,q,1);
(0438) // LCD_char(27,0,r,1);
(0439) LCD_char(36,0,k,1);
07F7 E081 LDI R24,1
07F8 838A STD R24,2+Y
07F9 E380 LDI R24,0x30
07FA E094 LDI R25,4
07FB 8388 STD R24,0+Y
07FC 8399 STD R25,1+Y
07FD 2722 CLR R18
07FE E204 LDI R16,0x24
07FF DDAC RCALL _LCD_char
(0440) // LCD_char(45,0,t,1);
(0441) // LCD_char(54,0,u,1);
(0442) LCD_char(0,4,s,1);
0800 E081 LDI R24,1
0801 838A STD R24,2+Y
0802 EB80 LDI R24,0xB0
0803 E094 LDI R25,4
0804 8388 STD R24,0+Y
0805 8399 STD R25,1+Y
0806 E024 LDI R18,4
0807 2700 CLR R16
0808 DDA3 RCALL _LCD_char
(0443) // LCD_char(9,4,w,1);
(0444) // LCD_char(18,4,x,1);
(0445) // LCD_char(27,4,y,1);
(0446) //LCD_char(36,4,z,1);
(0447) //LCD_char(45,4,o,1);
(0448) // LCD_char(54,4,x,1);
(0449) //LCD_char(0,4,v,1);
(0450) flag_char1=0;
0809 2422 CLR R2
080A 92200062 STS R2,0x62
(0451) flag_w=1;
080C E081 LDI R24,1
080D 93800065 STS R24,0x65
(0452) }
(0453) if(wed1==1)
080F 91800082 LDS R24,0x82
0811 3081 CPI R24,1
0812 F009 BEQ 0x0814
0813 C057 RJMP 0x086B
(0454) {
(0455) LCD_char(0,0,z,0);
0814 2422 CLR R2
0815 822A STD R2,2+Y
0816 E280 LDI R24,0x20
0817 E095 LDI R25,5
0818 8388 STD R24,0+Y
0819 8399 STD R25,1+Y
081A 2722 CLR R18
081B 2700 CLR R16
081C DD8F RCALL _LCD_char
(0456) // LCD_char(9,0,b,0);
(0457) LCD_char(18,0,s,0);
081D 2422 CLR R2
081E 822A STD R2,2+Y
081F EB80 LDI R24,0xB0
0820 E094 LDI R25,4
0821 8388 STD R24,0+Y
0822 8399 STD R25,1+Y
0823 2722 CLR R18
0824 E102 LDI R16,0x12
0825 DD86 RCALL _LCD_char
(0458) //LCD_char(27,0,d,0);
(0459) // LCD_char(36,0,e,0);
(0460) LCD_char(45,0,n,0);
0826 2422 CLR R2
0827 822A STD R2,2+Y
0828 E580 LDI R24,0x50
0829 E094 LDI R25,4
082A 8388 STD R24,0+Y
082B 8399 STD R25,1+Y
082C 2722 CLR R18
082D E20D LDI R16,0x2D
082E DD7D RCALL _LCD_char
(0461) // LCD_char(54,0,g,0);
(0462) LCD_char(0,4,o,0);
082F 2422 CLR R2
0830 822A STD R2,2+Y
0831 E780 LDI R24,0x70
0832 E094 LDI R25,4
0833 8388 STD R24,0+Y
0834 8399 STD R25,1+Y
0835 E024 LDI R18,4
0836 2700 CLR R16
0837 DD74 RCALL _LCD_char
(0463) // LCD_char(9,4,i,0);
(0464) // LCD_char(18,4,j,0);
(0465) LCD_char(27,4,v,0);
0838 2422 CLR R2
0839 822A STD R2,2+Y
083A EE80 LDI R24,0xE0
083B E094 LDI R25,4
083C 8388 STD R24,0+Y
083D 8399 STD R25,1+Y
083E E024 LDI R18,4
083F E10B LDI R16,0x1B
0840 DD6B RCALL _LCD_char
(0466) // LCD_char(36,4,l,0);
(0467) LCD_char(45,4,f,0);
0841 2422 CLR R2
0842 822A STD R2,2+Y
0843 EE80 LDI R24,0xE0
0844 E093 LDI R25,3
0845 8388 STD R24,0+Y
0846 8399 STD R25,1+Y
0847 E024 LDI R18,4
0848 E20D LDI R16,0x2D
0849 DD62 RCALL _LCD_char
(0468) // LCD_char(54,4,m,0);
(0469) LCD_char(0,0,h,1);
084A E081 LDI R24,1
084B 838A STD R24,2+Y
084C E080 LDI R24,0
084D E094 LDI R25,4
084E 8388 STD R24,0+Y
084F 8399 STD R25,1+Y
0850 2722 CLR R18
0851 2700 CLR R16
0852 DD59 RCALL _LCD_char
(0470) // LCD_char(9,0,p,1);
(0471) // LCD_char(18,0,q,1);
(0472) //LCD_char(27,0,r,1);
(0473) LCD_char(36,0,c,1);
0853 E081 LDI R24,1
0854 838A STD R24,2+Y
0855 EB80 LDI R24,0xB0
0856 E093 LDI R25,3
0857 8388 STD R24,0+Y
0858 8399 STD R25,1+Y
0859 2722 CLR R18
085A E204 LDI R16,0x24
085B DD50 RCALL _LCD_char
(0474) // LCD_char(45,0,t,1);
(0475) // LCD_char(54,0,u,1);
(0476) LCD_char(0,4,k,1);
085C E081 LDI R24,1
085D 838A STD R24,2+Y
085E E380 LDI R24,0x30
085F E094 LDI R25,4
0860 8388 STD R24,0+Y
0861 8399 STD R25,1+Y
0862 E024 LDI R18,4
0863 2700 CLR R16
0864 DD47 RCALL _LCD_char
(0477) // LCD_char(9,4,w,1);
(0478) // LCD_char(18,4,x,1);
(0479) // LCD_char(27,4,y,1);
(0480) //LCD_char(36,4,z,1);
(0481) //LCD_char(45,4,o,1);
(0482) // LCD_char(54,4,x,1);
(0483) //LCD_char(0,4,v,1);
(0484) flag_char1=0;
0865 2422 CLR R2
0866 92200062 STS R2,0x62
(0485) flag_w=1;
0868 E081 LDI R24,1
0869 93800065 STS R24,0x65
(0486) }
(0487) }
(0488) wed1++;
086B 91800082 LDS R24,0x82
086D 5F8F SUBI R24,0xFF
086E 93800082 STS R24,0x82
(0489) if(wed1==3)
0870 3083 CPI R24,3
0871 F419 BNE 0x0875
(0490) {
(0491) wed1=1;
0872 E081 LDI R24,1
0873 93800082 STS R24,0x82
(0492) }
(0493)
(0494) }
0875 9623 ADIW R28,3
0876 9508 RET
_key:
0877 940E1FBD CALL push_gset2
(0495)
(0496)
(0497)
(0498) void key(void)
(0499) {
(0500) if(data_key[key_i-1]==0x5a)//enter
0879 EA87 LDI R24,0xA7
087A E090 LDI R25,0
087B 91E00063 LDS R30,0x63
087D 27FF CLR R31
087E 0FE8 ADD R30,R24
087F 1FF9 ADC R31,R25
0880 8180 LDD R24,0+Z
0881 358A CPI R24,0x5A
0882 F009 BEQ 0x0884
0883 C040 RJMP 0x08C4
(0501) {
(0502) if(flag_enter==1)
0884 91800087 LDS R24,0x87
0886 3081 CPI R24,1
0887 F449 BNE 0x0891
(0503) {
(0504) TCCR0=0x00;
0888 2422 CLR R2
0889 BE23 OUT P33,R2
(0505) flag_score=1;
088A E081 LDI R24,1
088B 93800086 STS R24,0x86
(0506) flag_over=1;
088D 93800085 STS R24,0x85
(0507) //flag_enter=0;
(0508) flag_char1=0;
088F 92200062 STS R2,0x62
(0509)
(0510) }
(0511) if(flag_enter==0)
0891 90200087 LDS R2,0x87
0893 2022 TST R2
0894 F551 BNE 0x08BF
(0512) {
(0513) flag_1=0;
0895 2422 CLR R2
0896 92200060 STS R2,0x60
(0514) flag_char1=1;
0898 E081 LDI R24,1
0899 93800062 STS R24,0x62
(0515) x_station=0;
089B 922000A5 STS R2,_x_station
(0516) y_station=2;
089D E082 LDI R24,2
089E 938000A7 STS R24,_y_station
(0517) flag_error=0;
08A0 92200084 STS R2,0x84
(0518) flag_over=0;
08A2 92200085 STS R2,0x85
(0519) LR=0;
08A4 92200081 STS R2,0x81
(0520) rig=0;
08A6 2422 CLR R2
08A7 92200080 STS R2,0x80
(0521) key_i=1;
08A9 E081 LDI R24,1
08AA 93800063 STS R24,0x63
(0522) flag_enter=1;
08AC 93800087 STS R24,0x87
(0523) char_display();
08AE DE6D RCALL _char_display
(0524) flag_ts=0;
08AF 2422 CLR R2
08B0 9220008A STS R2,0x8A
(0525) flag_cout=0;
08B2 92200089 STS R2,0x89
(0526) flag_ms=0;
08B4 2433 CLR R3
08B5 9230008C STS R3,0x8C
08B7 9220008B STS R2,0x8B
(0527) flag_time0=0;
08B9 92200088 STS R2,0x88
(0528) TCNT0=0X38;
08BB E388 LDI R24,0x38
08BC BF82 OUT P32,R24
(0529) TCCR0=(1<<CS01);//8分频
08BD E082 LDI R24,2
08BE BF83 OUT P33,R24
(0530) }
(0531) data_key[1]=0;
08BF 2422 CLR R2
08C0 922000A9 STS R2,_data_key+1
(0532) data_key[2]=0;
08C2 922000AA STS R2,_data_key+2
(0533)
(0534) }
(0535)
(0536) if((data_key[key_i-1]==0x76)&(flag_w==1))//esc
08C4 EA87 LDI R24,0xA7
08C5 E090 LDI R25,0
08C6 91E00063 LDS R30,0x63
08C8 27FF CLR R31
08C9 0FE8 ADD R30,R24
08CA 1FF9 ADC R31,R25
08CB 8180 LDD R24,0+Z
08CC 3786 CPI R24,0x76
08CD F419 BNE 0x08D1
08CE E061 LDI R22,1
08CF E070 LDI R23,0
08D0 C002 RJMP 0x08D3
08D1 2766 CLR R22
08D2 2777 CLR R23
08D3 91800065 LDS R24,0x65
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -