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

📄 main.s

📁 本次设计的自动往返电动小汽车
💻 S
字号:
	.module Main.c
	.area data(ram, con, rel)
_lcnt::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
	.dbsym e lcnt _lcnt I
_qcnt::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
	.dbsym e qcnt _qcnt I
	.area text(rom, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
	.dbfunc e main _main fV
	.even
_main::
	sbiw R28,2
	.dbline -1
	.dbline 25
; // main.c
; // 8/1/2005 written by MrLiu
; // 
; // Project :自动往返电动小车 
; // Target : 8515
; // Crystal : 8.0000Mhz
; // 
; 
; #include <io8515v.h>
; #include <macros.h>
; 
; #include "CarInit.h"
; #include "1602LCD.h"
; 
; #define  CTRL_ZHENG  PORTA|=0x80  // 控制正转
; #define  CTRL_FAN    PORTA&=0x7F  // 控制反转
; 
; // globals :                                     
; int lcnt=0;  // 线条数变量
; int qcnt=0;  // 车轮转数变量
; int juli[3]; // 距离数组
; unsigned int time[3]; // 时间数组
; 
; void main(void)
; {
	.dbline 26
;     LCD_init();
	rcall _LCD_init
	.dbline 27
;  	LCD_write_string(0,0,"TIME:00.0s") ;
	ldi R24,<L2
	ldi R25,>L2
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	rcall _LCD_write_string
	.dbline 28
;  	LCD_write_string(0,1,"RACE:00.0m") ;                             
	ldi R24,<L3
	ldi R25,>L3
	std y+1,R25
	std y+0,R24
	ldi R18,1
	clr R16
	rcall _LCD_write_string
	.dbline 29
;  	init_devices(); // 设备初始化
	rcall _init_devices
	.dbline 30
; 	CTRL_ZHENG; // 控制正转
	sbi 0x1b,7
	rjmp L5
L4:
	.dbline 33
; // 主循环
;  	while(lcnt<14)
;     {
	.dbline 34
; 	    if(lcnt==3)
	lds R24,_lcnt
	lds R25,_lcnt+1
	cpi R24,3
	ldi R30,0
	cpc R25,R30
	brne L7
	.dbline 35
; 		    shiftl(); // 低速行驶
	rcall _shiftl
	rjmp L8
L7:
	.dbline 36
; 		else if(lcnt==4)                    
	lds R24,_lcnt
	lds R25,_lcnt+1
	cpi R24,4
	ldi R30,0
	cpc R25,R30
	brne L9
	.dbline 37
; 		    shifth(); // 高速行驶
	rcall _shifth
	rjmp L10
L9:
	.dbline 38
; 		else if(lcnt==6)
	lds R24,_lcnt
	lds R25,_lcnt+1
	cpi R24,6
	ldi R30,0
	cpc R25,R30
	brne L11
	.dbline 39
; 	    {
	.dbline 40
; 			CTRL_FAN; // 反转制动
	in R24,0x1b
	andi R24,127
	out 0x1b,R24
	.dbline 41
; 			delay_nms(350);
	ldi R16,350
	ldi R17,1
	rcall _delay_nms
	.dbline 42
; 		    stop();   
	rcall _stop
	.dbline 43
; 			LCD_write_string(10,1,"(STOP)") ;                  
	ldi R24,<L13
	ldi R25,>L13
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,10
	rcall _LCD_write_string
	.dbline 44
; 			delay_nms(10000);	
	ldi R16,10000
	ldi R17,39
	rcall _delay_nms
	.dbline 45
; 			LCD_write_string(10,1,"      ") ;         	   	
	ldi R24,<L14
	ldi R25,>L14
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,10
	rcall _LCD_write_string
	.dbline 46
; 			lcnt=7;
	ldi R24,7
	ldi R25,0
	sts _lcnt+1,R25
	sts _lcnt,R24
	.dbline 47
; 			shifth(); // 高速行驶
	rcall _shifth
	.dbline 48
; 		}	 
	rjmp L12
L11:
	.dbline 49
;        	else if(lcnt==10)
	lds R24,_lcnt
	lds R25,_lcnt+1
	cpi R24,10
	ldi R30,0
	cpc R25,R30
	brne L15
	.dbline 50
; 		    shiftl(); // 低速行驶
	rcall _shiftl
	rjmp L16
L15:
	.dbline 51
; 		else if(lcnt==11)
	lds R24,_lcnt
	lds R25,_lcnt+1
	cpi R24,11
	ldi R30,0
	cpc R25,R30
	brne L17
	.dbline 52
; 		    shifth(); // 高速行驶
	rcall _shifth
	rjmp L18
L17:
	.dbline 53
; 		else if(lcnt>=13)
	lds R24,_lcnt
	lds R25,_lcnt+1
	cpi R24,13
	ldi R30,0
	cpc R25,R30
	brlt L19
	.dbline 54
;         {
	.dbline 55
; 			CLI();
	cli
	.dbline 56
; 			CTRL_ZHENG; // 反转制动	   
	sbi 0x1b,7
	.dbline 57
; 	        delay_nms(350);
	ldi R16,350
	ldi R17,1
	rcall _delay_nms
	.dbline 58
; 	        stop();  
	rcall _stop
	.dbline 59
; 			LCD_write_string(10,1,"(STOP)") ;                    			               
	ldi R24,<L13
	ldi R25,>L13
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,10
	rcall _LCD_write_string
	.dbline 60
; 		}
L19:
L18:
L16:
L12:
L10:
L8:
	.dbline 61
L5:
	.dbline 32
	lds R24,_lcnt
	lds R25,_lcnt+1
	cpi R24,14
	ldi R30,0
	cpc R25,R30
	brge X0
	rjmp L4
X0:
	.dbline -2
	.dbline 62
;     }
; }
L1:
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
_time::
	.blkb 6
	.dbsym e time _time A[6:3]i
_juli::
	.blkb 6
	.dbsym e juli _juli A[6:3]I
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
L14:
	.blkb 7
	.area idata
	.byte 32,32,32,32,32,32,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
L13:
	.blkb 7
	.area idata
	.byte 40,'S,'T,'O,'P,41,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
L3:
	.blkb 11
	.area idata
	.byte 'R,'A,'C,'E,58,48,48,46,48,'m,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c
L2:
	.blkb 11
	.area idata
	.byte 'T,'I,'M,'E,58,48,48,46,48,'s,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\Main.c

⌨️ 快捷键说明

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