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

📄 1602_main.lis

📁 10K到5MHz的频率测量
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 040A           ;  SEI();
 040A 7894              sei
 040C 17C1              xjmp L52
 040E           L51:
 040E                   .dbline 90
 040E           ;  while(1)
 040E           ;  { 
 040E                   .dbline 91
 040E           ;   if(t==125)                     //100KHz~5MHz
 040E 80910300          lds R24,_t
 0412 8D37              cpi R24,125
 0414 09F0              breq X16
 0416 12C1              xjmp L54
 0418           X16:
 0418           X11:
 0418                   .dbline 92
 0418           ;   {  
 0418                   .dbline 93
 0418           ;       f_low=TCNT1L;
 0418 2CB4              in R2,0x2c
 041A 20920100          sts _f_low,R2
 041E                   .dbline 94
 041E           ;       f_hign=TCNT1H;
 041E 2DB4              in R2,0x2d
 0420 20920200          sts _f_hign,R2
 0424                   .dbline 95
 0424           ;       f=(ulint)f_hign*256+f_low; //转换为unsigned long类型,否则所测频率最多32670HZ
 0424 3324              clr R3
 0426 4424              clr R4
 0428 5524              clr R5
 042A 40E0              ldi R20,0
 042C 51E0              ldi R21,1
 042E 60E0              ldi R22,0
 0430 70E0              ldi R23,0
 0432 5A92              st -y,R5
 0434 4A92              st -y,R4
 0436 3A92              st -y,R3
 0438 2A92              st -y,R2
 043A 8A01              movw R16,R20
 043C 9B01              movw R18,R22
 043E 0E940000          xcall empy32u
 0442 1801              movw R2,R16
 0444 2901              movw R4,R18
 0446 60900100          lds R6,_f_low
 044A 7724              clr R7
 044C 8824              clr R8
 044E 9924              clr R9
 0450 260C              add R2,R6
 0452 371C              adc R3,R7
 0454 481C              adc R4,R8
 0456 591C              adc R5,R9
 0458 30920E00          sts _f+1,R3
 045C 20920D00          sts _f,R2
 0460 50921000          sts _f+2+1,R5
 0464 40920F00          sts _f+2,R4
 0468                   .dbline 96
 0468           ;       if(hignf)
 0468 20900000          lds R2,_hignf
 046C 2220              tst R2
 046E 31F1              breq L56
 0470           X12:
 0470                   .dbline 97
 0470           ;       {
 0470                   .dbline 98
 0470           ;               f+=hignf*65536;
 0470 3324              clr R3
 0472 4424              clr R4
 0474 5524              clr R5
 0476 40E0              ldi R20,0
 0478 50E0              ldi R21,0
 047A 61E0              ldi R22,1
 047C 70E0              ldi R23,0
 047E 5A92              st -y,R5
 0480 4A92              st -y,R4
 0482 3A92              st -y,R3
 0484 2A92              st -y,R2
 0486 8A01              movw R16,R20
 0488 9B01              movw R18,R22
 048A 0E940000          xcall empy32s
 048E 40900F00          lds R4,_f+2
 0492 50901000          lds R5,_f+2+1
 0496 20900D00          lds R2,_f
 049A 30900E00          lds R3,_f+1
 049E 200E              add R2,R16
 04A0 311E              adc R3,R17
 04A2 421E              adc R4,R18
 04A4 531E              adc R5,R19
 04A6 30920E00          sts _f+1,R3
 04AA 20920D00          sts _f,R2
 04AE 50921000          sts _f+2+1,R5
 04B2 40920F00          sts _f+2,R4
 04B6                   .dbline 99
 04B6           ;               hignf=0;
 04B6 2224              clr R2
 04B8 20920000          sts _hignf,R2
 04BC                   .dbline 100
 04BC           ;       }
 04BC           L56:
 04BC                   .dbline 101
 04BC           ;       FF=(float)f;
 04BC 20910F00          lds R18,_f+2
 04C0 30911000          lds R19,_f+2+1
 04C4 00910D00          lds R16,_f
 04C8 10910E00          lds R17,_f+1
 04CC 0E940000          xcall ulong2fp
 04D0 10931200          sts _FF+1,R17
 04D4 00931100          sts _FF,R16
 04D8 30931400          sts _FF+2+1,R19
 04DC 20931300          sts _FF+2,R18
 04E0                   .dbline 102
 04E0           ;       for(i=13;i>6;i--)
 04E0 8DE0              ldi R24,13
 04E2 80930400          sts _i,R24
 04E6 39C0              xjmp L61
 04E8           L58:
 04E8                   .dbline 103
 04E8           ;       {
 04E8                   .dbline 104
 04E8           ;               WriteNum(2,i,f%10);
 04E8 4AE0              ldi R20,10
 04EA 50E0              ldi R21,0
 04EC 60E0              ldi R22,0
 04EE 70E0              ldi R23,0
 04F0 20910F00          lds R18,_f+2
 04F4 30911000          lds R19,_f+2+1
 04F8 00910D00          lds R16,_f
 04FC 10910E00          lds R17,_f+1
 0500 7A93              st -y,R23
 0502 6A93              st -y,R22
 0504 5A93              st -y,R21
 0506 4A93              st -y,R20
 0508 0E940000          xcall mod32u
 050C 1983              std y+1,R17
 050E 0883              std y+0,R16
 0510 20910400          lds R18,_i
 0514 3327              clr R19
 0516 02E0              ldi R16,2
 0518 10E0              ldi R17,0
 051A 74DE              xcall _WriteNum
 051C                   .dbline 105
 051C           ;               f/=10;
 051C 4AE0              ldi R20,10
 051E 50E0              ldi R21,0
 0520 60E0              ldi R22,0
 0522 70E0              ldi R23,0
 0524 20910F00          lds R18,_f+2
 0528 30911000          lds R19,_f+2+1
 052C 00910D00          lds R16,_f
 0530 10910E00          lds R17,_f+1
 0534 7A93              st -y,R23
 0536 6A93              st -y,R22
 0538 5A93              st -y,R21
 053A 4A93              st -y,R20
 053C 0E940000          xcall div32u
 0540 10930E00          sts _f+1,R17
 0544 00930D00          sts _f,R16
 0548 30931000          sts _f+2+1,R19
 054C 20930F00          sts _f+2,R18
 0550                   .dbline 106
 0550           ;       }
 0550           L59:
 0550                   .dbline 102
 0550 80910400          lds R24,_i
 0554 8150              subi R24,1
 0556 80930400          sts _i,R24
 055A           L61:
 055A                   .dbline 102
 055A 86E0              ldi R24,6
 055C 20900400          lds R2,_i
 0560 8215              cp R24,R2
 0562 10F2              brlo L58
 0564           X13:
 0564                   .dbline 107
 0564           ;        TT=1/FF;
 0564 00E0              ldi R16,<L62
 0566 10E0              ldi R17,>L62
 0568 0E940000          xcall lpm32
 056C 80E0              ldi R24,<_FF
 056E 90E0              ldi R25,>_FF
 0570 9A93              st -y,R25
 0572 8A93              st -y,R24
 0574 0E940000          xcall fpdiv1
 0578 10931600          sts _TT+1,R17
 057C 00931500          sts _TT,R16
 0580 30931800          sts _TT+2+1,R19
 0584 20931700          sts _TT+2,R18
 0588                   .dbline 108
 0588           ;        T_int=(ulint)(TT*1000000000);
 0588 00E0              ldi R16,<L63
 058A 10E0              ldi R17,>L63
 058C 0E940000          xcall lpm32
 0590 80E0              ldi R24,<_TT
 0592 90E0              ldi R25,>_TT
 0594 9A93              st -y,R25
 0596 8A93              st -y,R24
 0598 0E940000          xcall fpmule1
 059C 0E940000          xcall fpint
 05A0 10930600          sts _T_int+1,R17
 05A4 00930500          sts _T_int,R16
 05A8 30930800          sts _T_int+2+1,R19
 05AC 20930700          sts _T_int+2,R18
 05B0                   .dbline 109
 05B0           ;        for(i=14;i>5;i--)
 05B0 8EE0              ldi R24,14
 05B2 80930400          sts _i,R24
 05B6 39C0              xjmp L67
 05B8           L64:
 05B8                   .dbline 110
 05B8           ;        {
 05B8                   .dbline 111
 05B8           ;               WriteNum(1,i,T_int%10);
 05B8 4AE0              ldi R20,10
 05BA 50E0              ldi R21,0
 05BC 60E0              ldi R22,0
 05BE 70E0              ldi R23,0
 05C0 20910700          lds R18,_T_int+2
 05C4 30910800          lds R19,_T_int+2+1
 05C8 00910500          lds R16,_T_int
 05CC 10910600          lds R17,_T_int+1
 05D0 7A93              st -y,R23
 05D2 6A93              st -y,R22
 05D4 5A93              st -y,R21
 05D6 4A93              st -y,R20
 05D8 0E940000          xcall mod32u
 05DC 1983              std y+1,R17
 05DE 0883              std y+0,R16
 05E0 20910400          lds R18,_i
 05E4 3327              clr R19
 05E6 01E0              ldi R16,1
 05E8 10E0              ldi R17,0
 05EA 0CDE              xcall _WriteNum
 05EC                   .dbline 112
 05EC           ;               T_int/=10;
 05EC 4AE0              ldi R20,10
 05EE 50E0              ldi R21,0
 05F0 60E0              ldi R22,0
 05F2 70E0              ldi R23,0
 05F4 20910700          lds R18,_T_int+2
 05F8 30910800          lds R19,_T_int+2+1
 05FC 00910500          lds R16,_T_int
 0600 10910600          lds R17,_T_int+1
 0604 7A93              st -y,R23
 0606 6A93              st -y,R22
 0608 5A93              st -y,R21
 060A 4A93              st -y,R20
 060C 0E940000          xcall div32u
 0610 10930600          sts _T_int+1,R17
 0614 00930500          sts _T_int,R16
 0618 30930800          sts _T_int+2+1,R19
 061C 20930700          sts _T_int+2,R18
 0620                   .dbline 113
 0620           ;        }
 0620           L65:
 0620                   .dbline 109
 0620 80910400          lds R24,_i
 0624 8150              subi R24,1
 0626 80930400          sts _i,R24
 062A           L67:
 062A                   .dbline 109
 062A 85E0              ldi R24,5
 062C 20900400          lds R2,_i
 0630 8215              cp R24,R2
 0632 10F2              brlo L64
 0634           X14:
 0634                   .dbline 114
 0634           ;        t=0;
 0634 2224              clr R2
 0636 20920300          sts _t,R2
 063A                   .dbline 115
 063A           ;        init_devices();
 063A 9CDE              xcall _init_devices
 063C                   .dbline 116
 063C           ;     }
 063C           L54:
 063C                   .dbline 117
 063C           ;   }
 063C           L52:
 063C                   .dbline 89
 063C E8CE              xjmp L51
 063E           X15:
 063E                   .dbline -2
 063E           L50:
 063E                   .dbline 0 ; func end
 063E 2496              adiw R28,4
 0640 0895              ret
 0642                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\我的资源\我的文件\电子技术\AVR\AVR学习\JASON'~2\M16频率计(10K-5MHz,误差0.1%以下)(已验证)\1602_main.c
 0000           _hignf::
 0000                   .blkb 1
 0001                   .dbsym e hignf _hignf c
 0001           _f_low::
 0001                   .blkb 1
 0002                   .dbsym e f_low _f_low c
 0002           _f_hign::
 0002                   .blkb 1
 0003                   .dbsym e f_hign _f_hign c
 0003           _t::
 0003                   .blkb 1
 0004                   .dbsym e t _t c
 0004           _i::
 0004                   .blkb 1
 0005                   .dbsym e i _i c
 0005           _T_int::
 0005                   .blkb 4
 0009                   .dbsym e T_int _T_int l
 0009           _ff::
 0009                   .blkb 4
 000D                   .dbsym e ff _ff l
 000D           _f::
 000D                   .blkb 4
 0011                   .dbsym e f _f l
 0011           _FF::
 0011                   .blkb 4
 0015                   .dbsym e FF _FF D
 0015           _TT::
 0015                   .blkb 4
 0019                   .dbsym e TT _TT D
                        .area lit(rom, con, rel)
 0000           L63:
 0000 286B6E4E          .word 0x6b28,0x4e6e
 0004           L62:
 0004 0000803F          .word 0x0,0x3f80
 0008           ; }

⌨️ 快捷键说明

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