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