📄 1.lis
字号:
01E6 ; void clearping(void)
01E6 ; {unsigned char j;
01E6 .dbline 322
01E6 ; clr_STB();
01E6 C498 cbi 0x18,4
01E8 .dbline 323
01E8 ; for(j=0;j<20;j++)//20*8列都不显示红‘绿色
01E8 4427 clr R20
01EA 03C0 xjmp L61
01EC L58:
01EC .dbline 324
01EC 0027 clr R16
01EE 5ADF xcall _Send_Byte_DR_DG
01F0 L59:
01F0 .dbline 323
01F0 4395 inc R20
01F2 L61:
01F2 .dbline 323
01F2 4431 cpi R20,20
01F4 D8F3 brlo L58
01F6 .dbline 325
01F6 ; Send_Byte_DR_DG(0x00);//8位的各个所在列都不显示红‘绿色
01F6 ; set_STB();//锁存
01F6 C49A sbi 0x18,4
01F8 .dbline -2
01F8 L57:
01F8 0E940000 xcall pop_gset1
01FC .dbline 0 ; func end
01FC 0895 ret
01FE .dbsym r j 20 c
01FE .dbend
01FE .dbfunc e DisPlay_onetime _DisPlay_onetime fV
01FE ; i -> R22
01FE ; j -> R10
01FE ; colour -> R20
.even
01FE _DisPlay_onetime::
01FE 0E940000 xcall push_gset4
0202 402F mov R20,R16
0204 .dbline -1
0204 .dbline 330
0204 ; }
0204 ; //显示一次板面汉字
0204 ; void DisPlay_onetime(unsigned char colour)
0204 ; //colour=0\1\2分别为红\绿\橙色显示
0204 ; {
0204 .dbline 332
0204 ; uchar i,j;
0204 ; for(i=0;i<16;i++)//扫描16行
0204 6627 clr R22
0206 53C0 xjmp L66
0208 L63:
0208 .dbline 333
0208 ; {
0208 .dbline 334
0208 ; clr_STB();
0208 C498 cbi 0x18,4
020A .dbline 335
020A ; for(j=0;j<20;j++)//每一片点阵出现的第一个汉字从第|Jmax-20|列(从输入端开始数)开始入x=20时每一片点阵出现的第一个汉字从第0个字位开始入
020A AA24 clr R10
020C 3AC0 xjmp L70
020E L67:
020E .dbline 336
020E ; { //*本版面最多能显示10个字,即20列(Ledplay的前20 列)其他汉字通过移动(把20列以后的字信号移到前20列范围内,即版内)
020E .dbline 337
020E ; switch(colour)
020E C42E mov R12,R20
0210 DD24 clr R13
0212 CC20 tst R12
0214 11F4 brne X1
0216 DD20 tst R13
0218 51F0 breq L74
021A X1:
021A C601 movw R24,R12
021C 8130 cpi R24,1
021E E0E0 ldi R30,0
0220 9E07 cpc R25,R30
0222 99F0 breq L75
0224 8230 cpi R24,2
0226 E0E0 ldi R30,0
0228 9E07 cpc R25,R30
022A E9F0 breq L76
022C 29C0 xjmp L72
022E X2:
022E .dbline 338
022E ; {
022E L74:
022E .dbline 339
022E ; case 0: Send_Byte_DR(Ledplay[i][j]);
022E 8AE3 ldi R24,58
0230 869F mul R24,R22
0232 1001 movw R2,R0
0234 80E0 ldi R24,<_Ledplay
0236 90E0 ldi R25,>_Ledplay
0238 280E add R2,R24
023A 391E adc R3,R25
023C EA2D mov R30,R10
023E FF27 clr R31
0240 E20D add R30,R2
0242 F31D adc R31,R3
0244 0081 ldd R16,z+0
0246 1ADF xcall _Send_Byte_DR
0248 .dbline 340
0248 ; break;
0248 1BC0 xjmp L72
024A L75:
024A .dbline 341
024A ; case 1: Send_Byte_DG(Ledplay[i][j]);
024A 8AE3 ldi R24,58
024C 869F mul R24,R22
024E 1001 movw R2,R0
0250 80E0 ldi R24,<_Ledplay
0252 90E0 ldi R25,>_Ledplay
0254 280E add R2,R24
0256 391E adc R3,R25
0258 EA2D mov R30,R10
025A FF27 clr R31
025C E20D add R30,R2
025E F31D adc R31,R3
0260 0081 ldd R16,z+0
0262 F8DE xcall _Send_Byte_DG
0264 .dbline 342
0264 ; break;
0264 0DC0 xjmp L72
0266 L76:
0266 .dbline 343
0266 ; case 2: Send_Byte_DR_DG(Ledplay[i][j]);
0266 8AE3 ldi R24,58
0268 869F mul R24,R22
026A 1001 movw R2,R0
026C 80E0 ldi R24,<_Ledplay
026E 90E0 ldi R25,>_Ledplay
0270 280E add R2,R24
0272 391E adc R3,R25
0274 EA2D mov R30,R10
0276 FF27 clr R31
0278 E20D add R30,R2
027A F31D adc R31,R3
027C 0081 ldd R16,z+0
027E 12DF xcall _Send_Byte_DR_DG
0280 .dbline 344
0280 ; break;
0280 .dbline 345
0280 ; default:break;
0280 L72:
0280 .dbline 347
0280 L68:
0280 .dbline 335
0280 A394 inc R10
0282 L70:
0282 .dbline 335
0282 8A2D mov R24,R10
0284 8431 cpi R24,20
0286 08F4 brsh X3
0288 C2CF xjmp L67
028A X3:
028A .dbline 348
028A 909A sbi 0x12,0
028C .dbline 349
028C 02E0 ldi R16,2
028E 10E0 ldi R17,0
0290 B9DE xcall _delay_nus
0292 .dbline 350
0292 C49A sbi 0x18,4
0294 .dbline 351
0294 80E0 ldi R24,<_ROW
0296 90E0 ldi R25,>_ROW
0298 E62F mov R30,R22
029A FF27 clr R31
029C E80F add R30,R24
029E F91F adc R31,R25
02A0 E491 lpm R30,Z
02A2 E8BB out 0x18,R30
02A4 .dbline 352
02A4 9098 cbi 0x12,0
02A6 .dbline 353
02A6 08EC ldi R16,200
02A8 10E0 ldi R17,0
02AA ACDE xcall _delay_nus
02AC .dbline 354
02AC L64:
02AC .dbline 332
02AC 6395 inc R22
02AE L66:
02AE .dbline 332
02AE 6031 cpi R22,16
02B0 08F4 brsh X4
02B2 AACF xjmp L63
02B4 X4:
02B4 .dbline 355
02B4 ; }
02B4 ; }
02B4 ; set_G();
02B4 ; delay_nus(2);
02B4 ; set_STB();//锁存
02B4 ; PORTB=ROW[i];//i行控制位 共阴的二极管允许了接地
02B4 ; clr_G();//行控制有效
02B4 ; delay_nus(displayTime);
02B4 ; }
02B4 ; delay_nus(200);
02B4 08EC ldi R16,200
02B6 10E0 ldi R17,0
02B8 A5DE xcall _delay_nus
02BA .dbline 356
02BA ; set_G();
02BA 909A sbi 0x12,0
02BC .dbline -2
02BC L62:
02BC 0E940000 xcall pop_gset4
02C0 .dbline 0 ; func end
02C0 0895 ret
02C2 .dbsym r i 22 c
02C2 .dbsym r j 10 c
02C2 .dbsym r colour 20 c
02C2 .dbend
02C2 .dbfunc e left_move _left_move fV
02C2 ; data1 -> R22
02C2 ; data0 -> R20
02C2 ; i -> R16
02C2 ; j -> R18
.even
02C2 _left_move::
02C2 0E940000 xcall push_gset2
02C6 .dbline -1
02C6 .dbline 360
02C6 ; }
02C6 ; //下面函数功能为把信号(汉字)前移
02C6 ; void left_move(void)
02C6 ; {
02C6 .dbline 362
02C6 ; uchar data0,data1,i,j;
02C6 ; for(i=0;i<16;i++)
02C6 0027 clr R16
02C8 37C0 xjmp L81
02CA L78:
02CA .dbline 363
02CA ; {
02CA .dbline 364
02CA ; for(j=0;j<(howmany0+hanzishu)*2;j++)//如41=(howmany0+hanzishu)*2+1
02CA 2227 clr R18
02CC 31C0 xjmp L85
02CE L82:
02CE .dbline 365
02CE .dbline 366
02CE 8AE3 ldi R24,58
02D0 809F mul R24,R16
02D2 1001 movw R2,R0
02D4 80E0 ldi R24,<_Ledplay
02D6 90E0 ldi R25,>_Ledplay
02D8 280E add R2,R24
02DA 391E adc R3,R25
02DC E22F mov R30,R18
02DE FF27 clr R31
02E0 E20D add R30,R2
02E2 F31D adc R31,R3
02E4 4081 ldd R20,z+0
02E6 .dbline 367
02E6 8AE3 ldi R24,58
02E8 809F mul R24,R16
02EA 1001 movw R2,R0
02EC 80E0 ldi R24,<_Ledplay
02EE 90E0 ldi R25,>_Ledplay
02F0 280E add R2,R24
02F2 391E adc R3,R25
02F4 E22F mov R30,R18
02F6 FF27 clr R31
02F8 3196 adiw R30,1
02FA E20D add R30,R2
02FC F31D adc R31,R3
02FE 6081 ldd R22,z+0
0300 .dbline 368
0300 8AE3 ldi R24,58
0302 809F mul R24,R16
0304 1001 movw R2,R0
0306 80E0 ldi R24,<_Ledplay
0308 90E0 ldi R25,>_Ledplay
030A 280E add R2,R24
030C 391E adc R3,R25
030E E22F mov R30,R18
0310 FF27 clr R31
0312 E20D add R30,R2
0314 F31D adc R31,R3
0316 262E mov R2,R22
0318 2694 lsr R2
031A 2694 lsr R2
031C 2694 lsr R2
031E 2694 lsr R2
0320 2694 lsr R2
0322 2694 lsr R2
0324 2694 lsr R2
0326 342E mov R3,R20
0328 330C lsl R3
032A 3228 or R3,R2
032C 3082 std z+0,R3
032E .dbline 369
032E L83:
032E .dbline 364
032E 2395 inc R18
0330 L85:
0330 .dbline 364
0330 2833 cpi R18,56
0332 08F4 brsh X5
0334 CCCF xjmp L82
0336 X5:
0336 .dbline 370
0336 L79:
0336 .dbline 362
0336 0395 inc R16
0338 L81:
0338 .dbline 362
0338 0031 cpi R16,16
033A 08F4 brsh X6
033C C6CF xjmp L78
033E X6:
033E .dbline -2
033E L77:
033E 0E940000 xcall pop_gset2
0342 .dbline 0 ; func end
0342 0895 ret
0344 .dbsym
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -