📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile F:\USING0~1\LINEAN~1\main.c
0000 .dbfunc e ReadPin _ReadPin fc
0000 ; i -> R16
.even
0000 _ReadPin::
0000 .dbline -1
0000 .dbline 4
0000 ; #include "main.h"
0000 ;
0000 ; unsigned char ReadPin(void)
0000 ; {
0000 .dbline 6
0000 ; unsigned char i;
0000 ; PORTC = 0XFF; //定义上拉电阻和设置高电平输出
0000 8FEF ldi R24,255
0002 85BB out 0x15,R24
0004 .dbline 7
0004 ; DDRC = 0X00; //为端口引脚定义方向
0004 2224 clr R2
0006 24BA out 0x14,R2
0008 .dbline 8
0008 ; _NOP(); // 为了同步插入nop 指令
0008 0000 nop
000A .dbline 9
000A ; i = PINC; // 读取端口引脚
000A 03B3 in R16,0x13
000C .dbline -2
000C L1:
000C .dbline 0 ; func end
000C 0895 ret
000E .dbsym r i 16 c
000E .dbend
000E .dbfunc e car_turn _car_turn fV
000E ; mes -> R20
.even
000E _car_turn::
000E 0E940000 xcall push_gset1
0012 402F mov R20,R16
0014 .dbline -1
0014 .dbline 13
0014 ; }
0014 ;
0014 ; void car_turn(unsigned char mes)
0014 ; {
0014 .dbline 14
0014 ; switch(mes)
0014 5527 clr R21
0016 4032 cpi R20,32
0018 E0E0 ldi R30,0
001A 5E07 cpc R21,R30
001C 09F4 brne X2
001E B0C0 xjmp L17
0020 X2:
0020 80E2 ldi R24,32
0022 90E0 ldi R25,0
0024 8417 cp R24,R20
0026 9507 cpc R25,R21
0028 0CF4 brge X3
002A 37C0 xjmp L21
002C X3:
002C L20:
002C 4030 cpi R20,0
002E 4507 cpc R20,R21
0030 09F4 brne X4
0032 49C0 xjmp L6
0034 X4:
0034 X0:
0034 4130 cpi R20,1
0036 E0E0 ldi R30,0
0038 5E07 cpc R21,R30
003A 09F4 brne X5
003C 47C0 xjmp L7
003E X5:
003E 4230 cpi R20,2
0040 E0E0 ldi R30,0
0042 5E07 cpc R21,R30
0044 09F4 brne X6
0046 4FC0 xjmp L8
0048 X6:
0048 4330 cpi R20,3
004A E0E0 ldi R30,0
004C 5E07 cpc R21,R30
004E 09F4 brne X7
0050 57C0 xjmp L9
0052 X7:
0052 4430 cpi R20,4
0054 E0E0 ldi R30,0
0056 5E07 cpc R21,R30
0058 09F4 brne X8
005A 5FC0 xjmp L10
005C X8:
005C 4530 cpi R20,5
005E E0E0 ldi R30,0
0060 5E07 cpc R21,R30
0062 09F4 brne X9
0064 67C0 xjmp L11
0066 X9:
0066 4630 cpi R20,6
0068 E0E0 ldi R30,0
006A 5E07 cpc R21,R30
006C 09F4 brne X10
006E 65C0 xjmp L12
0070 X10:
0070 4730 cpi R20,7
0072 E0E0 ldi R30,0
0074 5E07 cpc R21,R30
0076 09F4 brne X11
0078 6DC0 xjmp L13
007A X11:
007A 4830 cpi R20,8
007C E0E0 ldi R30,0
007E 5E07 cpc R21,R30
0080 09F4 brne X12
0082 81C0 xjmp L18
0084 X12:
0084 4030 cpi R20,0
0086 E0E0 ldi R30,0
0088 5E07 cpc R21,R30
008A 0CF4 brge X13
008C 82C0 xjmp L3
008E X13:
008E L22:
008E 4831 cpi R20,24
0090 E0E0 ldi R30,0
0092 5E07 cpc R21,R30
0094 09F4 brne X14
0096 71C0 xjmp L16
0098 X14:
0098 7CC0 xjmp L3
009A L21:
009A 4033 cpi R20,48
009C E0E0 ldi R30,0
009E 5E07 cpc R21,R30
00A0 09F4 brne X15
00A2 65C0 xjmp L14
00A4 X15:
00A4 80E3 ldi R24,48
00A6 90E0 ldi R25,0
00A8 8417 cp R24,R20
00AA 9507 cpc R25,R21
00AC 34F0 brlt L24
00AE L23:
00AE 4832 cpi R20,40
00B0 E0E0 ldi R30,0
00B2 5E07 cpc R21,R30
00B4 09F4 brne X16
00B6 5EC0 xjmp L15
00B8 X16:
00B8 6CC0 xjmp L3
00BA L24:
00BA 4833 cpi R20,56
00BC E0E0 ldi R30,0
00BE 5E07 cpc R21,R30
00C0 09F4 brne X17
00C2 64C0 xjmp L19
00C4 X17:
00C4 66C0 xjmp L3
00C6 X1:
00C6 .dbline 15
00C6 ; {
00C6 L6:
00C6 .dbline 18
00C6 ; /**************************以下为检测障碍物时的执行函数************************************/
00C6 ;
00C6 ; case 0x00: forward(); break;
00C6 0E940000 xcall _forward
00CA .dbline 18
00CA 65C0 xjmp L4
00CC L7:
00CC .dbline 20
00CC ;
00CC ; case 0x01: {
00CC .dbline 21
00CC ; back_left();
00CC 0E940000 xcall _back_left
00D0 .dbline 22
00D0 ; delay(1000);
00D0 08EE ldi R16,1000
00D2 13E0 ldi R17,3
00D4 0E940000 xcall _delay
00D8 .dbline 23
00D8 ; for_right();
00D8 0E940000 xcall _for_right
00DC .dbline 24
00DC ; delay(1000);
00DC 08EE ldi R16,1000
00DE 13E0 ldi R17,3
00E0 0E940000 xcall _delay
00E4 .dbline 26
00E4 ;
00E4 ; }; break;
00E4 .dbline 26
00E4 .dbline 26
00E4 58C0 xjmp L4
00E6 L8:
00E6 .dbline 28
00E6 ;
00E6 ; case 0x02: {
00E6 .dbline 29
00E6 ; backward();
00E6 0E940000 xcall _backward
00EA .dbline 30
00EA ; delay(1000);
00EA 08EE ldi R16,1000
00EC 13E0 ldi R17,3
00EE 0E940000 xcall _delay
00F2 .dbline 31
00F2 ; for_left();
00F2 0E940000 xcall _for_left
00F6 .dbline 32
00F6 ; delay(1000);
00F6 08EE ldi R16,1000
00F8 13E0 ldi R17,3
00FA 0E940000 xcall _delay
00FE .dbline 33
00FE ; }; break;
00FE .dbline 33
00FE .dbline 33
00FE 4BC0 xjmp L4
0100 L9:
0100 .dbline 36
0100 ;
0100 ;
0100 ; case 0x03: {
0100 .dbline 37
0100 ; back_left();
0100 0E940000 xcall _back_left
0104 .dbline 38
0104 ; delay(1000);
0104 08EE ldi R16,1000
0106 13E0 ldi R17,3
0108 0E940000 xcall _delay
010C .dbline 39
010C ; for_right();
010C 0E940000 xcall _for_right
0110 .dbline 40
0110 ; delay(1000);
0110 08EE ldi R16,1000
0112 13E0 ldi R17,3
0114 0E940000 xcall _delay
0118 .dbline 42
0118 ;
0118 ; }; break;
0118 .dbline 42
0118 .dbline 42
0118 3EC0 xjmp L4
011A L10:
011A .dbline 44
011A ;
011A ; case 0x04: {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -