📄 system_init.lis
字号:
0094 97BD out 0x27,R25
0096 86BD out 0x26,R24
0098 .dbline 64
0098 ; TCCR1A = 0x82;
0098 82E8 ldi R24,130
009A 8FBD out 0x2f,R24
009C .dbline 65
009C ; TCCR1B = 0x19;//启动定时器 无分频
009C 89E1 ldi R24,25
009E 8EBD out 0x2e,R24
00A0 .dbline -2
00A0 L5:
00A0 .dbline 0 ; func end
00A0 0895 ret
00A2 .dbsym l top 0 i
00A2 .dbsym r b 18 i
00A2 .dbsym r a 16 i
00A2 .dbend
00A2 .dbfunc e AD_init _AD_init fV
.even
00A2 _AD_init::
00A2 .dbline -1
00A2 .dbline 88
00A2 ; }
00A2 ; /*
00A2 ; //定时器T0初始化
00A2 ; void timer0_init(void)
00A2 ; {
00A2 ; TCCR0 = 0x00;//停止定时器
00A2 ; TCNT0 = 0xFF;//初始值
00A2 ; }
00A2 ;
00A2 ; void timer0_start(void)
00A2 ; {
00A2 ; TCNT0 = 0xFF;//初始值
00A2 ; TCCR0 = 0x05;//启动定时器
00A2 ; }
00A2 ;
00A2 ; void timer0_stop(void)
00A2 ; {
00A2 ; TCCR0 = 0x00;//停止定时器
00A2 ; LCD_write_number(9,0,0,TCNT0,"us",0);//
00A2 ; }
00A2 ; */
00A2 ; void AD_init(void)
00A2 ; {
00A2 .dbline 89
00A2 ; ADCSRA=0X00;
00A2 2224 clr R2
00A4 26B8 out 0x6,R2
00A6 .dbline 90
00A6 ; ACSR =(1<<ACD);//关闭模拟比较器
00A6 80E8 ldi R24,128
00A8 88B9 out 0x8,R24
00AA .dbline 91
00AA ; ADMUX =(1<<REFS0)|(1&0x0F); //
00AA 81E4 ldi R24,65
00AC 87B9 out 0x7,R24
00AE .dbline 92
00AE ; ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1);//ADC转换 64分频
00AE 86EC ldi R24,198
00B0 86B9 out 0x6,R24
00B2 .dbline -2
00B2 L6:
00B2 .dbline 0 ; func end
00B2 0895 ret
00B4 .dbend
00B4 .dbfunc e read_adc _read_adc fi
00B4 ; adc_rel -> R20,R21
00B4 ; m -> R22
00B4 ; r -> R20
.even
00B4 _read_adc::
00B4 00D0 rcall push_gset2
00B6 622F mov R22,R18
00B8 402F mov R20,R16
00BA .dbline -1
00BA .dbline 96
00BA ; }
00BA ;
00BA ; unsigned int read_adc (uchar r,uchar m)
00BA ; {
00BA .dbline 98
00BA ; unsigned int adc_rel;
00BA ; ADMUX=0;
00BA 2224 clr R2
00BC 27B8 out 0x7,R2
00BE .dbline 99
00BE ; ADMUX |=(m&0x0F);//选择通道
00BE 862F mov R24,R22
00C0 8F70 andi R24,15
00C2 27B0 in R2,0x7
00C4 282A or R2,R24
00C6 27B8 out 0x7,R2
00C8 .dbline 100
00C8 ; ADMUX |=(r<<6);//选择基准
00C8 242E mov R2,R20
00CA 220C lsl R2
00CC 220C lsl R2
00CE 220C lsl R2
00D0 220C lsl R2
00D2 220C lsl R2
00D4 220C lsl R2
00D6 37B0 in R3,0x7
00D8 3228 or R3,R2
00DA 37B8 out 0x7,R3
00DC .dbline 101
00DC ; ADCSRA|=(1<<ADSC);//启动AD转换
00DC 369A sbi 0x6,6
00DE .dbline 102
00DE ; delay_nus(125);
00DE 0DE7 ldi R16,125
00E0 10E0 ldi R17,0
00E2 15D0 rcall _delay_nus
00E4 .dbline 103
00E4 ; adc_rel=ADC&0x3FF;
00E4 44B1 in R20,0x4
00E6 55B1 in R21,0x5
00E8 5370 andi R21,3
00EA .dbline 104
00EA ; return(adc_rel);
00EA 8A01 movw R16,R20
00EC .dbline -2
00EC L7:
00EC 00D0 rcall pop_gset2
00EE .dbline 0 ; func end
00EE 0895 ret
00F0 .dbsym r adc_rel 20 i
00F0 .dbsym r m 22 c
00F0 .dbsym r r 20 c
00F0 .dbend
00F0 .dbfunc e delay_nms _delay_nms fV
00F0 ; i -> R20,R21
00F0 ; n -> R22,R23
.even
00F0 _delay_nms::
00F0 00D0 rcall push_gset2
00F2 B801 movw R22,R16
00F4 .dbline -1
00F4 .dbline 108
00F4 ; }
00F4 ;
00F4 ; void delay_nms(unsigned int n)//延时n毫秒
00F4 ; {
00F4 .dbline 110
00F4 ; unsigned int i;
00F4 ; for (i=0;i<n;i++)//执行n次1毫秒延时
00F4 4427 clr R20
00F6 5527 clr R21
00F8 05C0 rjmp L12
00FA L9:
00FA .dbline 111
00FA .dbline 111
00FA 08EE ldi R16,1000
00FC 13E0 ldi R17,3
00FE 07D0 rcall _delay_nus
0100 .dbline 111
0100 L10:
0100 .dbline 110
0100 4F5F subi R20,255 ; offset = 1
0102 5F4F sbci R21,255
0104 L12:
0104 .dbline 110
0104 4617 cp R20,R22
0106 5707 cpc R21,R23
0108 C0F3 brlo L9
010A .dbline -2
010A L8:
010A 00D0 rcall pop_gset2
010C .dbline 0 ; func end
010C 0895 ret
010E .dbsym r i 20 i
010E .dbsym r n 22 i
010E .dbend
010E .dbfunc e delay_nus _delay_nus fV
010E ; i -> R20,R21
010E ; n -> R16,R17
.even
010E _delay_nus::
010E 00D0 rcall push_gset1
0110 .dbline -1
0110 .dbline 115
0110 ; {delay_nus(1000);}
0110 ; }
0110 ;
0110 ; void delay_nus(unsigned int n)//延时N微秒,N>=5 晶振:8MHz
0110 ; {
0110 .dbline 117
0110 ; unsigned int i;
0110 ; for (i=5;i<n;i++)
0110 45E0 ldi R20,5
0112 50E0 ldi R21,0
0114 04C0 rjmp L17
0116 L14:
0116 .dbline 118
0116 .dbline 119
0116 0000 nop
0118 .dbline 120
0118 0000 nop
011A .dbline 121
011A L15:
011A .dbline 117
011A 4F5F subi R20,255 ; offset = 1
011C 5F4F sbci R21,255
011E L17:
011E .dbline 117
011E 4017 cp R20,R16
0120 5107 cpc R21,R17
0122 C8F3 brlo L14
0124 .dbline -2
0124 L13:
0124 00D0 rcall pop_gset1
0126 .dbline 0 ; func end
0126 0895 ret
0128 .dbsym r i 20 i
0128 .dbsym r n 16 i
0128 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -