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

📄 1.lis

📁 在车头有4个光敏电阻做的寻找光源的小车程序 具有笔战功能 ICC-AVR ATmega16L 做的控制器 找到光源后停车
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0570 7A93              st -y,R23
 0572 6A93              st -y,R22
 0574 5A93              st -y,R21
 0576 4A93              st -y,R20
 0578 0E940000          xcall div32u
 057C 5801              movw R10,R16
 057E                   .dbline 119
 057E           ;   voltage=temp;
 057E B0920F00          sts _voltage+1,R11
 0582 A0920E00          sts _voltage,R10
 0586                   .dbline 120
 0586           ; switch(adc_mux)
 0586 C0901000          lds R12,_adc_mux
 058A DD24              clr R13
 058C CC20              tst R12
 058E 11F4              brne X9
 0590 DD20              tst R13
 0592 71F0              breq L51
 0594           X9:
 0594 C601              movw R24,R12
 0596 8130              cpi R24,1
 0598 E0E0              ldi R30,0
 059A 9E07              cpc R25,R30
 059C 71F0              breq L52
 059E           X10:
 059E 8230              cpi R24,2
 05A0 E0E0              ldi R30,0
 05A2 9E07              cpc R25,R30
 05A4 79F0              breq L53
 05A6           X11:
 05A6 8330              cpi R24,3
 05A8 E0E0              ldi R30,0
 05AA 9E07              cpc R25,R30
 05AC 81F0              breq L54
 05AE           X12:
 05AE 13C0              xjmp L48
 05B0           L51:
 05B0                   .dbline 122
 05B0           ;       {
 05B0           ;               case 0:V0=temp;break;
 05B0 B0920B00          sts _V0+1,R11
 05B4 A0920A00          sts _V0,R10
 05B8                   .dbline 122
 05B8 0EC0              xjmp L49
 05BA           L52:
 05BA                   .dbline 123
 05BA           ;               case 1:V1=temp;break;
 05BA B0920900          sts _V1+1,R11
 05BE A0920800          sts _V1,R10
 05C2                   .dbline 123
 05C2 09C0              xjmp L49
 05C4           L53:
 05C4                   .dbline 124
 05C4           ;               case 2:V2=temp;break;
 05C4 B0920700          sts _V2+1,R11
 05C8 A0920600          sts _V2,R10
 05CC                   .dbline 124
 05CC 04C0              xjmp L49
 05CE           L54:
 05CE                   .dbline 125
 05CE           ;           case 3:V3=temp;break;
 05CE B0920500          sts _V3+1,R11
 05D2 A0920400          sts _V3,R10
 05D6                   .dbline 125
 05D6           L48:
 05D6           L49:
 05D6                   .dbline 127
 05D6           ;        } 
 05D6           ;   LCD_write_shu(0,0,temp);
 05D6 B982              std y+1,R11
 05D8 A882              std y+0,R10
 05DA 2227              clr R18
 05DC 3327              clr R19
 05DE 0027              clr R16
 05E0 1127              clr R17
 05E2 5EDE              xcall _LCD_write_shu
 05E4                   .dbline -2
 05E4           L47:
 05E4                   .dbline 0 ; func end
 05E4 2296              adiw R28,2
 05E6 0C940000          xjmp pop_xgsetF03C
 05EA                   .dbsym l i 3 c
 05EA                   .dbsym r temp 10 i
 05EA                   .dbend
                        .area vector(rom, abs)
                        .org 56
 0038 0C94F502          jmp _adc_isr
                        .area text(rom, con, rel)
 05EA                   .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\1.c
 05EA                   .dbfunc e adc_isr _adc_isr fV
                        .even
 05EA           _adc_isr::
 05EA 8A93              st -y,R24
 05EC 9A93              st -y,R25
 05EE 8FB7              in R24,0x3f
 05F0 8A93              st -y,R24
 05F2                   .dbline -1
 05F2                   .dbline 134
 05F2           ; 
 05F2           ;  }
 05F2           ; 
 05F2           ; 
 05F2           ; #pragma interrupt_handler adc_isr:15
 05F2           ; void adc_isr(void)
 05F2           ; {
 05F2                   .dbline 136
 05F2           ;  //转换完成后中断处理
 05F2           ;    adc_rel=ADC&0x3ff;  //
 05F2 84B1              in R24,0x4
 05F4 95B1              in R25,0x5
 05F6 9370              andi R25,3
 05F8 90931200          sts _adc_rel+1,R25
 05FC 80931100          sts _adc_rel,R24
 0600                   .dbline 137
 0600           ;   ADMUX =(1<<REFS1)|(1<<REFS0)|(adc_mux&0x1f);
 0600 80911000          lds R24,_adc_mux
 0604 8F71              andi R24,31
 0606 806C              ori R24,192
 0608 87B9              out 0x7,R24
 060A                   .dbline 138
 060A           ;     ADCSRA|=(1<<ADSC);//启动AD转换//启动AD转换
 060A 369A              sbi 0x6,6
 060C                   .dbline -2
 060C           L55:
 060C                   .dbline 0 ; func end
 060C 8991              ld R24,y+
 060E 8FBF              out 0x3f,R24
 0610 9991              ld R25,y+
 0612 8991              ld R24,y+
 0614 1895              reti
 0616                   .dbend
 0616                   .dbfunc e init_devices _init_devices fV
                        .even
 0616           _init_devices::
 0616                   .dbline -1
 0616                   .dbline 145
 0616           ; 
 0616           ; }
 0616           ; 
 0616           ; 
 0616           ; 
 0616           ; void init_devices(void)
 0616           ; {
 0616                   .dbline 146
 0616           ;  CLI(); //禁止所有中断
 0616 F894              cli
 0618                   .dbline 147
 0618           ;  MCUCR  = 0x00;
 0618 2224              clr R2
 061A 25BE              out 0x35,R2
 061C                   .dbline 148
 061C           ;  MCUCSR = 0x80;//禁止JTAG
 061C 80E8              ldi R24,128
 061E 84BF              out 0x34,R24
 0620                   .dbline 149
 0620           ;  GICR   = 0x00;
 0620 2BBE              out 0x3b,R2
 0622                   .dbline 150
 0622           ;  port_init();
 0622 12DF              xcall _port_init
 0624                   .dbline 151
 0624           ;  timer1_init();
 0624 1DDF              xcall _timer1_init
 0626                   .dbline 152
 0626           ;  adc_init();
 0626 7BDF              xcall _adc_init
 0628                   .dbline 153
 0628           ;  SEI();//开全局中断
 0628 7894              sei
 062A                   .dbline -2
 062A           L56:
 062A                   .dbline 0 ; func end
 062A 0895              ret
 062C                   .dbend
 062C                   .dbfunc e qianjin _qianjin fV
                        .even
 062C           _qianjin::
 062C 2297              sbiw R28,2
 062E                   .dbline -1
 062E                   .dbline 157
 062E           ; }
 062E           ; 
 062E           ; void qianjin()
 062E           ;  {
 062E                   .dbline 159
 062E           ;  //PORTC|=0x80;
 062E           ;  PORTC=0x8A;     //1010前进
 062E 8AE8              ldi R24,138
 0630 85BB              out 0x15,R24
 0632                   .dbline 160
 0632           ;  LCD_write_string(0,1,"qianjin  ");
 0632 80E0              ldi R24,<L58
 0634 90E0              ldi R25,>L58
 0636 9983              std y+1,R25
 0638 8883              std y+0,R24
 063A 21E0              ldi R18,1
 063C 0027              clr R16
 063E C0DD              xcall _LCD_write_string
 0640                   .dbline -2
 0640           L57:
 0640                   .dbline 0 ; func end
 0640 2296              adiw R28,2
 0642 0895              ret
 0644                   .dbend
 0644                   .dbfunc e houtui _houtui fV
                        .even
 0644           _houtui::
 0644 2297              sbiw R28,2
 0646                   .dbline -1
 0646                   .dbline 163
 0646           ; }
 0646           ; void houtui()
 0646           ; {
 0646                   .dbline 164
 0646           ; PORTC=0x85;     //0101后退
 0646 85E8              ldi R24,133
 0648 85BB              out 0x15,R24
 064A                   .dbline 165
 064A           ; LCD_write_string(0,1,"houtui   ");
 064A 80E0              ldi R24,<L60
 064C 90E0              ldi R25,>L60
 064E 9983              std y+1,R25
 0650 8883              std y+0,R24
 0652 21E0              ldi R18,1
 0654 0027              clr R16
 0656 B4DD              xcall _LCD_write_string
 0658                   .dbline -2
 0658           L59:
 0658                   .dbline 0 ; func end
 0658 2296              adiw R28,2
 065A 0895              ret
 065C                   .dbend
 065C                   .dbfunc e zuozhuan _zuozhuan fV
                        .even
 065C           _zuozhuan::
 065C 2297              sbiw R28,2
 065E                   .dbline -1
 065E                   .dbline 169
 065E           ; }
 065E           ; 
 065E           ; void zuozhuan()
 065E           ; {
 065E                   .dbline 170
 065E           ;  PORTC=0x82;     //0010  左传
 065E 82E8              ldi R24,130
 0660 85BB              out 0x15,R24
 0662                   .dbline 171
 0662           ;  LCD_write_string(0,1,"zuozhuan");
 0662 80E0              ldi R24,<L62
 0664 90E0              ldi R25,>L62
 0666 9983              std y+1,R25
 0668 8883              std y+0,R24
 066A 21E0              ldi R18,1
 066C 0027              clr R16
 066E A8DD              xcall _LCD_write_string
 0670                   .dbline -2
 0670           L61:
 0670                   .dbline 0 ; func end
 0670 2296              adiw R28,2
 0672 0895              ret
 0674                   .dbend
 0674                   .dbfunc e youzhuan _youzhuan fV
                        .even
 0674           _youzhuan::
 0674 2297              sbiw R28,2
 0676                   .dbline -1
 0676                   .dbline 174
 0676           ; } 
 0676           ; void youzhuan()
 0676           ; {
 0676                   .dbline 175
 0676           ;  PORTC=0x88;      //1000右转
 0676 88E8              ldi R24,136
 0678 85BB              out 0x15,R24
 067A                   .dbline 176
 067A           ;  LCD_write_string(0,1,"youzhuan");
 067A 80E0              ldi R24,<L64
 067C 90E0              ldi R25,>L64
 067E 9983              std y+1,R25
 0680 8883              std y+0,R24
 0682 21E0              ldi R18,1
 0684 0027              clr R16
 0686 9CDD              xcall _LCD_write_string
 0688                   .dbline -2
 0688           L63:
 0688                   .dbline 0 ; func end
 0688 2296              adiw R28,2
 068A 0895              ret
 068C                   .dbend
 068C                   .dbfunc e stop _stop fV
                        .even
 068C           _stop::
 068C 2297              sbiw R28,2
 068E                   .dbline -1
 068E                   .dbline 179
 068E           ; }
 068E           ; void stop()
 068E           ; {
 068E                   .dbline 180
 068E           ;  PORTC=0x80;
 068E 80E8              ldi R24,128
 0690 85BB              out 0x15,R24
 0692                   .dbline 181
 0692           ;   LCD_write_string(0,1,"stop   ");
 0692 80E0              ldi R24,<L66
 0694 90E0              ldi R25,>L66
 0696 9983              std y+1,R25
 0698 8883              std y+0,R24
 069A 21E0              ldi R18,1
 069C 0027              clr R16
 069E 90DD              xcall _LCD_write_string
 06A0                   .dbline -2
 06A0           L65:
 06A0                   .dbline 0 ; func end
 06A0 2296              adiw R28,2
 06A2 0895              ret
 06A4                   .dbend
 06A4                   .dbfunc e get_adc _get_adc fV
                        .even
 06A4           _get_adc::
 06A4 2297              sbiw R28,2
 06A6                   .dbline -1
 06A6                   .dbline 185
 06A6           ; }
 06A6           ; 
 06A6           ; void get_adc()
 06A6           ; {
 06A6                   .dbline 186
 06A6           ; if(adc_old!=adc_rel)
 06A6 20901100          lds R2,_adc_rel
 06AA 30901200          lds R3,_adc_rel+1
 06AE 40900C00          lds R4,_adc_old
 06B2 50900D00          lds R5,_adc_old+1
 06B6 4214              cp R4,R2
 06B8 5304              cpc R5,R3
 06BA 49F0              breq L68
 06BC           X13:
 06BC                   .dbline 187
 06BC           ;         {
 06BC                   .dbline 188
 06BC           ;            adc_old=adc_rel;
 06BC 30

⌨️ 快捷键说明

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