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

📄 main.lis

📁 MEGA16单片机程序包2
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\USING0~1\motor_line\main.c
 0000                   .dbfunc e delay _delay fV
 0000           ;              i -> R20,R21
 0000           ;              n -> R16,R17
                        .even
 0000           _delay::
 0000 0E940000          xcall push_gset1
 0004                   .dbline -1
 0004                   .dbline 4
 0004           ; #include "main.h"
 0004           ; 
 0004           ; void delay(unsigned int n)       //N ms延时函数 
 0004           ;   { 
 0004 09C0              xjmp L3
 0006           L2:
 0006                   .dbline 7
 0006 4427              clr R20
 0008 5527              clr R21
 000A 02C0              xjmp L8
 000C           L5:
 000C                   .dbline 7
 000C           L6:
 000C                   .dbline 7
 000C 4F5F              subi R20,255  ; offset = 1
 000E 5F4F              sbci R21,255
 0010           L8:
 0010                   .dbline 7
 0010 4D37              cpi R20,125
 0012 E0E0              ldi R30,0
 0014 5E07              cpc R21,R30
 0016 D0F3              brlo L5
 0018           L3:
 0018                   .dbline 6
 0018           ;    unsigned int i;
 0018           ;    while(n--) 
 0018 1801              movw R2,R16
 001A 0150              subi R16,1
 001C 1040              sbci R17,0
 001E 2220              tst R2
 0020 91F7              brne L2
 0022 3320              tst R3
 0024 81F7              brne L2
 0026           X0:
 0026                   .dbline -2
 0026           L1:
 0026 0E940000          xcall pop_gset1
 002A                   .dbline 0 ; func end
 002A 0895              ret
 002C                   .dbsym r i 20 i
 002C                   .dbsym r n 16 i
 002C                   .dbend
 002C                   .dbfunc e ReadPin _ReadPin fc
 002C           ;              i -> R16
                        .even
 002C           _ReadPin::
 002C                   .dbline -1
 002C                   .dbline 11
 002C           ;    for (i=0;i<125;i++); 
 002C           ;   } 
 002C           ;   
 002C           ; unsigned char ReadPin(void)
 002C           ; {
 002C                   .dbline 16
 002C           ;  unsigned char i;
 002C           ;  
 002C           ; /* 定义上拉电阻和设置高电平输出 */
 002C           ; /* 为端口引脚定义方向 */
 002C           ; PORTC = 0XFF;
 002C 8FEF              ldi R24,255
 002E 85BB              out 0x15,R24
 0030                   .dbline 17
 0030           ; DDRC = 0X00;
 0030 2224              clr R2
 0032 24BA              out 0x14,R2
 0034                   .dbline 19
 0034           ; /* 为了同步插入nop 指令*/
 0034           ; _NOP();
 0034 0000              nop
 0036                   .dbline 21
 0036           ; /* 读取端口引脚*/
 0036           ; i = PINC;
 0036 03B3              in R16,0x13
 0038                   .dbline -2
 0038           L9:
 0038                   .dbline 0 ; func end
 0038 0895              ret
 003A                   .dbsym r i 16 c
 003A                   .dbend
 003A                   .dbfunc e car_turn _car_turn fV
 003A           ;            mes -> R20
                        .even
 003A           _car_turn::
 003A 0E940000          xcall push_gset1
 003E 402F              mov R20,R16
 0040                   .dbline -1
 0040                   .dbline 25
 0040           ; }
 0040           ; 
 0040           ; void  car_turn(unsigned char mes)
 0040           ; {
 0040                   .dbline 26
 0040           ;   switch(mes)
 0040 5527              clr R21
 0042 473E              cpi R20,231
 0044 E0E0              ldi R30,0
 0046 5E07              cpc R21,R30
 0048 71F1              breq L17
 004A 87EE              ldi R24,231
 004C 90E0              ldi R25,0
 004E 8417              cp R24,R20
 0050 9507              cpc R25,R21
 0052 6CF0              brlt L21
 0054           L20:
 0054 4F3C              cpi R20,207
 0056 E0E0              ldi R30,0
 0058 5E07              cpc R21,R30
 005A 41F1              breq L18
 005C 4F3C              cpi R20,207
 005E E0E0              ldi R30,0
 0060 5E07              cpc R21,R30
 0062 54F1              brlt L11
 0064           L22:
 0064 4F3D              cpi R20,223
 0066 E0E0              ldi R30,0
 0068 5E07              cpc R21,R30
 006A D1F0              breq L16
 006C 25C0              xjmp L11
 006E           L21:
 006E 473F              cpi R20,247
 0070 E0E0              ldi R30,0
 0072 5E07              cpc R21,R30
 0074 79F0              breq L14
 0076 87EF              ldi R24,247
 0078 90E0              ldi R25,0
 007A 8417              cp R24,R20
 007C 9507              cpc R25,R21
 007E 2CF0              brlt L24
 0080           L23:
 0080 4F3E              cpi R20,239
 0082 E0E0              ldi R30,0
 0084 5E07              cpc R21,R30
 0086 49F0              breq L15
 0088 17C0              xjmp L11
 008A           L24:
 008A 4F3F              cpi R20,255
 008C E0E0              ldi R30,0
 008E 5E07              cpc R21,R30
 0090 81F0              breq L19
 0092 12C0              xjmp L11
 0094           X1:
 0094                   .dbline 27
 0094           ;        {
 0094           L14:
 0094                   .dbline 28
 0094           ;           case 0xf7:  for_left();                     break;
 0094 0E940000          xcall _for_left
 0098                   .dbline 28
 0098 11C0              xjmp L12
 009A           L15:
 009A                   .dbline 30
 009A           ;               
 009A           ;               case 0xef:  forward();                      break;
 009A 0E940000          xcall _forward
 009E                   .dbline 30
 009E 0EC0              xjmp L12
 00A0           L16:
 00A0                   .dbline 32
 00A0           ;                                       
 00A0           ;               case 0xdf:  for_right();                    break;
 00A0 0E940000          xcall _for_right
 00A4                   .dbline 32
 00A4 0BC0              xjmp L12
 00A6           L17:
 00A6                   .dbline 34
 00A6           ;                           
 00A6           ;               case 0xe7:  for_left();                     break;
 00A6 0E940000          xcall _for_left
 00AA                   .dbline 34
 00AA 08C0              xjmp L12
 00AC           L18:
 00AC                   .dbline 36
 00AC           ;                             
 00AC           ;               case 0xcf:  for_right();                    break;
 00AC 0E940000          xcall _for_right
 00B0                   .dbline 36
 00B0 05C0              xjmp L12
 00B2           L19:
 00B2                   .dbline 38
 00B2           ;               
 00B2           ;               case 0xff:  backward();                     break;
 00B2 0E940000          xcall _backward
 00B6                   .dbline 38
 00B6 02C0              xjmp L12
 00B8           L11:
 00B8                   .dbline 40
 00B8 0E940000          xcall _forward
 00BC                   .dbline 40
 00BC           L12:
 00BC                   .dbline -2
 00BC           L10:
 00BC 0E940000          xcall pop_gset1
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbsym r mes 20 c
 00C2                   .dbend
 00C2                   .dbfunc e main _main fV
 00C2           ;            pin -> R20
                        .even
 00C2           _main::
 00C2                   .dbline -1
 00C2                   .dbline 47
 00C2           ;               
 00C2           ;               default:    forward();                      break;             
 00C2           ;                                                   
 00C2           ;               }
 00C2           ; }
 00C2           ; 
 00C2           ; 
 00C2           ; void main()
 00C2           ; {
 00C2                   .dbline 48
 00C2           ;  unsigned char pin = 0x00;
 00C2 4427              clr R20
 00C4 03C0              xjmp L27
 00C6           L26:
 00C6                   .dbline 50
 00C6                   .dbline 51
 00C6 B2DF              xcall _ReadPin
 00C8 402F              mov R20,R16
 00CA                   .dbline 52
 00CA B7DF              xcall _car_turn
 00CC                   .dbline 53
 00CC           L27:
 00CC                   .dbline 49
 00CC FCCF              xjmp L26
 00CE           X2:
 00CE                   .dbline -2
 00CE           L25:
 00CE                   .dbline 0 ; func end
 00CE 0895              ret
 00D0                   .dbsym r pin 20 c
 00D0                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -