📄 main.lis
字号:
014B 2703 beq X19
014D CC01E2 jmp L49
0150 X19:
0150 ; { for(i=0;i<8;i++)
0150 3F04 clr *_i
0152 202A bra L54
0154 L51:
0154 ; {
0154 ; light_a=~(1<<light_pin);
0154 6E0100 mov #1,*__r0
0157 B604 lda *_i
0159 A407 and #7
015B 2704 beq X10
015D X9:
015D 3800 lsl *__r0
015F 4BFC dbnza X9
0161 X10:
0161 B600 lda *__r0
0163 43 coma
0164 B700 sta 0
0166 ; for(k=0;k<1024;k++) //延时0.5秒
0166 3F03 clr *_k+1
0168 3F02 clr *_k
016A L55:
016A CD0284 jsr _Delay1000
016D 95 tsx
016E L56:
016E 5502 ldhx *_k
0170 AF01 aix #1
0172 3502 sthx *_k
0174 5502 ldhx *_k
0176 650400 cphx #1024
0179 95 tsx
017A 91EE blt L55
017C L52:
017C 3C04 inc *_i
017E L54:
017E B604 lda *_i
0180 A108 cmp #8
0182 25D0 blo L51
0184 ; Delay1000();
0184 ; }
0184 ; light_a=0xff;
0184 A6FF lda #-1
0186 B700 sta 0
0188 ; for(k=0;k<1024;k++) //延时0.5秒
0188 3F03 clr *_k+1
018A 3F02 clr *_k
018C L59:
018C CD0284 jsr _Delay1000
018F 95 tsx
0190 L60:
0190 5502 ldhx *_k
0192 AF01 aix #1
0194 3502 sthx *_k
0196 5502 ldhx *_k
0198 650400 cphx #1024
019B 95 tsx
019C 91EE blt L59
019E ; Delay1000();
019E ; for(i=0;i<=8;i++)
019E 3F04 clr *_i
01A0 2037 bra L66
01A2 L63:
01A2 ; {
01A2 ; light_a=~(0x80>>light_pin);
01A2 B604 lda *_i
01A4 6E0000 mov #0,*__r2
01A7 6E8000 mov #-128,*__r3
01AA A40F and #15
01AC 2706 beq X12
01AE X11:
01AE 3700 asr *__r2
01B0 3600 ror *__r3
01B2 4BFA dbnza X11
01B4 X12:
01B4 4E0000 mov *__r2,*__r0
01B7 4E0000 mov *__r3,*__r1
01BA 3300 com *__r1
01BC 3300 com *__r0
01BE 4E0000 mov *__r1,0
01C1 ; for(k=0;k<1024;k++)
01C1 3F03 clr *_k+1
01C3 3F02 clr *_k
01C5 L67:
01C5 CD0284 jsr _Delay1000
01C8 95 tsx
01C9 L68:
01C9 5502 ldhx *_k
01CB AF01 aix #1
01CD 3502 sthx *_k
01CF 5502 ldhx *_k
01D1 650400 cphx #1024
01D4 95 tsx
01D5 91EE blt L67
01D7 L64:
01D7 3C04 inc *_i
01D9 L66:
01D9 B604 lda *_i
01DB A108 cmp #8
01DD 23C3 bls L63
01DF ; Delay1000();
01DF ; }
01DF ; }
01DF CC0280 jmp L50
01E2 L49:
01E2 ; //8个LED中只有两个灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约8秒。
01E2 ; else if((light_b&0x03)==0x03)
01E2 B601 lda 0x1
01E4 A403 and #3
01E6 A103 cmp #3
01E8 2703 beq X20
01EA CC0280 jmp L71
01ED X20:
01ED ; { for(i=0;i<8;i++)
01ED 3F04 clr *_i
01EF 202A bra L76
01F1 L73:
01F1 ; {
01F1 ; light_a=~(3<<light_pin);
01F1 6E0300 mov #3,*__r0
01F4 B604 lda *_i
01F6 A407 and #7
01F8 2704 beq X14
01FA X13:
01FA 3800 lsl *__r0
01FC 4BFC dbnza X13
01FE X14:
01FE B600 lda *__r0
0200 43 coma
0201 B700 sta 0
0203 ; for(k=0;k<1024;k++) //延时0.5秒
0203 3F03 clr *_k+1
0205 3F02 clr *_k
0207 L77:
0207 CD0284 jsr _Delay1000
020A 95 tsx
020B L78:
020B 5502 ldhx *_k
020D AF01 aix #1
020F 3502 sthx *_k
0211 5502 ldhx *_k
0213 650400 cphx #1024
0216 95 tsx
0217 91EE blt L77
0219 L74:
0219 3C04 inc *_i
021B L76:
021B B604 lda *_i
021D A108 cmp #8
021F 25D0 blo L73
0221 ; Delay1000();
0221 ; }
0221 ; light_a=0xff;
0221 A6FF lda #-1
0223 B700 sta 0
0225 ; for(k=0;k<1024;k++) //延时0.5秒
0225 3F03 clr *_k+1
0227 3F02 clr *_k
0229 L81:
0229 CD0284 jsr _Delay1000
022C 95 tsx
022D L82:
022D 5502 ldhx *_k
022F AF01 aix #1
0231 3502 sthx *_k
0233 5502 ldhx *_k
0235 650400 cphx #1024
0238 95 tsx
0239 91EE blt L81
023B ; Delay1000();
023B ; Delay1000();
023B CD0284 jsr _Delay1000
023E 95 tsx
023F ; for(i=0;i<=8;i++) //延时0.6秒
023F 3F04 clr *_i
0241 2037 bra L88
0243 L85:
0243 ; {
0243 ; light_a=~(0xc0>>light_pin);
0243 B604 lda *_i
0245 6E0000 mov #0,*__r2
0248 6EC000 mov #-64,*__r3
024B A40F and #15
024D 2706 beq X16
024F X15:
024F 3700 asr *__r2
0251 3600 ror *__r3
0253 4BFA dbnza X15
0255 X16:
0255 4E0000 mov *__r2,*__r0
0258 4E0000 mov *__r3,*__r1
025B 3300 com *__r1
025D 3300 com *__r0
025F 4E0000 mov *__r1,0
0262 ; for(k=0;k<1024;k++)
0262 3F03 clr *_k+1
0264 3F02 clr *_k
0266 L89:
0266 CD0284 jsr _Delay1000
0269 95 tsx
026A L90:
026A 5502 ldhx *_k
026C AF01 aix #1
026E 3502 sthx *_k
0270 5502 ldhx *_k
0272 650400 cphx #1024
0275 95 tsx
0276 91EE blt L89
0278 L86:
0278 3C04 inc *_i
027A L88:
027A B604 lda *_i
027C A108 cmp #8
027E 23C3 bls L85
0280 ; Delay1000();
0280 ; }
0280 ; }
0280 L71:
0280 L50:
0280 L28:
0280 L6:
0280 L3:
0280 CC0009 jmp L2
0283 X0:
0283 L1:
0283 .dbline 0 ; func end
0283 81 rts
0284 ; u -> 0,X
0284 _Delay1000::
0284 A7FF ais #-1
0286 95 tsx
0287 ; //IF结束
0287 ; }
0287 ; //while 结束
0287 ;
0287 ; }
0287 ; //主函数结束
0287 ; /*[内部子程序存放处]
0287 ; /*Delay1000:延时1000个时钟周期-------------------------*
0287 ; *功 能:延时函数(约1000个时钟周期) *
0287 ; *参 数:无 *
0287 ; *返 回:无 *
0287 ; *-----------------------------------------------------*/
0287 ; void Delay1000(void)
0287 ; { unsigned char u;
0287 7F clr ,X
0288 2001 bra L97
028A L94:
028A L95:
028A 7C inc ,X
028B L97:
028B ; for(u=0;u<=110;u++);
028B F6 lda ,X
028C A16E cmp #110
028E 23FA bls L94
0290 L93:
0290 A701 ais #1
0292 .dbline 0 ; func end
0292 81 rts
.area bss
0000 _z::
0000 .blkb 2
0002 _k::
0002 .blkb 2
0004 _i::
0004 .blkb 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -