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

📄 compare.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00FA           L31:
 00FA                   .dbline 41
 00FA           ;        Key2_Flag=0;}
 00FA 2224              clr R2
 00FC 20920100          sts _Key2_Flag,R2
 0100                   .dbline 41
 0100           L29:
 0100                   .dbline 42
 0100           ;  if(Key3_Flag==1)                 //处理频率各位,最高9
 0100 80910000          lds R24,_Key3_Flag
 0104 8130              cpi R24,1
 0106 A1F4              brne L33
 0108                   .dbline 43
 0108           ;     {p[1]++;
 0108                   .dbline 43
 0108 842F              mov R24,R20
 010A 952F              mov R25,R21
 010C 0196              adiw R24,1
 010E E82F              mov R30,R24
 0110 F92F              mov R31,R25
 0112 8081              ldd R24,z+0
 0114 8F5F              subi R24,255    ; addi 1
 0116 8083              std z+0,R24
 0118                   .dbline 44
 0118           ;        if(p[1]==10) p[1]=0;
 0118 E42F              mov R30,R20
 011A F52F              mov R31,R21
 011C 8181              ldd R24,z+1
 011E 8A30              cpi R24,10
 0120 21F4              brne L35
 0122                   .dbline 44
 0122 2224              clr R2
 0124 E42F              mov R30,R20
 0126 F52F              mov R31,R21
 0128 2182              std z+1,R2
 012A           L35:
 012A                   .dbline 45
 012A 2224              clr R2
 012C 20920000          sts _Key3_Flag,R2
 0130                   .dbline 45
 0130           L33:
 0130                   .dbline -2
 0130                   .dbline 46
 0130           ;        Key3_Flag=0;}
 0130           ; }
 0130           L15:
 0130 00D0              rcall pop_gset1
 0132                   .dbline 0 ; func end
 0132 0895              ret
 0134                   .dbsym l k 1 c
 0134                   .dbsym l j 1 c
 0134                   .dbsym l i 1 c
 0134                   .dbsym r p 20 pc
 0134                   .dbend
 0134                   .dbfunc e Set_Process _Set_Process fV
 0134           ;              i -> R20,R21
 0134           ;              j -> R20,R21
                        .even
 0134           _Set_Process::
 0134 00D0              rcall push_gset1
 0136                   .dbline -1
 0136                   .dbline 49
 0136           ; 
 0136           ; void Set_Process(void)
 0136           ; {uint i,j;
 0136                   .dbline 50
 0136           ;  i=Data[0]*1000+Data[1]*100+Data[2]*10+Data[3];
 0136 20910B00          lds R18,_Data+1
 013A 3327              clr R19
 013C 04E6              ldi R16,100
 013E 10E0              ldi R17,0
 0140 00D0              rcall mpy16s
 0142 202E              mov R2,R16
 0144 312E              mov R3,R17
 0146 20910A00          lds R18,_Data
 014A 3327              clr R19
 014C 08EE              ldi R16,1000
 014E 13E0              ldi R17,3
 0150 00D0              rcall mpy16s
 0152 402F              mov R20,R16
 0154 512F              mov R21,R17
 0156 420D              add R20,R2
 0158 531D              adc R21,R3
 015A 20910C00          lds R18,_Data+2
 015E 3327              clr R19
 0160 0AE0              ldi R16,10
 0162 10E0              ldi R17,0
 0164 00D0              rcall mpy16s
 0166 400F              add R20,R16
 0168 511F              adc R21,R17
 016A 20900D00          lds R2,_Data+3
 016E 3324              clr R3
 0170 420D              add R20,R2
 0172 531D              adc R21,R3
 0174                   .dbline 51
 0174           ;  j=500/i;
 0174 04EF              ldi R16,500
 0176 11E0              ldi R17,1
 0178 242F              mov R18,R20
 017A 352F              mov R19,R21
 017C 00D0              rcall div16u
 017E 402F              mov R20,R16
 0180 512F              mov R21,R17
 0182                   .dbline 52
 0182           ;  OCR1AH=j>>8;
 0182 242E              mov R2,R20
 0184 352E              mov R3,R21
 0186 232C              mov R2,R3
 0188 3324              clr R3
 018A 2BBC              out 0x2b,R2
 018C                   .dbline 53
 018C           ;  OCR1AL=j&0x00ff;
 018C 842F              mov R24,R20
 018E 952F              mov R25,R21
 0190 9070              andi R25,0
 0192 8ABD              out 0x2a,R24
 0194                   .dbline -2
 0194                   .dbline 54
 0194           ; }
 0194           L37:
 0194 00D0              rcall pop_gset1
 0196                   .dbline 0 ; func end
 0196 0895              ret
 0198                   .dbsym r i 20 i
 0198                   .dbsym r j 20 i
 0198                   .dbend
 0198                   .dbfunc e Init_IO _Init_IO fV
                        .even
 0198           _Init_IO::
 0198                   .dbline -1
 0198                   .dbline 57
 0198           ; 
 0198           ; void Init_IO(void)             //初始化I/O口
 0198           ; {DDRA=0xff;                    //设置A口为推挽1输出
 0198                   .dbline 57
 0198 8FEF              ldi R24,255
 019A 8ABB              out 0x1a,R24
 019C                   .dbline 58
 019C           ;  PORTA=0xff;
 019C 8BBB              out 0x1b,R24
 019E                   .dbline 59
 019E           ;  DDRC=0xff;                    //设置C口为推挽1输出             
 019E 84BB              out 0x14,R24
 01A0                   .dbline 60
 01A0           ;  PORTC=0xff;
 01A0 85BB              out 0x15,R24
 01A2                   .dbline 61
 01A2           ;  DDRB=0x00;                    //设置B口为三态输入
 01A2 2224              clr R2
 01A4 27BA              out 0x17,R2
 01A6                   .dbline 62
 01A6           ;  PORTB=0x00;
 01A6 28BA              out 0x18,R2
 01A8                   .dbline 63
 01A8           ;  DDRD=0xff;                    //设置D口为推挽1输出
 01A8 81BB              out 0x11,R24
 01AA                   .dbline 64
 01AA           ;  PORTD=0xff;    
 01AA 82BB              out 0x12,R24
 01AC                   .dbline -2
 01AC                   .dbline 65
 01AC           ; }
 01AC           L41:
 01AC                   .dbline 0 ; func end
 01AC 0895              ret
 01AE                   .dbend
 01AE                   .dbfunc e Init_Timer1 _Init_Timer1 fV
                        .even
 01AE           _Init_Timer1::
 01AE                   .dbline -1
 01AE                   .dbline 68
 01AE           ; 
 01AE           ; void Init_Timer1(void)         //初始化T/C1的输入捕获中断
 01AE           ; {TIMSK=TIMSK|0x10;             //输出比较使能
 01AE                   .dbline 68
 01AE 89B7              in R24,0x39
 01B0 8061              ori R24,16
 01B2 89BF              out 0x39,R24
 01B4                   .dbline 69
 01B4           ;  TCCR1B=0x0a;                  //时钟1                                                               频,输出比较匹配清除定时器值
 01B4 8AE0              ldi R24,10
 01B6 8EBD              out 0x2e,R24
 01B8                   .dbline 70
 01B8           ;  TCNT1H=0x00;                  //清除定时器值
 01B8 2224              clr R2
 01BA 2DBC              out 0x2d,R2
 01BC                   .dbline 71
 01BC           ;  TCNT1L=0x00;
 01BC 2CBC              out 0x2c,R2
 01BE                   .dbline 72
 01BE           ;  Set_Process();                //OCR1A,OCR1B置初值
 01BE BADF              rcall _Set_Process
 01C0                   .dbline 73
 01C0           ;  SREG=SREG|0x80;               //全局中断开
 01C0 7894              bset 7
 01C2                   .dbline -2
 01C2                   .dbline 74
 01C2           ; } 
 01C2           L42:
 01C2                   .dbline 0 ; func end
 01C2 0895              ret
 01C4                   .dbend
 01C4                   .dbfunc e main _main fV
                        .even
 01C4           _main::
 01C4                   .dbline -1
 01C4                   .dbline 77
 01C4           ; 
 01C4           ; void main(void)
 01C4           ; {Init_IO();                    //初始化I/O口
 01C4                   .dbline 77
 01C4 E9DF              rcall _Init_IO
 01C6                   .dbline 78
 01C6           ;  PORTA=0xff;                   //点亮以测试所有的数码管
 01C6 8FEF              ldi R24,255
 01C8 8BBB              out 0x1b,R24
 01CA                   .dbline 79
 01CA           ;  PORTC=0x00;   
 01CA 2224              clr R2
 01CC 25BA              out 0x15,R2
 01CE                   .dbline 80
 01CE           ;  Init_Timer1();                
 01CE EFDF              rcall _Init_Timer1
 01D0                   .dbline 81
 01D0           ;  DelayMs(300);                //延时
 01D0 0CE2              ldi R16,300
 01D2 11E0              ldi R17,1
 01D4 15DF              rcall _DelayMs
 01D6                   .dbline 82
 01D6           ;  PORTC=0xff;                   //熄灭所有的数码管
 01D6 8FEF              ldi R24,255
 01D8 85BB              out 0x15,R24
 01DA 07C0              rjmp L45
 01DC           L44:
 01DC                   .dbline 84
 01DC                   .dbline 84
 01DC 00E0              ldi R16,<_Data
 01DE 10E0              ldi R17,>_Data
 01E0 41DF              rcall _Key_Process
 01E2                   .dbline 85
 01E2 A8DF              rcall _Set_Process
 01E4                   .dbline 86
 01E4 00E0              ldi R16,<_Data
 01E6 10E0              ldi R17,>_Data
 01E8 1CDF              rcall _Display
 01EA                   .dbline 87
 01EA           L45:
 01EA                   .dbline 83
 01EA F8CF              rjmp L44
 01EC           X2:
 01EC                   .dbline -2
 01EC                   .dbline 88
 01EC           ;  while(1)
 01EC           ;  {Key_Process(Data);
 01EC           ;   Set_Process();
 01EC           ;   Display(Data);               //动态扫描显示
 01EC           ;  }
 01EC           ; }
 01EC           L43:
 01EC                   .dbline 0 ; func end
 01EC 0895              ret
 01EE                   .dbend
                        .area vector(rom, abs)
                        .org 12
 000C F7C0              rjmp _Compare
                        .area text(rom, con, rel)
 01EE                   .dbfile I:\AVRpractice\BOOK\定时器1\输出比较\Compare.c
 01EE                   .dbfunc e Compare _Compare fV
                        .even
 01EE           _Compare::
 01EE 2A92              st -y,R2
 01F0 2FB6              in R2,0x3f
 01F2 2A92              st -y,R2
 01F4                   .dbline -1
 01F4                   .dbline 92
 01F4           ; 
 01F4           ; #pragma interrupt_handler Compare:7
 01F4           ; void Compare(void)
 01F4           ; {PORTD=~PORTD;}
 01F4                   .dbline 92
 01F4 22B2              in R2,0x12
 01F6 2094              com R2
 01F8 22BA              out 0x12,R2
 01FA                   .dbline -2
 01FA                   .dbline 92
 01FA           L47:
 01FA 2990              ld R2,y+
 01FC 2FBE              out 0x3f,R2
 01FE 2990              ld R2,y+
 0200                   .dbline 0 ; func end
 0200 1895              reti
 0202                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile I:\AVRpractice\BOOK\定时器1\输出比较\Compare.c
 0000           _Key3_Flag::
 0000                   .blkb 1
 0001                   .dbsym e Key3_Flag _Key3_Flag c
 0001           _Key2_Flag::
 0001                   .blkb 1
 0002                   .dbsym e Key2_Flag _Key2_Flag c
 0002           _Key1_Flag::
 0002                   .blkb 1
 0003                   .dbsym e Key1_Flag _Key1_Flag c

⌨️ 快捷键说明

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