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

📄 main.lis

📁 本次设计的自动往返电动小汽车
💻 LIS
字号:
                        .module Main.c
                        .area data(ram, con, rel)
 0000           _lcnt::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
 0002                   .dbsym e lcnt _lcnt I
 0002           _qcnt::
 0002                   .blkb 2
                        .area idata
 0002 0000              .word 0
                        .area data(ram, con, rel)
 0004                   .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
 0004                   .dbsym e qcnt _qcnt I
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000 2297              sbiw R28,2
 0002                   .dbline -1
 0002                   .dbline 25
 0002           ; // main.c
 0002           ; // 8/1/2005 written by MrLiu
 0002           ; // 
 0002           ; // Project :自动往返电动小车 
 0002           ; // Target : 8515
 0002           ; // Crystal : 8.0000Mhz
 0002           ; // 
 0002           ; 
 0002           ; #include <io8515v.h>
 0002           ; #include <macros.h>
 0002           ; 
 0002           ; #include "CarInit.h"
 0002           ; #include "1602LCD.h"
 0002           ; 
 0002           ; #define  CTRL_ZHENG  PORTA|=0x80  // 控制正转
 0002           ; #define  CTRL_FAN    PORTA&=0x7F  // 控制反转
 0002           ; 
 0002           ; // globals :                                     
 0002           ; int lcnt=0;  // 线条数变量
 0002           ; int qcnt=0;  // 车轮转数变量
 0002           ; int juli[3]; // 距离数组
 0002           ; unsigned int time[3]; // 时间数组
 0002           ; 
 0002           ; void main(void)
 0002           ; {
 0002                   .dbline 26
 0002           ;     LCD_init();
 0002 00D0              rcall _LCD_init
 0004                   .dbline 27
 0004           ;       LCD_write_string(0,0,"TIME:00.0s") ;
 0004 80E0              ldi R24,<L2
 0006 90E0              ldi R25,>L2
 0008 9983              std y+1,R25
 000A 8883              std y+0,R24
 000C 2227              clr R18
 000E 0027              clr R16
 0010 00D0              rcall _LCD_write_string
 0012                   .dbline 28
 0012           ;       LCD_write_string(0,1,"RACE:00.0m") ;                             
 0012 80E0              ldi R24,<L3
 0014 90E0              ldi R25,>L3
 0016 9983              std y+1,R25
 0018 8883              std y+0,R24
 001A 21E0              ldi R18,1
 001C 0027              clr R16
 001E 00D0              rcall _LCD_write_string
 0020                   .dbline 29
 0020           ;       init_devices(); // 设备初始化
 0020 00D0              rcall _init_devices
 0022                   .dbline 30
 0022           ;       CTRL_ZHENG; // 控制正转
 0022 DF9A              sbi 0x1b,7
 0024 65C0              rjmp L5
 0026           L4:
 0026                   .dbline 33
 0026           ; // 主循环
 0026           ;       while(lcnt<14)
 0026           ;     {
 0026                   .dbline 34
 0026           ;           if(lcnt==3)
 0026 80910000          lds R24,_lcnt
 002A 90910100          lds R25,_lcnt+1
 002E 8330              cpi R24,3
 0030 E0E0              ldi R30,0
 0032 9E07              cpc R25,R30
 0034 11F4              brne L7
 0036                   .dbline 35
 0036           ;                   shiftl(); // 低速行驶
 0036 00D0              rcall _shiftl
 0038 5BC0              rjmp L8
 003A           L7:
 003A                   .dbline 36
 003A           ;               else if(lcnt==4)                    
 003A 80910000          lds R24,_lcnt
 003E 90910100          lds R25,_lcnt+1
 0042 8430              cpi R24,4
 0044 E0E0              ldi R30,0
 0046 9E07              cpc R25,R30
 0048 11F4              brne L9
 004A                   .dbline 37
 004A           ;                   shifth(); // 高速行驶
 004A 00D0              rcall _shifth
 004C 51C0              rjmp L10
 004E           L9:
 004E                   .dbline 38
 004E           ;               else if(lcnt==6)
 004E 80910000          lds R24,_lcnt
 0052 90910100          lds R25,_lcnt+1
 0056 8630              cpi R24,6
 0058 E0E0              ldi R30,0
 005A 9E07              cpc R25,R30
 005C 01F5              brne L11
 005E                   .dbline 39
 005E           ;           {
 005E                   .dbline 40
 005E           ;                       CTRL_FAN; // 反转制动
 005E 8BB3              in R24,0x1b
 0060 8F77              andi R24,127
 0062 8BBB              out 0x1b,R24
 0064                   .dbline 41
 0064           ;                       delay_nms(350);
 0064 0EE5              ldi R16,350
 0066 11E0              ldi R17,1
 0068 00D0              rcall _delay_nms
 006A                   .dbline 42
 006A           ;                   stop();   
 006A 00D0              rcall _stop
 006C                   .dbline 43
 006C           ;                       LCD_write_string(10,1,"(STOP)") ;                  
 006C 80E0              ldi R24,<L13
 006E 90E0              ldi R25,>L13
 0070 9983              std y+1,R25
 0072 8883              std y+0,R24
 0074 21E0              ldi R18,1
 0076 0AE0              ldi R16,10
 0078 00D0              rcall _LCD_write_string
 007A                   .dbline 44
 007A           ;                       delay_nms(10000);       
 007A 00E1              ldi R16,10000
 007C 17E2              ldi R17,39
 007E 00D0              rcall _delay_nms
 0080                   .dbline 45
 0080           ;                       LCD_write_string(10,1,"      ") ;                       
 0080 80E0              ldi R24,<L14
 0082 90E0              ldi R25,>L14
 0084 9983              std y+1,R25
 0086 8883              std y+0,R24
 0088 21E0              ldi R18,1
 008A 0AE0              ldi R16,10
 008C 00D0              rcall _LCD_write_string
 008E                   .dbline 46
 008E           ;                       lcnt=7;
 008E 87E0              ldi R24,7
 0090 90E0              ldi R25,0
 0092 90930100          sts _lcnt+1,R25
 0096 80930000          sts _lcnt,R24
 009A                   .dbline 47
 009A           ;                       shifth(); // 高速行驶
 009A 00D0              rcall _shifth
 009C                   .dbline 48
 009C           ;               }        
 009C 29C0              rjmp L12
 009E           L11:
 009E                   .dbline 49
 009E           ;               else if(lcnt==10)
 009E 80910000          lds R24,_lcnt
 00A2 90910100          lds R25,_lcnt+1
 00A6 8A30              cpi R24,10
 00A8 E0E0              ldi R30,0
 00AA 9E07              cpc R25,R30
 00AC 11F4              brne L15
 00AE                   .dbline 50
 00AE           ;                   shiftl(); // 低速行驶
 00AE 00D0              rcall _shiftl
 00B0 1FC0              rjmp L16
 00B2           L15:
 00B2                   .dbline 51
 00B2           ;               else if(lcnt==11)
 00B2 80910000          lds R24,_lcnt
 00B6 90910100          lds R25,_lcnt+1
 00BA 8B30              cpi R24,11
 00BC E0E0              ldi R30,0
 00BE 9E07              cpc R25,R30
 00C0 11F4              brne L17
 00C2                   .dbline 52
 00C2           ;                   shifth(); // 高速行驶
 00C2 00D0              rcall _shifth
 00C4 15C0              rjmp L18
 00C6           L17:
 00C6                   .dbline 53
 00C6           ;               else if(lcnt>=13)
 00C6 80910000          lds R24,_lcnt
 00CA 90910100          lds R25,_lcnt+1
 00CE 8D30              cpi R24,13
 00D0 E0E0              ldi R30,0
 00D2 9E07              cpc R25,R30
 00D4 6CF0              brlt L19
 00D6                   .dbline 54
 00D6           ;         {
 00D6                   .dbline 55
 00D6           ;                       CLI();
 00D6 F894              cli
 00D8                   .dbline 56
 00D8           ;                       CTRL_ZHENG; // 反转制动    
 00D8 DF9A              sbi 0x1b,7
 00DA                   .dbline 57
 00DA           ;               delay_nms(350);
 00DA 0EE5              ldi R16,350
 00DC 11E0              ldi R17,1
 00DE 00D0              rcall _delay_nms
 00E0                   .dbline 58
 00E0           ;               stop();  
 00E0 00D0              rcall _stop
 00E2                   .dbline 59
 00E2           ;                       LCD_write_string(10,1,"(STOP)") ;                                                      
 00E2 80E0              ldi R24,<L13
 00E4 90E0              ldi R25,>L13
 00E6 9983              std y+1,R25
 00E8 8883              std y+0,R24
 00EA 21E0              ldi R18,1
 00EC 0AE0              ldi R16,10
 00EE 00D0              rcall _LCD_write_string
 00F0                   .dbline 60
 00F0           ;               }
 00F0           L19:
 00F0           L18:
 00F0           L16:
 00F0           L12:
 00F0           L10:
 00F0           L8:
 00F0                   .dbline 61
 00F0           L5:
 00F0                   .dbline 32
 00F0 80910000          lds R24,_lcnt
 00F4 90910100          lds R25,_lcnt+1
 00F8 8E30              cpi R24,14
 00FA E0E0              ldi R30,0
 00FC 9E07              cpc R25,R30
 00FE 0CF4              brge X0
 0100 92CF              rjmp L4
 0102           X0:
 0102                   .dbline -2
 0102                   .dbline 62
 0102           ;     }
 0102           ; }
 0102           L1:
 0102 2296              adiw R28,2
 0104                   .dbline 0 ; func end
 0104 0895              ret
 0106                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
 0000           _time::
 0000                   .blkb 6
 0006                   .dbsym e time _time A[6:3]i
 0006           _juli::
 0006                   .blkb 6
 000C                   .dbsym e juli _juli A[6:3]I
                        .area data(ram, con, rel)
 0004                   .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
 0004           L14:
 0004                   .blkb 7
                        .area idata
 0004 20202020202000    .byte 32,32,32,32,32,32,0
                        .area data(ram, con, rel)
 000B                   .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
 000B           L13:
 000B                   .blkb 7
                        .area idata
 000B 2853544F502900    .byte 40,'S,'T,'O,'P,41,0
                        .area data(ram, con, rel)
 0012                   .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
 0012           L3:
 0012                   .blkb 11
                        .area idata
 0012 524143453A30302E306D00    .byte 'R,'A,'C,'E,58,48,48,46,48,'m,0
                        .area data(ram, con, rel)
 001D                   .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
 001D           L2:
 001D                   .blkb 11
                        .area idata
 001D 54494D453A30302E307300    .byte 'T,'I,'M,'E,58,48,48,46,48,'s,0
                        .area data(ram, con, rel)
 0028                   .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c

⌨️ 快捷键说明

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