⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clock.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                       ;    }                        
 03AE                 L82:
 03AE                   .dbline 0 ; func end
 03AE 0895              ret
 03B0                   .dbfunc s main _main fI
                       ;           temp -> R22
                       ;         bpflag -> R20
                         .even
 03B0                 _main::
 03B0                   .dbline -1
 03B0                   .dbline 231
                       ; /*启动时为正计时,按shift键进行正计时和倒计时切换    */
                       ; /*启动时允许整点报时,按0~F中任意键一次关闭,二次打开*/
                       ; void main(void)
                       ; {
 03B0                   .dbline 232
                       ;  unsigned char temp,bpflag=0;
 03B0 4427              clr R20
 03B2                   .dbline 233
                       ;  MCUCR=0x00;
 03B2 2224              clr R2
 03B4 25BE              out 0x35,R2
 03B6                   .dbline 234
                       ;  DDRC=0b00011101;
 03B6 8DE1              ldi R24,29
 03B8 84BB              out 0x14,R24
 03BA                   .dbline 235
                       ;  PORTC=0b00010001;
 03BA 81E1              ldi R24,17
 03BC 85BB              out 0x15,R24
 03BE                   .dbline 236
                       ;  delay_ms(30);
 03BE 0EE1              ldi R16,30
 03C0 10E0              ldi R17,0
 03C2 00D0              rcall _delay_ms
 03C4                   .dbline 237
                       ;  send_byte(0xa4);
 03C4 04EA              ldi R16,164
 03C6 3CDE              rcall _send_byte
 03C8                   .dbline 238
                       ;  setcs;
 03C8 AC9A              sbi 0x15,4
 03CA                   .dbline 238
 03CA                   .dbline 239
                       ;  initdis();
 03CA 67DE              rcall _initdis
 03CC                   .dbline 240
                       ;  opentime();
 03CC 5BDF              rcall _opentime
 03CE 4DC0              rjmp L97
 03D0                 L96:
 03D0                   .dbline 242
                       ;  while(1)
                       ;    {
 03D0                   .dbline 243
                       ;     if(flag==0x01)
 03D0 80910000          lds R24,_flag
 03D4 8130              cpi R24,1
 03D6 59F4              brne L99
 03D8                   .dbline 244
                       ;       {
 03D8                   .dbline 245
                       ;        if(dflag==0)
 03D8 20900100          lds R2,_dflag
 03DC 2220              tst R2
 03DE 11F4              brne L101
 03E0                   .dbline 246
                       ;          inctime();  
 03E0 94DF              rcall _inctime
 03E2 01C0              rjmp L102
 03E4                 L101:
 03E4                   .dbline 248
                       ;        else
                       ;          dectime();
 03E4 BADF              rcall _dectime
 03E6                 L102:
 03E6                   .dbline 249
                       ;        display();
 03E6 60DF              rcall _display
 03E8                   .dbline 250
                       ;        flag=0;
 03E8 2224              clr R2
 03EA 20920000          sts _flag,R2
 03EE                   .dbline 251
                       ;       }
 03EE                 L99:
 03EE                   .dbline 252
                       ;     if((PINC&0x02)==0)//检查shift按键
 03EE 9999              sbic 0x13,1
 03F0 19C0              rjmp L103
 03F2                   .dbline 253
                       ;        {
 03F2                   .dbline 254
                       ;         send_byte(0x15);
 03F2 05E1              ldi R16,21
 03F4 25DE              rcall _send_byte
 03F6                   .dbline 255
                       ;         temp=receive_byte();
 03F6 04DE              rcall _receive_byte
 03F8 202E              mov R2,R16
 03FA 312E              mov R3,R17
 03FC 622D              mov R22,R2
 03FE                   .dbline 256
                       ;         setcs;
 03FE AC9A              sbi 0x15,4
 0400                   .dbline 256
 0400                   .dbline 257
                       ;         if(temp==0x17)
 0400 6731              cpi R22,23
 0402 61F4              brne L105
 0404                   .dbline 258
                       ;           {
 0404                   .dbline 259
                       ;            if (dflag==0)
 0404 20900100          lds R2,_dflag
 0408 2220              tst R2
 040A 21F4              brne L107
 040C                   .dbline 260
                       ;                dflag=1;
 040C 81E0              ldi R24,1
 040E 80930100          sts _dflag,R24
 0412 06C0              rjmp L110
 0414                 L107:
 0414                   .dbline 262
                       ;            else
                       ;                dflag=0;      
 0414 2224              clr R2
 0416 20920100          sts _dflag,R2
 041A                   .dbline 263
                       ;           } 
 041A 02C0              rjmp L110
 041C                 L105:
 041C                   .dbline 265
                       ;         else   
                       ;            bpflag^=0x01;  
 041C 81E0              ldi R24,1
 041E 4827              eor R20,R24
 0420                 L109:
 0420                   .dbline 267
 0420                 L110:
 0420                   .dbline 266
                       ;         while((PINC&0x02)==0)//按键释放检查
 0420 999B              sbis 0x13,1
 0422 FECF              rjmp L109
 0424                   .dbline 268
                       ;            ;       
                       ;        }   
 0424                 L103:
 0424                   .dbline 269
                       ;     if ((time.minute==0)&(bpflag==0))
 0424 20900300          lds R2,_time+1
 0428 2220              tst R2
 042A 29F4              brne L115
 042C 81E0              ldi R24,1
 042E 90E0              ldi R25,0
 0430 C82E              mov R12,R24
 0432 D92E              mov R13,R25
 0434 02C0              rjmp L116
 0436                 L115:
 0436 CC24              clr R12
 0438 DD24              clr R13
 043A                 L116:
 043A 4423              tst R20
 043C 29F4              brne L117
 043E 81E0              ldi R24,1
 0440 90E0              ldi R25,0
 0442 A82E              mov R10,R24
 0444 B92E              mov R11,R25
 0446 02C0              rjmp L118
 0448                 L117:
 0448 AA24              clr R10
 044A BB24              clr R11
 044C                 L118:
 044C 2C2C              mov R2,R12
 044E 3D2C              mov R3,R13
 0450 2A20              and R2,R10
 0452 3B20              and R3,R11
 0454 2220              tst R2
 0456 11F4              brne X11
 0458 3320              tst R3
 045A 21F0              breq L112
 045C                 X11:
 045C                   .dbline 270
                       ;          TIMSK|=0x01;          //整点报时
 045C 89B7              in R24,0x39
 045E 8160              ori R24,1
 0460 89BF              out 0x39,R24
 0462 03C0              rjmp L113
 0464                 L112:
 0464                   .dbline 272
                       ;     else
                       ;          TIMSK&=0xfe;
 0464 89B7              in R24,0x39
 0466 8E7F              andi R24,254
 0468 89BF              out 0x39,R24
 046A                 L113:
 046A                   .dbline 273
 046A                 L97:
 046A                   .dbline 241
 046A B2CF              rjmp L96
 046C                 X10:
 046C                   .dbline -2
 046C                   .dbline 274
                       ;    }
                       ; }
 046C                 L95:
 046C                   .dbline 0 ; func end
 046C 0895              ret
 046E                   .dbsym r temp 22 c
 046E                   .dbsym r bpflag 20 c
 046E                   .dbfunc s timer1_ovf _timer1_ovf fI
                         .even
 046E                 _timer1_ovf::
 046E 8A93              st -y,R24
 0470 9A93              st -y,R25
 0472 8FB7              in R24,0x3f
 0474 8A93              st -y,R24
 0476                   .dbline -1
 0476                   .dbline 276
                       ; void timer1_ovf()              //溢出中断子程序
                       ; {
 0476                   .dbline 277
                       ;  TCNT1=0x85ee;
 0476 8EEE              ldi R24,-31250
 0478 95E8              ldi R25,-123
 047A 90934D00          sts 76+1,R25
 047E 80934C00          sts 76,R24
 0482                   .dbline 278
                       ;  flag=0x01;
 0482 81E0              ldi R24,1
 0484 80930000          sts _flag,R24
 0488                   .dbline -2
 0488                   .dbline 279
                       ; }
 0488                 L119:
 0488 8991              ld R24,y+
 048A 8FBF              out 0x3f,R24
 048C 9991              ld R25,y+
 048E 8991              ld R24,y+
 0490                   .dbline 0 ; func end
 0490 1895              reti
                         .area bss(ram, con, rel)
 0000                   .dbfile D:\sl279\8535\clock.c
 0000                 L121:
 0000                   .blkb 2
                         .area text(rom, con, rel)
 0492                   .dbfile D:\sl279\8535\clock.c
 0492                   .dbfunc s timer0_ovf _timer0_ovf fI
 0492                   .dbsym s i L121 i
                         .even
 0492                 _timer0_ovf::
 0492 2A92              st -y,R2
 0494 3A92              st -y,R3
 0496 8A93              st -y,R24
 0498 9A93              st -y,R25
 049A EA93              st -y,R30
 049C 2FB6              in R2,0x3f
 049E 2A92              st -y,R2
 04A0                   .dbline -1
 04A0                   .dbline 281
                       ; void timer0_ovf()
                       ;  {
 04A0                   .dbline 283
                       ;   static unsigned int i;
                       ;   TCNT0=0x83;
 04A0 83E8              ldi R24,131
 04A2 82BF              out 0x32,R24
 04A4                   .dbline 284
                       ;   i++;
 04A4 90910100          lds R25,L121+1
 04A8 80910000          lds R24,L121
 04AC 0196              adiw R24,1
 04AE 90930100          sts L121+1,R25
 04B2 80930000          sts L121,R24
 04B6                   .dbline 285
                       ;   if(i<400)
 04B6 8039              cpi R24,144
 04B8 E1E0              ldi R30,1
 04BA 9E07              cpc R25,R30
 04BC 20F4              brsh L122
 04BE                   .dbline 286
                       ;      {
 04BE                   .dbline 287
                       ;       PORTC^=0X01;
 04BE 81E0              ldi R24,1
 04C0 25B2              in R2,0x15
 04C2 2826              eor R2,R24
 04C4 25BA              out 0x15,R2
 04C6                   .dbline 288
                       ;      }
 04C6                 L122:
 04C6                   .dbline 289
 04C6 80E2              ldi R24,800
 04C8 93E0              ldi R25,3
 04CA 30900100          lds R3,L121+1
 04CE 20900000          lds R2,L121
 04D2 8215              cp R24,R2
 04D4 9305              cpc R25,R3
 04D6 30F4              brsh L124
 04D8                   .dbline 290
 04D8 2224              clr R2
 04DA 3324              clr R3
 04DC 30920100          sts L121+1,R3
 04E0 20920000          sts L121,R2
 04E4                 L124:
 04E4                   .dbline -2
 04E4                   .dbline 291
                       ;   if(i>800)
                       ;       i=0;   
                       ;  }
 04E4                 L120:
 04E4 2990              ld R2,y+
 04E6 2FBE              out 0x3f,R2
 04E8 E991              ld R30,y+
 04EA 9991              ld R25,y+
 04EC 8991              ld R24,y+
 04EE 3990              ld R3,y+
 04F0 2990              ld R2,y+
 04F2                   .dbline 0 ; func end
 04F2 1895              reti
                         .area bss(ram, con, rel)
 0002                   .dbfile D:\sl279\8535\clock.c
 0002                 _time::
 0002                   .blkb 3
 0005                   .dbsym s time _time X

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -