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

📄 main.s

📁 485多机通讯
💻 S
📖 第 1 页 / 共 2 页
字号:
	in R20,0x16
	andi R20,15
	.dbline 17
	ldi R24,15
	out 0x17,R24
	.dbline 18
	ldi R24,240
	out 0x18,R24
	.dbline 19
	ldi R16,1
	ldi R17,0
	xcall _delay_nms
	.dbline 21
	in R24,0x16
	andi R24,240
	or R20,R24
	.dbline 23
	clr R21
	cpi R20,215
	ldi R30,0
	cpc R21,R30
	brne X1
	xjmp L69
X1:
	cpi R20,219
	ldi R30,0
	cpc R21,R30
	brne X2
	xjmp L65
X2:
	cpi R20,221
	ldi R30,0
	cpc R21,R30
	brne X3
	xjmp L61
X3:
	cpi R20,222
	ldi R30,0
	cpc R21,R30
	brne X4
	xjmp L57
X4:
	ldi R24,222
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brlt L73
L72:
	cpi R20,119
	ldi R30,0
	cpc R21,R30
	brne X5
	xjmp L71
X5:
	cpi R20,123
	ldi R30,0
	cpc R21,R30
	brne X6
	xjmp L67
X6:
	cpi R20,125
	ldi R30,0
	cpc R21,R30
	brne X7
	xjmp L63
X7:
	cpi R20,126
	ldi R30,0
	cpc R21,R30
	brne X8
	xjmp L59
X8:
	cpi R20,119
	ldi R30,0
	cpc R21,R30
	brge X9
	xjmp L52
X9:
L74:
	cpi R20,183
	ldi R30,0
	cpc R21,R30
	brne X10
	xjmp L70
X10:
	cpi R20,187
	ldi R30,0
	cpc R21,R30
	brne X11
	xjmp L66
X11:
	cpi R20,189
	ldi R30,0
	cpc R21,R30
	breq L62
	cpi R20,190
	ldi R30,0
	cpc R21,R30
	breq L58
	xjmp L52
L73:
	cpi R20,231
	ldi R30,0
	cpc R21,R30
	breq L68
	cpi R20,235
	ldi R30,0
	cpc R21,R30
	breq L64
	cpi R20,237
	ldi R30,0
	cpc R21,R30
	breq L60
	cpi R20,238
	ldi R30,0
	cpc R21,R30
	breq L56
	cpi R20,231
	ldi R30,0
	cpc R21,R30
	brlt L52
L75:
	cpi R20,255
	ldi R30,0
	cpc R21,R30
	breq L55
	xjmp L52
X0:
	.dbline 24
L55:
	.dbline 25
	clr R16
	xjmp L51
L56:
	.dbline 26
	ldi R16,55
	xjmp L51
L57:
	.dbline 27
	ldi R16,52
	xjmp L51
L58:
	.dbline 28
	ldi R16,49
	xjmp L51
L59:
	.dbline 29
	ldi R16,67
	xjmp L51
L60:
	.dbline 30
	ldi R16,56
	xjmp L51
L61:
	.dbline 31
	ldi R16,53
	xjmp L51
L62:
	.dbline 32
	ldi R16,50
	xjmp L51
L63:
	.dbline 33
	ldi R16,48
	xjmp L51
L64:
	.dbline 34
	ldi R16,57
	xjmp L51
L65:
	.dbline 35
	ldi R16,54
	xjmp L51
L66:
	.dbline 36
	ldi R16,51
	xjmp L51
L67:
	.dbline 37
	ldi R16,61
	xjmp L51
L68:
	.dbline 38
	ldi R16,45
	xjmp L51
L69:
	.dbline 39
	ldi R16,42
	xjmp L51
L70:
	.dbline 40
	ldi R16,45
	xjmp L51
L71:
	.dbline 41
	ldi R16,43
	xjmp L51
L52:
	.dbline 42
	clr R16
	.dbline -2
L51:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master/key.h
L77:
	.blkb 1
	.area text(rom, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master/key.h
	.dbfunc e get_key _get_key fc
	.dbsym s j L77 c
;              i -> R20
	.even
_get_key::
	xcall push_gset1
	.dbline -1
	.dbline 47
	.dbline 49
	xcall _key_read
	mov R20,R16
	.dbline 50
	tst R16
	brne L78
	.dbline 51
	.dbline 52
	clr R2
	sts L77,R2
	.dbline 53
	clr R16
	xjmp L76
L78:
	.dbline 55
	lds R2,L77
	tst R2
	brne L80
	.dbline 56
	.dbline 56
	sts L77,R20
	.dbline 57
	ldi R16,10
	ldi R17,0
	xcall _delay_nms
	.dbline 58
	xcall _key_read
	mov R20,R16
	.dbline 59
	lds R2,L77
	cp R16,R2
	brne L82
	.dbline 59
	.dbline 59
	xjmp L76
L82:
	.dbline 60
L80:
	.dbline 61
	clr R16
	.dbline -2
L76:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master/key.h
_n::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master/key.h
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
	.dbsym e n _n c
_flag_me::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
	.dbsym e flag_me _flag_me c
_flag_all::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
	.dbsym e flag_all _flag_all c
	.area vector(rom, abs)
	.org 44
	jmp _RXC_Int
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
	.area text(rom, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
	.dbfunc e RXC_Int _RXC_Int fV
;          ERROR -> R16
	.even
_RXC_Int::
	st -y,R2
	st -y,R16
	st -y,R24
	st -y,R25
	st -y,R30
	st -y,R31
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 37
	.dbline 38
	clr R16
	.dbline 39
	sbic 0xb,3
	rjmp L87
	sbis 0xb,4
	rjmp L85
L87:
	.dbline 39
	ldi R16,1
L85:
	.dbline 40
	ldi R24,<_inbox
	ldi R25,>_inbox
	lds R30,_n
	clr R31
	add R30,R24
	adc R31,R25
	in R2,0xc
	std z+0,R2
	.dbline 41
	lds R24,_n
	subi R24,255    ; addi 1
	sts _n,R24
	.dbline 42
	tst R16
	breq L88
	.dbline 42
	clr R2
	sts _inbox,R2
L88:
	.dbline -2
L84:
	ld R2,y+
	out 0x3f,R2
	ld R31,y+
	ld R30,y+
	ld R25,y+
	ld R24,y+
	ld R16,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbsym r ERROR 16 c
	.dbend
	.dbfunc e int_485 _int_485 fV
	.even
_int_485::
	.dbline -1
	.dbline 46
	.dbline 50
	lds R24,_n
	cpi R24,10
	brne L91
	ldi R18,9
	ldi R16,<_inbox
	ldi R17,>_inbox
	xcall _crc8
	lds R2,_inbox+9
	cp R2,R16
	brne L91
	.dbline 51
	.dbline 52
	lds R24,_inbox
	cpi R24,1
	brne L94
	.dbline 52
	ldi R24,1
	sts _flag_me,R24
L94:
	.dbline 54
	lds R24,_inbox
	cpi R24,255
	brne L96
	.dbline 54
	ldi R24,1
	sts _flag_me,R24
L96:
	.dbline 56
L91:
	.dbline -2
L90:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e out_485 _out_485 fV
;              i -> R20
;            ptr -> R22,R23
;        address -> R20
	.even
_out_485::
	xcall push_gset2
	movw R22,R18
	mov R20,R16
	.dbline -1
	.dbline 63
	.dbline 64
	clr R2
	sts _n,R2
	.dbline 65
	sts _inbox,R2
	.dbline 70
	sts _send,R20
	.dbline 71
	ldi R20,1
	xjmp L102
L99:
	.dbline 71
	ldi R24,<_send
	ldi R25,>_send
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	movw R26,R22
	ld R2,X+
	movw R22,R26
	std z+0,R2
L100:
	.dbline 71
	inc R20
L102:
	.dbline 71
	cpi R20,9
	brlo L99
	.dbline 73
	ldi R18,9
	ldi R16,<_send
	ldi R17,>_send
	xcall _crc8
	sts _send+9,R16
	.dbline 75
	ldi R18,10
	ldi R16,<_send
	ldi R17,>_send
	xcall _usart_out
	.dbline 80
	ldi R16,15
	ldi R17,0
	xcall _delay_nms
	.dbline -2
L98:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r ptr 22 pc
	.dbsym r address 20 c
	.dbend
	.dbfunc e main _main fV
;            key -> y+2
;              j -> R22
;        address -> R10
;              i -> R12
	.even
_main::
	sbiw R28,10
	.dbline -1
	.dbline 86
	.dbline 87
	xcall _usart_init
	.dbline 88
	clr R2
	out 0xb,R2
	.dbline 89
	xcall _LCD_init
	.dbline 90
	sei
	.dbline 91
	ldi R24,<L105
	ldi R25,>L105
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	xcall _LCD_write_string
	.dbline 92
	ldi R24,<L106
	ldi R25,>L106
	std y+1,R25
	std y+0,R24
	ldi R18,1
	clr R16
	xcall _LCD_write_string
	xjmp L108
L107:
	.dbline 96
	.dbline 99
	lds R2,_flag_me
	tst R2
	breq L110
	.dbline 100
	.dbline 101
	ldi R24,<_inbox
	ldi R25,>_inbox
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,7
	xcall _LCD_write_string
	.dbline 102
	clr R2
	sts _flag_me,R2
	.dbline 103
L110:
	.dbline 104
	xcall _get_key
	mov R12,R16
	.dbline 105
	mov R20,R12
	clr R21
	cpi R20,61
	ldi R30,0
	cpc R21,R30
	breq L119
	ldi R24,61
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brlt L125
L124:
	cpi R20,43
	ldi R30,0
	cpc R21,R30
	breq L115
	cpi R20,45
	ldi R30,0
	cpc R21,R30
	breq L117
	xjmp L112
L125:
	cpi R20,67
	ldi R30,0
	cpc R21,R30
	breq L120
	xjmp L112
X12:
	.dbline 106
L115:
	.dbline 107
	.dbline 107
	ldi R24,2
	mov R10,R24
	.dbline 107
	ldi R24,<L116
	ldi R25,>L116
	std y+1,R25
	std y+0,R24
	clr R18
	ldi R16,4
	xcall _LCD_write_string
	.dbline 107
	.dbline 108
	xjmp L113
L117:
	.dbline 109
	.dbline 109
	ldi R24,3
	mov R10,R24
	.dbline 109
	ldi R24,<L118
	ldi R25,>L118
	std y+1,R25
	std y+0,R24
	clr R18
	ldi R16,4
	xcall _LCD_write_string
	.dbline 109
	.dbline 110
	xjmp L113
L119:
	.dbline 111
	movw R18,R28
	subi R18,254  ; offset = 2
	sbci R19,255
	mov R16,R10
	xcall _out_485
	.dbline 112
	xjmp L113
L120:
	.dbline 113
	.dbline 113
	clr R22
	.dbline 113
	ldi R24,<L121
	ldi R25,>L121
	std y+1,R25
	std y+0,R24
	clr R18
	ldi R16,7
	xcall _LCD_write_string
	.dbline 113
	.dbline 114
	xjmp L113
L112:
	.dbline 116
	cpi R22,8
	brsh L122
	ldi R24,57
	cp R24,R12
	brlo L122
	mov R24,R12
	cpi R24,48
	brlo L122
	.dbline 116
	.dbline 116
	mov R2,R22
	clr R3
	subi R22,255    ; addi 1
	movw R24,R28
	adiw R24,2
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R12
	.dbline 116
	std y+0,R12
	clr R18
	mov R16,R22
	subi R16,250    ; addi 6
	xcall _LCD_write_char
	.dbline 116
L122:
	.dbline 118
L113:
	.dbline 120
	ldi R24,<_inbox
	ldi R25,>_inbox
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,4
	xcall _LCD_write_string
	.dbline 121
	ldi R24,<L126
	ldi R25,>L126
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,12
	xcall _LCD_write_string
	.dbline 126
L108:
	.dbline 95
	xjmp L107
X13:
	.dbline -2
L104:
	adiw R28,10
	.dbline 0 ; func end
	ret
	.dbsym l key 2 A[8:8]c
	.dbsym r j 22 c
	.dbsym r address 10 c
	.dbsym r i 12 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
_inbox::
	.blkb 10
	.dbsym e inbox _inbox A[10:10]c
_send::
	.blkb 10
	.dbsym e send _send A[10:10]c
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
L126:
	.blkb 6
	.area idata
	.byte 32,32,32,32,32,0
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
L121:
	.blkb 10
	.area idata
	.byte 32,32,32,32,32,32,32,32,32,0
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
L118:
	.blkb 4
	.area idata
	.byte 51,62,62,0
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
L116:
	.blkb 4
	.area idata
	.byte 50,62,62,0
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
L106:
	.blkb 5
	.area idata
	.byte 'i,'n,'t,58,0
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c
L105:
	.blkb 5
	.area idata
	.byte 'o,'u,'t,58,0
	.area data(ram, con, rel)
	.dbfile D:\avr\+++精华+++\485\485_master\main.c

⌨️ 快捷键说明

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