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

📄 main.s

📁 MEGA16单片机程序包2
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile F:\USING0~1\motor\main.c
	.dbfunc e ReadPin _ReadPin fc
;              i -> R16
	.even
_ReadPin::
	.dbline -1
	.dbline 4
; #include "main.h"
; 
; unsigned char ReadPin(void)
; {
	.dbline 9
;  unsigned char i;
;  
; /* 定义上拉电阻和设置高电平输出 */
; /* 为端口引脚定义方向 */
; PORTC = 0XFF;
	ldi R24,255
	out 0x15,R24
	.dbline 10
; DDRC = 0X00;
	clr R2
	out 0x14,R2
	.dbline 12
; /* 为了同步插入nop 指令*/
; _NOP();
	nop
	.dbline 14
; /* 读取端口引脚*/
; i = PINC;
	in R16,0x13
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e car_turn _car_turn fV
;            mes -> R20
	.even
_car_turn::
	xcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 18
; }
; 
; void  car_turn(unsigned char mes)
; {
	.dbline 19
;   switch(mes)
	clr R21
	cpi R20,248
	ldi R30,0
	cpc R21,R30
	breq L6
	cpi R20,249
	ldi R30,0
	cpc R21,R30
	breq L7
	cpi R20,250
	ldi R30,0
	cpc R21,R30
	breq L8
	cpi R20,251
	ldi R30,0
	cpc R21,R30
	brne X1
	xjmp L9
X1:
	cpi R20,252
	ldi R30,0
	cpc R21,R30
	brne X2
	xjmp L10
X2:
	cpi R20,253
	ldi R30,0
	cpc R21,R30
	brne X3
	xjmp L11
X3:
	cpi R20,254
	ldi R30,0
	cpc R21,R30
	brne X4
	xjmp L12
X4:
	cpi R20,255
	ldi R30,0
	cpc R21,R30
	brne X5
	xjmp L13
X5:
	xjmp L4
X0:
	.dbline 20
;        {
L6:
	.dbline 21
; 	    case 0xf8:  forward();                     break;
	xcall _forward
	.dbline 21
	xjmp L4
L7:
	.dbline 23
; 		
; 		case 0xf9:  {
	.dbline 24
; 					  back_left();
	xcall _back_left
	.dbline 25
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 26
; 					  car_stop();
	xcall _car_stop
	.dbline 27
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 28
; 					  for_right(); 
	xcall _for_right
	.dbline 29
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 30
; 					};                             break;
	.dbline 30
	.dbline 30
	xjmp L4
L8:
	.dbline 32
; 					
; 		case 0xfa:  {
	.dbline 33
; 		            backward();
	xcall _backward
	.dbline 34
; 		            delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 35
; 					for_left();
	xcall _for_left
	.dbline 36
; 					delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 37
; 					};                             break;
	.dbline 37
	.dbline 37
	xjmp L4
L9:
	.dbline 40
; 					
; 					                             
; 		case 0xfb:  {
	.dbline 41
; 		              back_left(); 
	xcall _back_left
	.dbline 42
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 43
; 					  car_stop();
	xcall _car_stop
	.dbline 44
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 45
; 					  for_right();
	xcall _for_right
	.dbline 46
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 47
; 					};                             break;
	.dbline 47
	.dbline 47
	xjmp L4
L10:
	.dbline 49
; 					
; 		case 0xfc:  {
	.dbline 50
; 		              back_right();
	xcall _back_right
	.dbline 51
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 52
; 					  car_stop();
	xcall _car_stop
	.dbline 53
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 54
; 					  for_left();
	xcall _for_left
	.dbline 55
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 56
; 				    };                             break;
	.dbline 56
	.dbline 56
	xjmp L4
L11:
	.dbline 58
; 					
; 		case 0xfd:    forward();                   break;
	xcall _forward
	.dbline 58
	xjmp L4
L12:
	.dbline 60
; 		
; 		case 0xfe:  {
	.dbline 61
; 		              back_right();
	xcall _back_right
	.dbline 62
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 63
; 					  car_stop();
	xcall _car_stop
	.dbline 64
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 65
; 					  for_left();
	xcall _for_left
	.dbline 66
; 					  delay(1000);
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 67
; 					};                             break;
	.dbline 67
	.dbline 67
	xjmp L4
L13:
	.dbline 69
	.dbline 70
	xcall _backward
	.dbline 71
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 72
	xcall _for_left
	.dbline 73
	ldi R16,1000
	ldi R17,3
	xcall _delay
	.dbline 74
	.dbline 74
	.dbline 76
L4:
	.dbline -2
L2:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r mes 20 c
	.dbend
	.dbfunc e main _main fV
;            pin -> R20
	.even
_main::
	.dbline -1
	.dbline 83
; 					
; 		case 0xff:  {
; 		              backward(); 
; 		              delay(1000);
; 					  for_left();
; 					  delay(1000);
; 					}                              break; 
; 					
;         default:                                   break;
; 		
; 		}
; }
; 
; 
; void main()
; {
	.dbline 84
;  unsigned char pin = 0x00;
	clr R20
	xjmp L16
L15:
	.dbline 86
	.dbline 87
	xcall _ReadPin
	mov R20,R16
	.dbline 88
	xcall _car_turn
	.dbline 89
L16:
	.dbline 85
	xjmp L15
X6:
	.dbline -2
L14:
	.dbline 0 ; func end
	ret
	.dbsym r pin 20 c
	.dbend

⌨️ 快捷键说明

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