📄 no2.lis
字号:
012A .dbline 190
012A ; uchar i,j,temp ;
012A ; temp=y;
012A E882 std y+0,R14
012C .dbline 191
012C ; if( bit_flag )
012C AA20 tst R10
012E 11F1 breq L36
0130 X6:
0130 .dbline 192
0130 ; {
0130 .dbline 193
0130 ; for( i=0; i<2; i++ )
0130 AA24 clr R10
0132 1CC0 xjmp L41
0134 L38:
0134 .dbline 194
0134 ; {
0134 .dbline 195
0134 ; x+=i;
0134 0F80 ldd R0,y+7
0136 0A0C add R0,R10
0138 0F82 std y+7,R0
013A .dbline 196
013A ; y=temp;
013A E880 ldd R14,y+0
013C .dbline 197
013C ; for( j=0;j<16;j++ )
013C CC24 clr R12
013E 12C0 xjmp L45
0140 L42:
0140 .dbline 198
0140 ; {
0140 .dbline 199
0140 ; Lcd_Set_X_Y( x, y ); y++;
0140 2E2D mov R18,R14
0142 0F81 ldd R16,y+7
0144 D4DF xcall _Lcd_Set_X_Y
0146 .dbline 199
0146 E394 inc R14
0148 .dbline 200
0148 ; Lcd_Write_Byte( point[ i*16 + j] );
0148 80E1 ldi R24,16
014A 8A9D mul R24,R10
014C F001 movw R30,R0
014E 2C2C mov R2,R12
0150 3324 clr R3
0152 E20D add R30,R2
0154 F31D adc R31,R3
0156 0B84 ldd R0,y+11
0158 1C84 ldd R1,y+12
015A E00D add R30,R0
015C F11D adc R31,R1
015E 0081 ldd R16,z+0
0160 91DF xcall _Lcd_Write_Byte
0162 .dbline 201
0162 ; }
0162 L43:
0162 .dbline 197
0162 C394 inc R12
0164 L45:
0164 .dbline 197
0164 8C2D mov R24,R12
0166 8031 cpi R24,16
0168 58F3 brlo L42
016A X7:
016A .dbline 202
016A ; }
016A L39:
016A .dbline 193
016A A394 inc R10
016C L41:
016C .dbline 193
016C 8A2D mov R24,R10
016E 8230 cpi R24,2
0170 08F3 brlo L38
0172 X8:
0172 .dbline 203
0172 ; }
0172 22C0 xjmp L37
0174 L36:
0174 .dbline 205
0174 ; else
0174 ; {
0174 .dbline 206
0174 ; for( i =0; i<2; i++ )
0174 AA24 clr R10
0176 1DC0 xjmp L49
0178 L46:
0178 .dbline 207
0178 ; {
0178 .dbline 208
0178 ; x+=i;
0178 0F80 ldd R0,y+7
017A 0A0C add R0,R10
017C 0F82 std y+7,R0
017E .dbline 209
017E ; y=temp;
017E E880 ldd R14,y+0
0180 .dbline 210
0180 ; for( j = 0; j < 16; j++ )
0180 CC24 clr R12
0182 13C0 xjmp L53
0184 L50:
0184 .dbline 211
0184 ; {
0184 .dbline 212
0184 ; Lcd_Set_X_Y( x, y );
0184 2E2D mov R18,R14
0186 0F81 ldd R16,y+7
0188 B2DF xcall _Lcd_Set_X_Y
018A .dbline 213
018A ; y++;
018A E394 inc R14
018C .dbline 214
018C ; Lcd_Write_Byte( ~ point[ i * 16 + j ] );
018C 80E1 ldi R24,16
018E 8A9D mul R24,R10
0190 F001 movw R30,R0
0192 2C2C mov R2,R12
0194 3324 clr R3
0196 E20D add R30,R2
0198 F31D adc R31,R3
019A 0B84 ldd R0,y+11
019C 1C84 ldd R1,y+12
019E E00D add R30,R0
01A0 F11D adc R31,R1
01A2 0081 ldd R16,z+0
01A4 0095 com R16
01A6 6EDF xcall _Lcd_Write_Byte
01A8 .dbline 216
01A8 ;
01A8 ; }
01A8 L51:
01A8 .dbline 210
01A8 C394 inc R12
01AA L53:
01AA .dbline 210
01AA 8C2D mov R24,R12
01AC 8031 cpi R24,16
01AE 50F3 brlo L50
01B0 X9:
01B0 .dbline 218
01B0 ;
01B0 ; }
01B0 L47:
01B0 .dbline 206
01B0 A394 inc R10
01B2 L49:
01B2 .dbline 206
01B2 8A2D mov R24,R10
01B4 8230 cpi R24,2
01B6 00F3 brlo L46
01B8 X10:
01B8 .dbline 219
01B8 ; }
01B8 L37:
01B8 .dbline -2
01B8 L35:
01B8 .dbline 0 ; func end
01B8 2196 adiw R28,1
01BA 0E940000 xcall pop_xgset00FC
01BE 2296 adiw R28,2
01C0 0895 ret
01C2 .dbsym l temp 0 c
01C2 .dbsym r i 10 c
01C2 .dbsym r j 12 c
01C2 .dbsym l point 11 pc
01C2 .dbsym r y 14 c
01C2 .dbsym l x 7 c
01C2 .dbsym r bit_flag 10 c
01C2 .dbend
01C2 .dbfunc e key_press _key_press fc
01C2 ; j -> R16
.even
01C2 _key_press::
01C2 .dbline -1
01C2 .dbline 222
01C2 ; }
01C2 ; uchar key_press()
01C2 ; {
01C2 .dbline 224
01C2 ; uchar j;
01C2 ; DDRD|=0X0F;
01C2 81B3 in R24,0x11
01C4 8F60 ori R24,15
01C6 81BB out 0x11,R24
01C8 .dbline 225
01C8 ; PORTD|=0X0F;
01C8 82B3 in R24,0x12
01CA 8F60 ori R24,15
01CC 82BB out 0x12,R24
01CE .dbline 227
01CE ;
01CE ; DDRD&=0XF0;
01CE 81B3 in R24,0x11
01D0 807F andi R24,240
01D2 81BB out 0x11,R24
01D4 .dbline 229
01D4 ;
01D4 ; j=PIND;
01D4 00B3 in R16,0x10
01D6 .dbline 230
01D6 ; j=j&0X0F;//00001111
01D6 0F70 andi R16,15
01D8 .dbline 231
01D8 ; if(j==0X0F)
01D8 0F30 cpi R16,15
01DA 11F4 brne L55
01DC X11:
01DC .dbline 232
01DC ; {
01DC .dbline 233
01DC ; return 0;
01DC 0027 clr R16
01DE 01C0 xjmp L54
01E0 L55:
01E0 .dbline 236
01E0 ; }
01E0 ; else
01E0 ; {
01E0 .dbline 237
01E0 ; return 1;
01E0 01E0 ldi R16,1
01E2 .dbline -2
01E2 L54:
01E2 .dbline 0 ; func end
01E2 0895 ret
01E4 .dbsym r j 16 c
01E4 .dbend
01E4 .dbfunc e key_scan _key_scan fc
01E4 ; key -> R10
.even
01E4 _key_scan::
01E4 0E940000 xcall push_xgset003C
01E8 .dbline -1
01E8 .dbline 243
01E8 ; }
01E8 ;
01E8 ; }
01E8 ;
01E8 ; uchar key_scan()
01E8 ; {
01E8 .dbline 245
01E8 ; uchar key;
01E8 ; delay(10);
01E8 0AE0 ldi R16,10
01EA 10E0 ldi R17,0
01EC 33DF xcall _delay
01EE .dbline 246
01EE ; if(key_press())
01EE E9DF xcall _key_press
01F0 0023 tst R16
01F2 51F1 breq L58
01F4 X12:
01F4 .dbline 247
01F4 ; {
01F4 .dbline 248
01F4 ; key=PIND;
01F4 A0B2 in R10,0x10
01F6 .dbline 249
01F6 ; key&=0X0F;
01F6 8A2D mov R24,R10
01F8 8F70 andi R24,15
01FA A82E mov R10,R24
01FC .dbline 250
01FC ; switch(key)
01FC C82E mov R12,R24
01FE DD24 clr R13
0200 C601 movw R24,R12
0202 8730 cpi R24,7
0204 E0E0 ldi R30,0
0206 9E07 cpc R25,R30
0208 B1F0 breq L66
020A X13:
020A 8B30 cpi R24,11
020C E0E0 ldi R30,0
020E 9E07 cpc R25,R30
0210 79F0 breq L65
0212 X14:
0212 8D30 cpi R24,13
0214 E0E0 ldi R30,0
0216 9E07 cpc R25,R30
0218 41F0 breq L64
021A X15:
021A 8E30 cpi R24,14
021C E0E0 ldi R30,0
021E 9E07 cpc R25,R30
0220 09F0 breq L63
0222 X16:
0222 0CC0 xjmp L60
0224 L63:
0224 .dbline 253
0224 ; {
0224 ; case 0X0E:
0224 ; key=1;
0224 AA24 clr R10
0226 A394 inc R10
0228 .dbline 254
0228 ; break;
0228 0BC0 xjmp L68
022A L64:
022A .dbline 256
022A ; case 0X0D:
022A ; key=2;
022A 82E0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -