📄 ad.lis
字号:
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 + -