📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile F:\USING0~1\motor\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 9
0000 ; unsigned char i;
0000 ;
0000 ; /* 定义上拉电阻和设置高电平输出 */
0000 ; /* 为端口引脚定义方向 */
0000 ; PORTC = 0XFF;
0000 8FEF ldi R24,255
0002 85BB out 0x15,R24
0004 .dbline 10
0004 ; DDRC = 0X00;
0004 2224 clr R2
0006 24BA out 0x14,R2
0008 .dbline 12
0008 ; /* 为了同步插入nop 指令*/
0008 ; _NOP();
0008 0000 nop
000A .dbline 14
000A ; /* 读取端口引脚*/
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 18
0014 ; }
0014 ;
0014 ; void car_turn(unsigned char mes)
0014 ; {
0014 .dbline 19
0014 ; switch(mes)
0014 5527 clr R21
0016 483F cpi R20,248
0018 E0E0 ldi R30,0
001A 5E07 cpc R21,R30
001C 11F1 breq L6
001E 493F cpi R20,249
0020 E0E0 ldi R30,0
0022 5E07 cpc R21,R30
0024 09F1 breq L7
0026 4A3F cpi R20,250
0028 E0E0 ldi R30,0
002A 5E07 cpc R21,R30
002C 81F1 breq L8
002E 4B3F cpi R20,251
0030 E0E0 ldi R30,0
0032 5E07 cpc R21,R30
0034 09F4 brne X1
0036 38C0 xjmp L9
0038 X1:
0038 4C3F cpi R20,252
003A E0E0 ldi R30,0
003C 5E07 cpc R21,R30
003E 09F4 brne X2
0040 46C0 xjmp L10
0042 X2:
0042 4D3F cpi R20,253
0044 E0E0 ldi R30,0
0046 5E07 cpc R21,R30
0048 09F4 brne X3
004A 54C0 xjmp L11
004C X3:
004C 4E3F cpi R20,254
004E E0E0 ldi R30,0
0050 5E07 cpc R21,R30
0052 09F4 brne X4
0054 52C0 xjmp L12
0056 X4:
0056 4F3F cpi R20,255
0058 E0E0 ldi R30,0
005A 5E07 cpc R21,R30
005C 09F4 brne X5
005E 60C0 xjmp L13
0060 X5:
0060 6BC0 xjmp L4
0062 X0:
0062 .dbline 20
0062 ; {
0062 L6:
0062 .dbline 21
0062 ; case 0xf8: forward(); break;
0062 0E940000 xcall _forward
0066 .dbline 21
0066 68C0 xjmp L4
0068 L7:
0068 .dbline 23
0068 ;
0068 ; case 0xf9: {
0068 .dbline 24
0068 ; back_left();
0068 0E940000 xcall _back_left
006C .dbline 25
006C ; delay(1000);
006C 08EE ldi R16,1000
006E 13E0 ldi R17,3
0070 0E940000 xcall _delay
0074 .dbline 26
0074 ; car_stop();
0074 0E940000 xcall _car_stop
0078 .dbline 27
0078 ; delay(1000);
0078 08EE ldi R16,1000
007A 13E0 ldi R17,3
007C 0E940000 xcall _delay
0080 .dbline 28
0080 ; for_right();
0080 0E940000 xcall _for_right
0084 .dbline 29
0084 ; delay(1000);
0084 08EE ldi R16,1000
0086 13E0 ldi R17,3
0088 0E940000 xcall _delay
008C .dbline 30
008C ; }; break;
008C .dbline 30
008C .dbline 30
008C 55C0 xjmp L4
008E L8:
008E .dbline 32
008E ;
008E ; case 0xfa: {
008E .dbline 33
008E ; backward();
008E 0E940000 xcall _backward
0092 .dbline 34
0092 ; delay(1000);
0092 08EE ldi R16,1000
0094 13E0 ldi R17,3
0096 0E940000 xcall _delay
009A .dbline 35
009A ; for_left();
009A 0E940000 xcall _for_left
009E .dbline 36
009E ; delay(1000);
009E 08EE ldi R16,1000
00A0 13E0 ldi R17,3
00A2 0E940000 xcall _delay
00A6 .dbline 37
00A6 ; }; break;
00A6 .dbline 37
00A6 .dbline 37
00A6 48C0 xjmp L4
00A8 L9:
00A8 .dbline 40
00A8 ;
00A8 ;
00A8 ; case 0xfb: {
00A8 .dbline 41
00A8 ; back_left();
00A8 0E940000 xcall _back_left
00AC .dbline 42
00AC ; delay(1000);
00AC 08EE ldi R16,1000
00AE 13E0 ldi R17,3
00B0 0E940000 xcall _delay
00B4 .dbline 43
00B4 ; car_stop();
00B4 0E940000 xcall _car_stop
00B8 .dbline 44
00B8 ; delay(1000);
00B8 08EE ldi R16,1000
00BA 13E0 ldi R17,3
00BC 0E940000 xcall _delay
00C0 .dbline 45
00C0 ; for_right();
00C0 0E940000 xcall _for_right
00C4 .dbline 46
00C4 ; delay(1000);
00C4 08EE ldi R16,1000
00C6 13E0 ldi R17,3
00C8 0E940000 xcall _delay
00CC .dbline 47
00CC ; }; break;
00CC .dbline 47
00CC .dbline 47
00CC 35C0 xjmp L4
00CE L10:
00CE .dbline 49
00CE ;
00CE ; case 0xfc: {
00CE .dbline 50
00CE ; back_right();
00CE 0E940000 xcall _back_right
00D2 .dbline 51
00D2 ; delay(1000);
00D2 08EE ldi R16,1000
00D4 13E0 ldi R17,3
00D6 0E940000 xcall _delay
00DA .dbline 52
00DA ; car_stop();
00DA 0E940000 xcall _car_stop
00DE .dbline 53
00DE ; delay(1000);
00DE 08EE ldi R16,1000
00E0 13E0 ldi R17,3
00E2 0E940000 xcall _delay
00E6 .dbline 54
00E6 ; for_left();
00E6 0E940000 xcall _for_left
00EA .dbline 55
00EA ; delay(1000);
00EA 08EE ldi R16,1000
00EC 13E0 ldi R17,3
00EE 0E940000 xcall _delay
00F2 .dbline 56
00F2 ; }; break;
00F2 .dbline 56
00F2 .dbline 56
00F2 22C0 xjmp L4
00F4 L11:
00F4 .dbline 58
00F4 ;
00F4 ; case 0xfd: forward(); break;
00F4 0E940000 xcall _forward
00F8 .dbline 58
00F8 1FC0 xjmp L4
00FA L12:
00FA .dbline 60
00FA ;
00FA ; case 0xfe: {
00FA .dbline 61
00FA ; back_right();
00FA 0E940000 xcall _back_right
00FE .dbline 62
00FE ; delay(1000);
00FE 08EE ldi R16,1000
0100 13E0 ldi R17,3
0102 0E940000 xcall _delay
0106 .dbline 63
0106 ; car_stop();
0106 0E940000 xcall _car_stop
010A .dbline 64
010A ; delay(1000);
010A 08EE ldi R16,1000
010C 13E0 ldi R17,3
010E 0E940000 xcall _delay
0112 .dbline 65
0112 ; for_left();
0112 0E940000 xcall _for_left
0116 .dbline 66
0116 ; delay(1000);
0116 08EE ldi R16,1000
0118 13E0 ldi R17,3
011A 0E940000 xcall _delay
011E .dbline 67
011E ; }; break;
011E .dbline 67
011E .dbline 67
011E 0CC0 xjmp L4
0120 L13:
0120 .dbline 69
0120 .dbline 70
0120 0E940000 xcall _backward
0124 .dbline 71
0124 08EE ldi R16,1000
0126 13E0 ldi R17,3
0128 0E940000 xcall _delay
012C .dbline 72
012C 0E940000 xcall _for_left
0130 .dbline 73
0130 08EE ldi R16,1000
0132 13E0 ldi R17,3
0134 0E940000 xcall _delay
0138 .dbline 74
0138 .dbline 74
0138 .dbline 76
0138 L4:
0138 .dbline -2
0138 L2:
0138 0E940000 xcall pop_gset1
013C .dbline 0 ; func end
013C 0895 ret
013E .dbsym r mes 20 c
013E .dbend
013E .dbfunc e main _main fV
013E ; pin -> R20
.even
013E _main::
013E .dbline -1
013E .dbline 83
013E ;
013E ; case 0xff: {
013E ; backward();
013E ; delay(1000);
013E ; for_left();
013E ; delay(1000);
013E ; } break;
013E ;
013E ; default: break;
013E ;
013E ; }
013E ; }
013E ;
013E ;
013E ; void main()
013E ; {
013E .dbline 84
013E ; unsigned char pin = 0x00;
013E 4427 clr R20
0140 03C0 xjmp L16
0142 L15:
0142 .dbline 86
0142 .dbline 87
0142 5EDF xcall _ReadPin
0144 402F mov R20,R16
0146 .dbline 88
0146 63DF xcall _car_turn
0148 .dbline 89
0148 L16:
0148 .dbline 85
0148 FCCF xjmp L15
014A X6:
014A .dbline -2
014A L14:
014A .dbline 0 ; func end
014A 0895 ret
014C .dbsym r pin 20 c
014C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -