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

📄 main.lis

📁 MEGA16单片机程序包2
💻 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 + -