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

📄 1602_8563.lis

📁 avr单片机的程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 04C8 0295              swap R16
 04CA 0F70              andi R16,#0x0F
 04CC 005D              subi R16,208    ; addi 48
 04CE C4DD              xcall _lcd_da
 04D0                   .dbline 193
 04D0           ;       lcd_da((data&0x0f)+0x30);
 04D0 042F              mov R16,R20
 04D2 0F70              andi R16,15
 04D4 005D              subi R16,208    ; addi 48
 04D6 C0DD              xcall _lcd_da
 04D8                   .dbline 194
 04D8           ;       lcd(0x20);
 04D8 00E2              ldi R16,32
 04DA 57DE              xcall _lcd
 04DC                   .dbline -2
 04DC           L118:
 04DC 0E940000          xcall pop_gset1
 04E0                   .dbline 0 ; func end
 04E0 0895              ret
 04E2                   .dbsym r data 20 c
 04E2                   .dbend
 04E2                   .dbfunc e main _main fV
 04E2           ;       set_time -> R22
 04E2           ;         set_bh -> y+2
 04E2           ;       set_flag -> y+1
 04E2           ;             a1 -> y+0
 04E2           ;              a -> R20
                        .even
 04E2           _main::
 04E2 2597              sbiw R28,5
 04E4                   .dbline -1
 04E4                   .dbline 201
 04E4           ;       }
 04E4           ; 
 04E4           ; /**********************************
 04E4           ; *           程序主函数                      *
 04E4           ; **********************************/
 04E4           ; void main(void)
 04E4           ;     {
 04E4                   .dbline 202
 04E4           ;       uchar set_flag=0;                          //调整与正常工作标志
 04E4 0024              clr R0
 04E6 0982              std y+1,R0
 04E8                   .dbline 204
 04E8           ;       uchar set_time;                            //调整数据类型标志
 04E8           ;       uchar set_bh=0;                            //调整变化标志
 04E8 0A82              std y+2,R0
 04EA                   .dbline 207
 04EA           ;       uchar a,a1;
 04EA           ;       
 04EA           ;       port_init();
 04EA 8ADD              xcall _port_init
 04EC                   .dbline 208
 04EC           ;       LED_ON;                                            //开LCD背光
 04EC C39A              sbi 0x18,3
 04EE                   .dbline 209
 04EE           ;       lcd_init();
 04EE 12DE              xcall _lcd_init
 04F0                   .dbline 210
 04F0           ;       delay_ms(500);
 04F0 04EF              ldi R16,500
 04F2 11E0              ldi R17,1
 04F4 9EDD              xcall _delay_ms
 04F6                   .dbline 211
 04F6           ;       tonghe();
 04F6 61DE              xcall _tonghe
 04F8                   .dbline 212
 04F8           ;       delay_ms(2000);
 04F8 00ED              ldi R16,2000
 04FA 17E0              ldi R17,7
 04FC 9ADD              xcall _delay_ms
 04FE                   .dbline 214
 04FE           ;       
 04FE           ;       Twi_Init();
 04FE 6BDE              xcall _Twi_Init
 0500                   .dbline 215
 0500           ;       delay_ms(100);
 0500 04E6              ldi R16,100
 0502 10E0              ldi R17,0
 0504 96DD              xcall _delay_ms
 0506                   .dbline 216
 0506           ;       CLI();                                                  //关总中断
 0506 F894              cli
 0508                   .dbline 217
 0508           ;       timer1_init();                                  //定时器1初始化
 0508 ABDF              xcall _timer1_init
 050A                   .dbline 218
 050A           ;       MCUCR = 0x00;
 050A 2224              clr R2
 050C 25BE              out 0x35,R2
 050E                   .dbline 219
 050E           ;       GICR  = 0x00;
 050E 2BBE              out 0x3b,R2
 0510                   .dbline 220
 0510           ;       TIMSK = 0x04;                                   //开放定时器0中断和比较中断
 0510 84E0              ldi R24,4
 0512 89BF              out 0x39,R24
 0514                   .dbline 221
 0514           ;       SEI();                                                  //开总中断
 0514 7894              sei
 0516                   .dbline 223
 0516           ;       
 0516           ;       cls();
 0516 1BDE              xcall _cls
 0518                   .dbline 224
 0518           ;       delay_ms(50);
 0518 02E3              ldi R16,50
 051A 10E0              ldi R17,0
 051C 8ADD              xcall _delay_ms
 051E 1EC2              xjmp L121
 0520           L120:
 0520                   .dbline 227
 0520           ; 
 0520           ;       while(1)
 0520           ;           {
 0520                   .dbline 228
 0520           ;               a=KEY_RD;
 0520 83B3              in R24,0x13
 0522 8695              lsr R24
 0524 816F              ori R24,241
 0526 40B3              in R20,0x10
 0528 4695              lsr R20
 052A 4695              lsr R20
 052C 4E6F              ori R20,254
 052E 4823              and R20,R24
 0530 4095              com R20
 0532                   .dbline 229
 0532           ;               if(a!=0)
 0532 09F4              brne X9
 0534 13C2              xjmp L123
 0536           X9:
 0536                   .dbline 230
 0536           ;                   {
 0536                   .dbline 231
 0536           ;                       delay_ms(20);
 0536 04E1              ldi R16,20
 0538 10E0              ldi R17,0
 053A 7BDD              xcall _delay_ms
 053C                   .dbline 232
 053C           ;                       a1=KEY_RD;
 053C 83B3              in R24,0x13
 053E 8695              lsr R24
 0540 816F              ori R24,241
 0542 90B3              in R25,0x10
 0544 9695              lsr R25
 0546 9695              lsr R25
 0548 9E6F              ori R25,254
 054A 9823              and R25,R24
 054C 9095              com R25
 054E 9883              std y+0,R25
 0550                   .dbline 233
 0550           ;                       if(a1==a)
 0550 092E              mov R0,R25
 0552 9417              cp R25,R20
 0554 09F0              breq X10
 0556 00C2              xjmp L284
 0558           X10:
 0558                   .dbline 234
 0558           ;                           {
 0558                   .dbline 235
 0558           ;                               switch(a)
 0558 E42E              mov R14,R20
 055A FF24              clr R15
 055C C701              movw R24,R14
 055E 8130              cpi R24,1
 0560 E0E0              ldi R30,0
 0562 9E07              cpc R25,R30
 0564 79F0              breq L130
 0566 8230              cpi R24,2
 0568 E0E0              ldi R30,0
 056A 9E07              cpc R25,R30
 056C 59F1              breq L136
 056E 8430              cpi R24,4
 0570 E0E0              ldi R30,0
 0572 9E07              cpc R25,R30
 0574 09F4              brne X11
 0576 75C0              xjmp L154
 0578           X11:
 0578 8830              cpi R24,8
 057A E0E0              ldi R30,0
 057C 9E07              cpc R25,R30
 057E 09F4              brne X12
 0580 24C1              xjmp L216
 0582           X12:
 0582 EAC1              xjmp L284
 0584           X4:
 0584                   .dbline 236
 0584           ;                                   {
 0584           L130:
 0584                   .dbline 238
 0584           ;                                       case 0x01:
 0584           ;                                               spk(10,1);
 0584 21E0              ldi R18,1
 0586 0AE0              ldi R16,10
 0588 46DE              xcall _spk
 058A                   .dbline 239
 058A           ;                                               if(set_flag==0)
 058A 0980              ldd R0,y+1
 058C 0020              tst R0
 058E 71F4              brne L131
 0590                   .dbline 240
 0590           ;                                                   {
 0590                   .dbline 241
 0590           ;                                                       TCCR1B=0x00;
 0590 2224              clr R2
 0592 2EBC              out 0x2e,R2
 0594                   .dbline 242
 0594           ;                                                       LED_ON;
 0594 C39A              sbi 0x18,3
 0596                   .dbline 243
 0596           ;                                                       set_flag=1;
 0596 0024              clr R0
 0598 0394              inc R0
 059A 0982              std y+1,R0
 059C                   .dbline 244
 059C           ;                                                       cls();
 059C D8DD              xcall _cls
 059E                   .dbline 245
 059E           ;                                                       locate(1,4);               //显示“时间调整”
 059E 24E0              ldi R18,4
 05A0 01E0              ldi R16,1
 05A2 DBDD              xcall _locate
 05A4                   .dbline 246
 05A4           ;                                                       xs_lcd("SET:");
 05A4 00E0              ldi R16,<L133
 05A6 10E0              ldi R17,>L133
 05A8 F8DD              xcall _xs_lcd
 05AA                   .dbline 247
 05AA           ;                                                       }
 05AA D6C1              xjmp L284
 05AC           L131:
 05AC                   .dbline 249
 05AC           ;                                               else
 05AC           ;                                                       {
 05AC                   .dbline 250
 05AC           ;                                                       TCCR1B=0x04;               //开启时钟
 05AC 84E0              ldi R24,4
 05AE 8EBD              out 0x2e,R24
 05B0                   .dbline 251
 05B0           ;                                                       set_flag=0;
 05B0 0024              clr R0
 05B2 0982              std y+1,R0
 05B4                   .dbline 252
 05B4           ;                                                       if(set_bh==1)
 05B4 8A81              ldd R24,y+2
 05B6 8130              cpi R24,1
 05B8 09F0              breq X13
 05BA CEC1              xjmp L284
 05BC           X13:
 05BC                   .dbline 253
 05BC           ;                                                           {
 05BC                   .dbline 254
 05BC           ;                                                               write_timer();     //写入新时间
 05BC A6DE              xcall _write_timer
 05BE                   .dbline 255
 05BE           ;                                                               set_bh=0;
 05BE 0024              clr R0
 05C0 0A82              std y+2,R0
 05C2                   .dbline 256
 05C2           ;                                                               }
 05C2                   .dbline 257
 05C2           ;                                                       }
 05C2                   .dbline 258
 05C2           ;                                               break;
 05C2 CAC1              xjmp L284
 05C4           L136:
 05C4                   .dbline 260
 05C4           ;                                       case 0x02:
 05C4           ;                                           if(set_flag==1)
 05C4 8981              ldd R24,y+1
 05C6 8130              cpi R24,1
 05C8 09F0              breq X14
 05CA C6C1              xjmp L284
 05CC           X14:
 05CC                   .dbline 261
 05CC           ;                                                   {
 05CC                   .dbline 262
 05CC           ;                                                       spk(10,1);
 05CC 21E0              ldi R18,1
 05CE 0AE0              ldi R16,10
 05D0 22DE              xcall _spk
 05D2                   .dbline 263
 05D2           ;                                                       set_time++;                                     
 05D2 6395              inc R22
 05D4                   .dbline 264
 05D4           ;                                                       locate(2,2);                    //显示待调整的数据
 05D4 22E0              ldi R18,2
 05D6 02E0              ldi R16,2
 05D8 C0DD              xcall _locate
 05DA                   .dbline 265
 05DA           ;                                                       switch(set_time)
 05DA 262E              mov R2,R22
 05DC 3324              clr R3
 05DE 3C82              std y+4,R3
 05E0 2B82              std y+3,R2
 05E2 C101              movw R24,R2
 05E4 8130              cpi R24,1
 05E6 E0E0              ldi R30,0
 05E8 9E07              cpc R25,R30
 05EA A9F0              breq L142
 05EC 8230              cpi R24,2
 05EE E0E0              ldi R30,0
 05F0 9E07              cpc R25,R30
 05F2 B9F0              breq L144
 05F4 8330              cpi R24,3
 05F6 E0E0              ldi R30,0
 05F8 9E07              cpc R25,R30
 05FA C9F0              breq L146
 05FC 8430              cpi R24,4
 05FE E0E0              ldi R30,0
 0600 9E07              cpc R25,R30
 0602 D9F0              breq L148
 0604 8530              cpi R24,5
 0606 E0E0              ldi R30,0
 0608 9E07              cpc R25,R30
 060A E9F0              breq L150
 060C 8630              cpi R24,6
 060E E0E0              ldi R30,0
 0610 9E07              cpc R25,

⌨️ 快捷键说明

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