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

📄 spi.s

📁 ISD1720芯片实现录音,定点录音,播放,定点播放等.
💻 S
📖 第 1 页 / 共 2 页
字号:
	xjmp L40
L39:
	.dbline 185
	.dbline 186
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+8
	ldd R3,z+9
	ldd R4,z+10
	ldd R5,z+11
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32u
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	mov R10,R2
	.dbline 187
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+8
	ldd R3,z+9
	ldd R4,z+10
	ldd R5,z+11
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32u
	movw R30,R28
	std z+8,R16
	std z+9,R17
	std z+10,R18
	std z+11,R19
	.dbline 188
	mov R18,R10
	clr R19
	clr R16
	clr R17
	xcall _LCD_write_char
	.dbline 189
L40:
	.dbline 184
; }
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+8
	ldd R3,z+9
	ldd R4,z+10
	ldd R5,z+11
	cp R2,R20
	cpc R3,R21
	cpc R4,R22
	cpc R5,R23
	breq X3
	xjmp L39
X3:
	.dbline -2
L38:
	xcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym r i 10 c
	.dbsym l z 8 l
	.dbsym r Y 12 c
	.dbsym r X 10 c
	.dbend
	.dbfile E:\写的程序\AVR(C)/延时子程序.c
	.dbfunc e delayms _delayms fV
;              i -> R20,R21
;              j -> R22,R23
;              k -> R16,R17
	.even
_delayms::
	xcall push_gset2
	.dbline -1
	.dbline 10
	.dbline 12
	clr R20
	clr R21
	xjmp L46
L43:
	.dbline 13
	clr R22
	clr R23
	xjmp L50
L47:
	.dbline 13
L48:
	.dbline 13
	subi R22,255  ; offset = 1
	sbci R23,255
L50:
	.dbline 13
	cpi R22,161
	ldi R30,5
	cpc R23,R30
	brlo L47
L44:
	.dbline 12
	subi R20,255  ; offset = 1
	sbci R21,255
L46:
	.dbline 12
	cp R20,R16
	cpc R21,R17
	brlo L43
	.dbline -2
L42:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r j 22 i
	.dbsym r k 16 i
	.dbend
	.dbfunc e delayus _delayus fV
;              i -> R20,R21
;              j -> R22,R23
;              k -> R16,R17
	.even
_delayus::
	xcall push_gset2
	.dbline -1
	.dbline 19
	.dbline 21
	clr R20
	clr R21
	xjmp L55
L52:
	.dbline 22
	clr R22
	clr R23
	xjmp L59
L56:
	.dbline 22
L57:
	.dbline 22
	subi R22,255  ; offset = 1
	sbci R23,255
L59:
	.dbline 22
	cpi R22,8
	ldi R30,0
	cpc R23,R30
	brlo L56
L53:
	.dbline 21
	subi R20,255  ; offset = 1
	sbci R21,255
L55:
	.dbline 21
	cp R20,R16
	cpc R21,R17
	brlo L52
	.dbline -2
L51:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r j 22 i
	.dbsym r k 16 i
	.dbend
	.dbfunc e delays _delays fV
;              i -> R20,R21
;              k -> R22,R23
	.even
_delays::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 28
	.dbline 30
	clr R20
	clr R21
	xjmp L64
L61:
	.dbline 31
	ldi R16,1000
	ldi R17,3
	xcall _delayms
L62:
	.dbline 30
	subi R20,255  ; offset = 1
	sbci R21,255
L64:
	.dbline 30
	cp R20,R22
	cpc R21,R23
	brlo L61
	.dbline -2
L60:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r k 22 i
	.dbend
	.dbfile E:\写的程序\AVR(C)/4X4键盘.c
	.dbfunc e key_scan _key_scan fc
;              j -> R10
;            key -> R20
;              i -> R12
	.even
_key_scan::
	xcall push_gset4
	.dbline -1
	.dbline 13
	.dbline 14
	ldi R24,127
	mov R12,R24
	.dbline 14
	clr R10
	.dbline 15
	ldi R16,1
	ldi R17,0
	xcall _delayms
L66:
	.dbline 17
	.dbline 18
	mov R2,R12
	lsr R2
	lsr R2
	lsr R2
	lsr R2
	lsr R2
	lsr R2
	lsr R2
	mov R3,R12
	lsl R3
	or R3,R2
	mov R12,R3
	.dbline 19
	out 0x12,R3
	.dbline 20
	ldi R24,15
	out 0x11,R24
	.dbline 21
	in R20,0x10
	.dbline 22
	mov R24,R20
	andi R24,240
	mov R10,R24
	.dbline 23
L67:
	.dbline 23
	mov R24,R10
	cpi R24,240
	breq L66
	.dbline 24
	mov R22,R20
	clr R23
	cpi R22,183
	ldi R30,0
	cpc R23,R30
	brne X5
	xjmp L79
X5:
	cpi R22,187
	ldi R30,0
	cpc R23,R30
	brne X6
	xjmp L78
X6:
	cpi R22,189
	ldi R30,0
	cpc R23,R30
	brne X7
	xjmp L77
X7:
	cpi R22,190
	ldi R30,0
	cpc R23,R30
	brne X8
	xjmp L76
X8:
	ldi R24,190
	ldi R25,0
	cp R24,R22
	cpc R25,R23
	brlt L89
L88:
	cpi R22,119
	ldi R30,0
	cpc R23,R30
	brne X9
	xjmp L75
X9:
	cpi R22,123
	ldi R30,0
	cpc R23,R30
	breq L74
	cpi R22,125
	ldi R30,0
	cpc R23,R30
	breq L73
	cpi R22,126
	ldi R30,0
	cpc R23,R30
	breq L72
	xjmp L69
L89:
	cpi R22,215
	ldi R30,0
	cpc R23,R30
	brne X10
	xjmp L83
X10:
	cpi R22,219
	ldi R30,0
	cpc R23,R30
	brne X11
	xjmp L82
X11:
	cpi R22,221
	ldi R30,0
	cpc R23,R30
	breq L81
	cpi R22,222
	ldi R30,0
	cpc R23,R30
	breq L80
	cpi R22,215
	ldi R30,0
	cpc R23,R30
	brge X12
	xjmp L69
X12:
L90:
	cpi R22,231
	ldi R30,0
	cpc R23,R30
	breq L87
	cpi R22,235
	ldi R30,0
	cpc R23,R30
	breq L86
	cpi R22,237
	ldi R30,0
	cpc R23,R30
	breq L85
	cpi R22,238
	ldi R30,0
	cpc R23,R30
	breq L84
	xjmp L69
X4:
	.dbline 25
L72:
	.dbline 25
	clr R20
	.dbline 25
	xjmp L70
L73:
	.dbline 26
	ldi R20,10
	.dbline 26
	xjmp L70
L74:
	.dbline 27
	ldi R20,11
	.dbline 27
	xjmp L70
L75:
	.dbline 28
	ldi R20,15
	.dbline 28
	xjmp L70
L76:
	.dbline 29
	ldi R20,1
	.dbline 29
	xjmp L70
L77:
	.dbline 30
	ldi R20,2
	.dbline 30
	xjmp L70
L78:
	.dbline 31
	ldi R20,3
	.dbline 31
	xjmp L70
L79:
	.dbline 32
	ldi R20,14
	.dbline 32
	xjmp L70
L80:
	.dbline 33
	ldi R20,4
	.dbline 33
	xjmp L70
L81:
	.dbline 34
	ldi R20,5
	.dbline 34
	xjmp L70
L82:
	.dbline 35
	ldi R20,6
	.dbline 35
	xjmp L70
L83:
	.dbline 36
	ldi R20,13
	.dbline 36
	xjmp L70
L84:
	.dbline 37
	ldi R20,7
	.dbline 37
	xjmp L70
L85:
	.dbline 38
	ldi R20,8
	.dbline 38
	xjmp L70
L86:
	.dbline 39
	ldi R20,9
	.dbline 39
	xjmp L70
L87:
	.dbline 40
	ldi R20,12
	.dbline 40
	xjmp L70
L69:
	.dbline 41
	ldi R20,16
	.dbline 42
L70:
	.dbline 43
	mov R16,R20
	.dbline -2
L65:
	xcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym r j 10 c
	.dbsym r key 20 c
	.dbsym r i 12 c
	.dbend
	.dbfunc e key_press _key_press fc
;              j -> R20
;              i -> R20
	.even
_key_press::
	xcall push_gset1
	.dbline -1
	.dbline 46
	.dbline 47
	ldi R24,255
	out 0x11,R24
	.dbline 48
	ldi R24,240
	out 0x12,R24
	.dbline 49
	ldi R24,15
	out 0x11,R24
	.dbline 50
	ldi R16,1
	ldi R17,0
	xcall _delayms
	.dbline 51
	in R20,0x10
	.dbline 52
	cpi R20,240
	brne L92
	.dbline 52
	clr R20
	xjmp L93
L92:
	.dbline 53
	ldi R20,1
L93:
	.dbline 54
	mov R16,R20
	.dbline -2
L91:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r j 20 c
	.dbsym r i 20 c
	.dbend
	.dbfile E:\写的程序\AVR(C)\SPI.c
	.dbfunc e spi_sent_init _spi_sent_init fV
	.even
_spi_sent_init::
	.dbline -1
	.dbline 5
	.dbline 5
	in R24,0x18
	ori R24,240
	out 0x18,R24
	.dbline 6
	in R24,0x17
	ori R24,176
	out 0x17,R24
	.dbline 7
	ldi R24,115
	out 0xd,R24
	.dbline 8
	clr R2
	out 0xe,R2
	.dbline -2
L94:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e SPI_sent _SPI_sent fc
;           sign -> R20
;           Data -> R16,R17
	.even
_SPI_sent::
	xcall push_gset1
	.dbline -1
	.dbline 12
	.dbline 14
	cbi 0x18,4
	.dbline 15
	sbi 0xd,4
	.dbline 16
	out 0xf,R16
L96:
	.dbline 17
L97:
	.dbline 17
	sbis 0xe,7
	rjmp L96
	.dbline 18
	sbi 0x18,4
	.dbline 19
	in R20,0xe
	.dbline 20
	in R20,0xf
	.dbline 21
	mov R16,R20
	.dbline -2
L95:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r sign 20 c
	.dbsym r Data 16 i
	.dbend
	.dbfunc e SPI_receive_int _SPI_receive_int fV
	.even
_SPI_receive_int::
	.dbline -1
	.dbline 27
	.dbline 29
	ldi R24,2
	out 0x17,R24
	.dbline 30
	sbi 0x18,4
	.dbline -2
L99:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e SPI_receive _SPI_receive fc
;        receive -> R16
	.even
_SPI_receive::
	.dbline -1
	.dbline 33
	.dbline 35
	ldi R24,96
	out 0xd,R24
L101:
	.dbline 36
L102:
	.dbline 36
	sbis 0xe,7
	rjmp L101
	.dbline 37
	in R16,0xe
	.dbline 38
	in R16,0xf
	.dbline 39
	.dbline -2
L100:
	.dbline 0 ; func end
	ret
	.dbsym r receive 16 c
	.dbend
	.dbfunc e main _main fV
;              j -> R22
;         F_data -> R20
	.even
_main::
	sbiw R28,4
	.dbline -1
	.dbline 43
	.dbline 44
	ldi R20,1
	.dbline 44
	clr R22
	.dbline 46
	xcall _LCD_init
	xjmp L106
L105:
	.dbline 48
	.dbline 49
	sbic 0x16,3
	rjmp L108
	.dbline 50
	.dbline 51
	xcall _SPI_receive_int
	.dbline 52
	xcall _SPI_receive
	mov R20,R16
	.dbline 53
	mov R2,R20
	clr R3
	clr R4
	clr R5
	std y+0,R2
	std y+1,R3
	std y+2,R4
	std y+3,R5
	clr R18
	clr R16
	xcall _LCD_write_chang_data
	.dbline 54
L108:
	.dbline 55
L106:
	.dbline 47
	xjmp L105
X13:
	.dbline -2
L104:
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r j 22 c
	.dbsym r F_data 20 c
	.dbend

⌨️ 快捷键说明

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