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

📄 jidong.lis

📁 基于m16的寻迹寻光小车程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module jidong.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0000                   .dbfunc e L298_port_init _L298_port_init fV
                        .even
 0000           _L298_port_init::
 0000                   .dbline -1
 0000                   .dbline 17
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; //#include "lcd.h"
 0000           ; #include "delay.h"
 0000           ; 
 0000           ; #define uchar unsigned char
 0000           ; #define uint  unsigned int
 0000           ; 
 0000           ; ////////////////////////////////////////////////////////////////////
 0000           ; //部分函数声明
 0000           ; void time0_start( void );
 0000           ; void time0_stop( void );
 0000           ; ///////////////////////////////////////////////////////////////////
 0000           ; 
 0000           ; ///////////////////////////////////////L298驱动/////////////////////////////////////
 0000           ; void L298_port_init( void )
 0000           ; {
 0000                   .dbline 18
 0000           ;     DDRC |= 0b11111100;
 0000 84B3              in R24,0x14
 0002 8C6F              ori R24,252
 0004 84BB              out 0x14,R24
 0006                   .dbline -2
 0006           L1:
 0006                   .dbline 0 ; func end
 0006 0895              ret
 0008                   .dbend
 0008                   .dbfunc e go_ahead _go_ahead fV
                        .even
 0008           _go_ahead::
 0008                   .dbline -1
 0008                   .dbline 22
 0008           ; }
 0008           ; 
 0008           ; void go_ahead( void )
 0008           ; {
 0008                   .dbline 23
 0008           ;       PORTC &=~ 0B11111100;
 0008 85B3              in R24,0x15
 000A 8370              andi R24,3
 000C 85BB              out 0x15,R24
 000E                   .dbline 24
 000E           ;     PORTC |= 0b11010100;
 000E 85B3              in R24,0x15
 0010 846D              ori R24,212
 0012 85BB              out 0x15,R24
 0014                   .dbline -2
 0014           L2:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbend
 0016                   .dbfunc e go_back _go_back fV
                        .even
 0016           _go_back::
 0016                   .dbline -1
 0016                   .dbline 28
 0016           ; }
 0016           ; 
 0016           ; void go_back( void )
 0016           ; {
 0016                   .dbline 29
 0016           ;       PORTC &=~ 0B11111100;
 0016 85B3              in R24,0x15
 0018 8370              andi R24,3
 001A 85BB              out 0x15,R24
 001C                   .dbline 30
 001C           ;     PORTC |= 0b11101000;
 001C 85B3              in R24,0x15
 001E 886E              ori R24,232
 0020 85BB              out 0x15,R24
 0022                   .dbline -2
 0022           L3:
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbend
 0024                   .dbfunc e turn_l _turn_l fV
                        .even
 0024           _turn_l::
 0024                   .dbline -1
 0024                   .dbline 34
 0024           ; }
 0024           ; 
 0024           ; void turn_l( void )
 0024           ; {
 0024                   .dbline 35
 0024           ;       PORTC &=~ 0B11111100;
 0024 85B3              in R24,0x15
 0026 8370              andi R24,3
 0028 85BB              out 0x15,R24
 002A                   .dbline 36
 002A           ;     PORTC |= 0b11011000;
 002A 85B3              in R24,0x15
 002C 886D              ori R24,216
 002E 85BB              out 0x15,R24
 0030                   .dbline -2
 0030           L4:
 0030                   .dbline 0 ; func end
 0030 0895              ret
 0032                   .dbend
 0032                   .dbfunc e turn_r _turn_r fV
                        .even
 0032           _turn_r::
 0032                   .dbline -1
 0032                   .dbline 40
 0032           ; }
 0032           ; 
 0032           ; void turn_r( void )
 0032           ; {
 0032                   .dbline 41
 0032           ;       PORTC &=~ 0B11111100;
 0032 85B3              in R24,0x15
 0034 8370              andi R24,3
 0036 85BB              out 0x15,R24
 0038                   .dbline 42
 0038           ;     PORTC |= 0b11100100;
 0038 85B3              in R24,0x15
 003A 846E              ori R24,228
 003C 85BB              out 0x15,R24
 003E                   .dbline -2
 003E           L5:
 003E                   .dbline 0 ; func end
 003E 0895              ret
 0040                   .dbend
 0040                   .dbfunc e car_stop _car_stop fV
                        .even
 0040           _car_stop::
 0040                   .dbline -1
 0040                   .dbline 46
 0040           ; }
 0040           ; 
 0040           ; void car_stop( void )
 0040           ; {
 0040                   .dbline 47
 0040           ;        PORTC &=~ 0B11111100;
 0040 85B3              in R24,0x15
 0042 8370              andi R24,3
 0044 85BB              out 0x15,R24
 0046                   .dbline -2
 0046           L6:
 0046                   .dbline 0 ; func end
 0046 0895              ret
 0048                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0000           _small_flag::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0002                   .dbsym e small_flag _small_flag i
 0002           _adcl::
 0002                   .blkb 2
                        .area idata
 0002 0000              .word 0
                        .area data(ram, con, rel)
 0004                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0004                   .dbsym e adcl _adcl i
 0004           _adch::
 0004                   .blkb 2
                        .area idata
 0004 0000              .word 0
                        .area data(ram, con, rel)
 0006                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0006                   .dbsym e adch _adch i
 0006           _adcvalue::
 0006                   .blkb 2
                        .area idata
 0006 0000              .word 0
                        .area data(ram, con, rel)
 0008                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0008                   .dbsym e adcvalue _adcvalue i
 0008           _ad_m::
 0008                   .blkb 1
                        .area idata
 0008 00                .byte 0
                        .area data(ram, con, rel)
 0009                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0009                   .dbsym e ad_m _ad_m c
 0009           _ad0_tmp::
 0009                   .blkb 4
                        .area idata
 0009 00000000          .word 0x0,0x0
                        .area data(ram, con, rel)
 000D                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 000D                   .dbsym e ad0_tmp _ad0_tmp D
 000D           _ad1_tmp::
 000D                   .blkb 4
                        .area idata
 000D 00000000          .word 0x0,0x0
                        .area data(ram, con, rel)
 0011                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0011                   .dbsym e ad1_tmp _ad1_tmp D
 0011           _ad2_tmp::
 0011                   .blkb 4
                        .area idata
 0011 00000000          .word 0x0,0x0
                        .area data(ram, con, rel)
 0015                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0015                   .dbsym e ad2_tmp _ad2_tmp D
 0015           _ad3_tmp::
 0015                   .blkb 4
                        .area idata
 0015 00000000          .word 0x0,0x0
                        .area data(ram, con, rel)
 0019                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0019                   .dbsym e ad3_tmp _ad3_tmp D
 0019           _ad4_tmp::
 0019                   .blkb 4
                        .area idata
 0019 00000000          .word 0x0,0x0
                        .area data(ram, con, rel)
 001D                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 001D                   .dbsym e ad4_tmp _ad4_tmp D
                        .area text(rom, con, rel)
 0048                   .dbfile C:\DOCUME~1\Administrator\桌面\复件自~1\自动充电小车\298\jidong.c
 0048                   .dbfunc e get_5small _get_5small fc
 0048           ;      small_tmp -> y+4
 0048           ;              k -> y+0
 0048           ;              e -> y+48
 0048           ;              d -> y+44
 0048           ;              c -> y+40
 0048           ;              b -> y+36
 0048           ;              a -> y+32
                        .even
 0048           _get_5small::
 0048 0E940000          xcall push_arg4
 004C A097              sbiw R28,32
 004E                   .dbline -1
 004E                   .dbline 86
 004E           ; }
 004E           ;        
 004E           ; ///////////////////////////////////////L298驱动部分结束/////////////////////////////////
 004E           ; 
 004E           ; 
 004E           ; ///////////////////////////////////////小车寻光部分/////////////////////////////////////
 004E           ; #define Vref  2.56                //定义基准电压值
 004E           ; //#define Vref  1.00
 004E           ; 
 004E           ; //通道选择宏定义
 004E           ; #define AD_mux(n)  { ADMUX = ( 0xC0 | n ); } //内部基准 0xC0,        
 004E           ; 
 004E           ; //输入通道端口配置
 004E           ; #define ADC0_in  { DDRA &= 0XFE; PORTA |= 0X01; } //输入,高阻态
 004E           ; #define ADC1_in  { DDRA &= 0XFD; PORTA |= 0X02; }
 004E           ; #define ADC2_in  { DDRA &= 0XFB; PORTA |= 0X04; }
 004E           ; #define ADC3_in  { DDRA &= 0XF7; PORTA |= 0X08; }
 004E           ; #define ADC4_in  { DDRA &= 0XEF; PORTA |= 0X10; }
 004E           ; //#define ADC5_in  { DDRA &= 0XDF; PORTA |= 0X20; }
 004E           ; //#define ADC6_in  { DDRA &= 0XBF; PORTA |= 0X40; }
 004E           ; //#define ADC7_in  { DDRA &= 0X7F; PORTA |= 0X80; }
 004E           ; 
 004E           ; //全局变量
 004E           ; uint small_flag = 0;   //取最小光敏代号存入该变量
 004E           ; 
 004E           ; uint adcl = 0;         //定义暂存低字节
 004E           ; uint adch = 0;         //高字节
 004E           ; uint adcvalue = 0;     //低+高
 004E           ; uchar ad_m = 0;        //初始化通道为0通道
 004E           ; 
 004E           ; float ad0_tmp = 0.0;   //转换完成后暂存值
 004E           ; float ad1_tmp = 0.0;
 004E           ; float ad2_tmp = 0.0;
 004E           ; float ad3_tmp = 0.0;
 004E           ; float ad4_tmp = 0.0; 
 004E           ; 
 004E           ; //取三个数中的最小值
 004E           ; char get_5small( float a, float b, float c, float d, float e ) //ad0_tmp, ad1_tmp, ad2_tmp, ad3_tmp, ad4_tmp
 004E           ; {
 004E                   .dbline 87
 004E           ;     float small_tmp = 0.0;
 004E 00E0              ldi R16,<L8
 0050 10E0              ldi R17,>L8
 0052 0E940000          xcall lpm32
 0056 0C83              std y+4,R16
 0058 1D83              std y+5,R17
 005A 2E83              std y+6,R18
 005C 3F83              std y+7,R19
 005E                   .dbline 88
 005E           ;     float k = 0.0;
 005E 00E0              ldi R16,<L8
 0060 10E0              ldi R17,>L8
 0062 0E940000          xcall lpm32
 0066 0883              std y+0,R16
 0068 1983              std y+1,R17
 006A 2A83              std y+2,R18
 006C 3B83              std y+3,R19
 006E                   .dbline 90
 006E           ;     
 006E           ;     k  = ( ( a < b ? a : b ) < c ) ? ( a < b ? a : b ) : c;
 006E 08A1              ldd R16,y+32
 0070 19A1              ldd R17,y+33
 0072 2AA1              ldd R18,y+34
 0074 3BA1              ldd R19,y+35
 0076 CE01              movw R24,R28
 0078 8496              adiw R24,36
 007A 9A93              st -y,R25
 007C 8A93              st -y,R24
 007E 0E940000          xcall fpcmp1
 0082 4CF4              brge L11
 0084           X0:
 0084 28A0              ldd R2,y+32
 0086 39A0              ldd R3,y+33
 0088 4AA0              ldd R4,y+34
 008A 5BA0              ldd R5,y+35
 008C 2C86              std y+12,R2
 008E 3D86              std y+13,R3
 0090 4E86              std y+14,R4
 0092 5F86              std y+15,R5
 0094 08C0              xjmp L12
 0096           L11:
 0096 2CA0              ldd R2,y+36
 0098 3DA0              ldd R3,y+37
 009A 4EA0              ldd R4,y+38
 009C 5FA0              ldd R5,y+39
 009E 2C86              std y+12,R2
 00A0 3D86              std y+13,R3
 00A2 4E86              std y+14,R4
 00A4 5F86              std y+15,R5
 00A6           L12:
 00A6 0C85              ldd R16,y+12
 00A8 1D85              ldd R17,y+13
 00AA 2E85              ldd R18,y+14
 00AC 3F85              ldd R19,y+15
 00AE CE01              movw R24,R28

⌨️ 快捷键说明

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