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

📄 cycle.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0080 E80F              add R30,R24
 0082 F91F              adc R31,R25
 0084 0082              std z+0,R0
 0086                   .dbline 47
 0086 2AE0              ldi R18,10
 0088 30E0              ldi R19,0
 008A 0A2D              mov R16,R10
 008C 1B2D              mov R17,R11
 008E 00D0              rcall div16u
 0090 A02E              mov R10,R16
 0092 B12E              mov R11,R17
 0094                   .dbline 48
 0094                 L13:
 0094                   .dbline 44
 0094 6395              inc R22
 0096                 L15:
 0096                   .dbline 44
 0096 6630              cpi R22,6
 0098 F8F2              brlo L12
 009A                   .dbline 49}
                       ;   {temp=count%10;
                       ;    ledbuff[i]=tabel[temp];
                       ;    count=count/10;
                       ;   }
                       ; }
 009A                 L11:
 009A 00D0              rcall pop_gset3
 009C 0895              ret
 009E                   .dbsym r temp 20 c
 009E                   .dbsym r i 22 c
 009E                   .dbsym r count 10 i
 009E                   .dbfunc s mcu_init _mcu_init fI
                         .even
 009E                 _mcu_init::
 009E                   .dbline 54{
                       ; /******************************
                       ;           MCU初始化
                       ; ******************************/ 
                       ; void mcu_init(void)
                       ;  {
 009E                   .dbline 55
                       ;   DDRD=0x3f;
 009E 8FE3              ldi R24,63
 00A0 81BB              out 0x11,R24
 00A2                   .dbline 56
                       ;   DDRB=0xff;
 00A2 8FEF              ldi R24,255
 00A4 87BB              out 0x17,R24
 00A6                   .dbline 57
                       ;   PORTD=0xff;
 00A6 82BB              out 0x12,R24
 00A8                   .dbline 58
                       ;   PORTB=0xff;//端口初始化
 00A8 88BB              out 0x18,R24
 00AA                   .dbline 59
                       ;   TIMSK =0x08;//使能T1捕捉中断
 00AA 88E0              ldi R24,8
 00AC 89BF              out 0x39,R24
 00AE                   .dbline 60
                       ;   TCCR1A=0x00;
 00AE 2224              clr R2
 00B0 2FBC              out 0x2f,R2
 00B2                   .dbline 61
                       ;   TCCR1B=0xC2;//CK/8,捕捉周期的单位为1us
 00B2 82EC              ldi R24,194
 00B4 8EBD              out 0x2e,R24
 00B6                   .dbline 62
                       ;   ICR1=0;            
 00B6 3324              clr R3
 00B8 30924500          sts 68+1,R3
 00BC 20924400          sts 68,R2
 00C0                   .dbline 63
                       ;   TCNT1=0;          
 00C0 30924D00          sts 76+1,R3
 00C4 20924C00          sts 76,R2
 00C8                   .dbline 64}
                       ;  }
 00C8                 L16:
 00C8 0895              ret
 00CA                   .dbfunc s main _main fI
                         .even
 00CA                 _main::
 00CA                   .dbline 69{
                       ; /************************************************
                       ;         主程序:测量ICP引脚上信号的周期
                       ; ************************************************/ 
                       ; void main()
                       ; {
 00CA                   .dbline 70
                       ;  mcu_init();  
 00CA E9DF              rcall _mcu_init
 00CC                   .dbline 71
                       ;  SREG|=0x80;     //使能全局中断
 00CC 7894              bset 7
 00CE                   .dbline 72
                       ;  for(;;)
 00CE                 L18:
 00CE                   .dbline 73
                       ;     { 
 00CE                   .dbline 74
                       ;      if ((newcount&0xfff8)!=(oldcount&0xfff8))
 00CE 90910300          lds R25,_oldcount+1
 00D2 80910200          lds R24,_oldcount
 00D6 887F              andi R24,248
 00D8 F0910100          lds R31,_newcount+1
 00DC E0910000          lds R30,_newcount
 00E0 E87F              andi R30,248
 00E2 E817              cp R30,R24
 00E4 F907              cpc R31,R25
 00E6 41F0              breq L22
 00E8                   .dbline 75
                       ;         {
 00E8                   .dbline 76
                       ;          oldcount=newcount;
 00E8 30900100          lds R3,_newcount+1
 00EC 20900000          lds R2,_newcount
 00F0 30920300          sts _oldcount+1,R3
 00F4 20920200          sts _oldcount,R2
 00F8                   .dbline 77
                       ;         }
 00F8                 L22:
 00F8                   .dbline 78
                       ;      hextobcd(oldcount);    
 00F8 10910300          lds R17,_oldcount+1
 00FC 00910200          lds R16,_oldcount
 0100 A6DF              rcall _hextobcd
 0102                   .dbline 79
                       ;      display();  //显示测量值 
 0102 88DF              rcall _display
 0104                   .dbline 80
                       ;     }
 0104                   .dbline 72
 0104                   .dbline 72
 0104 E4CF              rjmp L18
 0106                 X0:
 0106                 L17:
 0106 0895              ret
 0108                   .dbline 73}
 0108                   .dbfunc s Icp_timer1 _Icp_timer1 fI
                         .even
 0108                 _Icp_timer1::
 0108 2A92              st -y,R2
 010A 3A92              st -y,R3
 010C 8A93              st -y,R24
 010E 2FB6              in R2,0x3f
 0110 2A92              st -y,R2
 0112                   .dbline 86{
                       ; }
                       ; /**************************************
                       ;              捕捉中断处理程序
                       ; **************************************/
                       ; void Icp_timer1(void)       
                       ; {
 0112                   .dbline 87
                       ;  newcount=ICR1;
 0112 24B4              in R2,0x24
 0114 35B4              in R3,0x25
 0116 30920100          sts _newcount+1,R3
 011A 20920000          sts _newcount,R2
 011E                   .dbline 88
                       ;  ICR1=0;
 011E 2224              clr R2
 0120 3324              clr R3
 0122 30924500          sts 68+1,R3
 0126 20924400          sts 68,R2
 012A                   .dbline 89
                       ;  TCNT1=0; 
 012A 30924D00          sts 76+1,R3
 012E 20924C00          sts 76,R2
 0132                   .dbline 90
                       ;  TCCR1B=0xC2;
 0132 82EC              ldi R24,194
 0134 8EBD              out 0x2e,R24
 0136                   .dbline 91}
                       ; }
 0136                 L24:
 0136 2990              ld R2,y+
 0138 2FBE              out 0x3f,R2
 013A 8991              ld R24,y+
 013C 3990              ld R3,y+
 013E 2990              ld R2,y+
 0140 1895              reti
                         .area bss(ram, con, rel)
 0000                   .dbfile D:\ICC-AVR\examples.sl\CYCLE\cycle.c
 0000                 _newcount::
 0000                   .blkb 2
 0002                   .dbsym s newcount _newcount i
 0002                 _oldcount::
 0002                   .blkb 2
 0004                   .dbsym s oldcount _oldcount i

⌨️ 快捷键说明

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