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 + -
显示快捷键?