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

📄 ccapature.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00B0                   .dbline 49
 00B0           ;  TEM=TEM*10;
 00B0 0AE0              ldi R16,10
 00B2 10E0              ldi R17,0
 00B4 262F              mov R18,R22
 00B6 372F              mov R19,R23
 00B8 00D0              rcall mpy16s
 00BA 602F              mov R22,R16
 00BC 712F              mov R23,R17
 00BE                   .dbline 50
 00BE           ;  p[1]=TEM/i;
 00BE 2A2D              mov R18,R10
 00C0 3B2D              mov R19,R11
 00C2 00D0              rcall div16u
 00C4 E42F              mov R30,R20
 00C6 F52F              mov R31,R21
 00C8 0183              std z+1,R16
 00CA                   .dbline 51
 00CA           ;  TEM=TEM%i;
 00CA 2A2D              mov R18,R10
 00CC 3B2D              mov R19,R11
 00CE 062F              mov R16,R22
 00D0 172F              mov R17,R23
 00D2 00D0              rcall mod16u
 00D4 602F              mov R22,R16
 00D6 712F              mov R23,R17
 00D8                   .dbline 52
 00D8           ;  TEM=TEM*10;
 00D8 0AE0              ldi R16,10
 00DA 10E0              ldi R17,0
 00DC 262F              mov R18,R22
 00DE 372F              mov R19,R23
 00E0 00D0              rcall mpy16s
 00E2 602F              mov R22,R16
 00E4 712F              mov R23,R17
 00E6                   .dbline 53
 00E6           ;  p[2]=TEM/i;
 00E6 2A2D              mov R18,R10
 00E8 3B2D              mov R19,R11
 00EA 00D0              rcall div16u
 00EC E42F              mov R30,R20
 00EE F52F              mov R31,R21
 00F0 0283              std z+2,R16
 00F2                   .dbline 54
 00F2           ;  TEM=TEM%i;
 00F2 2A2D              mov R18,R10
 00F4 3B2D              mov R19,R11
 00F6 062F              mov R16,R22
 00F8 172F              mov R17,R23
 00FA 00D0              rcall mod16u
 00FC 602F              mov R22,R16
 00FE 712F              mov R23,R17
 0100                   .dbline 55
 0100           ;  TEM=TEM*10;
 0100 0AE0              ldi R16,10
 0102 10E0              ldi R17,0
 0104 262F              mov R18,R22
 0106 372F              mov R19,R23
 0108 00D0              rcall mpy16s
 010A 602F              mov R22,R16
 010C 712F              mov R23,R17
 010E                   .dbline 56
 010E           ;  p[3]=TEM/i;
 010E 2A2D              mov R18,R10
 0110 3B2D              mov R19,R11
 0112 00D0              rcall div16u
 0114 E42F              mov R30,R20
 0116 F52F              mov R31,R21
 0118 0383              std z+3,R16
 011A                   .dbline -2
 011A                   .dbline 57
 011A           ; }
 011A           L20:
 011A 00D0              rcall pop_gset3
 011C                   .dbline 0 ; func end
 011C 0895              ret
 011E                   .dbsym r TEM 22 i
 011E                   .dbsym r p 20 pc
 011E                   .dbsym r i 10 i
 011E                   .dbend
 011E                   .dbfunc e Init_IO _Init_IO fV
                        .even
 011E           _Init_IO::
 011E                   .dbline -1
 011E                   .dbline 60
 011E           ; 
 011E           ; void Init_IO(void)             //初始化I/O口
 011E           ; {DDRA=0xff;                    //设置A口为推挽1输出
 011E                   .dbline 60
 011E 8FEF              ldi R24,255
 0120 8ABB              out 0x1a,R24
 0122                   .dbline 61
 0122           ;  PORTA=0xff;
 0122 8BBB              out 0x1b,R24
 0124                   .dbline 62
 0124           ;  DDRC=0xff;                    //设置C口为推挽1输出             
 0124 84BB              out 0x14,R24
 0126                   .dbline 63
 0126           ;  PORTC=0xff;
 0126 85BB              out 0x15,R24
 0128                   .dbline 64
 0128           ;  DDRD=0x00;                    //设置D口为带上拉电阻输入
 0128 2224              clr R2
 012A 21BA              out 0x11,R2
 012C                   .dbline 65
 012C           ;  PORTD=0x00;    
 012C 22BA              out 0x12,R2
 012E                   .dbline -2
 012E                   .dbline 66
 012E           ; }
 012E           L21:
 012E                   .dbline 0 ; func end
 012E 0895              ret
 0130                   .dbend
 0130                   .dbfunc e Init_Timer1 _Init_Timer1 fV
                        .even
 0130           _Init_Timer1::
 0130                   .dbline -1
 0130                   .dbline 69
 0130           ; 
 0130           ; void Init_Timer1(void)         //初始化T/C1的输入捕获中断
 0130           ; {TIMSK=TIMSK|0x20;             //输入捕获使能
 0130                   .dbline 69
 0130 89B7              in R24,0x39
 0132 8062              ori R24,32
 0134 89BF              out 0x39,R24
 0136                   .dbline 70
 0136           ;  TCCR1B=0xC2;                  //输入捕获噪音使能,下降沿捕获,时钟8分频1uS计数一次。
 0136 82EC              ldi R24,194
 0138 8EBD              out 0x2e,R24
 013A                   .dbline 71
 013A           ;  TIFR=0x20;                    //清中断标志
 013A 80E2              ldi R24,32
 013C 88BF              out 0x38,R24
 013E                   .dbline 72
 013E           ;  SREG=SREG&0x7f;               //全局中断关
 013E 8FB7              in R24,0x3f
 0140 8F77              andi R24,127
 0142 8FBF              out 0x3f,R24
 0144                   .dbline -2
 0144                   .dbline 73
 0144           ; } 
 0144           L22:
 0144                   .dbline 0 ; func end
 0144 0895              ret
 0146                   .dbend
 0146                   .dbfunc e main _main fV
 0146           ;              i -> R20
                        .even
 0146           _main::
 0146                   .dbline -1
 0146                   .dbline 76
 0146           ; 
 0146           ; void main(void)
 0146           ; {uchar i;
 0146                   .dbline 77
 0146           ;  Init_IO();                    //初始化I/O口
 0146 EBDF              rcall _Init_IO
 0148                   .dbline 78
 0148           ;  PORTA=0xff;                   //点亮以测试所有的数码管
 0148 8FEF              ldi R24,255
 014A 8BBB              out 0x1b,R24
 014C                   .dbline 79
 014C           ;  PORTC=0xf0;   
 014C 80EF              ldi R24,240
 014E 85BB              out 0x15,R24
 0150                   .dbline 80
 0150           ;  DelayMs(300);
 0150 0CE2              ldi R16,300
 0152 11E0              ldi R17,1
 0154 55DF              rcall _DelayMs
 0156                   .dbline 81
 0156           ;  PORTC=0xff;                   //熄灭所有的数码管
 0156 8FEF              ldi R24,255
 0158 85BB              out 0x15,R24
 015A                   .dbline 82
 015A           ;  Pre_Display();                //预显示,数码管显示测试
 015A 63DF              rcall _Pre_Display
 015C                   .dbline 83
 015C           ;  PORTC=0xff;
 015C 8FEF              ldi R24,255
 015E 85BB              out 0x15,R24
 0160                   .dbline 84
 0160           ;  Init_Timer1();                //T/C1初试化 
 0160 E7DF              rcall _Init_Timer1
 0162 51C0              rjmp L25
 0164           X2:
 0164                   .dbline 86
 0164           ;  while(1)
 0164           ;   {
 0164           L27:
 0164                   .dbline 88
 0164                   .dbline 88
 0164 88B7              in R24,0x38
 0166 8062              ori R24,32
 0168 88BF              out 0x38,R24
 016A                   .dbline 89
 016A 26B4              in R2,0x26
 016C 3324              clr R3
 016E 30921A00          sts _CNT+1,R3
 0172 20921900          sts _CNT,R2
 0176                   .dbline 90
 0176 26B4              in R2,0x26
 0178 37B4              in R3,0x27
 017A 30920100          sts _CNT2+1,R3
 017E 20920000          sts _CNT2,R2
 0182                   .dbline 91
 0182 20900200          lds R2,_CNT1
 0186 30900300          lds R3,_CNT1+1
 018A 40900000          lds R4,_CNT2
 018E 50900100          lds R5,_CNT2+1
 0192 4218              sub R4,R2
 0194 5308              sbc R5,R3
 0196 50921A00          sts _CNT+1,R5
 019A 40921900          sts _CNT,R4
 019E                   .dbline 92
 019E 20900000          lds R2,_CNT2
 01A2 30900100          lds R3,_CNT2+1
 01A6 30920300          sts _CNT1+1,R3
 01AA 20920200          sts _CNT1,R2
 01AE                   .dbline 93
 01AE 80910000          lds R24,_Flag
 01B2 8F5F              subi R24,255    ; addi 1
 01B4 80930000          sts _Flag,R24
 01B8                   .dbline 93
 01B8           L28:
 01B8                   .dbline 87
 01B8           ;   while(TIFR&0x20)             //捕获检测
 01B8 28B6              in R2,0x38
 01BA 25FC              sbrc R2,5
 01BC D3CF              rjmp L27
 01BE                   .dbline 94
 01BE           ;       {TIFR|=0x20;             //清除捕获标志
 01BE           ;          CNT=ICR1L;              //CNT暂存
 01BE           ;        CNT2=(ICR1H<<8)+ICR1L;  //CNT2存放当前捕获值
 01BE           ;        CNT=CNT2-CNT1;          //CNT存放两次时间差
 01BE           ;        CNT1=CNT2;              //CNT1存放上次捕获值
 01BE           ;        Flag++;}                //检测到第一次捕获
 01BE           ;    if(Flag==2)                 //检测到第二此捕获
 01BE 80910000          lds R24,_Flag
 01C2 8230              cpi R24,2
 01C4 01F5              brne L30
 01C6                   .dbline 95
 01C6           ;       {Flag=0;                 //清除捕获检测标志
 01C6                   .dbline 95
 01C6 2224              clr R2
 01C8 20920000          sts _Flag,R2
 01CC                   .dbline 96
 01CC           ;          HZ(CNT,Data);           //数据处理
 01CC 20E0              ldi R18,<_Data
 01CE 30E0              ldi R19,>_Data
 01D0 00911900          lds R16,_CNT
 01D4 10911A00          lds R17,_CNT+1
 01D8 57DF              rcall _HZ
 01DA                   .dbline 97
 01DA           ;          for(i=0;i<100;i++)      //频率显示
 01DA 4427              clr R20
 01DC 04C0              rjmp L35
 01DE           L32:
 01DE                   .dbline 98
 01DE 00E0              ldi R16,<_Data
 01E0 10E0              ldi R17,>_Data
 01E2 34DF              rcall _Display
 01E4           L33:
 01E4                   .dbline 97
 01E4 4395              inc R20
 01E6           L35:
 01E6                   .dbline 97
 01E6 4436              cpi R20,100
 01E8 D0F3              brlo L32
 01EA                   .dbline 99
 01EA 2224              clr R2
 01EC 3324              clr R3
 01EE 30921A00          sts _CNT+1,R3
 01F2 20921900          sts _CNT,R2
 01F6                   .dbline 99
 01F6 30920300          sts _CNT1+1,R3
 01FA 20920200          sts _CNT1,R2
 01FE                   .dbline 99
 01FE 30920100          sts _CNT2+1,R3
 0202 20920000          sts _CNT2,R2
 0206                   .dbline 99
 0206           L30:
 0206                   .dbline 99
 0206           L25:
 0206                   .dbline 85
 0206 D8CF              rjmp L28
 0208           X3:
 0208                   .dbline -2
 0208                   .dbline 100
 0208           ;              Display(Data);
 0208           ;          CNT=0;CNT1=0;CNT2=0;}}  //清除捕获值及捕获差值
 0208           ; }
 0208           L23:
 0208                   .dbline 0 ; func end
 0208 0895              ret
 020A                   .dbsym r i 20 c
 020A                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
 0000           _CNT2::
 0000                   .blkb 2
 0002                   .dbsym e CNT2 _CNT2 i
 0002           _CNT1::
 0002                   .blkb 2
 0004                   .dbsym e CNT1 _CNT1 i

⌨️ 快捷键说明

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