main.lis
来自「要用到开发工具SD-H08」· LIS 代码 · 共 590 行 · 第 1/2 页
LIS
590 行
0169 CC020E jmp L57
016C X19:
016C ; { for(i=0;i<8;i++)
016C 3F04 clr *_i
016E 2032 bra L62
0170 L59:
0170 ; {if((light_b&0x03)==0x02)
0170 B601 lda 0x1
0172 A403 and #3
0174 A102 cmp #2
0176 2628 bne L63
0178 ; {
0178 ; light_a=~(1<<light_pin);
0178 6E0100 mov #1,*__r0
017B B604 lda *_i
017D A407 and #7
017F 2704 beq X10
0181 X9:
0181 3800 lsl *__r0
0183 4BFC dbnza X9
0185 X10:
0185 B600 lda *__r0
0187 43 coma
0188 B700 sta 0
018A ; for(k=0;k<1024;k++) //延时0.5秒
018A 3F03 clr *_k+1
018C 3F02 clr *_k
018E L65:
018E CD02C0 jsr _Delay1000
0191 95 tsx
0192 L66:
0192 5502 ldhx *_k
0194 AF01 aix #1
0196 3502 sthx *_k
0198 5502 ldhx *_k
019A 650400 cphx #1024
019D 95 tsx
019E 91EE blt L65
01A0 ; Delay1000();
01A0 ; }
01A0 L63:
01A0 L60:
01A0 3C04 inc *_i
01A2 L62:
01A2 B604 lda *_i
01A4 A108 cmp #8
01A6 25C8 blo L59
01A8 ; }
01A8 ; light_a=0xff;
01A8 A6FF lda #-1
01AA B700 sta 0
01AC ; for(k=0;k<1024;k++) //延时0.5秒
01AC 3F03 clr *_k+1
01AE 3F02 clr *_k
01B0 L69:
01B0 CD02C0 jsr _Delay1000
01B3 95 tsx
01B4 L70:
01B4 5502 ldhx *_k
01B6 AF01 aix #1
01B8 3502 sthx *_k
01BA 5502 ldhx *_k
01BC 650400 cphx #1024
01BF 95 tsx
01C0 91EE blt L69
01C2 ; Delay1000();
01C2 ; for(i=0;i<=8;i++)
01C2 3F04 clr *_i
01C4 203F bra L76
01C6 L73:
01C6 ; {if((light_b&0x03)==0x02)
01C6 B601 lda 0x1
01C8 A403 and #3
01CA A102 cmp #2
01CC 2635 bne L77
01CE ; {
01CE ; light_a=~(0x80>>light_pin);
01CE B604 lda *_i
01D0 6E0000 mov #0,*__r2
01D3 6E8000 mov #-128,*__r3
01D6 A40F and #15
01D8 2706 beq X12
01DA X11:
01DA 3700 asr *__r2
01DC 3600 ror *__r3
01DE 4BFA dbnza X11
01E0 X12:
01E0 4E0000 mov *__r2,*__r0
01E3 4E0000 mov *__r3,*__r1
01E6 3300 com *__r1
01E8 3300 com *__r0
01EA 4E0000 mov *__r1,0
01ED ; for(k=0;k<1024;k++)
01ED 3F03 clr *_k+1
01EF 3F02 clr *_k
01F1 L79:
01F1 CD02C0 jsr _Delay1000
01F4 95 tsx
01F5 L80:
01F5 5502 ldhx *_k
01F7 AF01 aix #1
01F9 3502 sthx *_k
01FB 5502 ldhx *_k
01FD 650400 cphx #1024
0200 95 tsx
0201 91EE blt L79
0203 ; Delay1000();
0203 ; }
0203 L77:
0203 L74:
0203 3C04 inc *_i
0205 L76:
0205 B604 lda *_i
0207 A108 cmp #8
0209 23BB bls L73
020B ; }
020B ; }
020B CC02BC jmp L58
020E L57:
020E ; //8个LED中只有两个灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约8秒。
020E ; else if((light_b&0x03)==0x03)
020E B601 lda 0x1
0210 A403 and #3
0212 A103 cmp #3
0214 2703 beq X20
0216 CC02BC jmp L83
0219 X20:
0219 ; { for(i=0;i<8;i++)
0219 3F04 clr *_i
021B 2032 bra L88
021D L85:
021D ; {if((light_b&0x03)==0x03)
021D B601 lda 0x1
021F A403 and #3
0221 A103 cmp #3
0223 2628 bne L89
0225 ; {
0225 ; light_a=~(3<<light_pin);
0225 6E0300 mov #3,*__r0
0228 B604 lda *_i
022A A407 and #7
022C 2704 beq X14
022E X13:
022E 3800 lsl *__r0
0230 4BFC dbnza X13
0232 X14:
0232 B600 lda *__r0
0234 43 coma
0235 B700 sta 0
0237 ; for(k=0;k<1024;k++) //延时0.5秒
0237 3F03 clr *_k+1
0239 3F02 clr *_k
023B L91:
023B CD02C0 jsr _Delay1000
023E 95 tsx
023F L92:
023F 5502 ldhx *_k
0241 AF01 aix #1
0243 3502 sthx *_k
0245 5502 ldhx *_k
0247 650400 cphx #1024
024A 95 tsx
024B 91EE blt L91
024D ; Delay1000();
024D ; }
024D L89:
024D L86:
024D 3C04 inc *_i
024F L88:
024F B604 lda *_i
0251 A108 cmp #8
0253 25C8 blo L85
0255 ; }
0255 ; light_a=0xff;
0255 A6FF lda #-1
0257 B700 sta 0
0259 ; for(k=0;k<1024;k++) //延时0.5秒
0259 3F03 clr *_k+1
025B 3F02 clr *_k
025D L95:
025D CD02C0 jsr _Delay1000
0260 95 tsx
0261 L96:
0261 5502 ldhx *_k
0263 AF01 aix #1
0265 3502 sthx *_k
0267 5502 ldhx *_k
0269 650400 cphx #1024
026C 95 tsx
026D 91EE blt L95
026F ; Delay1000();
026F ; Delay1000();
026F CD02C0 jsr _Delay1000
0272 95 tsx
0273 ; for(i=0;i<=8;i++) //延时0.6秒
0273 3F04 clr *_i
0275 203F bra L102
0277 L99:
0277 ; {if((light_b&0x03)==0x03)
0277 B601 lda 0x1
0279 A403 and #3
027B A103 cmp #3
027D 2635 bne L103
027F ; {
027F ; light_a=~(0xc0>>light_pin);
027F B604 lda *_i
0281 6E0000 mov #0,*__r2
0284 6EC000 mov #-64,*__r3
0287 A40F and #15
0289 2706 beq X16
028B X15:
028B 3700 asr *__r2
028D 3600 ror *__r3
028F 4BFA dbnza X15
0291 X16:
0291 4E0000 mov *__r2,*__r0
0294 4E0000 mov *__r3,*__r1
0297 3300 com *__r1
0299 3300 com *__r0
029B 4E0000 mov *__r1,0
029E ; for(k=0;k<1024;k++)
029E 3F03 clr *_k+1
02A0 3F02 clr *_k
02A2 L105:
02A2 CD02C0 jsr _Delay1000
02A5 95 tsx
02A6 L106:
02A6 5502 ldhx *_k
02A8 AF01 aix #1
02AA 3502 sthx *_k
02AC 5502 ldhx *_k
02AE 650400 cphx #1024
02B1 95 tsx
02B2 91EE blt L105
02B4 ; Delay1000();
02B4 ; }
02B4 L103:
02B4 L100:
02B4 3C04 inc *_i
02B6 L102:
02B6 B604 lda *_i
02B8 A108 cmp #8
02BA 23BB bls L99
02BC ; }
02BC ; }
02BC L83:
02BC L58:
02BC L32:
02BC L6:
02BC L3:
02BC CC0009 jmp L2
02BF X0:
02BF L1:
02BF .dbline 0 ; func end
02BF 81 rts
02C0 ; u -> 0,X
02C0 _Delay1000::
02C0 A7FF ais #-1
02C2 95 tsx
02C3 ; //IF结束
02C3 ; }
02C3 ; //while 结束
02C3 ;
02C3 ; }
02C3 ; //主函数结束
02C3 ; /*[内部子程序存放处]
02C3 ; /*Delay1000:延时1000个时钟周期-------------------------*
02C3 ; *功 能:延时函数(约1000个时钟周期) *
02C3 ; *参 数:无 *
02C3 ; *返 回:无 *
02C3 ; *-----------------------------------------------------*/
02C3 ; void Delay1000(void)
02C3 ; { unsigned char u;
02C3 7F clr ,X
02C4 2001 bra L113
02C6 L110:
02C6 L111:
02C6 7C inc ,X
02C7 L113:
02C7 ; for(u=0;u<=110;u++);
02C7 F6 lda ,X
02C8 A16E cmp #110
02CA 23FA bls L110
02CC L109:
02CC A701 ais #1
02CE .dbline 0 ; func end
02CE 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 + =
减小字号Ctrl + -
显示快捷键?