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

📄 icc17-1.lis

📁 手把手教你学AVR单片机C程序设计实验程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00B0 0000              nop
 00B2                   .dbline 46
 00B2 0000              nop
 00B4                   .dbline 47
 00B4           ; 
 00B4 4BBB              out 0x1b,R20
 00B6                   .dbline 48
 00B6           ; /******************************/
 00B6 C29A              sbi 0x18,2
 00B8                   .dbline 48
 00B8 0000              nop
 00BA                   .dbline 48
 00BA 0000              nop
 00BC                   .dbline 49
 00BC           ; void timer1_init(void)
 00BC C298              cbi 0x18,2
 00BE                   .dbline 49
 00BE 0000              nop
 00C0                   .dbline 49
 00C0 0000              nop
 00C2                   .dbline -2
 00C2           L12:
 00C2 0E940000          xcall pop_gset2
 00C6                   .dbline 0 ; func end
 00C6 0895              ret
 00C8                   .dbsym l sel_r 4 c
 00C8                   .dbsym r sel_l 22 c
 00C8                   .dbsym r c 20 c
 00C8                   .dbend
 00C8                   .dbfunc e lw _lw fV
 00C8           ;             dd -> y+5
 00C8           ;              y -> R22
 00C8           ;              x -> R20
                        .even
 00C8           _lw::
 00C8 0E940000          xcall push_gset2
 00CC 622F              mov R22,R18
 00CE 402F              mov R20,R16
 00D0 2197              sbiw R28,1
 00D2                   .dbline -1
 00D2                   .dbline 53
 00D2           ; {
 00D2           ;  CLI();
 00D2           ;  TCCR1B = 0x00; //stop
 00D2           ;  TCNT1H = 0xE1; //setup
 00D2                   .dbline 54
 00D2           ;  TCNT1L = 0x7C;
 00D2 4034              cpi R20,64
 00D4 50F0              brlo L18
 00D6                   .dbline 55
 00D6           ;  TCCR1A = 0x00;
 00D6                   .dbline 55
 00D6 262F              mov R18,R22
 00D8 042F              mov R16,R20
 00DA 0054              subi R16,64
 00DC 20D0              xcall _set_xy
 00DE                   .dbline 56
 00DE           ;  TCCR1B = 0x05; //start Timer
 00DE 81E0              ldi R24,1
 00E0 8883              std y+0,R24
 00E2 2227              clr R18
 00E4 0D81              ldd R16,y+5
 00E6 CCDF              xcall _wdata
 00E8                   .dbline 56
 00E8 08C0              xjmp L19
 00EA           L18:
 00EA                   .dbline 58
 00EA                   .dbline 58
 00EA 262F              mov R18,R22
 00EC 042F              mov R16,R20
 00EE 17D0              xcall _set_xy
 00F0                   .dbline 59
 00F0 2224              clr R2
 00F2 2882              std y+0,R2
 00F4 21E0              ldi R18,1
 00F6 0D81              ldd R16,y+5
 00F8 C3DF              xcall _wdata
 00FA                   .dbline 59
 00FA           L19:
 00FA                   .dbline -2
 00FA           L17:
 00FA 2196              adiw R28,1
 00FC 0E940000          xcall pop_gset2
 0100                   .dbline 0 ; func end
 0100 0895              ret
 0102                   .dbsym l dd 5 c
 0102                   .dbsym r y 22 c
 0102                   .dbsym r x 20 c
 0102                   .dbend
 0102                   .dbfunc e set_startline _set_startline fV
 0102           ;              i -> R20
                        .even
 0102           _set_startline::
 0102 0E940000          xcall push_gset1
 0106 402F              mov R20,R16
 0108 2197              sbiw R28,1
 010A                   .dbline -1
 010A                   .dbline 63
 010A           ;  TIMSK = 0x04; 
 010A           ;  SEI();
 010A           ; }
 010A           ; /*************主函数*************/
 010A           ; void main(void)       
 010A           ; {
 010A           ;   uchar loop,tempday; 
 010A                   .dbline 64
 010A           ;   m16_init();                 
 010A 4054              subi R20,64    ; addi 192
 010C                   .dbline 65
 010C           ;   lcd_init(); 
 010C 81E0              ldi R24,1
 010E 8883              std y+0,R24
 0110 21E0              ldi R18,1
 0112 042F              mov R16,R20
 0114 91DF              xcall _wcode
 0116                   .dbline -2
 0116           L20:
 0116 2196              adiw R28,1
 0118 0E940000          xcall pop_gset1
 011C                   .dbline 0 ; func end
 011C 0895              ret
 011E                   .dbsym r i 20 c
 011E                   .dbend
 011E                   .dbfunc e set_xy _set_xy fV
 011E           ;              y -> R20
 011E           ;              x -> R22
                        .even
 011E           _set_xy::
 011E 0E940000          xcall push_gset2
 0122 422F              mov R20,R18
 0124 602F              mov R22,R16
 0126 2197              sbiw R28,1
 0128                   .dbline -1
 0128                   .dbline 69
 0128           ;   display_tu(1);
 0128           ;   Delay_nms(3000);
 0128           ;   display_tu(0);      
 0128           ;   Delay_nms(3000);
 0128                   .dbline 70
 0128           ;   lcd_init(); 
 0128 605C              subi R22,192    ; addi 64
 012A                   .dbline 71
 012A           ;   display_chinese();
 012A 4854              subi R20,72    ; addi 184
 012C                   .dbline 72
 012C           ;   Delay_nms(5000);
 012C 81E0              ldi R24,1
 012E 8883              std y+0,R24
 0130 21E0              ldi R18,1
 0132 062F              mov R16,R22
 0134 81DF              xcall _wcode
 0136                   .dbline 73
 0136           ;   lcd_init(); 
 0136 81E0              ldi R24,1
 0138 8883              std y+0,R24
 013A 21E0              ldi R18,1
 013C 042F              mov R16,R20
 013E 7CDF              xcall _wcode
 0140                   .dbline -2
 0140           L21:
 0140 2196              adiw R28,1
 0142 0E940000          xcall pop_gset2
 0146                   .dbline 0 ; func end
 0146 0895              ret
 0148                   .dbsym r y 20 c
 0148                   .dbsym r x 22 c
 0148                   .dbend
 0148                   .dbfunc e dison_off _dison_off fV
 0148           ;              o -> R20
                        .even
 0148           _dison_off::
 0148 0E940000          xcall push_gset1
 014C 402F              mov R20,R16
 014E 2197              sbiw R28,1
 0150                   .dbline -1
 0150                   .dbline 77
 0150           ;  //***********************************/  
 0150           ; display_hz(4,0,0,1,nian);
 0150           ; display_hz(8,0,0,1,yue);
 0150           ; display_hz(12,0,0,1,ri);
 0150                   .dbline 78
 0150           ; display_hz(4,2,0,1,shi);
 0150 425C              subi R20,194    ; addi 62
 0152                   .dbline 79
 0152           ; display_hz(8,2,0,1,fen);
 0152 81E0              ldi R24,1
 0154 8883              std y+0,R24
 0156 21E0              ldi R18,1
 0158 042F              mov R16,R20
 015A 6EDF              xcall _wcode
 015C                   .dbline -2
 015C           L22:
 015C 2196              adiw R28,1
 015E 0E940000          xcall pop_gset1
 0162                   .dbline 0 ; func end
 0162 0895              ret
 0164                   .dbsym r o 20 c
 0164                   .dbend
 0164                   .dbfunc e reset _reset fV
                        .even
 0164           _reset::
 0164                   .dbline -1
 0164                   .dbline 83
 0164           ; display_hz(12,2,0,1,miao);
 0164           ; /**********************************/
 0164           ; col=0;row=4;Putstr(STR,16);
 0164           ; /***********************************/
 0164                   .dbline 84
 0164           ; for(loop=0;loop<5;loop++)
 0164 C598              cbi 0x18,5
 0166                   .dbline 85
 0166           ; {display_hz(2*loop,6,loop,1,temperature);}
 0166 0AE0              ldi R16,10
 0168 10E0              ldi R17,0
 016A 0E94B409          xcall _Delay_nms
 016E                   .dbline 86
 016E           ; display_hz(14,6,0,1,du);
 016E C59A              sbi 0x18,5
 0170                   .dbline 87
 0170           ; /***********************************/
 0170 0AE0              ldi R16,10
 0172 10E0              ldi R17,0
 0174 0E94B409          xcall _Delay_nms
 0178                   .dbline -2
 0178           L23:
 0178                   .dbline 0 ; func end
 0178 0895              ret
 017A                   .dbend
 017A                   .dbfunc e lcd_init _lcd_init fV
 017A           ;              y -> R20
 017A           ;              x -> R22
                        .even
 017A           _lcd_init::
 017A 0E940000          xcall push_gset2
 017E 2197              sbiw R28,1
 0180                   .dbline -1
 0180                   .dbline 91
 0180           ;  for(;;)                              
 0180           ;  { 
 0180           ;   if(Flag_1820Error==0)read_temperature();
 0180           ;   tempday=conv(year,month);
 0180                   .dbline 92
 0180           ;   if(second>59){second=0;minute++;}
 0180 F1DF              xcall _reset
 0182                   .dbline 93
 0182           ;   if(minute>59){minute=0;hour++;}
 0182 0027              clr R16
 0184 BEDF              xcall _set_startline
 0186                   .dbline 94
 0186           ;   if(hour>23){hour=0;date++;}
 0186 0027              clr R16
 0188 DFDF              xcall _dison_off
 018A                   .dbline 95
 018A           ;   if(date>tempday){date=1;month++;}
 018A 4427              clr R20
 018C 0BC0              xjmp L28
 018E           L25:
 018E                   .dbline 96
 018E           ;   if(month>12){month=1;year++;}
 018E                   .dbline 97
 018E 6627              clr R22
 0190 06C0              xjmp L32
 0192           L29:
 0192                   .dbline 97
 0192 2224              clr R2
 0194 2882              std y+0,R2
 0196 242F              mov R18,R20
 0198 062F              mov R16,R22
 019A 96DF              xcall _lw
 019C           L30:
 019C                   .dbline 97
 019C 6395              inc R22
 019E           L32:
 019E                   .dbline 97
 019E 6038              cpi R22,128
 01A0 C0F3              brlo L29
 01A2                   .dbline 98
 01A2           L26:
 01A2                   .dbline 95
 01A2 4395              inc R20
 01A4           L28:
 01A4                   .dbline 95
 01A4 4830              cpi R20,8
 01A6 98F3              brlo L25
 01A8                   .dbline 99
 01A8           ;   if(year>9999)year=0;
 01A8           ;   dis_time();
 01A8           ;   //----------------------------------
 01A8 01E0              ldi R16,1
 01AA CEDF              xcall _dison_off
 01AC                   .dbline -2
 01AC           L24:
 01AC 2196              adiw R28,1
 01AE 0E940000          xcall pop_gset2
 01B2                   .dbline 0 ; func end
 01B2 0895              ret
 01B4                   .dbsym r y 20 c
 01B4                   .dbsym r x 22 c
 01B4                   .dbend
 01B4                   .dbfunc e display_hz _display_hz fV
 01B4           ;             dx -> R20
 01B4           ;              i -> R22
 01B4           ;              p -> R10,R11
 01B4           ;             fb -> R12
 01B4           ;              n -> R14
 01B4           ;             yy -> y+13
 01B4           ;             xx -> y+11
                        .even
 01B4           _display_hz::
 01B4 0E940000          xcall push_arg4
 01B8 0E940000          xcall push_gset5
 01BC 2197              sbiw R28,1
 01BE EF84              ldd R14,y+15
 01C0 C988              ldd R12,y+17
 01C2 AB88              ldd R10,y+19
 01C4 BC88              ldd R11,y+20
 01C6                   .dbline -1
 01C6                   .dbline 103
 01C6           ;   if(d[0]==1)
 01C6           ;   {
 01C6           ;     if((hour==set_hour1)&&(minute==set_minute1))Led_On;
 01C6           ;   }
 01C6                   .dbline 105
 01C6           ;   //----------------------------------
 01C6           ;   if(d[1]==1)
 01C6 6627              clr R22
 01C8 37C0              xjmp L37
 01CA           L34:
 01CA                   .dbline 106
 01CA           ;   {
 01CA                   .dbline 106
 01CA 80E2              ldi R24,32
 01CC 8E9D              mul R24,R14
 01CE 1001              movw R2,R0
 01D0 82E0              ldi R24,2
 01D2 869F              mul R24,R22
 01D4 F001              movw R30,R0
 01D6 E20D              add R30,R2
 01D8 F31D              adc R31,R3
 01DA EA0D              add R30,R10
 01DC FB1D              adc R31,R11
 01DE 4491              lpm R20,Z
 01E0                   .dbline 107
 01E0           ;     if((hour==set_hour2)&&(minute==set_minute2))Led_Off;
 01E0 CC20              tst R12
 01E2 29F0              breq L38
 01E4                   .dbline 107
 01E4 242E              mov R2,R20
 01E6 3324              clr R3
 01E8 4FEF              ldi R20,255

⌨️ 快捷键说明

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