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

📄 dl.s

📁 AVR单片机控制发光二极管的源代码
💻 S
字号:
	.module dl.c
	.area text(rom, con, rel)
	.dbfile dl.c
	.dbfunc e delay _delay fV
;              x -> R16,R17
	.even
_delay::
	.dbline -1
	.dbline 16
; #include<iom8v.h>		//包含ATMEGA8的头文件
; #include<macros.h>		//包含一些常用宏的定义
; //#define osccal 0xaa//内部RC 校正常数
; #define fosc 8000000 //晶振8MHZ
; #define baud 4800 //波特率
; #define osccal_addr         0x1ff
; //内部晶体震荡器校正字存放地址
; #define uint unsigned int
; #define uchar unsigned char
; 
; uint j;
; uchar t;
; ///////////////延时
; void delay(unsigned int x)
; 
; {
	rjmp L3
L2:
	.dbline 18
;    while(x-->0)
;     {
	.dbline 19
;     for(j=0;j<5;j++)
	clr R2
	clr R3
	sts _j+1,R3
	sts _j,R2
	rjmp L8
L5:
	.dbline 20
	.dbline 20
	.dbline 20
L6:
	.dbline 19
	lds R24,_j
	lds R25,_j+1
	adiw R24,1
	sts _j+1,R25
	sts _j,R24
L8:
	.dbline 19
	lds R24,_j
	lds R25,_j+1
	cpi R24,5
	ldi R30,0
	cpc R25,R30
	brlo L5
	.dbline 21
L3:
	.dbline 17
	movw R2,R16
	subi R16,1
	sbci R17,0
	tst R2
	brne L2
	tst R3
	brne L2
X0:
	.dbline -2
	.dbline 22
;     {;}
;     }
; }
L1:
	.dbline 0 ; func end
	ret
	.dbsym r x 16 i
	.dbend
	.dbfunc e EEPROM_read _EEPROM_read fc
;      uiAddress -> R16,R17
	.even
_EEPROM_read::
	.dbline -1
	.dbline 25
L10:
	.dbline 25
L11:
	.dbline 25
; 
; unsigned char EEPROM_read(unsigned int uiAddress)
; {while(EECR&(1<<EEWE));
	sbic 0x1c,1
	rjmp L10
	.dbline 26
;  EEAR=uiAddress;
	out 0x1f,R17
	out 0x1e,R16
	.dbline 27
;  EECR|=(1<<EERE);
	sbi 0x1c,0
	.dbline 28
;  return EEDR;
	in R16,0x1d
	.dbline -2
L9:
	.dbline 0 ; func end
	ret
	.dbsym r uiAddress 16 i
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 33
; }
; 
; 
; void main(void)
; { 
	.dbline 34
;    delay(200);
	ldi R16,200
	ldi R17,0
	rcall _delay
	.dbline 35
;    OSCCAL=EEPROM_read(osccal_addr);   //D£?y?ú2?RC??μ′μ??μ?ê
	ldi R16,511
	ldi R17,1
	rcall _EEPROM_read
	out 0x31,R16
	.dbline 36
;    DDRB=0xfe;
	ldi R24,254
	out 0x17,R24
	.dbline 37
;     DDRC=0xff;
	ldi R24,255
	out 0x14,R24
	.dbline 39
; 	
; 	PORTC&=~(1<<5);
	cbi 0x15,5
	rjmp L15
L14:
	.dbline 41
; 	while(1)
; 	{
	.dbline 42
; 	t=(PINB&0x01);
	in R24,0x16
	andi R24,1
	sts _t,R24
	.dbline 43
; 	if(t==0)
	tst R24
	brne L17
	.dbline 44
; 	{
	.dbline 45
; 	PORTC|=(1<<5);
	sbi 0x15,5
	.dbline 46
; 	delay(50000);
	ldi R16,50000
	ldi R17,195
	rcall _delay
	.dbline 47
; 	}
	rjmp L18
L17:
	.dbline 49
; 	else
; 	{
	.dbline 50
; 	PORTC&=~(1<<5);
	cbi 0x15,5
	.dbline 51
; 	delay(50000);
	ldi R16,50000
	ldi R17,195
	rcall _delay
	.dbline 52
; 	}
L18:
	.dbline 53
L15:
	.dbline 40
	rjmp L14
X1:
	.dbline -2
	.dbline 54
; 	}
; }
L13:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile dl.c
_t::
	.blkb 1
	.dbsym e t _t c
_j::
	.blkb 2
	.dbsym e j _j i

⌨️ 快捷键说明

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