📄 motor.lst
字号:
__text_start:
__start:
002A E5CF LDI R28,0x5F
002B E0D4 LDI R29,4
002C BFCD OUT 0x3D,R28
002D BFDE OUT 0x3E,R29
002E 51C0 SUBI R28,0x10
002F 40D0 SBCI R29,0
0030 EA0A LDI R16,0xAA
0031 8308 STD Y+0,R16
0032 2400 CLR R0
0033 E6E0 LDI R30,0x60
0034 E0F0 LDI R31,0
0035 E010 LDI R17,0
0036 36E0 CPI R30,0x60
0037 07F1 CPC R31,R17
0038 F011 BEQ 0x003B
0039 9201 ST R0,Z+
003A CFFB RJMP 0x0036
003B 8300 STD Z+0,R16
003C E5E4 LDI R30,0x54
003D E0F0 LDI R31,0
003E E6A0 LDI R26,0x60
003F E0B0 LDI R27,0
0040 E010 LDI R17,0
0041 35E4 CPI R30,0x54
0042 07F1 CPC R31,R17
0043 F021 BEQ 0x0048
0044 95C8 LPM
0045 9631 ADIW R30,1
0046 920D ST R0,X+
0047 CFF9 RJMP 0x0041
0048 940E01B8 CALL _main
_exit:
004A CFFF RJMP _exit
_forward:
004B EF8F LDI R24,0xFF
004C BB87 OUT 0x17,R24
004D E08A LDI R24,0xA
004E BB88 OUT 0x18,R24
004F 9508 RET
_backward:
0050 EF8F LDI R24,0xFF
0051 BB87 OUT 0x17,R24
0052 E089 LDI R24,0x9
0053 BB88 OUT 0x18,R24
0054 9508 RET
_for_left:
0055 EF8F LDI R24,0xFF
0056 BB87 OUT 0x17,R24
0057 E58A LDI R24,0x5A
0058 BB88 OUT 0x18,R24
0059 9508 RET
_back_left:
005A EF8F LDI R24,0xFF
005B BB87 OUT 0x17,R24
005C E589 LDI R24,0x59
005D BB88 OUT 0x18,R24
005E 9508 RET
_for_right:
005F EF8F LDI R24,0xFF
0060 BB87 OUT 0x17,R24
0061 E68A LDI R24,0x6A
0062 BB88 OUT 0x18,R24
0063 9508 RET
_back_right:
0064 EF8F LDI R24,0xFF
0065 BB87 OUT 0x17,R24
0066 E689 LDI R24,0x69
0067 BB88 OUT 0x18,R24
0068 9508 RET
_car_stop:
0069 EF8F LDI R24,0xFF
006A BB87 OUT 0x17,R24
006B 2422 CLR R2
006C BA28 OUT 0x18,R2
006D 9508 RET
_delay:
i --> R20
n --> R16
006E 940E01CD CALL push_gset1
0070 C009 RJMP 0x007A
0071 2744 CLR R20
0072 2755 CLR R21
0073 C002 RJMP 0x0076
0074 5F4F SUBI R20,0xFF
0075 4F5F SBCI R21,0xFF
0076 374D CPI R20,0x7D
0077 E0E0 LDI R30,0
0078 075E CPC R21,R30
0079 F3D0 BCS 0x0074
007A 0118 MOVW R2,R16
007B 5001 SUBI R16,1
007C 4010 SBCI R17,0
007D 2022 TST R2
007E F791 BNE 0x0071
007F 2033 TST R3
0080 F781 BNE 0x0071
0081 940E01D0 CALL pop_gset1
0083 9508 RET
_LCD_init:
0084 B38A IN R24,0x1A
0085 6F80 ORI R24,0xF0
0086 BB8A OUT 0x1A,R24
0087 9AD0 SBI 0x1A,0
0088 9AD1 SBI 0x1A,1
0089 E208 LDI R16,0x28
008A D014 RCALL _LCD_write_command
008B D00D RCALL _LCD_en_write
008C E208 LDI R16,0x28
008D E010 LDI R17,0
008E DFDF RCALL _delay
008F E208 LDI R16,0x28
0090 D00E RCALL _LCD_write_command
0091 E00C LDI R16,0xC
0092 D00C RCALL _LCD_write_command
0093 E001 LDI R16,1
0094 D00A RCALL _LCD_write_command
0095 E002 LDI R16,2
0096 E010 LDI R17,0
0097 DFD6 RCALL _delay
0098 9508 RET
_LCD_en_write:
0099 9AD8 SBI 0x1B,0
009A E001 LDI R16,1
009B E010 LDI R17,0
009C DFD1 RCALL _delay
009D 98D8 CBI 0x1B,0
009E 9508 RET
_LCD_write_command:
command --> R20
009F 940E01CD CALL push_gset1
00A1 2F40 MOV R20,R16
00A2 E100 LDI R16,0x10
00A3 E010 LDI R17,0
00A4 DFC9 RCALL _delay
00A5 98D9 CBI 0x1B,1
00A6 B38B IN R24,0x1B
00A7 708F ANDI R24,0xF
00A8 BB8B OUT 0x1B,R24
00A9 2F84 MOV R24,R20
00AA 7F80 ANDI R24,0xF0
00AB B22B IN R2,0x1B
00AC 2A28 OR R2,R24
00AD BA2B OUT 0x1B,R2
00AE DFEA RCALL _LCD_en_write
00AF 2F84 MOV R24,R20
00B0 708F ANDI R24,0xF
00B1 9582 SWAP R24
00B2 2F48 MOV R20,R24
00B3 B38B IN R24,0x1B
00B4 708F ANDI R24,0xF
00B5 BB8B OUT 0x1B,R24
00B6 2F84 MOV R24,R20
00B7 7F80 ANDI R24,0xF0
00B8 B22B IN R2,0x1B
00B9 2A28 OR R2,R24
00BA BA2B OUT 0x1B,R2
00BB DFDD RCALL _LCD_en_write
00BC 940E01D0 CALL pop_gset1
00BE 9508 RET
_LCD_write_data:
data --> R20
00BF 940E01CD CALL push_gset1
00C1 2F40 MOV R20,R16
00C2 E100 LDI R16,0x10
00C3 E010 LDI R17,0
00C4 DFA9 RCALL _delay
00C5 9AD9 SBI 0x1B,1
00C6 B38B IN R24,0x1B
00C7 708F ANDI R24,0xF
00C8 BB8B OUT 0x1B,R24
00C9 2F84 MOV R24,R20
00CA 7F80 ANDI R24,0xF0
00CB B22B IN R2,0x1B
00CC 2A28 OR R2,R24
00CD BA2B OUT 0x1B,R2
00CE DFCA RCALL _LCD_en_write
00CF 2F84 MOV R24,R20
00D0 708F ANDI R24,0xF
00D1 9582 SWAP R24
00D2 2F48 MOV R20,R24
00D3 B38B IN R24,0x1B
00D4 708F ANDI R24,0xF
00D5 BB8B OUT 0x1B,R24
00D6 2F84 MOV R24,R20
00D7 7F80 ANDI R24,0xF0
00D8 B22B IN R2,0x1B
00D9 2A28 OR R2,R24
00DA BA2B OUT 0x1B,R2
00DB DFBD RCALL _LCD_en_write
00DC 940E01D0 CALL pop_gset1
00DE 9508 RET
_LCD_set_xy:
address --> R20
y --> R20
x --> R22
00DF 940E01CB CALL push_gset2
00E1 2F42 MOV R20,R18
00E2 2F60 MOV R22,R16
00E3 2344 TST R20
00E4 F419 BNE 0x00E8
00E5 2F46 MOV R20,R22
00E6 5840 SUBI R20,0x80
00E7 C002 RJMP 0x00EA
00E8 2F46 MOV R20,R22
00E9 5440 SUBI R20,0x40
00EA 2F04 MOV R16,R20
00EB DFB3 RCALL _LCD_write_command
00EC 940E01BF CALL pop_gset2
00EE 9508 RET
_LCD_write_string:
s --> R20
Y --> R10
X --> R22
00EF 940E01C9 CALL push_gset3
00F1 2EA2 MOV R10,R18
00F2 2F60 MOV R22,R16
00F3 814E LDD R20,Y+6
00F4 815F LDD R21,Y+7
00F5 2D2A MOV R18,R10
00F6 2F06 MOV R16,R22
00F7 DFE7 RCALL _LCD_set_xy
00F8 C005 RJMP 0x00FE
00F9 01FA MOVW R30,R20
00FA 8100 LDD R16,Z+0
00FB DFC3 RCALL _LCD_write_data
00FC 5F4F SUBI R20,0xFF
00FD 4F5F SBCI R21,0xFF
00FE 01FA MOVW R30,R20
00FF 8020 LDD R2,Z+0
0100 2022 TST R2
0101 F7B9 BNE 0x00F9
0102 940E01C2 CALL pop_gset3
0104 9508 RET
_LCD_write_char:
data --> Y+4
Y --> R22
X --> R20
0105 940E01CB CALL push_gset2
0107 2F62 MOV R22,R18
0108 2F40 MOV R20,R16
0109 2F26 MOV R18,R22
010A 2F04 MOV R16,R20
010B DFD3 RCALL _LCD_set_xy
010C 810C LDD R16,Y+4
010D DFB1 RCALL _LCD_write_data
010E 940E01BF CALL pop_gset2
0110 9508 RET
_init_devices:
0111 94F8 BCLR 7
0112 DF71 RCALL _LCD_init
0113 2422 CLR R2
0114 BE25 OUT 0x35,R2
0115 BE2B OUT 0x3B,R2
0116 BE29 OUT 0x39,R2
0117 9478 BSET 7
0118 9508 RET
FILE: F:\USING0~1\motor\main.c
(0001) #include "main.h"
(0002)
(0003) unsigned char ReadPin(void)
(0004) {
(0005) unsigned char i;
(0006)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -