📄 main.lis
字号:
003E 47E0 ldi R20,7
0040 05C0 rjmp L12
0042 L9:
0042 .dbline 46
0042 .dbline 47
0042 8AE0 ldi R24,10
0044 FB01 movw R30,R22
0046 8193 st Z+,R24
0048 BF01 movw R22,R30
004A .dbline 48
004A L10:
004A .dbline 45
004A 4A95 dec R20
004C L12:
004C .dbline 45
004C 4F3F cpi R20,255
004E C9F7 brne L9
0050 .dbline 49
0050 ; {
0050 ; *p++=10;
0050 ; }
0050 ; Delay(300);
0050 0CE2 ldi R16,300
0052 11E0 ldi R17,1
0054 41D0 rcall _Delay
0056 .dbline 50
0056 ; StartShow=0x00;
0056 2224 clr R2
0058 20920000 sts _StartShow,R2
005C .dbline 52
005C ; /*For为Main程序中的主循环,如果没有要求StartShow,程序将不停循环*/
005C ; for(cNum=0;StartShow!=0xff;cNum++)//将LED的8位数码管向前移位,最后位用数据缓冲区的数据补充进去
005C 4427 clr R20
005E 35C0 rjmp L16
0060 L13:
0060 .dbline 53
0060 .dbline 54
0060 60E0 ldi R22,<_LedNum+7
0062 70E0 ldi R23,>_LedNum+7
0064 .dbline 55
0064 CB01 movw R24,R22
0066 0197 sbiw R24,1
0068 FC01 movw R30,R24
006A A080 ldd R10,z+0
006C .dbline 56
006C A0920700 sts _LedNum+7,R10
0070 .dbline 57
0070 0197 sbiw R24,1
0072 FC01 movw R30,R24
0074 A080 ldd R10,z+0
0076 .dbline 58
0076 A0920600 sts _LedNum+6,R10
007A .dbline 59
007A 0197 sbiw R24,1
007C FC01 movw R30,R24
007E A080 ldd R10,z+0
0080 .dbline 60
0080 A0920500 sts _LedNum+5,R10
0084 .dbline 61
0084 0197 sbiw R24,1
0086 FC01 movw R30,R24
0088 A080 ldd R10,z+0
008A .dbline 62
008A A0920400 sts _LedNum+4,R10
008E .dbline 63
008E 0197 sbiw R24,1
0090 FC01 movw R30,R24
0092 A080 ldd R10,z+0
0094 .dbline 64
0094 A0920300 sts _LedNum+3,R10
0098 .dbline 65
0098 0197 sbiw R24,1
009A FC01 movw R30,R24
009C A080 ldd R10,z+0
009E .dbline 66
009E A0920200 sts _LedNum+2,R10
00A2 .dbline 67
00A2 0197 sbiw R24,1
00A4 BC01 movw R22,R24
00A6 FC01 movw R30,R24
00A8 A080 ldd R10,z+0
00AA .dbline 68
00AA A0920100 sts _LedNum+1,R10
00AE .dbline 70
00AE 4F71 andi R20,31
00B0 .dbline 71
00B0 80E0 ldi R24,<_cDataBuff
00B2 90E0 ldi R25,>_cDataBuff
00B4 E42F mov R30,R20
00B6 FF27 clr R31
00B8 E80F add R30,R24
00BA F91F adc R31,R25
00BC A080 ldd R10,z+0
00BE .dbline 72
00BE A0920000 sts _LedNum,R10
00C2 .dbline 73
00C2 0CE2 ldi R16,300
00C4 11E0 ldi R17,1
00C6 08D0 rcall _Delay
00C8 .dbline 74
00C8 L14:
00C8 .dbline 52
00C8 4395 inc R20
00CA L16:
00CA .dbline 52
00CA 80910000 lds R24,_StartShow
00CE 8F3F cpi R24,255
00D0 09F0 breq X1
00D2 C6CF rjmp L13
00D4 X1:
00D4 .dbline 75
00D4 L7:
00D4 .dbline 42
00D4 B2CF rjmp L6
00D6 X0:
00D6 .dbline -2
00D6 L1:
00D6 .dbline 0 ; func end
00D6 0895 ret
00D8 .dbsym r cNum 20 c
00D8 .dbsym r p 22 pc
00D8 .dbsym r cTemp 10 c
00D8 .dbend
00D8 .dbfunc e Delay _Delay fV
00D8 ; iTemp -> R20,R21
00D8 ; iUs -> R22,R23
00D8 ; ms -> R16,R17
.even
00D8 _Delay::
00D8 00D0 rcall push_gset2
00DA .dbline -1
00DA .dbline 78
00DA ; {
00DA ; p=&LedNum[7];
00DA ; cTemp=*(--p);
00DA ; LedNum[7]=cTemp;
00DA ; cTemp=*(--p);
00DA ; LedNum[6]=cTemp;
00DA ; cTemp=*(--p);
00DA ; LedNum[5]=cTemp;
00DA ; cTemp=*(--p);
00DA ; LedNum[4]=cTemp;
00DA ; cTemp=*(--p);
00DA ; LedNum[3]=cTemp;
00DA ; cTemp=*(--p);
00DA ; LedNum[2]=cTemp;
00DA ; cTemp=*(--p);
00DA ; LedNum[1]=cTemp;
00DA ;
00DA ; cNum&=0b00011111;//如果超过数据缓冲区,则恢复的起始地址
00DA ; cTemp=cDataBuff[cNum];
00DA ; LedNum[0]=cTemp;
00DA ; Delay(300);
00DA ; }
00DA ; }
00DA ; }
00DA ; void Delay(unsigned int ms)
00DA ; {
00DA .dbline 81
00DA ; unsigned int iTemp;
00DA ; unsigned int iUs;
00DA ; for(iTemp=ms;iTemp>0;iTemp--)
00DA A801 movw R20,R16
00DC 0AC0 rjmp L29
00DE L26:
00DE .dbline 82
00DE ; {
00DE .dbline 83
00DE 68EE ldi R22,1000
00E0 73E0 ldi R23,3
00E2 02C0 rjmp L33
00E4 L30:
00E4 .dbline 83
00E4 L31:
00E4 .dbline 83
00E4 6150 subi R22,1
00E6 7040 sbci R23,0
00E8 L33:
00E8 .dbline 83
00E8 6030 cpi R22,0
00EA 6707 cpc R22,R23
00EC D9F7 brne L30
00EE X2:
00EE .dbline 84
00EE L27:
00EE .dbline 81
00EE 4150 subi R20,1
00F0 5040 sbci R21,0
00F2 L29:
00F2 .dbline 81
00F2 4030 cpi R20,0
00F4 4507 cpc R20,R21
00F6 99F7 brne L26
00F8 X3:
00F8 .dbline -2
00F8 L25:
00F8 00D0 rcall pop_gset2
00FA .dbline 0 ; func end
00FA 0895 ret
00FC .dbsym r iTemp 20 i
00FC .dbsym r iUs 22 i
00FC .dbsym r ms 16 i
00FC .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -