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

📄 led+ad.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00CA E0E0              ldi R30,<_tabel+13
 00CC F0E0              ldi R31,>_tabel+13
 00CE E491              lpm R30,Z
 00D0 E0930600          sts _ledbuff+4,R30
 00D4                   .dbline 56
 00D4           ;        ledbuff[3]=0x40;
 00D4 80E4              ldi R24,64
 00D6 80930500          sts _ledbuff+3,R24
 00DA                   .dbline 57
 00DA           ;        ledbuff[2]|=0x80;              
 00DA 80910400          lds R24,_ledbuff+2
 00DE 8068              ori R24,128
 00E0 80930400          sts _ledbuff+2,R24
 00E4                   .dbline -2
 00E4                   .dbline 58
 00E4           ;       }
 00E4           L7:
 00E4 0E940000          xcall pop_gset4x
 00E8                   .dbline 0 ; func end
 00E8 0895              ret
 00EA                   .dbsym l char_p 1 pc
 00EA                   .dbsym r i 10 c
 00EA                   .dbsym r temp 12 i
 00EA                   .dbsym r adc 10 i
 00EA                   .dbend
                        .area vector(rom, abs)
                        .org 56
 0038 0C947500          jmp _adc_isr
                        .area text(rom, con, rel)
 00EA                   .dbfile F:\李鹏飞\sl-avrad-m16\LED+AD\LED+AD.C
 00EA                   .dbfunc e adc_isr _adc_isr fV
 00EA           ;           temp -> R16,R17
                        .even
 00EA           _adc_isr::
 00EA 2A92              st -y,R2
 00EC 3A92              st -y,R3
 00EE 0A93              st -y,R16
 00F0 1A93              st -y,R17
 00F2 EA93              st -y,R30
 00F4 2FB6              in R2,0x3f
 00F6 2A92              st -y,R2
 00F8                   .dbline -1
 00F8                   .dbline 62
 00F8           ; /*      AD转换程序     */
 00F8           ; #pragma interrupt_handler adc_isr:15
 00F8           ; void adc_isr(void)
 00F8           ;    {
 00F8                   .dbline 63
 00F8           ;     unsigned int temp=0;
 00F8 0027              clr R16
 00FA 1127              clr R17
 00FC 02C0              xjmp L20
 00FE           L19:
 00FE                   .dbline 65
 00FE 0F5F              subi R16,255  ; offset = 1
 0100 1F4F              sbci R17,255
 0102           L20:
 0102                   .dbline 64
 0102           ;       while(temp<6)
 0102 0630              cpi R16,6
 0104 E0E0              ldi R30,0
 0106 1E07              cpc R17,R30
 0108 D0F3              brlo L19
 010A                   .dbline 66
 010A           ;           temp++;
 010A           ;       ad_con=ADC;    
 010A 24B0              in R2,0x4
 010C 35B0              in R3,0x5
 010E 30920100          sts _ad_con+1,R3
 0112 20920000          sts _ad_con,R2
 0116                   .dbline 67
 0116           ;       ADCSR|=(1<<ADSC);//启动转换                                              
 0116 369A              sbi 0x6,6
 0118                   .dbline -2
 0118                   .dbline 68
 0118           ;    } 
 0118           L18:
 0118 2990              ld R2,y+
 011A 2FBE              out 0x3f,R2
 011C E991              ld R30,y+
 011E 1991              ld R17,y+
 0120 0991              ld R16,y+
 0122 3990              ld R3,y+
 0124 2990              ld R2,y+
 0126                   .dbline 0 ; func end
 0126 1895              reti
 0128                   .dbsym r temp 16 i
 0128                   .dbend
 0128                   .dbfunc e main _main fV
 0128           ;              i -> R10
                        .even
 0128           _main::
 0128                   .dbline -1
 0128                   .dbline 71
 0128           ; //将AD转换结果转换成电压数值,然后在LCD上显示   
 0128           ; void main(void)
 0128           ; {
 0128                   .dbline 73
 0128           ;  unsigned char i;
 0128           ;  port_init();
 0128 6BDF              xcall _port_init
 012A                   .dbline 74
 012A           ;  MCUCSR=0;
 012A 2224              clr R2
 012C 24BE              out 0x34,R2
 012E                   .dbline 75
 012E           ;  ADMUX=0x00;//0通道
 012E 27B8              out 0x7,R2
 0130                   .dbline 76
 0130           ;  ADCSR=(1<<ADEN)|(1<<ADSC)|(1<<ADIF)|(1<<ADIE)|0x06;
 0130 8EED              ldi R24,222
 0132 86B9              out 0x6,R24
 0134                   .dbline 77
 0134           ;  SEI();
 0134 7894              sei
 0136                   .dbline 78
 0136           ;  for(i=0;i<6;i++)
 0136 AA24              clr R10
 0138 10C0              xjmp L26
 013A           L23:
 013A                   .dbline 79
 013A 80E0              ldi R24,<_ledbuff
 013C 90E0              ldi R25,>_ledbuff
 013E EA2D              mov R30,R10
 0140 FF27              clr R31
 0142 E80F              add R30,R24
 0144 F91F              adc R31,R25
 0146 A0E0              ldi R26,<_tabel
 0148 B0E0              ldi R27,>_tabel
 014A FA93              st -y,R31
 014C EA93              st -y,R30
 014E FD01              movw R30,R26
 0150 A491              lpm R26,Z
 0152 E991              ld R30,y+
 0154 F991              ld R31,y+
 0156 A083              std z+0,R26
 0158           L24:
 0158                   .dbline 78
 0158 A394              inc R10
 015A           L26:
 015A                   .dbline 78
 015A 8A2D              mov R24,R10
 015C 8630              cpi R24,6
 015E 68F3              brlo L23
 0160                   .dbline 80
 0160           ;     ledbuff[i]=tabel[0];
 0160           ;  i=0;
 0160 AA24              clr R10
 0162 1FC0              xjmp L28
 0164           L27:
 0164                   .dbline 82
 0164           ;  while(1)
 0164           ;     {
 0164                   .dbline 83
 0164           ;      if((i==127)|(i==0))
 0164 8A2D              mov R24,R10
 0166 8F37              cpi R24,127
 0168 21F4              brne L32
 016A 81E0              ldi R24,1
 016C 90E0              ldi R25,0
 016E 7C01              movw R14,R24
 0170 02C0              xjmp L33
 0172           L32:
 0172 EE24              clr R14
 0174 FF24              clr R15
 0176           L33:
 0176 AA20              tst R10
 0178 21F4              brne L34
 017A 81E0              ldi R24,1
 017C 90E0              ldi R25,0
 017E 6C01              movw R12,R24
 0180 02C0              xjmp L35
 0182           L34:
 0182 CC24              clr R12
 0184 DD24              clr R13
 0186           L35:
 0186 1701              movw R2,R14
 0188 2C28              or R2,R12
 018A 3D28              or R3,R13
 018C 2220              tst R2
 018E 11F4              brne X0
 0190 3320              tst R3
 0192 29F0              breq L30
 0194           X0:
 0194                   .dbline 84
 0194           ;            adctovol(ad_con);//降低AD结果刷新速率
 0194 00910000          lds R16,_ad_con
 0198 10910100          lds R17,_ad_con+1
 019C 5BDF              xcall _adctovol
 019E           L30:
 019E                   .dbline 85
 019E 37DF              xcall _display
 01A0                   .dbline 86
 01A0 A394              inc R10
 01A2                   .dbline 87
 01A2           L28:
 01A2                   .dbline 81
 01A2 E0CF              xjmp L27
 01A4           X1:
 01A4                   .dbline -2
 01A4                   .dbline 88
 01A4           ;        display();                       //使末位闪烁不太明显
 01A4           ;        i++; 
 01A4           ;     }
 01A4           ;  }   
 01A4           L22:
 01A4                   .dbline 0 ; func end
 01A4 0895              ret
 01A6                   .dbsym r i 10 c
 01A6                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile F:\李鹏飞\sl-avrad-m16\LED+AD\LED+AD.C
 0000           _ad_con::
 0000                   .blkb 2
 0002                   .dbsym e ad_con _ad_con i
 0002           _ledbuff::
 0002                   .blkb 6
 0008                   .dbsym e ledbuff _ledbuff A[6:6]c

⌨️ 快捷键说明

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