📄 1.lis
字号:
00A8 ; }
00A8 ; //送橙色数据
00A8 ; void Send_Byte_DR_DG(uchar data)
00A8 ; {
00A8 .dbline 265
00A8 ; uchar i=0;
00A8 4427 clr R20
00AA .dbline 266
00AA ; for(i=0;i<8;i++)
00AA 0BC0 xjmp L35
00AC L32:
00AC .dbline 267
00AC ; {
00AC .dbline 268
00AC ; clr_CLK();
00AC C598 cbi 0x18,5
00AE .dbline 270
00AE ;
00AE ; if((data&0x80)==0)
00AE 07FD sbrc R16,7
00B0 03C0 rjmp L36
00B2 .dbline 271
00B2 ; {
00B2 .dbline 272
00B2 ; clr_DG();
00B2 C698 cbi 0x18,6
00B4 .dbline 273
00B4 ; clr_DR();
00B4 C798 cbi 0x18,7
00B6 .dbline 274
00B6 ; }
00B6 02C0 xjmp L37
00B8 L36:
00B8 .dbline 276
00B8 ; else//列控制 该位所在列的二极管得正电位 在允许接地的情况下发光!!!
00B8 ; {
00B8 .dbline 277
00B8 ; set_DR();
00B8 C79A sbi 0x18,7
00BA .dbline 278
00BA ; set_DG();
00BA C69A sbi 0x18,6
00BC .dbline 279
00BC ; }
00BC L37:
00BC .dbline 280
00BC C59A sbi 0x18,5
00BE .dbline 281
00BE 000F lsl R16
00C0 .dbline 282
00C0 L33:
00C0 .dbline 266
00C0 4395 inc R20
00C2 L35:
00C2 .dbline 266
00C2 4830 cpi R20,8
00C4 98F3 brlo L32
00C6 .dbline 283
00C6 ; set_CLK();
00C6 ; data<<=1;
00C6 ; }
00C6 ; clr_DR();
00C6 C798 cbi 0x18,7
00C8 .dbline 284
00C8 ; clr_DG();
00C8 C698 cbi 0x18,6
00CA .dbline -2
00CA L31:
00CA 0E940000 xcall pop_gset1
00CE .dbline 0 ; func end
00CE 0895 ret
00D0 .dbsym r i 20 c
00D0 .dbsym r data 16 c
00D0 .dbend
00D0 .dbfunc e putin _putin fV
00D0 ; i -> R20
00D0 ; point -> R16
.even
00D0 _putin::
00D0 0E940000 xcall push_gset1
00D4 .dbline -1
00D4 .dbline 288
00D4 ; }
00D4 ; //将汉字符装入显示寄存器
00D4 ; void putin (uchar point)//字符载入函数
00D4 ; {
00D4 .dbline 290
00D4 ; uchar i;//定义变量用于数据提取指针
00D4 ; for(i=0;i<16;i++)
00D4 4427 clr R20
00D6 37C0 xjmp L42
00D8 L39:
00D8 .dbline 291
00D8 .dbline 292
00D8 80E2 ldi R24,32
00DA 809F mul R24,R16
00DC 1001 movw R2,R0
00DE 80E0 ldi R24,<_data
00E0 90E0 ldi R25,>_data
00E2 280E add R2,R24
00E4 391E adc R3,R25
00E6 82E0 ldi R24,2
00E8 849F mul R24,R20
00EA F001 movw R30,R0
00EC E20D add R30,R2
00EE F31D adc R31,R3
00F0 E491 lpm R30,Z
00F2 8AE3 ldi R24,58
00F4 849F mul R24,R20
00F6 1001 movw R2,R0
00F8 80E0 ldi R24,<_Ledplay
00FA 90E0 ldi R25,>_Ledplay
00FC 280E add R2,R24
00FE 391E adc R3,R25
0100 A0910000 lds R26,_bn
0104 BB27 clr R27
0106 A20D add R26,R2
0108 B31D adc R27,R3
010A EC93 st x,R30
010C .dbline 293
010C 80E2 ldi R24,32
010E 809F mul R24,R16
0110 1001 movw R2,R0
0112 80E0 ldi R24,<_data
0114 90E0 ldi R25,>_data
0116 280E add R2,R24
0118 391E adc R3,R25
011A 82E0 ldi R24,2
011C 849F mul R24,R20
011E F001 movw R30,R0
0120 3196 adiw R30,1
0122 E20D add R30,R2
0124 F31D adc R31,R3
0126 E491 lpm R30,Z
0128 8AE3 ldi R24,58
012A 849F mul R24,R20
012C 1001 movw R2,R0
012E 80E0 ldi R24,<_Ledplay
0130 90E0 ldi R25,>_Ledplay
0132 280E add R2,R24
0134 391E adc R3,R25
0136 A0910000 lds R26,_bn
013A BB27 clr R27
013C 1196 adiw R26,1
013E A20D add R26,R2
0140 B31D adc R27,R3
0142 EC93 st x,R30
0144 .dbline 294
0144 L40:
0144 .dbline 290
0144 4395 inc R20
0146 L42:
0146 .dbline 290
0146 4031 cpi R20,16
0148 08F4 brsh X0
014A C6CF xjmp L39
014C X0:
014C .dbline 295
014C ; {
014C ; Ledplay[i][bn]=data[point][2*i]; //行储存转化为列储存
014C ; Ledplay[i][bn+1]=data[point][(2*i)+1]; //行储存转化为列储存
014C ; }
014C ; bn+=2;
014C 80910000 lds R24,_bn
0150 8E5F subi R24,254 ; addi 2
0152 80930000 sts _bn,R24
0156 .dbline -2
0156 L38:
0156 0E940000 xcall pop_gset1
015A .dbline 0 ; func end
015A 0895 ret
015C .dbsym r i 20 c
015C .dbsym r point 16 c
015C .dbend
015C .dbfunc e putin1 _putin1 fV
015C ; i -> R20
015C ; point -> R16
.even
015C _putin1::
015C 0E940000 xcall push_gset1
0160 .dbline -1
0160 .dbline 300
0160 ; }
0160 ;
0160 ; //将数字符装入显示寄存器
0160 ; void putin1 (uchar point)//字符载入函数 载入第point个汉字
0160 ; {
0160 .dbline 302
0160 ; uchar i;//定义变量用于数据提取指针
0160 ; for(i=0;i<16;i++)
0160 4427 clr R20
0162 1DC0 xjmp L47
0164 L44:
0164 .dbline 303
0164 .dbline 304
0164 80E2 ldi R24,32
0166 809F mul R24,R16
0168 1001 movw R2,R0
016A 80E0 ldi R24,<_data1
016C 90E0 ldi R25,>_data1
016E 280E add R2,R24
0170 391E adc R3,R25
0172 82E0 ldi R24,2
0174 849F mul R24,R20
0176 F001 movw R30,R0
0178 E20D add R30,R2
017A F31D adc R31,R3
017C 0590 lpm R0,Z+
017E 1490 lpm R1,Z
0180 F001 movw R30,R0
0182 8AE3 ldi R24,58
0184 849F mul R24,R20
0186 1001 movw R2,R0
0188 80E0 ldi R24,<_Ledplay
018A 90E0 ldi R25,>_Ledplay
018C 280E add R2,R24
018E 391E adc R3,R25
0190 A0910000 lds R26,_bn
0194 BB27 clr R27
0196 A20D add R26,R2
0198 B31D adc R27,R3
019A EC93 st x,R30
019C .dbline 305
019C L45:
019C .dbline 302
019C 4395 inc R20
019E L47:
019E .dbline 302
019E 4031 cpi R20,16
01A0 08F3 brlo L44
01A2 .dbline 306
01A2 ; {
01A2 ; Ledplay[i][bn]=data1[point][i];
01A2 ; }
01A2 ; bn++;
01A2 80910000 lds R24,_bn
01A6 8F5F subi R24,255 ; addi 1
01A8 80930000 sts _bn,R24
01AC .dbline -2
01AC L43:
01AC 0E940000 xcall pop_gset1
01B0 .dbline 0 ; func end
01B0 0895 ret
01B2 .dbsym r i 20 c
01B2 .dbsym r point 16 c
01B2 .dbend
01B2 .dbfunc e clearRAM _clearRAM fV
01B2 ; b -> R16
01B2 ; a -> R18
.even
01B2 _clearRAM::
01B2 .dbline -1
01B2 .dbline 310
01B2 ; }
01B2 ; //显示存器清空(0x00)
01B2 ; void clearRAM (void)
01B2 ; {//寄存器清空函数
01B2 .dbline 312
01B2 ; uchar a,b;//定义变量用于清空数据指针fyhh
01B2 ; for(b=0;b<17;b++)
01B2 0027 clr R16
01B4 13C0 xjmp L52
01B6 L49:
01B6 .dbline 313
01B6 ; {
01B6 .dbline 314
01B6 2227 clr R18
01B8 0EC0 xjmp L56
01BA L53:
01BA .dbline 314
01BA .dbline 315
01BA 8AE3 ldi R24,58
01BC 809F mul R24,R16
01BE 1001 movw R2,R0
01C0 80E0 ldi R24,<_Ledplay
01C2 90E0 ldi R25,>_Ledplay
01C4 280E add R2,R24
01C6 391E adc R3,R25
01C8 E22F mov R30,R18
01CA FF27 clr R31
01CC E20D add R30,R2
01CE F31D adc R31,R3
01D0 2224 clr R2
01D2 2082 std z+0,R2
01D4 .dbline 316
01D4 L54:
01D4 .dbline 314
01D4 2395 inc R18
01D6 L56:
01D6 .dbline 314
01D6 2A32 cpi R18,42
01D8 80F3 brlo L53
01DA .dbline 317
01DA L50:
01DA .dbline 312
01DA 0395 inc R16
01DC L52:
01DC .dbline 312
01DC 0131 cpi R16,17
01DE 58F3 brlo L49
01E0 .dbline -2
01E0 L48:
01E0 .dbline 0 ; func end
01E0 0895 ret
01E2 .dbsym r b 16 c
01E2 .dbsym r a 18 c
01E2 .dbend
01E2 .dbfunc e clearping _clearping fV
01E2 ; j -> R20
.even
01E2 _clearping::
01E2 0E940000 xcall push_gset1
01E6 .dbline -1
01E6 .dbline 321
01E6 ; for(a=0;a<42;a++){//指向40个寄存器
01E6 ; Ledplay[b][a]=0;//将指向的寄存器清空
01E6 ; }
01E6 ; }
01E6 ; }
01E6 ; //清屏
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -