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

📄 main.s

📁 本文提出了基于MCU和RS485总线的嵌入式系统的常用设计方法
💻 S
📖 第 1 页 / 共 2 页
字号:
	xcall _LCD_write_data
	.dbline -2
L28:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l data 4 c
	.dbsym r Y 22 c
	.dbsym r X 20 c
	.dbend
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2/usart.h
	.dbfunc e usart_init _usart_init fV
	.even
_usart_init::
	.dbline -1
	.dbline 3
	.dbline 4
	ldi R24,1
	out 0xb,R24
	.dbline 5
	ldi R24,156
	out 0xa,R24
	.dbline 6
	ldi R24,182
	out 0x20,R24
	.dbline 7
	clr R2
	out 0x20,R2
	.dbline 8
	ldi R24,47
	out 0x9,R24
	.dbline 10
	cbi 0x12,4
	.dbline 11
	sbi 0x11,4
	.dbline -2
L29:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e usart_out _usart_out fV
;              i -> R20
;              n -> R18
;          datas -> R16,R17
	.even
_usart_out::
	xcall push_gset1
	.dbline -1
	.dbline 17
	.dbline 18
	clr R20
	.dbline 19
	sbi 0x12,4
	xjmp L32
L31:
	.dbline 21
	.dbline 22
	tst R20
	brne L34
	.dbline 22
	sbi 0xa,0
	xjmp L35
L34:
	.dbline 23
	in R24,0xa
	andi R24,254
	out 0xa,R24
L35:
	.dbline 24
	mov R30,R20
	clr R31
	add R30,R16
	adc R31,R17
	ldd R2,z+0
	out 0xc,R2
L36:
	.dbline 25
L37:
	.dbline 25
	sbis 0xb,6
	rjmp L36
	.dbline 26
	sbi 0xb,6
	.dbline 27
	inc R20
	.dbline 28
L32:
	.dbline 20
	cp R20,R18
	brlo L31
	.dbline 29
	cbi 0x12,4
	.dbline -2
L30:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r n 18 c
	.dbsym r datas 16 pc
	.dbend
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2/crc8.h
	.dbfunc e crc8 _crc8 fc
;            crc -> R20
;              i -> R22
;            len -> R18
;            ptr -> R16,R17
	.even
_crc8::
	xcall push_gset2
	.dbline -1
	.dbline 5
	.dbline 7
	clr R20
	xjmp L41
L40:
	.dbline 9
	.dbline 10
	ldi R22,1
	xjmp L46
L43:
	.dbline 11
	.dbline 12
	sbrs R20,0
	rjmp L47
	.dbline 12
	.dbline 12
	lsr R20
	.dbline 12
	ldi R24,140
	ldi R25,0
	mov R2,R20
	clr R3
	eor R2,R24
	eor R3,R25
	mov R20,R2
	.dbline 12
	xjmp L48
L47:
	.dbline 13
	lsr R20
L48:
	.dbline 14
	movw R30,R16
	ldd R2,z+0
	and R2,R22
	breq L49
	.dbline 14
	ldi R24,140
	ldi R25,0
	mov R2,R20
	clr R3
	eor R2,R24
	eor R3,R25
	mov R20,R2
L49:
	.dbline 15
L44:
	.dbline 10
	ldi R24,2
	mul R24,R22
	mov R22,R0
L46:
	.dbline 10
	tst R22
	brne L43
	.dbline 16
	subi R16,255  ; offset = 1
	sbci R17,255
	.dbline 17
L41:
	.dbline 8
	mov R2,R18
	clr R3
	subi R18,1
	tst R2
	brne L40
	.dbline 18
	mov R16,R20
	.dbline -2
L39:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r crc 20 c
	.dbsym r i 22 c
	.dbsym r len 18 c
	.dbsym r ptr 16 pc
	.dbend
	.area data(ram, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2/crc8.h
_n::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2/crc8.h
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\main.c
	.dbsym e n _n c
_flag_me::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\main.c
	.dbsym e flag_me _flag_me c
_flag_all::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\main.c
	.dbsym e flag_all _flag_all c
	.area vector(rom, abs)
	.org 44
	jmp _RXC_Int
	.area data(ram, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\main.c
	.area text(rom, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\main.c
	.dbfunc e RXC_Int _RXC_Int fV
;          ERROR -> R20
	.even
_RXC_Int::
	xcall push_lset
	xcall push_gset1
	.dbline -1
	.dbline 35
	.dbline 36
	clr R20
	.dbline 38
	sbic 0xb,2
	rjmp L54
	sbis 0xb,4
	rjmp L52
L54:
	.dbline 38
	ldi R20,1
L52:
	.dbline 39
	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 40
	lds R24,_n
	subi R24,255    ; addi 1
	sts _n,R24
	.dbline 43
	tst R20
	breq L55
	.dbline 44
	.dbline 46
	clr R2
	sts _inbox,R2
	.dbline 47
	sbi 0xb,0
	.dbline 48
L55:
	.dbline 50
	lds R24,_inbox
	cpi R24,2
	breq L59
	cpi R24,255
	brne L57
L59:
	.dbline 50
	.dbline 50
	cbi 0xb,0
	.dbline 50
L57:
	.dbline 51
	lds R24,_n
	cpi R24,10
	brne L60
	.dbline 52
	.dbline 53
	clr R2
	sts _n,R2
	.dbline 54
	sbi 0xb,0
	.dbline 59
	ldi R18,9
	ldi R16,<_inbox
	ldi R17,>_inbox
	xcall _crc8
	lds R2,_inbox+9
	cp R2,R16
	brne L62
	.dbline 60
	.dbline 61
	lds R24,_inbox
	cpi R24,2
	brne L65
	.dbline 61
	ldi R24,1
	sts _flag_me,R24
L65:
	.dbline 63
	lds R24,_inbox
	cpi R24,255
	brne L67
	.dbline 63
	ldi R24,1
	sts _flag_me,R24
L67:
	.dbline 65
L62:
	.dbline 66
L60:
	.dbline -2
L51:
	xcall pop_gset1
	xcall pop_lset
	.dbline 0 ; func end
	reti
	.dbsym r ERROR 20 c
	.dbend
	.dbfunc e out_485 _out_485 fV
;              i -> R20
;            ptr -> R22,R23
	.even
_out_485::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 72
	.dbline 74
	ldi R24,1
	sts _send,R24
	.dbline 75
	ldi R20,1
	xjmp L73
L70:
	.dbline 75
	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
L71:
	.dbline 75
	inc R20
L73:
	.dbline 75
	cpi R20,9
	brlo L70
	.dbline 76
	ldi R18,9
	ldi R16,<_send
	ldi R17,>_send
	xcall _crc8
	sts _send+9,R16
	.dbline 77
	ldi R18,10
	ldi R16,<_send
	ldi R17,>_send
	xcall _usart_out
	.dbline -2
L69:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r ptr 22 pc
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	sbiw R28,2
	.dbline -1
	.dbline 83
	.dbline 84
	xcall _usart_init
	.dbline 85
	sei
	.dbline 86
	xcall _LCD_init
	.dbline 87
	ldi R24,<L76
	ldi R25,>L76
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	xcall _LCD_write_string
	.dbline 88
	ldi R24,<L77
	ldi R25,>L77
	std y+1,R25
	std y+0,R24
	ldi R18,1
	clr R16
	xcall _LCD_write_string
	xjmp L79
X0:
	.dbline 90
L81:
	.dbline 92
	.dbline 92
	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 93
	clr R2
	sts _n,R2
	.dbline 94
	sts _inbox,R2
	.dbline 95
	sts _flag_me,R2
	.dbline 96
	ldi R16,<L84
	ldi R17,>L84
	xcall _out_485
	.dbline 97
	ldi R24,<_send
	ldi R25,>_send
	std y+1,R25
	std y+0,R24
	clr R18
	ldi R16,4
	xcall _LCD_write_string
	.dbline 98
	ldi R24,<L85
	ldi R25,>L85
	std y+1,R25
	std y+0,R24
	clr R18
	ldi R16,13
	xcall _LCD_write_string
	.dbline 99
	ldi R24,<L85
	ldi R25,>L85
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,13
	xcall _LCD_write_string
	.dbline 102
L82:
	.dbline 91
	lds R2,_flag_me
	tst R2
	brne L81
	.dbline 103
L79:
	.dbline 89
	xjmp L82
X1:
	.dbline 103
	.dbline -2
L75:
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\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 F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\main.c
L85:
	.blkb 6
	.area idata
	.byte 32,32,32,32,32,0
	.area data(ram, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\main.c
L84:
	.blkb 9
	.area idata
	.byte 50,44,'o,'k,33,33,33,33,0
	.area data(ram, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\main.c
L77:
	.blkb 5
	.area idata
	.byte 'i,'n,'t,58,0
	.area data(ram, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\main.c
L76:
	.blkb 5
	.area idata
	.byte 'o,'u,'t,58,0
	.area data(ram, con, rel)
	.dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\新建文件夹\485_slave2\main.c

⌨️ 快捷键说明

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