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

📄 car_init.lis

📁 本次设计的自动往返电动小汽车
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0142                   .dbfunc e int0_isr _int0_isr fV
                        .even
 0142           _int0_isr::
 0142 8A93              st -y,R24
 0144 9A93              st -y,R25
 0146 8FB7              in R24,0x3f
 0148 8A93              st -y,R24
 014A                   .dbline -1
 014A                   .dbline 107
 014A           ; 
 014A           ; ////////////////////////////////////////
 014A           ; // Function : int0_isr()
 014A           ; // Purpose : INT0中断服务
 014A           ; //
 014A           ; 
 014A           ; #pragma interrupt_handler int0_isr:2
 014A           ; void int0_isr(void)
 014A           ; {
 014A                   .dbline 108
 014A           ;    lcnt++;//检测的线条数目
 014A 80910000          lds R24,_lcnt
 014E 90910100          lds R25,_lcnt+1
 0152 0196              adiw R24,1
 0154 90930100          sts _lcnt+1,R25
 0158 80930000          sts _lcnt,R24
 015C                   .dbline -2
 015C                   .dbline 109
 015C           ; }
 015C           L27:
 015C 8991              ld R24,y+
 015E 8FBF              out 0x3f,R24
 0160 9991              ld R25,y+
 0162 8991              ld R24,y+
 0164                   .dbline 0 ; func end
 0164 1895              reti
 0166                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 B3C0              rjmp _int1_isr
                        .area text(rom, con, rel)
 0166                   .dbfile C:\DOCUME~1\Administrator\桌面\Car&Lcd\car_init.c
 0166                   .dbfunc e int1_isr _int1_isr fV
                        .even
 0166           _int1_isr::
 0166 00D0              rcall push_lset
 0168 2297              sbiw R28,2
 016A                   .dbline -1
 016A                   .dbline 117
 016A           ; ///////////////////////////////////////
 016A           ; // Function : int1_1sr()
 016A           ; // Purpose : INT1中断服务
 016A           ; //
 016A           ; 
 016A           ; #pragma interrupt_handler int1_isr:3
 016A           ; void int1_isr(void)
 016A           ; {
 016A                   .dbline 118
 016A           ;     qcnt++;   
 016A 80910000          lds R24,_qcnt
 016E 90910100          lds R25,_qcnt+1
 0172 0196              adiw R24,1
 0174 90930100          sts _qcnt+1,R25
 0178 80930000          sts _qcnt,R24
 017C                   .dbline 119
 017C           ;       juli[0]=JULI/100;                          //距离换算
 017C 00E0              ldi R16,<L29
 017E 10E0              ldi R17,>L29
 0180 00D0              rcall lpm32
 0182 3A93              st -y,R19
 0184 2A93              st -y,R18
 0186 1A93              st -y,R17
 0188 0A93              st -y,R16
 018A 00910000          lds R16,_qcnt
 018E 10910100          lds R17,_qcnt+1
 0192 00D0              rcall int2fp
 0194 3A93              st -y,R19
 0196 2A93              st -y,R18
 0198 1A93              st -y,R17
 019A 0A93              st -y,R16
 019C 00D0              rcall mpy32fs
 019E 00E0              ldi R16,<L30
 01A0 10E0              ldi R17,>L30
 01A2 00D0              rcall lpm32
 01A4 3A93              st -y,R19
 01A6 2A93              st -y,R18
 01A8 1A93              st -y,R17
 01AA 0A93              st -y,R16
 01AC 00D0              rcall div32f
 01AE 00D0              rcall fp2int
 01B0 10930100          sts _juli+1,R17
 01B4 00930000          sts _juli,R16
 01B8                   .dbline 120
 01B8           ;       juli[1]=(JULI-juli[0]*100)/10;
 01B8 00E0              ldi R16,<L29
 01BA 10E0              ldi R17,>L29
 01BC 00D0              rcall lpm32
 01BE 3A93              st -y,R19
 01C0 2A93              st -y,R18
 01C2 1A93              st -y,R17
 01C4 0A93              st -y,R16
 01C6 00910000          lds R16,_qcnt
 01CA 10910100          lds R17,_qcnt+1
 01CE 00D0              rcall int2fp
 01D0 3A93              st -y,R19
 01D2 2A93              st -y,R18
 01D4 1A93              st -y,R17
 01D6 0A93              st -y,R16
 01D8 00D0              rcall mpy32fs
 01DA 20910000          lds R18,_juli
 01DE 30910100          lds R19,_juli+1
 01E2 04E6              ldi R16,100
 01E4 10E0              ldi R17,0
 01E6 00D0              rcall mpy16s
 01E8 00D0              rcall int2fp
 01EA 3A93              st -y,R19
 01EC 2A93              st -y,R18
 01EE 1A93              st -y,R17
 01F0 0A93              st -y,R16
 01F2 00D0              rcall sub32fs
 01F4 00E0              ldi R16,<L32
 01F6 10E0              ldi R17,>L32
 01F8 00D0              rcall lpm32
 01FA 3A93              st -y,R19
 01FC 2A93              st -y,R18
 01FE 1A93              st -y,R17
 0200 0A93              st -y,R16
 0202 00D0              rcall div32f
 0204 00D0              rcall fp2int
 0206 10930300          sts _juli+2+1,R17
 020A 00930200          sts _juli+2,R16
 020E                   .dbline 121
 020E           ;       juli[2]=JULI-juli[1]*10-juli[0]*100;            
 020E 00E0              ldi R16,<L29
 0210 10E0              ldi R17,>L29
 0212 00D0              rcall lpm32
 0214 3A93              st -y,R19
 0216 2A93              st -y,R18
 0218 1A93              st -y,R17
 021A 0A93              st -y,R16
 021C 00910000          lds R16,_qcnt
 0220 10910100          lds R17,_qcnt+1
 0224 00D0              rcall int2fp
 0226 3A93              st -y,R19
 0228 2A93              st -y,R18
 022A 1A93              st -y,R17
 022C 0A93              st -y,R16
 022E 00D0              rcall mpy32fs
 0230 20910200          lds R18,_juli+2
 0234 30910300          lds R19,_juli+2+1
 0238 0AE0              ldi R16,10
 023A 10E0              ldi R17,0
 023C 00D0              rcall mpy16s
 023E 00D0              rcall int2fp
 0240 3A93              st -y,R19
 0242 2A93              st -y,R18
 0244 1A93              st -y,R17
 0246 0A93              st -y,R16
 0248 00D0              rcall sub32fs
 024A 20910000          lds R18,_juli
 024E 30910100          lds R19,_juli+1
 0252 04E6              ldi R16,100
 0254 10E0              ldi R17,0
 0256 00D0              rcall mpy16s
 0258 00D0              rcall int2fp
 025A 3A93              st -y,R19
 025C 2A93              st -y,R18
 025E 1A93              st -y,R17
 0260 0A93              st -y,R16
 0262 00D0              rcall sub32f
 0264 00D0              rcall fp2int
 0266 10930500          sts _juli+4+1,R17
 026A 00930400          sts _juli+4,R16
 026E                   .dbline 122
 026E           ;       LCD_write(5,1,'0'+juli[0]);
 026E 80910000          lds R24,_juli
 0272 90910100          lds R25,_juli+1
 0276 C096              adiw R24,48
 0278 9983              std y+1,R25
 027A 8883              std y+0,R24
 027C 21E0              ldi R18,1
 027E 05E0              ldi R16,5
 0280 00D0              rcall _LCD_write
 0282                   .dbline 123
 0282           ;       LCD_write(6,1,'0'+juli[1]);
 0282 80910200          lds R24,_juli+2
 0286 90910300          lds R25,_juli+2+1
 028A C096              adiw R24,48
 028C 9983              std y+1,R25
 028E 8883              std y+0,R24
 0290 21E0              ldi R18,1
 0292 06E0              ldi R16,6
 0294 00D0              rcall _LCD_write
 0296                   .dbline 124
 0296           ;       LCD_write(8,1,'0'+juli[2]);
 0296 80910400          lds R24,_juli+4
 029A 90910500          lds R25,_juli+4+1
 029E C096              adiw R24,48
 02A0 9983              std y+1,R25
 02A2 8883              std y+0,R24
 02A4 21E0              ldi R18,1
 02A6 08E0              ldi R16,8
 02A8 00D0              rcall _LCD_write
 02AA                   .dbline -2
 02AA                   .dbline 125
 02AA           ; }
 02AA           L28:
 02AA 2296              adiw R28,2
 02AC 00D0              rcall pop_lset
 02AE                   .dbline 0 ; func end
 02AE 1895              reti
 02B0                   .dbend
 02B0                   .dbfunc e init_devices _init_devices fV
                        .even
 02B0           _init_devices::
 02B0                   .dbline -1
 02B0                   .dbline 133
 02B0           ; 
 02B0           ; ////////////////////////////////
 02B0           ; // Function : init_devices()
 02B0           ; // Purpose : 硬件初始化
 02B0           ; //
 02B0           ; 
 02B0           ; void init_devices(void)
 02B0           ; {
 02B0                   .dbline 134
 02B0           ;     CLI(); 
 02B0 F894              cli
 02B2                   .dbline 135
 02B2           ;       port_init();
 02B2 A6DE              rcall _port_init
 02B4                   .dbline 136
 02B4           ;       timer0_init();
 02B4 B0DE              rcall _timer0_init
 02B6                   .dbline 137
 02B6           ;       timer1_init();
 02B6 33DF              rcall _timer1_init
 02B8                   .dbline 138
 02B8           ;       PORTA&=0xC0;
 02B8 8BB3              in R24,0x1b
 02BA 807C              andi R24,192
 02BC 8BBB              out 0x1b,R24
 02BE                   .dbline 139
 02BE           ;       PORTB=0xFF;                                      
 02BE 8FEF              ldi R24,255
 02C0 88BB              out 0x18,R24
 02C2                   .dbline 140
 02C2           ;       MCUCR = 0x0F;
 02C2 8FE0              ldi R24,15
 02C4 85BF              out 0x35,R24
 02C6                   .dbline 141
 02C6           ;       GIMSK = 0xC0;
 02C6 80EC              ldi R24,192
 02C8 8BBF              out 0x3b,R24
 02CA                   .dbline 142
 02CA           ;       TIMSK = 0x02;
 02CA 82E0              ldi R24,2
 02CC 89BF              out 0x39,R24
 02CE                   .dbline 143
 02CE           ;       SEI(); 
 02CE 7894              sei
 02D0                   .dbline -2
 02D0                   .dbline 144
 02D0           ; }
 02D0           L37:
 02D0                   .dbline 0 ; func end
 02D0 0895              ret
 02D2                   .dbend
 02D2                   .dbfunc e shifth _shifth fV
                        .even
 02D2           _shifth::
 02D2                   .dbline -1
 02D2                   .dbline 150
 02D2           ; 
 02D2           ; ///////////////////////////////
 02D2           ; // 控制车速函数
 02D2           ; //
 02D2           ; void shifth(void)                                                       //控制高速
 02D2           ; {
 02D2                   .dbline 151
 02D2           ;     OCR1BH = 0xFF;                                             
 02D2 8FEF              ldi R24,255
 02D4 89BD              out 0x29,R24
 02D6                   .dbline 152
 02D6           ;       OCR1BL = 0xFF;
 02D6 88BD              out 0x28,R24
 02D8                   .dbline -2
 02D8                   .dbline 153
 02D8           ; }
 02D8           L38:
 02D8                   .dbline 0 ; func end
 02D8 0895              ret
 02DA                   .dbend
 02DA                   .dbfunc e stop _stop fV
                        .even
 02DA           _stop::
 02DA                   .dbline -1
 02DA                   .dbline 156
 02DA           ; 
 02DA           ; void stop(void)                                                                 //制动
 02DA           ; {
 02DA                   .dbline 157
 02DA           ;     OCR1BH = 0x00;                                             
 02DA 2224              clr R2
 02DC 29BC              out 0x29,R2
 02DE                   .dbline 158
 02DE           ;       OCR1BL = 0x00;
 02DE 28BC              out 0x28,R2
 02E0                   .dbline -2
 02E0                   .dbline 159
 02E0           ; }
 02E0           L39:
 02E0                   .dbline 0 ; func end
 02E0 0895              ret
 02E2                   .dbend
 02E2                   .dbfunc e shiftl _shiftl fV
                        .even
 02E2           _shiftl::
 02E2                   .dbline -1
 02E2                   .dbline 162
 02E2           ; 
 02E2           ; void shiftl(void)                                                       //控制低速
 02E2           ; {
 02E2                   .dbline 163
 02E2           ;     OCR1BH = 0x01;                                             
 02E2 81E0              ldi R24,1
 02E4 89BD              out 0x29,R24
 02E6                   .dbline 164
 02E6           ;       OCR1BL = 0x7F;
 02E6 8FE7              ldi R24,127
 02E8 88BD              out 0x28,R24
 02EA                   .dbline -2
 02EA                   .dbline 165
 02EA           ; }
 02EA           L40:
 02EA                   .dbline 0 ; func end
 02EA 0895              ret
 02EC                   .dbend
                        .area lit(rom, con, rel)
 0000           L32:
 0000 00002041          .word 0x0,0x4120
 0004           L30:
 0004 0000C842          .word 0x0,0x42c8
 0008           L29:
 0008 6891AD3F          .word 0x9168,0x3fad

⌨️ 快捷键说明

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