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

📄 rtc.lis

📁 基于MEGA8的电子钟源代码
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0266           ;   putchar(minute%10+0x30);
 0266 1AE0              ldi R17,10
 0268 00910500          lds R16,_minute
 026C 0E940000          xcall mod8u
 0270 005D              subi R16,208    ; addi 48
 0272 C6DE              xcall _putchar
 0274                   .dbline 119
 0274           ;   putchar(':');
 0274 0AE3              ldi R16,58
 0276 C4DE              xcall _putchar
 0278                   .dbline 120
 0278           ;   putchar(second/10+0x30);
 0278 1AE0              ldi R17,10
 027A 00910400          lds R16,_second
 027E 0E940000          xcall div8u
 0282 005D              subi R16,208    ; addi 48
 0284 BDDE              xcall _putchar
 0286                   .dbline 121
 0286           ;   putchar(second%10+0x30);  
 0286 1AE0              ldi R17,10
 0288 00910400          lds R16,_second
 028C 0E940000          xcall mod8u
 0290 005D              subi R16,208    ; addi 48
 0292 B6DE              xcall _putchar
 0294                   .dbline -2
 0294           L38:
 0294                   .dbline 0 ; func end
 0294 0895              ret
 0296                   .dbend
                        .area vector(rom, abs)
                        .org 44
 002C 0C944B01          jmp _uart0_rx_isr
                        .area text(rom, con, rel)
 0296                   .dbfile G:\AVR系列\RTC\rtc.c
 0296                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
 0296           ;              i -> R20,R21
                        .even
 0296           _uart0_rx_isr::
 0296 0E940000          xcall push_lset
 029A 0E940000          xcall push_gset1
 029E                   .dbline -1
 029E                   .dbline 126
 029E                   .dbline 128
 029E 4CB1              in R20,0xc
 02A0 5527              clr R21
 02A2                   .dbline 129
 02A2 4437              cpi R20,116
 02A4 E0E0              ldi R30,0
 02A6 5E07              cpc R21,R30
 02A8 09F0              breq X8
 02AA 7BC0              xjmp L40
 02AC           X8:
 02AC                   .dbline 130
 02AC                   .dbline 131
 02AC ADDE              xcall _getchar
 02AE 202F              mov R18,R16
 02B0 3327              clr R19
 02B2 08EE              ldi R16,1000
 02B4 13E0              ldi R17,3
 02B6 0E940000          xcall empy16s
 02BA C801              movw R24,R16
 02BC 8058              subi R24,128
 02BE 9B4B              sbci R25,187
 02C0 90930100          sts _year+1,R25
 02C4 80930000          sts _year,R24
 02C8                   .dbline 132
 02C8 9FDE              xcall _getchar
 02CA 84E6              ldi R24,100
 02CC 809F              mul R24,R16
 02CE C001              movw R24,R0
 02D0 805C              subi R24,192
 02D2 9241              sbci R25,18
 02D4 90930100          sts _year+1,R25
 02D8 80930000          sts _year,R24
 02DC                   .dbline 133
 02DC 95DE              xcall _getchar
 02DE 8AE0              ldi R24,10
 02E0 809F              mul R24,R16
 02E2 C001              movw R24,R0
 02E4 805E              subi R24,224
 02E6 9140              sbci R25,1
 02E8 90930100          sts _year+1,R25
 02EC 80930000          sts _year,R24
 02F0                   .dbline 134
 02F0 8BDE              xcall _getchar
 02F2 802F              mov R24,R16
 02F4 9927              clr R25
 02F6 C097              sbiw R24,48
 02F8 20900000          lds R2,_year
 02FC 30900100          lds R3,_year+1
 0300 280E              add R2,R24
 0302 391E              adc R3,R25
 0304 30920100          sts _year+1,R3
 0308 20920000          sts _year,R2
 030C                   .dbline 135
 030C 7DDE              xcall _getchar
 030E 8AE0              ldi R24,10
 0310 809F              mul R24,R16
 0312 802D              mov R24,R0
 0314 805E              subi R24,224
 0316 80930200          sts _month,R24
 031A                   .dbline 136
 031A 76DE              xcall _getchar
 031C 802F              mov R24,R16
 031E 8053              subi R24,48
 0320 20900200          lds R2,_month
 0324 280E              add R2,R24
 0326 20920200          sts _month,R2
 032A                   .dbline 137
 032A 6EDE              xcall _getchar
 032C 8AE0              ldi R24,10
 032E 809F              mul R24,R16
 0330 802D              mov R24,R0
 0332 805E              subi R24,224
 0334 80930300          sts _day,R24
 0338                   .dbline 138
 0338 67DE              xcall _getchar
 033A 802F              mov R24,R16
 033C 8053              subi R24,48
 033E 20900300          lds R2,_day
 0342 280E              add R2,R24
 0344 20920300          sts _day,R2
 0348                   .dbline 139
 0348 5FDE              xcall _getchar
 034A 8AE0              ldi R24,10
 034C 809F              mul R24,R16
 034E 802D              mov R24,R0
 0350 805E              subi R24,224
 0352 80930600          sts _hour,R24
 0356                   .dbline 140
 0356 58DE              xcall _getchar
 0358 802F              mov R24,R16
 035A 8053              subi R24,48
 035C 20900600          lds R2,_hour
 0360 280E              add R2,R24
 0362 20920600          sts _hour,R2
 0366                   .dbline 141
 0366 50DE              xcall _getchar
 0368 8AE0              ldi R24,10
 036A 809F              mul R24,R16
 036C 802D              mov R24,R0
 036E 805E              subi R24,224
 0370 80930500          sts _minute,R24
 0374                   .dbline 142
 0374 49DE              xcall _getchar
 0376 802F              mov R24,R16
 0378 8053              subi R24,48
 037A 20900500          lds R2,_minute
 037E 280E              add R2,R24
 0380 20920500          sts _minute,R2
 0384                   .dbline 143
 0384 41DE              xcall _getchar
 0386 8AE0              ldi R24,10
 0388 809F              mul R24,R16
 038A 802D              mov R24,R0
 038C 805E              subi R24,224
 038E 80930400          sts _second,R24
 0392                   .dbline 144
 0392 3ADE              xcall _getchar
 0394 802F              mov R24,R16
 0396 8053              subi R24,48
 0398 20900400          lds R2,_second
 039C 280E              add R2,R24
 039E 20920400          sts _second,R2
 03A2                   .dbline 145
 03A2           L40:
 03A2                   .dbline -2
 03A2           L39:
 03A2 0E940000          xcall pop_gset1
 03A6 0E940000          xcall pop_lset
 03AA                   .dbline 0 ; func end
 03AA 1895              reti
 03AC                   .dbsym r i 20 i
 03AC                   .dbend
 03AC                   .dbfunc e main _main fV
 03AC           ;     second_old -> R20
                        .even
 03AC           _main::
 03AC                   .dbline -1
 03AC                   .dbline 149
 03AC           ;  }
 03AC           ; //UART接收中断 
 03AC           ; #pragma interrupt_handler uart0_rx_isr:iv_USART_RXC
 03AC           ; void uart0_rx_isr(void)
 03AC           ; {
 03AC           ;  unsigned i;
 03AC           ;  i=UDR;
 03AC           ;  if (i=='t')
 03AC           ;    {
 03AC           ;     year=(getchar()-0x30)*1000;
 03AC           ;       year=(getchar()-0x30)*100;
 03AC           ;       year=(getchar()-0x30)*10;
 03AC           ;       year=year+(getchar()-0x30);
 03AC           ;       month=(getchar()-0x30)*10;
 03AC           ;       month=month+(getchar()-0x30);
 03AC           ;       day=(getchar()-0x30)*10;
 03AC           ;       day=day+(getchar()-0x30);
 03AC           ;     hour=(getchar()-0x30)*10;
 03AC           ;       hour=hour+(getchar()-0x30);
 03AC           ;       minute=(getchar()-0x30)*10;
 03AC           ;       minute=minute+(getchar()-0x30);
 03AC           ;       second=(getchar()-0x30)*10;
 03AC           ;       second=second+(getchar()-0x30);
 03AC           ;    }
 03AC           ; } 
 03AC           ; //main程序
 03AC           ; void main(void)
 03AC           ; {
 03AC                   .dbline 151
 03AC           ;  unsigned char second_old;
 03AC           ;  uart_init(); 
 03AC 45DE              xcall _uart_init
 03AE                   .dbline 152
 03AE           ;  timer2_init();
 03AE DDDE              xcall _timer2_init
 03B0                   .dbline 153
 03B0           ;  TIMSK =1<<TOIE2;
 03B0 80E4              ldi R24,64
 03B2 89BF              out 0x39,R24
 03B4                   .dbline 155
 03B4           ; 
 03B4           ;  SEI();
 03B4 7894              sei
 03B6 08C0              xjmp L44
 03B8           L43:
 03B8                   .dbline 157
 03B8           ;  while(1)
 03B8           ;    {
 03B8                   .dbline 158
 03B8           ;     if (second!=second_old)
 03B8 20900400          lds R2,_second
 03BC 2416              cp R2,R20
 03BE 21F0              breq L46
 03C0                   .dbline 159
 03C0           ;         {
 03C0                   .dbline 160
 03C0           ;                time();
 03C0 44DE              xcall _time
 03C2                   .dbline 161
 03C2           ;                second_old=second;
 03C2 40910400          lds R20,_second
 03C6                   .dbline 162
 03C6           ;                put_time();
 03C6 EADE              xcall _put_time
 03C8                   .dbline 163
 03C8           ;               }
 03C8           L46:
 03C8                   .dbline 164
 03C8           L44:
 03C8                   .dbline 156
 03C8 F7CF              xjmp L43
 03CA           X9:
 03CA                   .dbline -2
 03CA           L42:
 03CA                   .dbline 0 ; func end
 03CA 0895              ret
 03CC                   .dbsym r second_old 20 c
 03CC                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile G:\AVR系列\RTC\rtc.c
 0000           _year::
 0000                   .blkb 2
 0002                   .dbsym e year _year i
 0002           _month::
 0002                   .blkb 1
 0003                   .dbsym e month _month c
 0003           _day::
 0003                   .blkb 1
 0004                   .dbsym e day _day c
 0004           _second::
 0004                   .blkb 1
 0005                   .dbsym e second _second c
 0005           _minute::
 0005                   .blkb 1
 0006                   .dbsym e minute _minute c
 0006           _hour::
 0006                   .blkb 1
 0007                   .dbsym e hour _hour c

⌨️ 快捷键说明

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