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

📄 ad.lis

📁 M16内部采样并用Max7221-7219显示
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0212 0C2D              mov R16,R12
 0214 F5DE              xcall _SEND
 0216                   .dbline 145
 0216           ;                 number=(number-number%10)/10; 
 0216 2AE0              ldi R18,10
 0218 30E0              ldi R19,0
 021A 8501              movw R16,R10
 021C 0E940000          xcall mod16s
 0220 1801              movw R2,R16
 0222 8501              movw R16,R10
 0224 0219              sub R16,R2
 0226 1309              sbc R17,R3
 0228 2AE0              ldi R18,10
 022A 30E0              ldi R19,0
 022C 0E940000          xcall div16s
 0230 5801              movw R10,R16
 0232                   .dbline 146
 0232           ;                 i--; 
 0232 C601              movw R24,R12
 0234 0197              sbiw R24,1
 0236 6C01              movw R12,R24
 0238                   .dbline 147
 0238           ;                 }while(number>=1); 
 0238           L33:
 0238                   .dbline 147
 0238 C501              movw R24,R10
 023A 8130              cpi R24,1
 023C E0E0              ldi R30,0
 023E 9E07              cpc R25,R30
 0240 14F7              brge L32
 0242           X9:
 0242                   .dbline 148
 0242           ;         } 
 0242           L31:
 0242                   .dbline -2
 0242           L29:
 0242                   .dbline 0 ; func end
 0242 0C940000          xjmp pop_xgset003C
 0246                   .dbsym r i 12 I
 0246                   .dbsym r number 10 I
 0246                   .dbend
 0246                   .dbfile D:\MYDOCU~1\MYMCUW~1\AVR\AD\delay.h
 0246                   .dbfunc e delay_1us _delay_1us fV
                        .even
 0246           _delay_1us::
 0246                   .dbline -1
 0246                   .dbline 10
 0246           ; /*-----------------------------------------------------------------------
 0246           ; 延时函数
 0246           ; 编译器:ICC-AVR v6.31A 日期: 2005-11-24 20:29:57
 0246           ; 目标芯片 : M16
 0246           ; 时钟: 8.0000Mhz
 0246           ; 作者:archeng504
 0246           ; -----------------------------------------------------------------------*/
 0246           ; 
 0246           ; void delay_1us(void)                 //1us延时函数
 0246           ;   {
 0246                   .dbline 11
 0246           ;    asm("nop");
 0246 0000              nop
 0248                   .dbline -2
 0248           L35:
 0248                   .dbline 0 ; func end
 0248 0895              ret
 024A                   .dbend
 024A                   .dbfunc e delay_nus _delay_nus fV
 024A           ;              i -> R10,R11
 024A           ;              n -> R12,R13
                        .even
 024A           _delay_nus::
 024A 0E940000          xcall push_xgset003C
 024E 6801              movw R12,R16
 0250                   .dbline -1
 0250                   .dbline 15
 0250           ;   }
 0250           ; 
 0250           ; void delay_nus(unsigned int n)       //N us延时函数
 0250           ;   {
 0250                   .dbline 16
 0250           ;    unsigned int i=0;
 0250 AA24              clr R10
 0252 BB24              clr R11
 0254                   .dbline 17
 0254           ;    for (i=0;i<n;i++)
 0254 04C0              xjmp L40
 0256           L37:
 0256                   .dbline 18
 0256           ;    delay_1us();
 0256 F7DF              xcall _delay_1us
 0258           L38:
 0258                   .dbline 17
 0258 C501              movw R24,R10
 025A 0196              adiw R24,1
 025C 5C01              movw R10,R24
 025E           L40:
 025E                   .dbline 17
 025E AC14              cp R10,R12
 0260 BD04              cpc R11,R13
 0262 C8F3              brlo L37
 0264           X10:
 0264                   .dbline -2
 0264           L36:
 0264                   .dbline 0 ; func end
 0264 0C940000          xjmp pop_xgset003C
 0268                   .dbsym r i 10 i
 0268                   .dbsym r n 12 i
 0268                   .dbend
 0268                   .dbfunc e delay_1ms _delay_1ms fV
 0268           ;              i -> R16,R17
                        .even
 0268           _delay_1ms::
 0268                   .dbline -1
 0268                   .dbline 22
 0268           ;   }
 0268           ;   
 0268           ; void delay_1ms(void)                 //1ms延时函数
 0268           ;   {
 0268                   .dbline 24
 0268           ;    unsigned int i;
 0268           ;    for (i=0;i<1140;i++);
 0268 0027              clr R16
 026A 1127              clr R17
 026C 02C0              xjmp L45
 026E           L42:
 026E                   .dbline 24
 026E           L43:
 026E                   .dbline 24
 026E 0F5F              subi R16,255  ; offset = 1
 0270 1F4F              sbci R17,255
 0272           L45:
 0272                   .dbline 24
 0272 0437              cpi R16,116
 0274 E4E0              ldi R30,4
 0276 1E07              cpc R17,R30
 0278 D0F3              brlo L42
 027A           X11:
 027A                   .dbline -2
 027A           L41:
 027A                   .dbline 0 ; func end
 027A 0895              ret
 027C                   .dbsym r i 16 i
 027C                   .dbend
 027C                   .dbfunc e delay_nms _delay_nms fV
 027C           ;              i -> R10,R11
 027C           ;              n -> R12,R13
                        .even
 027C           _delay_nms::
 027C 0E940000          xcall push_xgset003C
 0280 6801              movw R12,R16
 0282                   .dbline -1
 0282                   .dbline 28
 0282           ;   }
 0282           ;   
 0282           ; void delay_nms(unsigned int n)       //N ms延时函数
 0282           ;   {
 0282                   .dbline 29
 0282           ;    unsigned int i=0;
 0282 AA24              clr R10
 0284 BB24              clr R11
 0286                   .dbline 30
 0286           ;    for (i=0;i<n;i++)
 0286 04C0              xjmp L50
 0288           L47:
 0288                   .dbline 31
 0288           ;    delay_1ms();
 0288 EFDF              xcall _delay_1ms
 028A           L48:
 028A                   .dbline 30
 028A C501              movw R24,R10
 028C 0196              adiw R24,1
 028E 5C01              movw R10,R24
 0290           L50:
 0290                   .dbline 30
 0290 AC14              cp R10,R12
 0292 BD04              cpc R11,R13
 0294 C8F3              brlo L47
 0296           X12:
 0296                   .dbline -2
 0296           L46:
 0296                   .dbline 0 ; func end
 0296 0C940000          xjmp pop_xgset003C
 029A                   .dbsym r i 10 i
 029A                   .dbsym r n 12 i
 029A                   .dbend
 029A                   .dbfile D:\MYDOCU~1\MYMCUW~1\AVR\AD\ad.c
 029A                   .dbfunc e port_init _port_init fV
                        .even
 029A           _port_init::
 029A                   .dbline -1
 029A                   .dbline 6
 029A           ; #include <iom16v.h>
 029A           ; #include "display.c"
 029A           ; #include "delay.h"
 029A           ; 
 029A           ; void port_init()
 029A           ; {
 029A                   .dbline 7
 029A           ;  PORTA = 0x00;
 029A 2224              clr R2
 029C 2BBA              out 0x1b,R2
 029E                   .dbline 8
 029E           ;  DDRA  = 0x00;
 029E 2ABA              out 0x1a,R2
 02A0                   .dbline 9
 02A0           ;  PORTB = 0x00;
 02A0 28BA              out 0x18,R2
 02A2                   .dbline 10
 02A2           ;  DDRB  = 0xF0;
 02A2 80EF              ldi R24,240
 02A4 87BB              out 0x17,R24
 02A6                   .dbline 11
 02A6           ;  PORTC = 0x00; //m103 output only
 02A6 25BA              out 0x15,R2
 02A8                   .dbline 12
 02A8           ;  DDRC  = 0x00;
 02A8 24BA              out 0x14,R2
 02AA                   .dbline 13
 02AA           ;  PORTD = 0x00;
 02AA 22BA              out 0x12,R2
 02AC                   .dbline 14
 02AC           ;  DDRD  = 0x00;
 02AC 21BA              out 0x11,R2
 02AE                   .dbline -2
 02AE           L51:
 02AE                   .dbline 0 ; func end
 02AE 0895              ret
 02B0                   .dbend
 02B0                   .dbfunc e main _main fV
 02B0           ;          Ddata -> R10,R11
                        .even
 02B0           _main::
 02B0                   .dbline -1
 02B0                   .dbline 18
 02B0           ; }
 02B0           ; 
 02B0           ; void main()
 02B0           ; {
 02B0                   .dbline 20
 02B0           ;   unsigned int Ddata;
 02B0           ;   port_init();
 02B0 F4DF              xcall _port_init
 02B2                   .dbline 21
 02B2           ;   SEG_INIT();
 02B2 2CDF              xcall _SEG_INIT
 02B4                   .dbline 22
 02B4           ;   ADMUX=0;
 02B4 2224              clr R2
 02B6 27B8              out 0x7,R2
 02B8 18C0              xjmp L54
 02BA           L53:
 02BA                   .dbline 24
 02BA           ;   while(1)
 02BA           ;   {
 02BA                   .dbline 25
 02BA           ;   ADCSRA=0XC0;
 02BA 80EC              ldi R24,192
 02BC 86B9              out 0x6,R24
 02BE                   .dbline 26
 02BE           ;   delay_nms(100);
 02BE 04E6              ldi R16,100
 02C0 10E0              ldi R17,0
 02C2 DCDF              xcall _delay_nms
 02C4           L56:
 02C4                   .dbline 27
 02C4           ;   while(!(ADCSR&(1<<(ADIF))));
 02C4           L57:
 02C4                   .dbline 27
 02C4 349B              sbis 0x6,4
 02C6 FECF              rjmp L56
 02C8           X13:
 02C8                   .dbline 28
 02C8           ;   Ddata=ADCL;
 02C8 A4B0              in R10,0x4
 02CA BB24              clr R11
 02CC                   .dbline 29
 02CC           ;   Ddata+=ADCH*256;
 02CC 25B1              in R18,0x5
 02CE 3327              clr R19
 02D0 00E0              ldi R16,256
 02D2 11E0              ldi R17,1
 02D4 0E940000          xcall empy16s
 02D8 A00E              add R10,R16
 02DA B11E              adc R11,R17
 02DC                   .dbline 31
 02DC           ; //  Ddata=(float)(Ddata)/1023*5000;
 02DC           ;   SEG_R(Ddata);
 02DC 8501              movw R16,R10
 02DE 6FDF              xcall _SEG_R
 02E0                   .dbline 32
 02E0           ;   SEG_L(Ddata);
 02E0 8501              movw R16,R10
 02E2 29DF              xcall _SEG_L
 02E4                   .dbline 33
 02E4           ;   delay_nms(1000);
 02E4 08EE              ldi R16,1000
 02E6 13E0              ldi R17,3
 02E8 C9DF              xcall _delay_nms
 02EA                   .dbline 34
 02EA           ;   }
 02EA           L54:
 02EA                   .dbline 23
 02EA E7CF              xjmp L53
 02EC           X14:
 02EC                   .dbline -2
 02EC           L52:
 02EC                   .dbline 0 ; func end
 02EC 0895              ret
 02EE                   .dbsym r Ddata 10 i
 02EE                   .dbend
 02EE           ; }

⌨️ 快捷键说明

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