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

📄 main.s

📁 基于AVR单片机的ADC0808模数转换程序.
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile E:\数据采集作业\ADC0809+AVR/0809.h
	.dbfunc e delayms _delayms fV
;              j -> R20,R21
;              i -> R16,R17
	.even
_delayms::
	rcall push_gset1
	.dbline -1
	.dbline 11
; //ICC-AVR application builder : 2007-8-31 下午 06:40:58
; // Target : M8
; // Crystal: 4.0000Mhz
; 
; #include <iom8v.h>
; #include <macros.h>
; #include "0809.h"
; #include "SPIshow.h"
; void port_init(void)
; {
;  PORTB = 0x00;
	.dbline 13
;  DDRB  = 0xff;
;  PORTC = 0x00; //m103 output only
	rjmp L5
L2:
	.dbline 14
;  DDRC  = 0x00;
	ldi R20,4000
	ldi R21,15
	rjmp L9
L6:
	.dbline 15
L7:
	.dbline 14
	subi R20,1
	sbci R21,0
L9:
	.dbline 14
	cpi R20,0
	cpc R20,R21
	brne L6
X0:
L3:
	.dbline 13
	subi R16,1
	sbci R17,0
L5:
	.dbline 13
	cpi R16,0
	cpc R16,R17
	brne L2
X1:
	.dbline -2
L1:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r j 20 i
	.dbsym r i 16 i
	.dbend
	.dbfunc e ADC0909 _ADC0909 fI
;           data -> y+0
;        channel -> R10
	.even
_ADC0909::
	rcall push_gset3
	mov R10,R16
	sbiw R28,4
	.dbline -1
	.dbline 20
;  PORTD = 0xff;
;  DDRD  = 0x00;
; }
; 
; //call this routine to initialize all peripherals
; void init_devices(void)
	.dbline 22
; {
;  //stop errant interrupts until set up
	clr R2
	out 0x11,R2
	.dbline 23
;  CLI(); //disable all interrupts
	in R24,0x17
	ori R24,7
	out 0x17,R24
	.dbline 24
;  port_init();
	in R24,0x18
	andi R24,248
	out 0x18,R24
	.dbline 43
;  spi_init();
;  
;  MCUCR = 0x00;
;  GICR  = 0x00;
;  TIMSK = 0x00; //timer interrupt sources
;  SEI(); //re-enable interrupts
;  //all peripherals are now initialized
; }
; 
; void main(void)
; {
;  unsigned long su;
;  init_devices();
;  while(1)
;  {
;   su=ADC0909(0);
;   process(su,data);
;   display(data);
;   delayms(100);
	ldi R24,5
	out 0x14,R24
	.dbline 45
;   }
;  }
	in R24,0x15
	andi R24,250
	out 0x15,R24
	.dbline 47
;  }
;  }
	sbi 0x15,0
	.dbline 48
;  }
	in R24,0x15
	andi R24,254
	out 0x15,R24
L11:
	.dbline 51
	.dbline 52
	.dbline 53
L12:
	.dbline 50
;  }
;  }
	sbis 0x13,1
	rjmp L11
	.dbline 54
;  }
;  }
;  }
;  }
	sbi 0x15,2
	.dbline 55
;  }
	in R2,0x10
	clr R3
	clr R4
	clr R5
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 56
;  }
	in R24,0x15
	andi R24,251
	out 0x15,R24
	.dbline 57
;  }
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	ldi R20,16
	ldi R21,39
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	rcall empy32u
	ldi R20,255
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	rcall div32u
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 58
;  }
	movw R30,R28
	ldd R16,z+0
	ldd R17,z+1
	.dbline -2
L10:
	adiw R28,4
	rcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym l data 0 l
	.dbsym r channel 10 c
	.dbend
	.area data(ram, con, rel)
	.dbfile E:\数据采集作业\ADC0809+AVR/0809.h
_table::
	.blkb 2
	.area idata
	.byte 192,249
	.area data(ram, con, rel)
	.dbfile E:\数据采集作业\ADC0809+AVR/0809.h
	.blkb 2
	.area idata
	.byte 164,176
	.area data(ram, con, rel)
	.dbfile E:\数据采集作业\ADC0809+AVR/0809.h
	.blkb 2
	.area idata
	.byte 153,146
	.area data(ram, con, rel)
	.dbfile E:\数据采集作业\ADC0809+AVR/0809.h
	.blkb 2
	.area idata
	.byte 130,248
	.area data(ram, con, rel)
	.dbfile E:\数据采集作业\ADC0809+AVR/0809.h
	.blkb 2
	.area idata
	.byte 128,144
	.area data(ram, con, rel)
	.dbfile E:\数据采集作业\ADC0809+AVR/0809.h
	.dbfile E:\数据采集作业\ADC0809+AVR/SPIshow.h
	.dbsym e table _table A[10:10]c
_data::
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\数据采集作业\ADC0809+AVR/SPIshow.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\数据采集作业\ADC0809+AVR/SPIshow.h
	.dbsym e data _data A[4:4]c
	.area text(rom, con, rel)
	.dbfile E:\数据采集作业\ADC0809+AVR/SPIshow.h
	.dbfunc e process _process fV
;              p -> R10,R11
;              i -> y+6
	.even
_process::
	rcall push_arg4
	rcall push_gset3
	ldd R10,y+10
	ldd R11,y+11
	.dbline -1
	.dbline 15
	.dbline 16
	ldi R20,232
	ldi R21,3
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+6
	ldd R3,z+7
	ldd R4,z+8
	ldd R5,z+9
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	rcall div32u
	movw R30,R10
	std z+0,R16
	.dbline 17
	ldi R20,232
	ldi R21,3
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+6
	ldd R3,z+7
	ldd R4,z+8
	ldd R5,z+9
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	rcall mod32u
	movw R30,R28
	std z+6,R16
	std z+7,R17
	std z+8,R18
	std z+9,R19
	.dbline 18
	ldi R20,100
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+6
	ldd R3,z+7
	ldd R4,z+8
	ldd R5,z+9
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	rcall div32u
	movw R30,R10
	std z+1,R16
	.dbline 19
	ldi R20,100
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+6
	ldd R3,z+7
	ldd R4,z+8
	ldd R5,z+9
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	rcall mod32u
	movw R30,R28
	std z+6,R16
	std z+7,R17
	std z+8,R18
	std z+9,R19
	.dbline 20
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+6
	ldd R3,z+7
	ldd R4,z+8
	ldd R5,z+9
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	rcall div32u
	movw R30,R10
	std z+2,R16
	.dbline 21
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+6
	ldd R3,z+7
	ldd R4,z+8
	ldd R5,z+9
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	rcall mod32u
	movw R30,R28
	std z+6,R16
	std z+7,R17
	std z+8,R18
	std z+9,R19
	.dbline 22
	movw R30,R28
	ldd R2,z+6
	ldd R3,z+7
	ldd R4,z+8
	ldd R5,z+9
	movw R30,R10
	std z+3,R2
	.dbline -2
L14:
	rcall pop_gset3
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r p 10 pc
	.dbsym l i 6 l
	.dbend
	.dbfunc e spi_init _spi_init fV
	.even
_spi_init::
	.dbline -1
	.dbline 29
	.dbline 31
	in R24,0x17
	ori R24,40
	out 0x17,R24
	.dbline 32
	ldi R24,95
	out 0xd,R24
	.dbline 33
	clr R2
	out 0xe,R2
	.dbline -2
L15:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e send _send fV
;           data -> R16
	.even
_send::
	.dbline -1
	.dbline 38
	.dbline 40
	out 0xf,R16
L17:
	.dbline 42
L18:
	.dbline 41
	sbis 0xe,7
	rjmp L17
	.dbline -2
L16:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.dbfunc e display _display fV
;              i -> R20
;              p -> R22,R23
	.even
_display::
	rcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 46
	.dbline 48
	ldi R20,3
	rjmp L24
L21:
	.dbline 49
	.dbline 50
	mov R2,R20
	clr R3
	subi R20,1
	mov R30,R2
	clr R31
	add R30,R22
	adc R31,R23
	ldd R30,z+0
	clr R31
	ldi R24,<_table
	ldi R25,>_table
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	rcall _send
	.dbline 51
L22:
	.dbline 48
L24:
	.dbline 48
	cpi R20,255
	brne L21
	.dbline -2
L20:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r p 22 pc
	.dbend
	.dbfile E:\数据采集作业\ADC0809+AVR\main.c
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 10
	.dbline 11
	clr R2
	out 0x18,R2
	.dbline 12
	ldi R24,255
	out 0x17,R24
	.dbline 13
	out 0x15,R2
	.dbline 14
	out 0x14,R2
	.dbline 15
	out 0x12,R24
	.dbline 16
	out 0x11,R2
	.dbline -2
L25:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 21
	.dbline 23
	cli
	.dbline 24
	rcall _port_init
	.dbline 25
	rcall _spi_init
	.dbline 27
	clr R2
	out 0x35,R2
	.dbline 28
	out 0x3b,R2
	.dbline 29
	out 0x39,R2
	.dbline 30
	sei
	.dbline -2
L26:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
;             su -> y+2
	.even
_main::
	sbiw R28,6
	.dbline -1
	.dbline 35
	.dbline 37
	rcall _init_devices
	rjmp L29
L28:
	.dbline 39
	.dbline 40
	clr R16
	rcall _ADC0909
	movw R2,R16
	clr R4
	sbrc R3,7
	com R4
	clr R5
	sbrc R4,7
	com R5
	movw R30,R28
	std z+2,R2
	std z+3,R3
	std z+4,R4
	std z+5,R5
	.dbline 41
	ldi R24,<_data
	ldi R25,>_data
	std y+1,R25
	std y+0,R24
	movw R30,R28
	ldd R16,z+2
	ldd R17,z+3
	ldd R18,z+4
	ldd R19,z+5
	rcall _process
	.dbline 42
	ldi R16,<_data
	ldi R17,>_data
	rcall _display
	.dbline 43
	ldi R16,100
	ldi R17,0
	rcall _delayms
	.dbline 44
L29:
	.dbline 38
	rjmp L28
X2:
	.dbline -2
L27:
	adiw R28,6
	.dbline 0 ; func end
	ret
	.dbsym l su 2 l
	.dbend

⌨️ 快捷键说明

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