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

📄 car.lst

📁 本次设计的自动往返电动小汽车
💻 LST
📖 第 1 页 / 共 5 页
字号:
    015A 2422      CLR	R2
    015B 2433      CLR	R3
    015C 9230008B  STS	_time+1,R3
    015E 9220008A  STS	_time,R2
(0075) 		        LCD_write(5,0,'0'+time[0]);
    0160 9180008A  LDS	R24,_time
    0162 9190008B  LDS	R25,_time+1
    0164 96C0      ADIW	R24,0x30
    0165 8399      STD	Y+1,R25
    0166 8388      STD	Y+0,R24
    0167 2722      CLR	R18
    0168 E005      LDI	R16,5
    0169 D251      RCALL	_LCD_write
(0076) 			} 
(0077) 	    }
(0078)     }
(0079) }
    016A 9622      ADIW	R28,2
    016B D2EB      RCALL	pop_lset
    016C 9518      RETI
(0080) 
(0081) ////////////////////////////////////////
(0082) // Function : timer1_init()
(0083) // Purpose : T/C1 PWM模式初始化
(0084) //
(0085) void timer1_init(void)
(0086) {
(0087)     TCCR1B = 0x00; //stop
_timer1_init:
    016D 2422      CLR	R2
    016E BC2E      OUT	0x2E,R2
(0088)  	TCNT1H = 0xE0; //setup
    016F EE80      LDI	R24,0xE0
    0170 BD8D      OUT	0x2D,R24
(0089)  	TCNT1L = 0xC0;
    0171 EC80      LDI	R24,0xC0
    0172 BD8C      OUT	0x2C,R24
(0090)  	OCR1AH = 0x1F;
    0173 E18F      LDI	R24,0x1F
    0174 BD8B      OUT	0x2B,R24
(0091)  	OCR1AL = 0x40;
    0175 E480      LDI	R24,0x40
    0176 BD8A      OUT	0x2A,R24
(0092)  	OCR1BH = 0xFF;
    0177 EF8F      LDI	R24,0xFF
    0178 BD89      OUT	0x29,R24
(0093)  	OCR1BL = 0xFF;
    0179 BD88      OUT	0x28,R24
(0094)  	TCCR1A = 0x63;
    017A E683      LDI	R24,0x63
    017B BD8F      OUT	0x2F,R24
(0095)  	TCCR1B = 0x01; //start Timer
    017C E081      LDI	R24,1
    017D BD8E      OUT	0x2E,R24
(0096) }
    017E 9508      RET
_int0_isr:
    017F 938A      ST	R24,-Y
    0180 939A      ST	R25,-Y
    0181 B78F      IN	R24,0x3F
    0182 938A      ST	R24,-Y
(0097) 
(0098) ////////////////////////////////////////
(0099) // Function : int0_isr()
(0100) // Purpose : INT0中断服务
(0101) //
(0102) #pragma interrupt_handler int0_isr:2
(0103) void int0_isr(void)
(0104) {
(0105)    lcnt++;//检测的线条数目
    0183 91800060  LDS	R24,0x60
    0185 91900061  LDS	R25,0x61
    0187 9601      ADIW	R24,1
    0188 93900061  STS	0x61,R25
    018A 93800060  STS	0x60,R24
(0106) }
    018C 9189      LD	R24,Y+
    018D BF8F      OUT	0x3F,R24
    018E 9199      LD	R25,Y+
    018F 9189      LD	R24,Y+
    0190 9518      RETI
_int1_isr:
    0191 D2AE      RCALL	push_lset
    0192 9722      SBIW	R28,2
(0107) ///////////////////////////////////////
(0108) // Function : int1_1sr()
(0109) // Purpose : INT1中断服务
(0110) //
(0111) #pragma interrupt_handler int1_isr:3
(0112) void int1_isr(void)
(0113) {
(0114)     qcnt++;	
    0193 91800062  LDS	R24,0x62
    0195 91900063  LDS	R25,0x63
    0197 9601      ADIW	R24,1
    0198 93900063  STS	0x63,R25
    019A 93800062  STS	0x62,R24
(0115) 	if(juli[0]!=JULI/100)
    019C 91000090  LDS	R16,_juli
    019E 91100091  LDS	R17,_juli+1
    01A0 D31F      RCALL	int2fp
    01A1 933A      ST	R19,-Y
    01A2 932A      ST	R18,-Y
    01A3 931A      ST	R17,-Y
    01A4 930A      ST	R16,-Y
    01A5 E202      LDI	R16,0x22
    01A6 E010      LDI	R17,0
    01A7 D284      RCALL	lpm32
    01A8 933A      ST	R19,-Y
    01A9 932A      ST	R18,-Y
    01AA 931A      ST	R17,-Y
    01AB 930A      ST	R16,-Y
    01AC 91000062  LDS	R16,0x62
    01AE 91100063  LDS	R17,0x63
    01B0 D30F      RCALL	int2fp
    01B1 933A      ST	R19,-Y
    01B2 932A      ST	R18,-Y
    01B3 931A      ST	R17,-Y
    01B4 930A      ST	R16,-Y
    01B5 D43A      RCALL	mpy32fs
    01B6 E10E      LDI	R16,0x1E
    01B7 E010      LDI	R17,0
    01B8 D273      RCALL	lpm32
    01B9 933A      ST	R19,-Y
    01BA 932A      ST	R18,-Y
    01BB 931A      ST	R17,-Y
    01BC 930A      ST	R16,-Y
    01BD D3AB      RCALL	div32fs
    01BE D402      RCALL	cmp32f
    01BF F131      BEQ	0x01E6
(0116)     {	
(0117) 	    juli[0]=JULI/100;
    01C0 E202      LDI	R16,0x22
    01C1 E010      LDI	R17,0
    01C2 D269      RCALL	lpm32
    01C3 933A      ST	R19,-Y
    01C4 932A      ST	R18,-Y
    01C5 931A      ST	R17,-Y
    01C6 930A      ST	R16,-Y
    01C7 91000062  LDS	R16,0x62
    01C9 91100063  LDS	R17,0x63
    01CB D2F4      RCALL	int2fp
    01CC 933A      ST	R19,-Y
    01CD 932A      ST	R18,-Y
    01CE 931A      ST	R17,-Y
    01CF 930A      ST	R16,-Y
    01D0 D41F      RCALL	mpy32fs
    01D1 E10E      LDI	R16,0x1E
    01D2 E010      LDI	R17,0
    01D3 D258      RCALL	lpm32
    01D4 933A      ST	R19,-Y
    01D5 932A      ST	R18,-Y
    01D6 931A      ST	R17,-Y
    01D7 930A      ST	R16,-Y
    01D8 D392      RCALL	div32f
    01D9 D2A8      RCALL	fp2int
    01DA 93100091  STS	_juli+1,R17
    01DC 93000090  STS	_juli,R16
(0118) 	    LCD_write(5,1,'0'+juli[0]);
    01DE 2F80      MOV	R24,R16
    01DF 2F91      MOV	R25,R17
    01E0 96C0      ADIW	R24,0x30
    01E1 8399      STD	Y+1,R25
    01E2 8388      STD	Y+0,R24
    01E3 E021      LDI	R18,1
    01E4 E005      LDI	R16,5
    01E5 D1D5      RCALL	_LCD_write
(0119) 	}                         
(0120)  	if(juli[1]!=(JULI-juli[0]*100)/10)
    01E6 91000092  LDS	R16,_juli+2
    01E8 91100093  LDS	R17,_juli+3
    01EA D2D5      RCALL	int2fp
    01EB 933A      ST	R19,-Y
    01EC 932A      ST	R18,-Y
    01ED 931A      ST	R17,-Y
    01EE 930A      ST	R16,-Y
    01EF E202      LDI	R16,0x22
    01F0 E010      LDI	R17,0
    01F1 D23A      RCALL	lpm32
    01F2 933A      ST	R19,-Y
    01F3 932A      ST	R18,-Y
    01F4 931A      ST	R17,-Y
    01F5 930A      ST	R16,-Y
    01F6 91000062  LDS	R16,0x62
    01F8 91100063  LDS	R17,0x63
    01FA D2C5      RCALL	int2fp
    01FB 933A      ST	R19,-Y
    01FC 932A      ST	R18,-Y
    01FD 931A      ST	R17,-Y
    01FE 930A      ST	R16,-Y
    01FF D3F0      RCALL	mpy32fs
    0200 91200090  LDS	R18,_juli
    0202 91300091  LDS	R19,_juli+1
    0204 E604      LDI	R16,0x64
    0205 E010      LDI	R17,0
    0206 D267      RCALL	mpy16s
    0207 D2B8      RCALL	int2fp
    0208 933A      ST	R19,-Y
    0209 932A      ST	R18,-Y
    020A 931A      ST	R17,-Y
    020B 930A      ST	R16,-Y
    020C D30D      RCALL	sub32fs
    020D E10A      LDI	R16,0x1A
    020E E010      LDI	R17,0
    020F D21C      RCALL	lpm32
    0210 933A      ST	R19,-Y
    0211 932A      ST	R18,-Y
    0212 931A      ST	R17,-Y
    0213 930A      ST	R16,-Y
    0214 D354      RCALL	div32fs
    0215 D3AB      RCALL	cmp32f
    0216 F199      BEQ	0x024A
(0121) 	{
(0122) 	    juli[1]=(JULI-juli[0]*100)/10;
    0217 E202      LDI	R16,0x22
    0218 E010      LDI	R17,0
    0219 D212      RCALL	lpm32
    021A 933A      ST	R19,-Y
    021B 932A      ST	R18,-Y
    021C 931A      ST	R17,-Y
    021D 930A      ST	R16,-Y
    021E 91000062  LDS	R16,0x62
    0220 91100063  LDS	R17,0x63
    0222 D29D      RCALL	int2fp
    0223 933A      ST	R19,-Y
    0224 932A      ST	R18,-Y
    0225 931A      ST	R17,-Y
    0226 930A      ST	R16,-Y
    0227 D3C8      RCALL	mpy32fs
    0228 91200090  LDS	R18,_juli
    022A 91300091  LDS	R19,_juli+1
    022C E604      LDI	R16,0x64
    022D E010      LDI	R17,0
    022E D23F      RCALL	mpy16s
    022F D290      RCALL	int2fp
    0230 933A      ST	R19,-Y
    0231 932A      ST	R18,-Y
    0232 931A      ST	R17,-Y
    0233 930A      ST	R16,-Y
    0234 D2E5      RCALL	sub32fs
    0235 E10A      LDI	R16,0x1A
    0236 E010      LDI	R17,0
    0237 D1F4      RCALL	lpm32
    0238 933A      ST	R19,-Y
    0239 932A      ST	R18,-Y
    023A 931A      ST	R17,-Y
    023B 930A      ST	R16,-Y
    023C D32E      RCALL	div32f
    023D D244      RCALL	fp2int
    023E 93100093  STS	_juli+3,R17
    0240 93000092  STS	_juli+2,R16
(0123) 	    LCD_write(6,1,'0'+juli[1]);
    0242 2F80      MOV	R24,R16
    0243 2F91      MOV	R25,R17
    0244 96C0      ADIW	R24,0x30
    0245 8399      STD	Y+1,R25
    0246 8388      STD	Y+0,R24
    0247 E021      LDI	R18,1
    0248 E006      LDI	R16,6
    0249 D171      RCALL	_LCD_write
(0124) 	}	
(0125)  	if(juli[2]!=JULI-juli[1]*10-juli[0]*100)
    024A 91000094  LDS	R16,0x94
    024C 91100095  LDS	R17,0x95
    024E D271      RCALL	int2fp
    024F 933A      ST	R19,-Y
    0250 932A      ST	R18,-Y
    0251 931A      ST	R17,-Y
    0252 930A      ST	R16,-Y
    0253 E202      LDI	R16,0x22
    0254 E010      LDI	R17,0
    0255 D1D6      RCALL	lpm32
    0256 933A      ST	R19,-Y
    0257 932A      ST	R18,-Y
    0258 931A      ST	R17,-Y
    0259 930A      ST	R16,-Y
    025A 91000062  LDS	R16,0x62
    025C 91100063  LDS	R17,0x63
    025E D261      RCALL	int2fp
    025F 933A      ST	R19,-Y
    0260 932A      ST	R18,-Y
    0261 931A      ST	R17,-Y
    0262 930A      ST	R16,-Y
    0263 D38C      RCALL	mpy32fs
    0264 91200092  LDS	R18,_juli+2
    0266 91300093  LDS	R19,_juli+3
    0268 E00A      LDI	R16,0xA
    0269 E010      LDI	R17,0
    026A D203      RCALL	mpy16s
    026B D254      RCALL	int2fp
    026C 933A      ST	R19,-Y
    026D 932A      ST	R18,-Y
    026E 931A      ST	R17,-Y
    026F 930A      ST	R16,-Y
    0270 D2A9      RCALL	sub32fs
    0271 91200090  LDS	R18,_juli
    0273 91300091  LDS	R19,_juli+1
    0275 E604      LDI	R16,0x64
    0276 E010      LDI	R17,0
    0277 D1F6      RCALL	mpy16s
    0278 D247      RCALL	int2fp
    0279 933A      ST	R19,-Y
    027A 932A      ST	R18,-Y
    027B 931A      ST	R17,-Y
    027C 930A      ST	R16,-Y
    027D D29C      RCALL	sub32fs
    027E D342      RCALL	cmp32f
    027F F409      BNE	0x0281
    0280 C038      RJMP	0x02B9
(0126) 	{    
(0127) 		juli[2]=JULI-juli[1]*10-juli[0]*100;
    0281 E202      LDI	R16,0x22
    0282 E010      LDI	R17,0
    0283 D1A8      RCALL	lpm32
    0284 933A      ST	R19,-Y
    0285 932A      ST	R18,-Y
    0286 931A      ST	R17,-Y
    0287 930A      ST	R16,-Y
    0288 91000062  LDS	R16,0x62
    028A 91100063  LDS	R17,0x63
    028C D233      RCALL	int2fp
    028D 933A      ST	R19,-Y
    028E 932A      ST	R18,-Y
    028F 931A      ST	R17,-Y
    0290 930A      ST	R16,-Y
    0291 D35E      RCALL	mpy32fs
    0292 91200092  LDS	R18,_juli+2
    0294 91300093  LDS	R19,_juli+3
    0296 E00A      LDI	R16,0xA
    0297 E010      LDI	R17,0
    0298 D1D5      RCALL	mpy16s
    0299 D226      RCALL	int2fp
    029A 933A      ST	R19,-Y
    029B 932A      ST	R18,-Y
    029C 931A      ST	R17,-Y
    029D 930A      ST	R16,-Y
    029E D27B      RCALL	sub32fs
    029F 91200090  LDS	R18,_juli
    02A1 91300091  LDS	R19,_juli+1
    02A3 E604      LDI	R16,0x64
    02A4 E010      LDI	R17,0
    02A5 D1C8      RCALL	mpy16s
    02A6 D219      RCALL	int2fp
    02A7 933A      ST	R19,-Y
    02A8 932A      ST	R18,-Y
    02A9 931A      ST	R17,-Y
    02AA 930A      ST	R16,-Y
    02AB D270      RCALL	sub32f
    02AC D1D5      RCALL	fp2int
    02AD 93100095  STS	0x95,R17
    02AF 93000094  STS	0x94,R16
(0128) 		LCD_write(8,1,'0'+juli[2]);
    02B1 2F80      MOV	R24,R16
    02B2 2F91      MOV	R25,R17
    02B3 96C0      ADIW	R24,0x30
    02B4 8399      STD	Y+1,R25
    02B5 8388      STD	Y+0,R24
    02B6 E021      LDI	R18,1
    02B7 E008      LDI	R16,0x8
    02B8 D102      RCALL	_LCD_write
(0129) 	}	   	
(0130) }
    02B9 9622      ADIW	R28,2
    02BA D19C      RCALL	pop_lset
    02BB 9518      RETI
(0131) 
(0132) ////////////////////////////////
(0133) // Function : init_devices()
(0134) // Purpose : 硬件初始化
(0135) //
(0136) void init_devices(void)
(0137) {
(0138)     CLI(); 
_init_devices:
    02BC 94F8      BCLR	7
(0139)  	port_init();
    02BD DE12      RCALL	_port_init
(0140)  	timer0_init();
    02BE DE1C      RCALL	_timer0_init
(0141)  	timer1_init();
    02BF DEAD      RCALL	_timer1_init
(0142)  	PORTA&=0xC0;
    02C0 B38B      IN	R24,0x1B
    02C1 7C80      ANDI	R24,0xC0
    02C2 BB8B      OUT	0x1B,R24
(0143)  	PORTB=0xFF;                                      
    02C3 EF8F      LDI	R24,0xFF
    02C4 BB88      OUT	0x18,R24
(0144)  	MCUCR = 0x0F;
    02C5 E08F      LDI	R24,0xF
    02C6 BF85      OUT	0x35,R24
(0145)  	GIMSK = 0xC0;
    02C7 EC80      LDI	R24,0xC0
    02C8 BF8B      OUT	0x3B,R24
(0146)  	TIMSK = 0x02;
    02C9 E082      LDI	R24,2
    02CA BF89      OUT	0x39,R24
(0147)  	SEI(); 
    02CB 9478      BSET	7
(0148) }
    02CC 9508      RET
(0149) 
(0150) ///////////////////////////////
(0151) // 控制车速函数

⌨️ 快捷键说明

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