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

📄 pulse_time.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0098 18F3              brlo L12
 009A                   .dbline -2
 009A                   .dbline 56
 009A           ;       {
 009A           ;       temp=count%10;
 009A           ;       ledbuff[i]=table[temp];
 009A           ;       count=count/10;
 009A           ;       }
 009A           ;   }
 009A           L11:
 009A 0E940000          xcall pop_gset3
 009E                   .dbline 0 ; func end
 009E 0895              ret
 00A0                   .dbsym r temp 20 c
 00A0                   .dbsym r i 22 c
 00A0                   .dbsym r count 10 i
 00A0                   .dbend
 00A0                   .dbfunc e mcu_init _mcu_init fV
                        .even
 00A0           _mcu_init::
 00A0                   .dbline -1
 00A0                   .dbline 59
 00A0           ; //MCU初始化
 00A0           ; void mcu_init()
 00A0           ;   {
 00A0                   .dbline 60
 00A0           ;   DDRA=0XFF;
 00A0 8FEF              ldi R24,255
 00A2 8ABB              out 0x1a,R24
 00A4                   .dbline 61
 00A4           ;   PORTA=0XFF;
 00A4 8BBB              out 0x1b,R24
 00A6                   .dbline 62
 00A6           ;   DDRD=0X3F;
 00A6 8FE3              ldi R24,63
 00A8 81BB              out 0x11,R24
 00AA                   .dbline 63
 00AA           ;   DDRB=0XFF;
 00AA 8FEF              ldi R24,255
 00AC 87BB              out 0x17,R24
 00AE                   .dbline 64
 00AE           ;   PORTD=0XFF;
 00AE 82BB              out 0x12,R24
 00B0                   .dbline 65
 00B0           ;   PORTB=0XFF;//端口初始化
 00B0 88BB              out 0x18,R24
 00B2                   .dbline 66
 00B2           ;   TIMSK=0X21;//使能ICP捕捉中断;使能T/C0溢出中断
 00B2 81E2              ldi R24,33
 00B4 89BF              out 0x39,R24
 00B6                   .dbline 67
 00B6           ;   TCCR0=0X02;
 00B6 82E0              ldi R24,2
 00B8 83BF              out 0x33,R24
 00BA                   .dbline 68
 00BA           ;   TCCR1A=0X00;
 00BA 2224              clr R2
 00BC 2FBC              out 0x2f,R2
 00BE                   .dbline 69
 00BE           ;   TCCR1B=0XC2;//8分频;捕捉最小单位1us
 00BE 82EC              ldi R24,194
 00C0 8EBD              out 0x2e,R24
 00C2                   .dbline 70
 00C2           ;   TCNT0=0;
 00C2 22BE              out 0x32,R2
 00C4                   .dbline 71
 00C4           ;   ICR1=0;
 00C4 3324              clr R3
 00C6 37BC              out 0x27,R3
 00C8 26BC              out 0x26,R2
 00CA                   .dbline 72
 00CA           ;   TCNT1=0;
 00CA 3DBC              out 0x2d,R3
 00CC 2CBC              out 0x2c,R2
 00CE                   .dbline -2
 00CE                   .dbline 73
 00CE           ;   }
 00CE           L16:
 00CE                   .dbline 0 ; func end
 00CE 0895              ret
 00D0                   .dbend
 00D0                   .dbfunc e main _main fV
                        .even
 00D0           _main::
 00D0                   .dbline -1
 00D0                   .dbline 76
 00D0           ; //主程序:测量ICP引脚上信号的周期
 00D0           ; void main()
 00D0           ;   {
 00D0                   .dbline 77
 00D0           ;   mcu_init();
 00D0 E7DF              xcall _mcu_init
 00D2                   .dbline 78
 00D2           ;   SREG|=0X80;
 00D2 7894              bset 7
 00D4                   .dbline 79
 00D4           ;   for(;;)
 00D4           L18:
 00D4                   .dbline 80
 00D4           ;       {
 00D4                   .dbline 81
 00D4           ;          if((newcount&0xfff8)!=(oldcount&0xfff8))
 00D4 80910200          lds R24,_oldcount
 00D8 90910300          lds R25,_oldcount+1
 00DC 887F              andi R24,248
 00DE E0910000          lds R30,_newcount
 00E2 F0910100          lds R31,_newcount+1
 00E6 E87F              andi R30,248
 00E8 E817              cp R30,R24
 00EA F907              cpc R31,R25
 00EC 41F0              breq L22
 00EE                   .dbline 82
 00EE           ;                 {
 00EE                   .dbline 83
 00EE           ;                 oldcount=newcount;
 00EE 20900000          lds R2,_newcount
 00F2 30900100          lds R3,_newcount+1
 00F6 30920300          sts _oldcount+1,R3
 00FA 20920200          sts _oldcount,R2
 00FE                   .dbline 84
 00FE           ;                 }
 00FE           L22:
 00FE                   .dbline 85
 00FE 00910200          lds R16,_oldcount
 0102 10910300          lds R17,_oldcount+1
 0106 A7DF              xcall _hextobcd
 0108                   .dbline 86
 0108 85DF              xcall _display
 010A                   .dbline 87
 010A                   .dbline 79
 010A                   .dbline 79
 010A E4CF              xjmp L18
 010C           X0:
 010C                   .dbline -2
 010C           L17:
 010C                   .dbline 0 ; func end
 010C 0895              ret
 010E                   .dbend
 010E                   .dbfunc e Icp_timer1 _Icp_timer1 fV
                        .even
 010E           _Icp_timer1::
 010E 2A92              st -y,R2
 0110 3A92              st -y,R3
 0112 8A93              st -y,R24
 0114 2FB6              in R2,0x3f
 0116 2A92              st -y,R2
 0118                   .dbline -1
 0118                   .dbline 91
 0118           ;          hextobcd(oldcount);
 0118           ;          display();
 0118           ;       }
 0118           ;   }
 0118           ; //捕捉中断处理程序
 0118           ; void Icp_timer1()
 0118           ;   {
 0118                   .dbline 92
 0118           ;   newcount=ICR1;
 0118 26B4              in R2,0x26
 011A 37B4              in R3,0x27
 011C 30920100          sts _newcount+1,R3
 0120 20920000          sts _newcount,R2
 0124                   .dbline 93
 0124           ;   ICR1=0;
 0124 2224              clr R2
 0126 3324              clr R3
 0128 37BC              out 0x27,R3
 012A 26BC              out 0x26,R2
 012C                   .dbline 94
 012C           ;   TCNT1=0;
 012C 3DBC              out 0x2d,R3
 012E 2CBC              out 0x2c,R2
 0130                   .dbline 95
 0130           ;   TCCR1B=0XC2;
 0130 82EC              ldi R24,194
 0132 8EBD              out 0x2e,R24
 0134                   .dbline -2
 0134                   .dbline 96
 0134           ;   }
 0134           L24:
 0134 2990              ld R2,y+
 0136 2FBE              out 0x3f,R2
 0138 8991              ld R24,y+
 013A 3990              ld R3,y+
 013C 2990              ld R2,y+
 013E                   .dbline 0 ; func end
 013E 1895              reti
 0140                   .dbend
 0140                   .dbfunc e Timer0 _Timer0 fV
                        .even
 0140           _Timer0::
 0140 8A93              st -y,R24
 0142 9A93              st -y,R25
 0144 8FB7              in R24,0x3f
 0146 8A93              st -y,R24
 0148                   .dbline -1
 0148                   .dbline 99
 0148           ; //方波产生中断程序
 0148           ; void Timer0()
 0148           ;   {
 0148                   .dbline 100
 0148           ;   i++;
 0148 80910600          lds R24,_i
 014C 8F5F              subi R24,255    ; addi 1
 014E 80930600          sts _i,R24
 0152                   .dbline 101
 0152           ;   PORTA=i;//在PA口产生频率不同的方波
 0152 8BBB              out 0x1b,R24
 0154                   .dbline -2
 0154                   .dbline 103
 0154           ;  
 0154           ;   }
 0154           L25:
 0154 8991              ld R24,y+
 0156 8FBF              out 0x3f,R24
 0158 9991              ld R25,y+
 015A 8991              ld R24,y+
 015C                   .dbline 0 ; func end
 015C 1895              reti
 015E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile F:\李鹏飞\sl-avrad-m16\测脉宽\pulse_time.c
 0000           _newcount::
 0000                   .blkb 2
 0002                   .dbsym e newcount _newcount i
 0002           _oldcount::
 0002                   .blkb 2
 0004                   .dbsym e oldcount _oldcount i

⌨️ 快捷键说明

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