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

📄 ad.s

📁 atmega16单片机AD转换源代码
💻 S
📖 第 1 页 / 共 2 页
字号:
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+10
	ldd R3,z+11
	ldd R4,z+12
	ldd R5,z+13
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32s
	mov R10,R16
	.dbline 502
	mov R2,R10
	clr R3
	clr R4
	clr R5
	movw R30,R28
	ldd R6,z+10
	ldd R7,z+11
	ldd R8,z+12
	ldd R9,z+13
	sub R6,R2
	sbc R7,R3
	sbc R8,R4
	sbc R9,R5
	movw R30,R28
	std z+10,R6
	std z+11,R7
	std z+12,R8
	std z+13,R9
	.dbline 503
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+10
	ldd R3,z+11
	ldd R4,z+12
	ldd R5,z+13
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32s
	movw R30,R28
	std z+10,R16
	std z+11,R17
	std z+12,R18
	std z+13,R19
	.dbline 505
	mov R18,R10
	subi R18,128    ; addi 128
	mov R16,R12
	subi R16,128    ; addi 128
	xcall _write7279
	.dbline 506
L75:
	.dbline 499
	inc R12
L77:
	.dbline 499
	cp R14,R12
	brlo X3
	xjmp L74
X3:
	.dbline -2
	.dbline 507
; 
; 
; 
; 
; 
; 
; 
; 
L73:
	xcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym r temp_char 10 c
	.dbsym r i 12 c
	.dbsym l num 10 L
	.dbsym r dig_end 14 c
	.dbsym r dig_start 10 c
	.dbend
	.dbfunc e get_data _get_data fL
;      temp_long -> y+0
;      temp_char -> R10
;              i -> R12
;        dig_end -> R14
;      dig_start -> y+14
	.even
_get_data::
	xcall push_arg4
	xcall push_gset5
	mov R14,R18
	sbiw R28,4
	.dbline -1
	.dbline 510
; 
; 
; 
	.dbline 511
; 
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	std z+0,R20
	std z+1,R21
	std z+2,R22
	std z+3,R23
	.dbline 514
; 
; 
; 
	ldd R12,y+14
	xjmp L82
L79:
	.dbline 515
	ldi R18,8
	mov R16,R12
	subi R16,112    ; addi 144
	xcall _write7279
L80:
	.dbline 514
	inc R12
L82:
	.dbline 514
	cp R14,R12
	brge L79
	.dbline 517
; 
; 
; 
	mov R12,R14
	xjmp L86
L83:
	.dbline 518
	.dbline 519
	xcall _get_key7279
	mov R10,R16
	.dbline 521
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32s
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 522
	mov R2,R10
	clr R3
	sbrc R2,7
	com R3
	clr R4
	sbrc R3,7
	com R4
	clr R5
	sbrc R4,7
	com R5
	movw R30,R28
	ldd R6,z+0
	ldd R7,z+1
	ldd R8,z+2
	ldd R9,z+3
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	movw R30,R28
	std z+0,R6
	std z+1,R7
	std z+2,R8
	std z+3,R9
	.dbline 524
	mov R18,R10
	subi R18,128    ; addi 128
	mov R16,R12
	subi R16,128    ; addi 128
	xcall _write7279
	.dbline 525
L84:
	.dbline 517
	dec R12
L86:
	.dbline 517
	ldd R0,y+14
	cp R12,R0
	brlt X4
	xjmp L83
X4:
	.dbline 527
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
	movw R30,R28
	ldd R16,z+0
	ldd R17,z+1
	ldd R18,z+2
	ldd R19,z+3
	.dbline -2
L78:
	adiw R28,4
	xcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym l temp_long 0 L
	.dbsym r temp_char 10 C
	.dbsym r i 12 C
	.dbsym r dig_end 14 C
	.dbsym l dig_start 14 C
	.dbend
	.dbfile D:\AVR\AD/TIMEDELAY.C
	.dbfunc e delay_us _delay_us fV
;              M -> <dead>
	.even
_delay_us::
	.dbline -1
	.dbline 24
	.dbline 26
	nop
	.dbline -2
	.dbline 28
L87:
	.dbline 0 ; func end
	ret
	.dbsym l M 1 c
	.dbend
	.dbfunc e delay_10us _delay_10us fV
;              I -> R22,R23
;              M -> R20,R21
	.even
_delay_10us::
	xcall push_gset2
	movw R20,R16
	.dbline -1
	.dbline 32
	xjmp L90
L89:
	.dbline 34
	.dbline 35
	ldi R22,4
	ldi R23,0
L92:
	.dbline 37
	.dbline 38
	xcall _delay_us
	.dbline 39
L93:
	.dbline 39
	movw R2,R22
	subi R22,1
	sbci R23,0
	tst R2
	brne L92
	tst R3
	brne L92
X5:
	.dbline 40
L90:
	.dbline 33
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L89
	tst R3
	brne L89
X6:
	.dbline -2
	.dbline 41
L88:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r I 22 i
	.dbsym r M 20 i
	.dbend
	.dbfunc e delay_100us _delay_100us fV
;              I -> R20,R21
;              M -> R22,R23
	.even
_delay_100us::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 45
L96:
	.dbline 46
L97:
	.dbline 46
	movw R2,R22
	subi R22,1
	sbci R23,0
	tst R2
	brne L96
	tst R3
	brne L96
X7:
	.dbline 47
	.dbline 48
	ldi R20,5286
	ldi R21,20
L99:
	.dbline 50
	.dbline 51
	xcall _delay_us
	.dbline 52
	nop
	.dbline 53
L100:
	.dbline 53
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L99
	tst R3
	brne L99
X8:
	.dbline 54
	.dbline -2
	.dbline 55
L95:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r I 20 i
	.dbsym r M 22 i
	.dbend
	.dbfunc e delay_ms _delay_ms fV
;              R -> R22
;              I -> R10
;              M -> R20,R21
	.even
_delay_ms::
	xcall push_gset3
	movw R20,R16
	.dbline -1
	.dbline 58
	xjmp L104
L103:
	.dbline 60
	.dbline 61
	ldi R24,198
	mov R10,R24
	.dbline 62
	ldi R22,3
L106:
	.dbline 64
	.dbline 65
	xcall _delay_us
	.dbline 66
	xcall _delay_us
	.dbline 67
	xcall _delay_us
	.dbline 68
	xcall _delay_us
	.dbline 69
L107:
	.dbline 69
	mov R2,R10
	clr R3
	mov R24,R2
	subi R24,1
	mov R10,R24
	tst R2
	brne L106
	xjmp L110
L109:
	.dbline 71
	.dbline 72
	nop
	.dbline 73
L110:
	.dbline 70
	mov R2,R22
	clr R3
	subi R22,1
	tst R2
	brne L109
	.dbline 74
	nop
	.dbline 75
	nop
	.dbline 76
	nop
	.dbline 77
L104:
	.dbline 59
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L103
	tst R3
	brne L103
X9:
	.dbline -2
	.dbline 78
L102:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r R 22 c
	.dbsym r I 10 c
	.dbsym r M 20 i
	.dbend
	.dbfunc e delay_10ms _delay_10ms fV
;              M -> R20,R21
	.even
_delay_10ms::
	xcall push_gset1
	movw R20,R16
	.dbline -1
	.dbline 81
	xjmp L114
L113:
	.dbline 83
	.dbline 84
	ldi R16,10
	ldi R17,0
	xcall _delay_ms
	.dbline 85
L114:
	.dbline 82
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L113
	tst R3
	brne L113
X10:
	.dbline -2
	.dbline 86
L112:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r M 20 i
	.dbend
	.dbfunc e delay_100ms _delay_100ms fV
;              M -> R20,R21
	.even
_delay_100ms::
	xcall push_gset1
	movw R20,R16
	.dbline -1
	.dbline 89
	xjmp L118
L117:
	.dbline 91
	.dbline 92
	ldi R16,100
	ldi R17,0
	xcall _delay_ms
	.dbline 93
L118:
	.dbline 90
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L117
	tst R3
	brne L117
X11:
	.dbline -2
	.dbline 94
L116:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r M 20 i
	.dbend
	.dbfunc e delay_s _delay_s fV
;              M -> R20,R21
	.even
_delay_s::
	xcall push_gset1
	movw R20,R16
	.dbline -1
	.dbline 98
	xjmp L122
L121:
	.dbline 100
	.dbline 101
	ldi R16,1000
	ldi R17,3
	xcall _delay_ms
	.dbline 102
L122:
	.dbline 99
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L121
	tst R3
	brne L121
X12:
	.dbline -2
	.dbline 103
L120:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r M 20 i
	.dbend
	.dbfile D:\AVR\AD\ad.c
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 17
	.dbline 18
	ldi R24,255
	out 0x1b,R24
	.dbline 19
	clr R2
	out 0x1a,R2
	.dbline 20
	out 0x18,R24
	.dbline 21
	out 0x17,R2
	.dbline 22
	out 0x15,R24
	.dbline 23
	ldi R24,30
	out 0x14,R24
	.dbline 24
	ldi R24,255
	out 0x12,R24
	.dbline 25
	out 0x11,R2
	.dbline -2
	.dbline 26
L124:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e adc_init _adc_init fV
	.even
_adc_init::
	.dbline -1
	.dbline 31
	.dbline 32
	clr R2
	out 0x1b,R2
	.dbline 33
	ldi R24,255
	out 0x1b,R24
	.dbline 35
	out 0x6,R2
	.dbline 36
	lds R24,_ad_mux
	andi R24,15
	out 0x7,R24
	.dbline 37
	ldi R24,128
	out 0x8,R24
	.dbline 38
	ldi R24,206
	out 0x6,R24
	.dbline -2
	.dbline 39
L125:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e bubble_sort _bubble_sort fV
;              k -> R20,R21
;              t -> R14,R15
;              h -> R22,R23
;              j -> R12,R13
;              n -> R20,R21
;              x -> R10,R11
	.even
_bubble_sort::
	xcall push_gset5
	movw R20,R18
	movw R10,R16
	.dbline -1
	.dbline 42
	.dbline 45
	movw R22,R20
	subi R22,1
	sbci R23,0
	xjmp L130
L127:
	.dbline 46
	.dbline 47
	clr R12
	clr R13
	clr R20
	clr R21
	xjmp L134
L131:
	.dbline 48
	.dbline 49
	ldi R16,2
	ldi R17,0
	movw R18,R12
	xcall empy16s
	movw R2,R16
	add R2,R10
	adc R3,R11
	movw R30,R2
	ldd R4,z+2
	ldd R5,z+3
	movw R30,R2
	ldd R2,z+0
	ldd R3,z+1
	cp R4,R2
	cpc R5,R3
	brge L135
	.dbline 50
	.dbline 51
	ldi R16,2
	ldi R17,0
	movw R18,R12
	xcall empy16s
	movw R30,R16
	add R30,R10
	adc R31,R11
	ldd R14,z+0
	ldd R15,z+1
	.dbline 52
	ldi R16,2
	ldi R17,0
	movw R18,R12
	xcall empy16s
	movw R2,R16
	add R2,R10
	adc R3,R11
	movw R30,R2
	ldd R4,z+2
	ldd R5,z+3
	movw R30,R2
	std z+1,R5
	std z+0,R4
	.dbline 53
	ldi R16,2
	ldi R17,0
	movw R18,R12
	xcall empy16s
	movw R30,R16
	add R30,R10
	adc R31,R11
	std z+3,R15
	std z+2,R14
	.dbline 54
	movw R20,R12
	.dbline 55
L135:
	.dbline 56
L132:
	.dbline 47
	movw R24,R12
	adiw R24,1
	movw R12,R24
L134:
	.dbline 47
	cp R12,R22
	cpc R13,R23
	brge X13
	xjmp L131
X13:
	.dbline 57
L128:
	.dbline 45
	movw R22,R20
L130:
	.dbline 45
	clr R2
	clr R3
	cp R2,R22
	cpc R3,R23
	brge X14
	xjmp L127
X14:
	.dbline -2
	.dbline 58
L126:
	xcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym r k 20 I
	.dbsym r t 14 I
	.dbsym r h 22 I
	.dbsym r j 12 I
	.dbsym r n 20 I
	.dbsym r x 10 pI
	.dbend
	.dbfunc e adc _adc fI
;            sum -> y+24
;         result -> y+0
;              i -> R10
	.even
_adc::
	xcall push_gset3
	sbiw R28,28
	.dbline -1
	.dbline 62
	.dbline 64
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	std z+24,R20
	std z+25,R21
	std z+26,R22
	std z+27,R23
	.dbline 66
	clr R10
	xjmp L141
L138:
	.dbline 67
	.dbline 68
	ldi R16,1
	ldi R17,0
	xcall _delay_ms
	.dbline 69
	sbi 0x6,6
L142:
	.dbline 70
L143:
	.dbline 70
	sbis 0x6,4
	rjmp L142
	.dbline 71
	cbi 0x6,4
	.dbline 72
	ldi R24,2
	mul R24,R10
	movw R30,R0
	movw R24,R28
	add R30,R24
	adc R31,R25
	in R2,0x4
	in R3,0x5
	std z+1,R3
	std z+0,R2
	.dbline 73
L139:
	.dbline 66
	inc R10
L141:
	.dbline 66
	mov R24,R10
	cpi R24,12
	brlo L138
	.dbline 74
	ldi R18,12
	ldi R19,0
	movw R16,R28
	xcall _bubble_sort
	.dbline 75
	clr R10
	inc R10
	xjmp L148
L145:
	.dbline 76
	ldi R24,2
	mul R24,R10
	movw R30,R0
	movw R24,R28
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldd R3,z+1
	clr R4
	sbrc R3,7
	com R4
	clr R5
	sbrc R4,7
	com R5
	movw R30,R28
	ldd R6,z+24
	ldd R7,z+25
	ldd R8,z+26
	ldd R9,z+27
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	movw R30,R28
	std z+24,R6
	std z+25,R7
	std z+26,R8
	std z+27,R9
L146:
	.dbline 75
	inc R10
L148:
	.dbline 75
	mov R24,R10
	cpi R24,11
	brlo L145
	.dbline 77
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+24
	ldd R3,z+25
	ldd R4,z+26
	ldd R5,z+27
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32s
	.dbline -2
L137:
	adiw R28,28
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym l sum 24 L
	.dbsym l result 0 A[24:12]I
	.dbsym r i 10 c
	.dbend
	.area vector(rom, abs)
	.org 56
	jmp _adc_isr
	.area text(rom, con, rel)
	.dbfile D:\AVR\AD\ad.c
	.dbfunc e adc_isr _adc_isr fV
	.even
_adc_isr::
	xcall push_lset
	sbiw R28,4
	.dbline -1
	.dbline 83
	.dbline 86
	cli
	.dbline 87
	lds R24,_ad_mux
	andi R24,15
	out 0x7,R24
	.dbline 89
	xcall _adc
	sts _adc_rel+1,R17
	sts _adc_rel,R16
	.dbline 93
	lds R2,_ad_mux
	tst R2
	brne L150
	.dbline 94
	.dbline 95
	movw R2,R16
	clr R4
	clr R5
	std y+0,R2
	std y+1,R3
	std y+2,R4
	std y+3,R5
	ldi R18,3
	clr R16
	xcall _dis_data
	.dbline 97
	lds R2,_adc_rel
	lds R3,_adc_rel+1
	sts _adc_old+1,R3
	sts _adc_old,R2
	.dbline 98
	xjmp L151
L150:
	.dbline 101
	.dbline 102
	lds R2,_adc_rel
	lds R3,_adc_rel+1
	clr R4
	clr R5
	std y+0,R2
	std y+1,R3
	std y+2,R4
	std y+3,R5
	ldi R18,7
	ldi R16,4
	xcall _dis_data
	.dbline 104
	lds R2,_adc_rel
	lds R3,_adc_rel+1
	sts _adc_old+1,R3
	sts _adc_old,R2
	.dbline 105
L151:
	.dbline 108
	lds R24,_ad_mux
	cpi R24,1
	brsh L152
	.dbline 109
	subi R24,255    ; addi 1
	sts _ad_mux,R24
	xjmp L153
L152:
	.dbline 111
	clr R2
	sts _ad_mux,R2
L153:
	.dbline 114
	sbi 0x6,6
	.dbline 115
	sei
	.dbline -2
	.dbline 117
L149:
	adiw R28,4
	xcall pop_lset
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 123
	.dbline 125
	cli
	.dbline 126
	xcall _port_init
	.dbline 127
	xcall _adc_init
	.dbline 129
	clr R2
	out 0x35,R2
	.dbline 130
	out 0x3b,R2
	.dbline 131
	out 0x39,R2
	.dbline 132
	sei
	.dbline -2
	.dbline 134
L154:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
;              i -> <dead>
	.even
_main::
	.dbline -1
	.dbline 138
	.dbline 140
	clr R2
	sts _ad_mux,R2
	.dbline 141
	clr R3
	sts _adc_old+1,R3
	sts _adc_old,R2
	.dbline 142
	xcall _init_devices
	.dbline 143
	xcall _init_7279
	.dbline 146
	sbi 0x6,6
L156:
	.dbline 148
	.dbline 151
L157:
	.dbline 147
	xjmp L156
X15:
	.dbline -2
	.dbline 153
L155:
	.dbline 0 ; func end
	ret
	.dbsym l i 1 I
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\AVR\AD\ad.c
_ad_mux::
	.blkb 1
	.dbsym e ad_mux _ad_mux c
_adc_old::
	.blkb 2
	.dbsym e adc_old _adc_old i
_adc_rel::
	.blkb 2
	.dbsym e adc_rel _adc_rel i

⌨️ 快捷键说明

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