📄 dl.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 + -