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

📄 led.s

📁 本次设计的自动往返电动小汽车
💻 S
字号:
	.module led.c
	.area code(ram, con, rel)
	.area lit(rom, con, rel)
_printtable::
	.byte 63,6
	.byte 91,'O
	.byte 'f,'m
	.byte 125,7
	.byte 127,'g
	.byte 'w,124
	.byte 57,94
	.byte 'y,'q
	.byte 128
	.dbfile C:\DOCUME~1\Administrator\桌面\car\led.c
	.dbsym e printtable _printtable A[17:17]kc
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\car\led.c
	.area text(rom, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\car\led.c
	.dbfunc e led_init _led_init fV
	.even
_led_init::
	.dbline -1
	.dbline 17
; /*****************************************
;  名称: LED显示函数
;  入参:断位weizhi ,		数据data
;  备注:A口0-A口5控制0位-5位
;        B口输出数据内容
; ****************************************/
; #include <io8515v.h>
; #include <macros.h>
; #define WEIZHI PORTA
; #define DATA   PORTB
; 
; #pragma data:code
; const unsigned char printtable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
;                                   0x7f,0x67,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80};		
; #pragma data:data		
; void led_init(void)
; {
	.dbline 18
;  WEIZHI|=0x3F;
	in R24,0x1b
	ori R24,63
	out 0x1b,R24
	.dbline 19
;  DATA=0xFF;
	ldi R24,255
	out 0x18,R24
	.dbline -2
	.dbline 20
;  }				
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e led _led fV
;           data -> R20
;         weizhi -> R22,R23
	.even
_led::
	rcall push_gset2
	mov R20,R18
	mov R22,R16
	mov R23,R17
	.dbline -1
	.dbline 22
; void led(int weizhi,char data)
; {
	.dbline 23
;  led_init();
	rcall _led_init
	.dbline 24
;  switch(weizhi)
	cpi R22,0
	cpc R22,R23
	breq L5
X0:
	cpi R22,1
	ldi R30,0
	cpc R23,R30
	breq L6
	cpi R22,2
	ldi R30,0
	cpc R23,R30
	breq L7
	cpi R22,3
	ldi R30,0
	cpc R23,R30
	breq L8
	cpi R22,4
	ldi R30,0
	cpc R23,R30
	breq L9
	cpi R22,5
	ldi R30,0
	cpc R23,R30
	breq L10
	rjmp L4
X1:
	.dbline 25
; 		{
L5:
	.dbline 26
; 		case 0:WEIZHI &=0xFE;
	in R24,0x1b
	andi R24,254
	out 0x1b,R24
	.dbline 27
; 			 		  break;
	rjmp L4
L6:
	.dbline 28
; 		case 1:WEIZHI &=0xFD;
	in R24,0x1b
	andi R24,253
	out 0x1b,R24
	.dbline 29
; 			 		  break;
	rjmp L4
L7:
	.dbline 30
; 		case 2:WEIZHI &=0xFB;
	in R24,0x1b
	andi R24,251
	out 0x1b,R24
	.dbline 31
; 			 		  break;
	rjmp L4
L8:
	.dbline 32
; 		case 3:WEIZHI &=0xF7;
	in R24,0x1b
	andi R24,247
	out 0x1b,R24
	.dbline 33
; 			 		  break;
	rjmp L4
L9:
	.dbline 34
; 		case 4:WEIZHI &=0xEF;
	in R24,0x1b
	andi R24,239
	out 0x1b,R24
	.dbline 35
; 			 		  break;
	rjmp L4
L10:
	.dbline 36
; 		case 5:WEIZHI &=0xDF;
	in R24,0x1b
	andi R24,223
	out 0x1b,R24
	.dbline 37
; 			 		  break;
	.dbline 38
; 		default:      break;
L4:
	.dbline 40
; 		}
;  DATA =printtable[data];			
	ldi R24,<_printtable
	ldi R25,>_printtable
	mov R2,R20
	clr R3
	add R2,R24
	adc R3,R25
	mov R30,R2
	mov R31,R3
	lpm
	out 0x18,R0
	.dbline -2
	.dbline 41
; }
L2:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r data 20 c
	.dbsym r weizhi 22 I
	.dbend

⌨️ 快捷键说明

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