📄 ocmj815b.lis
字号:
00CE F001 movw R30,R0
00D0 E60F add R30,R22
00D2 F71F adc R31,R23
00D4 0485 ldd R16,z+12
00D6 005A subi R16,160
00D8 93DF xcall _send
00DA .dbline 115
00DA 82E0 ldi R24,2
00DC 849F mul R24,R20
00DE F001 movw R30,R0
00E0 E60F add R30,R22
00E2 F71F adc R31,R23
00E4 0585 ldd R16,z+13
00E6 005A subi R16,160
00E8 8BDF xcall _send
00EA .dbline 116
00EA L20:
00EA .dbline 111
00EA 4395 inc R20
00EC L22:
00EC .dbline 111
00EC 4B30 cpi R20,11
00EE 38F3 brlo L19
00F0 .dbline -2
00F0 L14:
00F0 2196 adiw R28,1
00F2 0E940000 xcall pop_gset2
00F6 .dbline 0 ; func end
00F6 0895 ret
00F8 .dbsym r i 20 c
00F8 .dbsym r chn 22 pc
00F8 .dbend
00F8 .dbfunc e disp_img _disp_img fV
00F8 ; j -> R20
00F8 ; i -> R10
00F8 ; img -> R22,R23
.even
00F8 _disp_img::
00F8 0E940000 xcall push_gset3
00FC B801 movw R22,R16
00FE 2197 sbiw R28,1
0100 .dbline -1
0100 .dbline 127
0100 ; delay_nus(2);
0100 ; clk_set;
0100 ; asm("nop");
0100 ; asm("nop");
0100 ; asm("nop");
0100 ; clk_clr;
0100 ; asm("nop");
0100 ; asm("nop");
0100 ; asm("nop");
0100 ; X=ReadFromCharFrom7843(); //读X轴坐标
0100 ; WriteCharTo7843(0xD0); //送控制字 11010000 即用差分方式读Y坐标 详细请见有关资料
0100 ; clk_set;
0100 ; asm("nop");
0100 ; asm("nop");
0100 ; asm("nop");
0100 ; clk_clr;
0100 .dbline 129
0100 ; asm("nop");
0100 ; asm("nop");
0100 4FE1 ldi R20,31
0102 1AC0 xjmp L27
0104 L24:
0104 .dbline 130
0104 ; asm("nop");
0104 .dbline 131
0104 ; Y=ReadFromCharFrom7843(); //读Y轴坐标
0104 84E0 ldi R24,4
0106 A82E mov R10,R24
0108 13C0 xjmp L31
010A L28:
010A .dbline 132
010A .dbline 133
010A 4883 std y+0,R20
010C 2A2D mov R18,R10
010E 03EF ldi R16,243
0110 81DF xcall _write
0112 .dbline 134
0112 80E1 ldi R24,16
0114 849F mul R24,R20
0116 F001 movw R30,R0
0118 E05F subi R30,240
011A F140 sbci R31,1
011C 2A2C mov R2,R10
011E 3324 clr R3
0120 E20D add R30,R2
0122 F31D adc R31,R3
0124 3497 sbiw R30,4
0126 E60F add R30,R22
0128 F71F adc R31,R23
012A 0081 ldd R16,z+0
012C 69DF xcall _send
012E .dbline 135
012E L29:
012E .dbline 131
012E A394 inc R10
0130 L31:
0130 .dbline 131
0130 8A2D mov R24,R10
0132 8431 cpi R24,20
0134 50F3 brlo L28
0136 .dbline 136
0136 L25:
0136 .dbline 129
0136 4395 inc R20
0138 L27:
0138 .dbline 129
0138 4034 cpi R20,64
013A 20F3 brlo L24
013C .dbline -2
013C L23:
013C 2196 adiw R28,1
013E 0E940000 xcall pop_gset3
0142 .dbline 0 ; func end
0142 0895 ret
0144 .dbsym r j 20 c
0144 .dbsym r i 10 c
0144 .dbsym r img 22 pc
0144 .dbend
0144 .dbfunc e disptouch _disptouch fV
0144 ; r -> R20
.even
0144 _disptouch::
0144 0E940000 xcall push_gset1
0148 2197 sbiw R28,1
014A .dbline -1
014A .dbline 147
014A ; cs_set;
014A ; DDRB=0X5e; //ip=1;
014A ; int_set;
014A ; DDRB=0x1e;
014A ; tabx[0]=(X/1000);
014A ; tabx[1]=(X-tabx[0]*1000)/100;
014A ; tabx[2]=(X-tabx[0]*1000-tabx[1]*100)/10;
014A ; tabx[3]=(X-tabx[0]*1000-tabx[1]*100-tabx[2]*10);
014A ; taby[0]=(Y/1000);
014A ; taby[1]=(Y-taby[0]*1000)/100;
014A ; taby[2]=(Y-taby[0]*1000-taby[1]*100)/10;
014A ; taby[3]=(Y-taby[0]*1000-taby[1]*100-taby[2]*10);
014A ; /* if(X>3000)
014A ; if(Y>2600)
014A ; disp2lines(code1);
014A ; if(X<2500)
014A .dbline 149
014A ; if(X>1600)
014A ; if(Y>2600)
014A 46E0 ldi R20,6
014C 10C0 xjmp L36
014E L33:
014E .dbline 150
014E .dbline 151
014E 2224 clr R2
0150 2882 std y+0,R2
0152 242F mov R18,R20
0154 2C5E subi R18,236 ; addi 20
0156 09EF ldi R16,249
0158 5DDF xcall _write
015A .dbline 152
015A 80E0 ldi R24,<_tabx-6
015C 90E0 ldi R25,>_tabx-6
015E E42F mov R30,R20
0160 FF27 clr R31
0162 E80F add R30,R24
0164 F91F adc R31,R25
0166 0081 ldd R16,z+0
0168 005D subi R16,208 ; addi 48
016A 4ADF xcall _send
016C .dbline 153
016C L34:
016C .dbline 149
016C 4395 inc R20
016E L36:
016E .dbline 149
016E 4A30 cpi R20,10
0170 70F3 brlo L33
0172 .dbline 154
0172 ; disp_img(img);
0172 ; if(X<1600)
0172 ; if(Y>2600)
0172 ; disp1line(code2);
0172 ; if(Y<2600)
0172 4DE0 ldi R20,13
0174 10C0 xjmp L41
0176 L38:
0176 .dbline 155
0176 .dbline 156
0176 80E1 ldi R24,16
0178 8883 std y+0,R24
017A 242F mov R18,R20
017C 235F subi R18,243 ; addi 13
017E 09EF ldi R16,249
0180 49DF xcall _write
0182 .dbline 157
0182 80E0 ldi R24,<_taby-13
0184 90E0 ldi R25,>_taby-13
0186 E42F mov R30,R20
0188 FF27 clr R31
018A E80F add R30,R24
018C F91F adc R31,R25
018E 0081 ldd R16,z+0
0190 005D subi R16,208 ; addi 48
0192 36DF xcall _send
0194 .dbline 158
0194 L39:
0194 .dbline 154
0194 4395 inc R20
0196 L41:
0196 .dbline 154
0196 4131 cpi R20,17
0198 70F3 brlo L38
019A .dbline -2
019A L32:
019A 2196 adiw R28,1
019C 0E940000 xcall pop_gset1
01A0 .dbline 0 ; func end
01A0 0895 ret
01A2 .dbsym r r 20 c
01A2 .dbend
01A2 .dbfunc e spi_start _spi_start fV
.even
01A2 _spi_start::
01A2 .dbline -1
01A2 .dbline 169
01A2 ; send(0xf4);
01A2 ; */
01A2 ;
01A2 ; /*
01A2 ; if(X>3000)
01A2 ; if(Y>3000)
01A2 ; {
01A2 ; write(0xf1,2,20);
01A2 ; send(0x31); //1
01A2 ; }
01A2 ; if(X>2000&&X<3000)
01A2 ; if(Y>3000)
01A2 ; {
01A2 ; write(0xf1,2,52);
01A2 ; send(0x32); //2
01A2 .dbline 170
01A2 ; }
01A2 C298 cbi 0x18,2
01A4 .dbline 171
01A4 ; if(X>1000&&X<2000)
01A4 C39A sbi 0x18,3
01A6 .dbline 172
01A6 ; if(Y>3000)
01A6 C49A sbi 0x18,4
01A8 .dbline 173
01A8 ; {
01A8 C29A sbi 0x18,2
01AA .dbline 174
01AA ; write(0xf1,2,84);
01AA C398 cbi 0x18,3
01AC .dbline -2
01AC L43:
01AC .dbline 0 ; func end
01AC 0895 ret
01AE .dbend
01AE .dbfunc e WriteCharTo7843 _WriteCharTo7843 fV
01AE ; count -> R20
01AE ; num -> R16
.even
01AE _WriteCharTo7843::
01AE 0E940000 xcall push_gset1
01B2 .dbline -1
01B2 .dbline 185
01B2 ; send(0x33); //3
01B2 ; }
01B2 ; if(X>0&&X<1000)
01B2 ; if(Y>3000)
01B2 ; {
01B2 ; write(0xf1,2,116);
01B2 ; send(0x34); //4
01B2 ; }
01B2 ;
01B2 ;
01B2 ; if(X>3000)
01B2 .dbline 186
01B2 ; if(Y<3000&&Y>2000)
01B2 4427 clr R20
01B4 .dbline 187
01B4 ; {
01B4 C298 cbi 0x18,2
01B6 .dbline 188
01B6 ; write(0xf1,9,20);
01B6 0FC0 xjmp L48
01B8 L45:
01B8 .dbline 189
01B8 ; send(0x35); //5
01B8 .dbline 190
01B8 ; }
01B8 07FF sbrs R16,7
01BA 02C0 rjmp L49
01BC .dbline 191
01BC ; if(X>2000&&X<3000)
01BC C49A sbi 0x18,4
01BE 01C0 xjmp L50
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -