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

📄 1602.lis

📁 1602LCD_mega16.rar
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0148           ; void Delay400Ms(void)
 0148           ; {
 0148                   .dbline 196
 0148           ;  unsigned char TempCycA = 9;
 0148 09E0              ldi R16,9
 014A 09C0              xjmp L26
 014C           L25:
 014C                   .dbline 199
 014C           ;  unsigned int TempCycB;
 014C           ;  while(TempCycA--)
 014C           ;  {
 014C                   .dbline 200
 014C           ;   TempCycB=7777;
 014C 21E6              ldi R18,7777
 014E 3EE1              ldi R19,30
 0150           L28:
 0150                   .dbline 201
 0150           ;   while(TempCycB--);
 0150           L29:
 0150                   .dbline 201
 0150 1901              movw R2,R18
 0152 2150              subi R18,1
 0154 3040              sbci R19,0
 0156 2220              tst R2
 0158 D9F7              brne L28
 015A 3320              tst R3
 015C C9F7              brne L28
 015E           X6:
 015E                   .dbline 202
 015E           ;  };
 015E           L26:
 015E                   .dbline 198
 015E 202E              mov R2,R16
 0160 3324              clr R3
 0162 0150              subi R16,1
 0164 2220              tst R2
 0166 91F7              brne L25
 0168           X7:
 0168                   .dbline 202
 0168                   .dbline -2
 0168           L24:
 0168                   .dbline 0 ; func end
 0168 0895              ret
 016A                   .dbsym r TempCycA 16 c
 016A                   .dbsym r TempCycB 18 i
 016A                   .dbend
                        .area data(ram, con, rel)
 0008                   .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
 0008           _dispbuf::
 0008                   .blkb 2
                        .area idata
 0008 3031              .byte 48,49
                        .area data(ram, con, rel)
 000A                   .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
 000A                   .blkb 2
                        .area idata
 000A 3233              .byte 50,51
                        .area data(ram, con, rel)
 000C                   .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
 000C                   .blkb 2
                        .area idata
 000C 3435              .byte 52,53
                        .area data(ram, con, rel)
 000E                   .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
 000E                   .blkb 2
                        .area idata
 000E 3637              .byte 54,55
                        .area data(ram, con, rel)
 0010                   .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
 0010                   .blkb 2
                        .area idata
 0010 3839              .byte 56,57
                        .area data(ram, con, rel)
 0012                   .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
 0012                   .dbsym e dispbuf _dispbuf A[10:10]c
 0012           _dispbitcnt::
 0012                   .blkb 1
                        .area idata
 0012 08                .byte 8
                        .area data(ram, con, rel)
 0013                   .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
 0013                   .dbsym e dispbitcnt _dispbitcnt c
 0013           _mstcnt::
 0013                   .blkb 1
                        .area idata
 0013 08                .byte 8
                        .area data(ram, con, rel)
 0014                   .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
 0014                   .dbsym e mstcnt _mstcnt c
                        .area text(rom, con, rel)
 016A                   .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
 016A                   .dbfunc e port_init _port_init fV
                        .even
 016A           _port_init::
 016A                   .dbline -1
 016A                   .dbline 218
 016A           ; }
 016A           ; 
 016A           ; /************************************************************************/
 016A           ; 
 016A           ; unsigned char dispbuf[]={'0','1','2','3','4','5','6','7','8','9'};
 016A           ; unsigned char dispbitcnt=8;
 016A           ; 
 016A           ; unsigned char second;
 016A           ; unsigned char minite;
 016A           ; unsigned char hour;
 016A           ; unsigned int tcnt;
 016A           ; unsigned char mstcnt=8,i;
 016A           ; 
 016A           ; 
 016A           ; void port_init(void)
 016A           ; {
 016A                   .dbline 219
 016A           ;  PORTA = 0x00;
 016A 2224              clr R2
 016C 2BBA              out 0x1b,R2
 016E                   .dbline 220
 016E           ;  DDRA  = 0xFF;
 016E 8FEF              ldi R24,255
 0170 8ABB              out 0x1a,R24
 0172                   .dbline 221
 0172           ;  PORTB = 0x00;
 0172 28BA              out 0x18,R2
 0174                   .dbline 222
 0174           ;  DDRB  = 0xFF;
 0174 87BB              out 0x17,R24
 0176                   .dbline 223
 0176           ;  PORTC = 0x00; //m103 output only
 0176 25BA              out 0x15,R2
 0178                   .dbline 224
 0178           ;  DDRC  = 0xFF;
 0178 84BB              out 0x14,R24
 017A                   .dbline 225
 017A           ;  PORTD = 0x00;
 017A 22BA              out 0x12,R2
 017C                   .dbline 226
 017C           ;  DDRD  = 0xFF;
 017C 81BB              out 0x11,R24
 017E                   .dbline -2
 017E           L31:
 017E                   .dbline 0 ; func end
 017E 0895              ret
 0180                   .dbend
 0180                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0180           _timer0_init::
 0180                   .dbline -1
 0180                   .dbline 233
 0180           ; }
 0180           ; //TIMER0 initialize - prescale:64
 0180           ; // WGM: Normal
 0180           ; // desired value: 1mSec
 0180           ; // actual value:  1.000mSec (0.0%)
 0180           ; void timer0_init(void)
 0180           ; {
 0180                   .dbline 234
 0180           ;  TCCR0 = 0x00; //stop
 0180 2224              clr R2
 0182 23BE              out 0x33,R2
 0184                   .dbline 235
 0184           ;  TCNT0 = 0x83; //set count
 0184 83E8              ldi R24,131
 0186 82BF              out 0x32,R24
 0188                   .dbline 236
 0188           ;  OCR0  = 0x7D;  //set compare
 0188 8DE7              ldi R24,125
 018A 8CBF              out 0x3c,R24
 018C                   .dbline 237
 018C           ;  TCCR0 = 0x03; //start timer
 018C 83E0              ldi R24,3
 018E 83BF              out 0x33,R24
 0190                   .dbline -2
 0190           L32:
 0190                   .dbline 0 ; func end
 0190 0895              ret
 0192                   .dbend
                        .area vector(rom, abs)
                        .org 36
 0024 0C94C900          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 0192                   .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
 0192                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 0192           _timer0_ovf_isr::
 0192 0A92              st -y,R0
 0194 1A92              st -y,R1
 0196 2A92              st -y,R2
 0198 3A92              st -y,R3
 019A 4A92              st -y,R4
 019C 5A92              st -y,R5
 019E 6A92              st -y,R6
 01A0 7A92              st -y,R7
 01A2 8A92              st -y,R8
 01A4 9A92              st -y,R9
 01A6 0A93              st -y,R16
 01A8 1A93              st -y,R17
 01AA 2A93              st -y,R18
 01AC 3A93              st -y,R19
 01AE 8A93              st -y,R24
 01B0 9A93              st -y,R25
 01B2 AA93              st -y,R26
 01B4 BA93              st -y,R27
 01B6 EA93              st -y,R30
 01B8 FA93              st -y,R31
 01BA 0FB6              in R0,0x3f
 01BC 0A92              st -y,R0
 01BE 2197              sbiw R28,1
 01C0                   .dbline -1
 01C0                   .dbline 242
 01C0           ; }
 01C0           ; 
 01C0           ; #pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
 01C0           ; void timer0_ovf_isr(void)
 01C0           ; {
 01C0                   .dbline 250
 01C0           ;  //mstcnt--;
 01C0           ;   //if(mstcnt==0)
 01C0           ;     //{
 01C0           ;     //  mstcnt=8;
 01C0           ; 
 01C0           ;    // }        
 01C0           ;  //for(i=0;i<8;i++)
 01C0           ;  tcnt++;
 01C0 80910100          lds R24,_tcnt
 01C4 90910200          lds R25,_tcnt+1
 01C8 0196              adiw R24,1
 01CA 90930200          sts _tcnt+1,R25
 01CE 80930100          sts _tcnt,R24
 01D2                   .dbline 252
 01D2           ; 
 01D2           ;   if(tcnt==1000)
 01D2 883E              cpi R24,232
 01D4 E3E0              ldi R30,3
 01D6 9E07              cpc R25,R30
 01D8 09F0              breq X13
 01DA 7BC0              xjmp L34
 01DC           X13:
 01DC           X8:
 01DC                   .dbline 253
 01DC           ;     {
 01DC                   .dbline 254
 01DC           ;       tcnt=0;
 01DC 2224              clr R2
 01DE 3324              clr R3
 01E0 30920200          sts _tcnt+1,R3
 01E4 20920100          sts _tcnt,R2
 01E8                   .dbline 255
 01E8           ;       second++;
 01E8 80910500          lds R24,_second
 01EC 8F5F              subi R24,255    ; addi 1
 01EE 80930500          sts _second,R24
 01F2                   .dbline 256
 01F2           ;       if(second==60)
 01F2 8C33              cpi R24,60
 01F4 A1F4              brne L36
 01F6           X9:
 01F6                   .dbline 257
 01F6           ;         {
 01F6                   .dbline 258
 01F6           ;           second=0;
 01F6 20920500          sts _second,R2
 01FA                   .dbline 259
 01FA           ;           minite++;
 01FA 80910400          lds R24,_minite
 01FE 8F5F              subi R24,255    ; addi 1
 0200 80930400          sts _minite,R24
 0204                   .dbline 260
 0204           ;           if(minite==60)
 0204 8C33              cpi R24,60
 0206 59F4              brne L38
 0208           X10:
 0208                   .dbline 261
 0208           ;             {
 0208                   .dbline 262
 0208           ;               minite=0;
 0208 20920400          sts _minite,R2
 020C                   .dbline 263
 020C           ;               hour++;
 020C 80910300          lds R24,_hour
 0210 8F5F              subi R24,255    ; addi 1
 0212 80930300          sts _hour,R24
 0216                   .dbline 264
 0216           ;               if(hour==24)
 0216 8831              cpi R24,24
 0218 11F4              brne L40
 021A           X11:
 021A                   .dbline 265
 021A           ;                 {
 021A                   .dbline 266
 021A           ;                   hour=0;
 021A 20920300          sts _hour,R2
 021E                   .dbline 267
 021E           ;                 }
 021E           L40:
 021E                   .dbline 268
 021E           ;             }

⌨️ 快捷键说明

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