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

📄 main.s

📁 详细介绍M8两版间通讯
💻 S
字号:
	.module main.c
	.area data(ram, con, rel)
_StartShow::
	.blkb 1
	.area idata
	.byte 255
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.dbsym e StartShow _StartShow c
_cDataBuff::
	.blkb 2
	.area idata
	.byte 1,3
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 1,0
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 0,6
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 5,1
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 3,9
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 8,10
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 10,8
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 7,8
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 0,7
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 2,2
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 6,10
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 10,6
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 1,2
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 6,4
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 2,1
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.blkb 2
	.area idata
	.byte 8,10
	.area data(ram, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.dbsym e cDataBuff _cDataBuff A[32:32]c
	.area text(rom, con, rel)
	.dbfile G:\Mega8程序\TCXO评估板\LedShow\main.c
	.dbfunc e main _main fV
;           cNum -> R20
;              p -> R22,R23
;          cTemp -> R10
	.even
_main::
	.dbline -1
	.dbline 18
; #include <iom8v.h>
; #include <macros.h>
; extern void led_init(void);
; extern void timer0_init(void);
; extern void TWI_init(void);
; extern unsigned char LedNum[8];
; 
; unsigned char StartShow=0xff;
; void Delay(unsigned int ms);
; //#pragma data:eeprom
; char cDataBuff[]={1,3,1,0,0,6,5,1,
; 									3,9,8,10,10,8,7,8,
; 									0,7,2,2,6,10,10,6,
; 									1,2,6,4,2,1,
; 									8,10}; //10用来分隔两次显示(LED熄灭)
; //#pragma data:data
; void main(void)
;  {
	.dbline 22
; 	unsigned char cTemp;
; 	unsigned char cNum;
; 	unsigned char *p;
; 	led_init();
	rcall _led_init
	.dbline 23
; 	timer0_init();
	rcall _timer0_init
	.dbline 24
; 	TWI_init();
	rcall _TWI_init
	.dbline 25
; 	SEI();
	sei
	.dbline 26
; 	for(cNum=9;cNum!=0xff;cNum--)
	ldi R20,9
	rjmp L5
L2:
	.dbline 27
	.dbline 28
	ldi R22,<_LedNum
	ldi R23,>_LedNum
	.dbline 29
	movw R30,R22
	st Z+,R20
	.dbline 30
	st Z+,R20
	.dbline 31
	st Z+,R20
	.dbline 32
	st Z+,R20
	.dbline 33
	st Z+,R20
	.dbline 34
	st Z+,R20
	.dbline 35
	st Z+,R20
	movw R22,R30
	.dbline 36
	std z+0,R20
	.dbline 37
	ldi R16,200
	ldi R17,0
	rcall _Delay
	.dbline 38
L3:
	.dbline 26
	dec R20
L5:
	.dbline 26
	cpi R20,255
	brne L2
	.dbline 39
; 	 {
; 		p=LedNum;
; 		*p++=cNum;
; 		*p++=cNum;
; 		*p++=cNum;
; 		*p++=cNum;
; 		*p++=cNum;
; 		*p++=cNum;
; 		*p++=cNum;
; 		*p=cNum;
; 		Delay(200);
; 	 }
; 	DDRC|=0b00001000;
	sbi 0x14,3
	.dbline 40
; 	PORTC&=0b11110111;//点亮指示灯
	in R24,0x15
	andi R24,247
	out 0x15,R24
	rjmp L7
L6:
	.dbline 43
; 
; 	while(1)
; 	 {
	.dbline 44
; 	 	p=LedNum;
	ldi R22,<_LedNum
	ldi R23,>_LedNum
	.dbline 45
; 		for(cNum=7;cNum!=0xff;cNum--)//将LED的8位数码管全部熄灭-全部置为10
	ldi R20,7
	rjmp L12
L9:
	.dbline 46
	.dbline 47
	ldi R24,10
	movw R30,R22
	st Z+,R24
	movw R22,R30
	.dbline 48
L10:
	.dbline 45
	dec R20
L12:
	.dbline 45
	cpi R20,255
	brne L9
	.dbline 49
; 		 {
; 			*p++=10;
; 		 }
; 		Delay(300);
	ldi R16,300
	ldi R17,1
	rcall _Delay
	.dbline 50
; 	 	StartShow=0x00;
	clr R2
	sts _StartShow,R2
	.dbline 52
; 	 	/*For为Main程序中的主循环,如果没有要求StartShow,程序将不停循环*/
; 		for(cNum=0;StartShow!=0xff;cNum++)//将LED的8位数码管向前移位,最后位用数据缓冲区的数据补充进去
	clr R20
	rjmp L16
L13:
	.dbline 53
	.dbline 54
	ldi R22,<_LedNum+7
	ldi R23,>_LedNum+7
	.dbline 55
	movw R24,R22
	sbiw R24,1
	movw R30,R24
	ldd R10,z+0
	.dbline 56
	sts _LedNum+7,R10
	.dbline 57
	sbiw R24,1
	movw R30,R24
	ldd R10,z+0
	.dbline 58
	sts _LedNum+6,R10
	.dbline 59
	sbiw R24,1
	movw R30,R24
	ldd R10,z+0
	.dbline 60
	sts _LedNum+5,R10
	.dbline 61
	sbiw R24,1
	movw R30,R24
	ldd R10,z+0
	.dbline 62
	sts _LedNum+4,R10
	.dbline 63
	sbiw R24,1
	movw R30,R24
	ldd R10,z+0
	.dbline 64
	sts _LedNum+3,R10
	.dbline 65
	sbiw R24,1
	movw R30,R24
	ldd R10,z+0
	.dbline 66
	sts _LedNum+2,R10
	.dbline 67
	sbiw R24,1
	movw R22,R24
	movw R30,R24
	ldd R10,z+0
	.dbline 68
	sts _LedNum+1,R10
	.dbline 70
	andi R20,31
	.dbline 71
	ldi R24,<_cDataBuff
	ldi R25,>_cDataBuff
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R10,z+0
	.dbline 72
	sts _LedNum,R10
	.dbline 73
	ldi R16,300
	ldi R17,1
	rcall _Delay
	.dbline 74
L14:
	.dbline 52
	inc R20
L16:
	.dbline 52
	lds R24,_StartShow
	cpi R24,255
	breq X1
	rjmp L13
X1:
	.dbline 75
L7:
	.dbline 42
	rjmp L6
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r cNum 20 c
	.dbsym r p 22 pc
	.dbsym r cTemp 10 c
	.dbend
	.dbfunc e Delay _Delay fV
;          iTemp -> R20,R21
;            iUs -> R22,R23
;             ms -> R16,R17
	.even
_Delay::
	rcall push_gset2
	.dbline -1
	.dbline 78
; 		 {		 	
; 		 	p=&LedNum[7];
; 		 	cTemp=*(--p);
; 		 	LedNum[7]=cTemp;
; 		 	cTemp=*(--p);
; 		 	LedNum[6]=cTemp;
; 		 	cTemp=*(--p);
; 		 	LedNum[5]=cTemp;
; 		 	cTemp=*(--p);
; 		 	LedNum[4]=cTemp;
; 		 	cTemp=*(--p);
; 		 	LedNum[3]=cTemp;
; 		 	cTemp=*(--p);
; 		 	LedNum[2]=cTemp;
; 		 	cTemp=*(--p);
; 		 	LedNum[1]=cTemp;
; 		 	
; 			cNum&=0b00011111;//如果超过数据缓冲区,则恢复的起始地址
; 		 	cTemp=cDataBuff[cNum];
; 		 	LedNum[0]=cTemp;
; 			Delay(300);			
; 		 }
; 	 }
;  }
; void Delay(unsigned int ms)
;  {
	.dbline 81
; 	unsigned int iTemp;
; 	unsigned int iUs;
; 	for(iTemp=ms;iTemp>0;iTemp--)
	movw R20,R16
	rjmp L29
L26:
	.dbline 82
; 	 {
	.dbline 83
	ldi R22,1000
	ldi R23,3
	rjmp L33
L30:
	.dbline 83
L31:
	.dbline 83
	subi R22,1
	sbci R23,0
L33:
	.dbline 83
	cpi R22,0
	cpc R22,R23
	brne L30
X2:
	.dbline 84
L27:
	.dbline 81
	subi R20,1
	sbci R21,0
L29:
	.dbline 81
	cpi R20,0
	cpc R20,R21
	brne L26
X3:
	.dbline -2
L25:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r iTemp 20 i
	.dbsym r iUs 22 i
	.dbsym r ms 16 i
	.dbend

⌨️ 快捷键说明

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