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

📄 system_init.lis

📁 这是一个电池放电器
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -