📄 main.lis
字号:
014E .dbline 119
014E L17:
014E .dbline 103
014E DFCF xjmp L16
0150 L18:
0150 .dbline 122
0150 ; }
0150 ; }
0150 ;
0150 ; //将选择的局载入显示缓存区
0150 ; if(guanshu==1)
0150 80911400 lds R24,_guanshu
0154 8130 cpi R24,1
0156 09F5 brne L25
0158 .dbline 123
0158 ; {
0158 .dbline 124
0158 ; for(i=0;i<5;i++)
0158 4427 clr R20
015A 1CC0 xjmp L30
015C L27:
015C .dbline 125
015C ; for(j=0;j<4;j++)
015C 6627 clr R22
015E 17C0 xjmp L34
0160 L31:
0160 .dbline 126
0160 .dbline 127
0160 84E0 ldi R24,4
0162 849F mul R24,R20
0164 80E0 ldi R24,<_disp1_buffer
0166 90E0 ldi R25,>_disp1_buffer
0168 1001 movw R2,R0
016A 280E add R2,R24
016C 391E adc R3,R25
016E E62F mov R30,R22
0170 FF27 clr R31
0172 E20D add R30,R2
0174 F31D adc R31,R3
0176 2080 ldd R2,z+0
0178 80E0 ldi R24,<_disp_buffer
017A 90E0 ldi R25,>_disp_buffer
017C 2001 movw R4,R0
017E 480E add R4,R24
0180 591E adc R5,R25
0182 E62F mov R30,R22
0184 FF27 clr R31
0186 E40D add R30,R4
0188 F51D adc R31,R5
018A 2082 std z+0,R2
018C .dbline 128
018C L32:
018C .dbline 125
018C 6395 inc R22
018E L34:
018E .dbline 125
018E 6430 cpi R22,4
0190 38F3 brlo L31
0192 L28:
0192 .dbline 124
0192 4395 inc R20
0194 L30:
0194 .dbline 124
0194 4530 cpi R20,5
0196 10F3 brlo L27
0198 .dbline 129
0198 ; {
0198 ; disp_buffer[i][j]=disp1_buffer[i][j];
0198 ; }
0198 ; }
0198 20C0 xjmp L26
019A L25:
019A .dbline 131
019A ; else
019A ; {
019A .dbline 132
019A ; for(i=0;i<5;i++)
019A 4427 clr R20
019C 1CC0 xjmp L38
019E L35:
019E .dbline 133
019E ; for(j=0;j<4;j++)
019E 6627 clr R22
01A0 17C0 xjmp L42
01A2 L39:
01A2 .dbline 134
01A2 .dbline 135
01A2 84E0 ldi R24,4
01A4 849F mul R24,R20
01A6 80E0 ldi R24,<_disp2_buffer
01A8 90E0 ldi R25,>_disp2_buffer
01AA 1001 movw R2,R0
01AC 280E add R2,R24
01AE 391E adc R3,R25
01B0 E62F mov R30,R22
01B2 FF27 clr R31
01B4 E20D add R30,R2
01B6 F31D adc R31,R3
01B8 2080 ldd R2,z+0
01BA 80E0 ldi R24,<_disp_buffer
01BC 90E0 ldi R25,>_disp_buffer
01BE 2001 movw R4,R0
01C0 480E add R4,R24
01C2 591E adc R5,R25
01C4 E62F mov R30,R22
01C6 FF27 clr R31
01C8 E40D add R30,R4
01CA F51D adc R31,R5
01CC 2082 std z+0,R2
01CE .dbline 136
01CE L40:
01CE .dbline 133
01CE 6395 inc R22
01D0 L42:
01D0 .dbline 133
01D0 6430 cpi R22,4
01D2 38F3 brlo L39
01D4 L36:
01D4 .dbline 132
01D4 4395 inc R20
01D6 L38:
01D6 .dbline 132
01D6 4530 cpi R20,5
01D8 10F3 brlo L35
01DA .dbline 137
01DA ; {
01DA ; disp_buffer[i][j]=disp2_buffer[i][j];
01DA ; }
01DA ; }
01DA L26:
01DA .dbline 140
01DA ;
01DA ; //开始闯关
01DA ; for(;;)
01DA L43:
01DA .dbline 141
01DA ; {
01DA .dbline 143
01DA ; //显示鼠标
01DA ; LCD_set_XY(Y*8+3,X);//设置初始位置
01DA 20911A00 lds R18,_X
01DE 20901900 lds R2,_Y
01E2 88E0 ldi R24,8
01E4 829D mul R24,R2
01E6 002D mov R16,R0
01E8 0D5F subi R16,253 ; addi 3
01EA 0E94D50E xcall _LCD_set_XY
01EE .dbline 144
01EE ; LCD_write_byte(0x3c,1);
01EE 21E0 ldi R18,1
01F0 0CE3 ldi R16,60
01F2 0E94EE0F xcall _LCD_write_byte
01F6 .dbline 145
01F6 ; LCD_write_byte(0x3c,1);
01F6 21E0 ldi R18,1
01F8 0CE3 ldi R16,60
01FA 0E94EE0F xcall _LCD_write_byte
01FE .dbline 146
01FE ; KBOD_task(); //按键操作处理
01FE C0D0 xcall _KBOD_task
0200 .dbline 148
0200 ;
0200 ; if(key_value!=0)
0200 20901D00 lds R2,_key_value
0204 2220 tst R2
0206 41F0 breq L47
0208 .dbline 149
0208 ; {
0208 .dbline 151
0208 ;
0208 ; key_last_value=key_value; //将上次的键值存起来
0208 20921C00 sts _key_last_value,R2
020C .dbline 152
020C ; key_value=0; //将当前键值清零
020C 2224 clr R2
020E 20921D00 sts _key_value,R2
0212 .dbline 153
0212 ; key_one=1; //将显示打开
0212 81E0 ldi R24,1
0214 80931B00 sts _key_one,R24
0218 .dbline 154
0218 ; }
0218 L47:
0218 .dbline 156
0218 ;
0218 ; if(key_one==1)
0218 80911B00 lds R24,_key_one
021C 8130 cpi R24,1
021E 29F4 brne L49
0220 .dbline 157
0220 ; {
0220 .dbline 158
0220 ; DISP_task(); //显示图形界面
0220 0E944F0D xcall _DISP_task
0224 .dbline 159
0224 ; key_one=0; //将显示关闭
0224 2224 clr R2
0226 20921B00 sts _key_one,R2
022A .dbline 160
022A ; }
022A L49:
022A .dbline 163
022A ;
022A ; //判断通关与否
022A ; if((disp_buffer[4][1]==0x41)&(disp_buffer[4][2]==0x41)) //通过
022A 80911100 lds R24,_disp_buffer+16+1
022E 8134 cpi R24,65
0230 21F4 brne L57
0232 81E0 ldi R24,1
0234 90E0 ldi R25,0
0236 5C01 movw R10,R24
0238 02C0 xjmp L58
023A L57:
023A AA24 clr R10
023C BB24 clr R11
023E L58:
023E 80911200 lds R24,_disp_buffer+16+2
0242 8134 cpi R24,65
0244 19F4 brne L59
0246 61E0 ldi R22,1
0248 70E0 ldi R23,0
024A 02C0 xjmp L60
024C L59:
024C 6627 clr R22
024E 7727 clr R23
0250 L60:
0250 1501 movw R2,R10
0252 2622 and R2,R22
0254 3722 and R3,R23
0256 2220 tst R2
0258 19F4 brne X2
025A 3320 tst R3
025C 09F4 brne X4
025E BDCF xjmp L43
0260 X4:
0260 X2:
0260 .dbline 164
0260 ; {
0260 .dbline 166
0260 ;
0260 ; LCD_clear(); //清屏
0260 0E94B40E xcall _LCD_clear
0264 .dbline 167
0264 ; LCD_write_String(0,5,15,"Congratulation!",0); //祝贺
0264 2224 clr R2
0266 3324 clr R3
0268 3D82 std y+5,R3
026A 2C82 std y+4,R2
026C 80E0 ldi R24,<L61
026E 90E0 ldi R25,>L61
0270 9B83 std y+3,R25
0272 8A83 std y+2,R24
0274 8FE0 ldi R24,15
0276 90E0 ldi R25,0
0278 9983 std y+1,R25
027A 8883 std y+0,R24
027C 25E0 ldi R18,5
027E 30E0 ldi R19,0
0280 0027 clr R16
0282 1127 clr R17
0284 0E94140F xcall _LCD_write_String
0288 .dbline 168
0288 ; LCD_write_String(0,4,5,"Wait!",0); //等待
0288 2224 clr R2
028A 3324 clr R3
028C 3D82 std y+5,R3
028E 2C82 std y+4,R2
0290 80E0 ldi R24,<L62
0292 90E0 ldi R25,>L62
0294 9B83 std y+3,R25
0296 8A83 std y+2,R24
0298 85E0 ldi R24,5
029A 90E0 ldi R25,0
029C 9983 std y+1,R25
029E 8883 std y+0,R24
02A0 24E0 ldi R18,4
02A2 30E0 ldi R19,0
02A4 0027 clr R16
02A6 1127 clr R17
02A8 0E94140F xcall _LCD_write_String
02AC .dbline 169
02AC ; Delay_ms(10000); //延时
02AC 00E1 ldi R16,10000
02AE 17E2 ldi R17,39
02B0 B1DE xcall _Delay_ms
02B2 .dbline 170
02B2 ; guanshu++; //关数加1
02B2 80911400 lds R24,_guanshu
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -