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

📄 main.s

📁 32X16LED汉字点阵显示屏(atmega16) - 单片机仿真
💻 S
📖 第 1 页 / 共 3 页
字号:
	add R30,R24
	adc R31,R25
	clr R2
	std z+0,R2
L3:
	.dbline 37
	inc R16
L5:
	.dbline 37
	cpi R16,64
	brlo L2
	.dbline 41
; 
; 
; 
; 
	ldi R24,255
	out 0x1a,R24
	.dbline 42
; 
	out 0x17,R24
	.dbline 43
; 
	ldi R24,31
	out 0x14,R24
	.dbline 46
; 
; 
; 
	ldi R24,1
	sts _dir_f,R24
	.dbline 48
; 
; 
	cli
	.dbline 49
; 
	ldi R24,224
	out 0x2e,R24
	.dbline 50
; 
	ldi R24,231
	out 0x2d,R24
	.dbline 51
; 
	ldi R24,80
	out 0x2c,R24
	.dbline 52
; 
	ldi R24,1
	out 0x2b,R24
	.dbline 53
; 
	ldi R24,244
	out 0x2a,R24
	.dbline 54
; 
	ldi R24,1
	out 0x29,R24
	.dbline 55
; 
	ldi R24,244
	out 0x28,R24
	.dbline 57
; 
; 
	ldi R24,1
	out 0x27,R24
	.dbline 58
; 
	ldi R24,244
	out 0x26,R24
	.dbline 59
; 
	clr R2
	out 0x2f,R2
	.dbline 60
; 
	ldi R24,2
	out 0x2e,R24
	.dbline 61
; 
	out 0x35,R2
	.dbline 62
; 
	out 0x3b,R2
	.dbline 63
; 
	ldi R24,4
	out 0x39,R24
	.dbline 64
; 
	sei
	.dbline -2
	.dbline 65
; 
L1:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e print_char _print_char fV
;          tab_n -> <dead>
;              i -> R22
;             d1 -> R12
;             d0 -> R14
;              j -> R10
;              k -> R20,R21
;              p -> y+10
	.even
_print_char::
	st -y,r17
	st -y,r16
	xcall push_gset5
	.dbline -1
	.dbline 69
; 
; 
; 
; 
	.dbline 70
; 
	clr R22
	xjmp L8
L7:
	.dbline 74
; 
; 
; 
; 
	.dbline 75
; 
	mov R30,R22
	clr R31
	ldd R0,y+10
	ldd R1,y+11
	add R30,R0
	adc R31,R1
	ldd R24,z+0
	cpi R24,128
	brsh X0
	xjmp L10
X0:
	.dbline 76
; 
	.dbline 78
; 
; 
	clr R10
	xjmp L15
L12:
	.dbline 79
; 
	.dbline 80
; 
	ldi R24,34
	mul R24,R10
	movw R2,R0
	mov R4,R22
	clr R5
	ldd R0,y+10
	ldd R1,y+11
	add R4,R0
	adc R5,R1
	ldi R24,<_gb_16
	ldi R25,>_gb_16
	movw R30,R2
	add R30,R24
	adc R31,R25
	lpm R30,Z
	movw R26,R4
	ld R6,x
	cp R30,R6
	breq X1
	xjmp L16
X1:
	ldi R24,<_gb_16+1
	ldi R25,>_gb_16+1
	movw R30,R2
	add R30,R24
	adc R31,R25
	lpm R30,Z
	adiw R26,1
	ld R2,x
	cp R30,R2
	breq X2
	xjmp L16
X2:
	.dbline 81
; 
	.dbline 82
; 
	lds R24,_dir_f
	cpi R24,1
	brne L19
	.dbline 83
; 
	clr R20
	clr R21
L21:
	.dbline 84
	.dbline 85
	ldi R24,34
	mul R24,R10
	movw R2,R0
	ldi R24,<_gb_16+2
	ldi R25,>_gb_16+2
	add R2,R24
	adc R3,R25
	movw R30,R20
	add R30,R2
	adc R31,R3
	lpm R14,Z
	.dbline 86
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 87
	ldi R24,34
	mul R24,R10
	movw R2,R0
	ldi R24,<_gb_16+2
	ldi R25,>_gb_16+2
	add R2,R24
	adc R3,R25
	movw R30,R20
	add R30,R2
	adc R31,R3
	lpm R12,Z
	.dbline 88
	mov R18,R12
	clr R19
	mov R16,R14
	clr R17
	xcall _move_to_buffer
	.dbline 89
	ldi R16,1
	ldi R17,0
	xcall _delay
	.dbline 90
L22:
	.dbline 83
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 83
	cpi R20,32
	ldi R30,0
	cpc R21,R30
	brlt L21
	xjmp L14
L19:
	.dbline 92
; 
; 
; 
; 
; 
; 
; 
; 
; 
	ldi R20,31
	ldi R21,0
L27:
	.dbline 93
	.dbline 94
	ldi R24,34
	mul R24,R10
	movw R2,R0
	ldi R24,<_gb_16+2
	ldi R25,>_gb_16+2
	add R2,R24
	adc R3,R25
	movw R30,R20
	add R30,R2
	adc R31,R3
	lpm R12,Z
	.dbline 95
	subi R20,1
	sbci R21,0
	.dbline 96
	ldi R24,34
	mul R24,R10
	movw R2,R0
	ldi R24,<_gb_16+2
	ldi R25,>_gb_16+2
	add R2,R24
	adc R3,R25
	movw R30,R20
	add R30,R2
	adc R31,R3
	lpm R14,Z
	.dbline 97
	mov R18,R12
	clr R19
	mov R16,R14
	clr R17
	xcall _move_to_buffer
	.dbline 98
	ldi R16,1
	ldi R17,0
	xcall _delay
	.dbline 99
L28:
	.dbline 92
	subi R20,1
	sbci R21,0
	.dbline 92
	cpi R20,0
	ldi R30,0
	cpc R21,R30
	brge L27
	.dbline 100
; 
; 
; 
; 
; 
; 
; 
; 
	xjmp L14
L16:
	.dbline 102
L13:
	.dbline 78
	inc R10
L15:
	.dbline 78
	ldi R24,62
	cp R24,R10
	brlo X3
	xjmp L12
X3:
L14:
	.dbline 104
; 
; 
; 
; 
	ldi R24,62
	cp R24,R10
	brsh L33
	.dbline 105
; 
	clr R20
	clr R21
L35:
	.dbline 106
	.dbline 107
	clr R14
	.dbline 108
	clr R12
	.dbline 109
	mov R18,R12
	clr R19
	mov R16,R14
	clr R17
	xcall _move_to_buffer
	.dbline 110
	ldi R16,1
	ldi R17,0
	xcall _delay
	.dbline 111
L36:
	.dbline 105
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 105
	cpi R20,16
	ldi R30,0
	cpc R21,R30
	brlt L35
L33:
	.dbline 112
; 
; 
; 
; 
; 
; 
; 
	subi R22,254    ; addi 2
	.dbline 113
; 
	xjmp L11
L10:
	.dbline 115
; 
; 
	.dbline 116
; 
	mov R30,R22
	clr R31
	ldd R0,y+10
	ldd R1,y+11
	add R30,R0
	adc R31,R1
	ldd R24,z+0
	subi R24,32
	mov R10,R24
	.dbline 117
; 
	lds R24,_dir_f
	cpi R24,1
	brne L39
	.dbline 118
; 
	clr R20
	clr R21
L41:
	.dbline 119
	.dbline 120
	ldi R24,16
	mul R24,R10
	movw R30,R0
	add R30,R20
	adc R31,R21
	ldi R24,<_ASC_MSK
	ldi R25,>_ASC_MSK
	add R30,R24
	adc R31,R25
	lpm R14,Z
	.dbline 121
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 122
	ldi R24,16
	mul R24,R10
	movw R30,R0
	add R30,R20
	adc R31,R21
	ldi R24,<_ASC_MSK
	ldi R25,>_ASC_MSK
	add R30,R24
	adc R31,R25
	lpm R12,Z
	.dbline 123
	mov R18,R12
	clr R19
	mov R16,R14
	clr R17
	xcall _move_to_buffer
	.dbline 124
	ldi R16,1
	ldi R17,0
	xcall _delay
	.dbline 125
L42:
	.dbline 118
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 118
	cpi R20,16
	ldi R30,0
	cpc R21,R30
	brlt L41
	xjmp L40
L39:
	.dbline 127
; 
; 
; 
; 
; 
; 
; 
; 
; 
	ldi R20,15
	ldi R21,0
L45:
	.dbline 128
	.dbline 129
	ldi R24,16
	mul R24,R10
	movw R30,R0
	add R30,R20
	adc R31,R21
	ldi R24,<_ASC_MSK
	ldi R25,>_ASC_MSK
	add R30,R24
	adc R31,R25
	lpm R12,Z
	.dbline 130
	subi R20,1
	sbci R21,0
	.dbline 131
	ldi R24,16
	mul R24,R10
	movw R30,R0
	add R30,R20
	adc R31,R21
	ldi R24,<_ASC_MSK
	ldi R25,>_ASC_MSK
	add R30,R24
	adc R31,R25
	lpm R14,Z
	.dbline 132
	mov R18,R12
	clr R19
	mov R16,R14
	clr R17
	xcall _move_to_buffer
	.dbline 133
	ldi R16,1
	ldi R17,0
	xcall _delay
	.dbline 134
L46:
	.dbline 127
	subi R20,1
	sbci R21,0
	.dbline 127
	cpi R20,0
	ldi R30,0
	cpc R21,R30
	brge L45
L40:
	.dbline 135
; 
; 
; 
; 
; 
; 
; 
; 
	inc R22
	.dbline 136
; 
L11:
	.dbline 137
L8:
	.dbline 73
	mov R30,R22
	clr R31
	ldd R0,y+10
	ldd R1,y+11
	add R30,R0
	adc R31,R1
	ldd R2,z+0
	clr R3
	cp R3,R2
	brsh X4
	xjmp L7
X4:
	.dbline -2
	.dbline 138
; 
; 
L6:
	xcall pop_gset5
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym l tab_n 1 c
	.dbsym r i 22 c
	.dbsym r d1 12 c
	.dbsym r d0 14 c
	.dbsym r j 10 c
	.dbsym r k 20 I
	.dbsym l p 10 pc
	.dbend
	.dbfunc e move_to_buffer _move_to_buffer fV
;              i -> R20
;             d1 -> R18
;             d0 -> R16
	.even
_move_to_buffer::
	xcall push_gset1
	.dbline -1
	.dbline 143
; 
; 
; 
; 
; 
	.dbline 145
; 
; 
	lds R2,_dir_f
	tst R2
	brne L50
	.dbline 146
; 
	.dbline 147
; 
	clr R20
	xjmp L55
L52:
	.dbline 148
	.dbline 149
	mov R2,R20
	clr R3
	ldi R24,63
	ldi R25,0
	sub R24,R2
	sbc R25,R3
	movw R2,R24
	ldi R24,<_display_buffer-2
	ldi R25,>_display_buffer-2
	movw R30,R2
	add R30,R24
	adc R31,R25
	ldd R4,z+0
	ldi R24,<_display_buffer
	ldi R25,>_display_buffer
	movw R30,R2
	add R30,R24
	adc R31,R25
	std z+0,R4
	.dbline 150
L53:
	.dbline 147
	inc R20
L55:
	.dbline 147
	cpi R20,62
	brlo L52
	.dbline 151
; 
; 
; 
; 
	sts _display_buffer,R16
	.dbline 152
; 
	sts _display_buffer+1,R18
	.dbline 153
; 
	xjmp L51
L50:
	.dbline 155
; 
; 
	.dbline 156
; 
	clr R20
	xjmp L61
L58:
	.dbline 157
	.dbline 158
	ldi R24,<_display_buffer+2
	ldi R25,>_display_buffer+2
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_display_buffer
	ldi R25,>_display_buffer
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R2
	.dbline 159
L59:
	.dbline 156
	inc R20
L61:
	.dbline 156
	cpi R20,62
	brlo L58
	.dbline 160
	sts _display_buffer+62,R16
	.dbline 161
	sts _display_buffer+63,R18
	.dbline 162
L51:
	.dbline -2
	.dbline 163
; 
; 
; 
; 
; 
; 
; 
L49:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r d1 18 c
	.dbsym r d0 16 c
	.dbend
	.area vector(rom, abs)
	.org 32
	jmp _scan_led
	.area text(rom, con, rel)
	.dbfile E:/32x16汉字/32x16led.h
	.dbfunc e scan_led _scan_led fV
;         scan_c -> R20
;          buf_c -> R22
	.even
_scan_led::
	xcall push_lset
	xcall push_gset2
	.dbline -1
	.dbline 167
; 
; 
; 
; 
	.dbline 168
; 
	clr R20
	.dbline 169
; 
	ldi R24,231
	out 0x2d,R24
	.dbline 170
; 
	ldi R24,80
	out 0x2c,R24
	.dbline 170
	.dbline 171
; 
	clr R22
	xjmp L69
L66:
	.dbline 172
	.dbline 175
	ldi R24,<_display_buffer
	ldi R25,>_display_buffer
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	out 0x18,R2
	.dbline 176
	inc R22
	.dbline 177
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	out 0x1b,R2
	.dbline 178
	inc R22
	.dbline 179
	out 0x15,R20
	.dbline 180
	ldi R16,8
	ldi R17,0
	xcall _delay
	.dbline 183
	inc R20
	.dbline 184
L67:
	.dbline 171
L69:
	.dbline 171
	cpi R22,64
	brlo L66
	.dbline -2
	.dbline 185
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
L65:
	xcall pop_gset2
	xcall pop_lset
	.dbline 0 ; func end
	reti
	.dbsym r scan_c 20 c
	.dbsym r buf_c 22 c
	.dbend
	.dbfunc e delay _delay fV
;              i -> R20
;              j -> R22
;         d_time -> R16
	.even
_delay::
	xcall push_gset2
	.dbline -1
	.dbline 189
; 
; 
; 
; 
	.dbline 191
; 
; 
	clr R20
	xjmp L74
L71:
	.dbline 192
; 
	.dbline 193
; 
	ldi R22,25
L75:
	.dbline 194
L76:
	.dbline 194
	mov R2,R22
	clr R3
	subi R22,1
	tst R2
	brne L75
	.dbline 195
L72:
	.dbline 191
	inc R20
L74:
	.dbline 191
	cp R16,R20
	brsh L71
	.dbline -2
	.dbline 196
; 
; 
; 
L70:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r j 22 c
	.dbsym r d_time 16 c
	.dbend
	.dbfile E:\32x16汉字\main.c
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 8
	xjmp L80
L79:
	.dbline 10
	.dbline 11
	xcall _led_initial
	.dbline 12
	ldi R16,<L82
	ldi R17,>L82
	xcall _print_char
	.dbline 13
	ldi R16,<L83
	ldi R17,>L83
	xcall _print_char
	.dbline 14
	ldi R16,50
	xcall _delay
	.dbline 16
	ldi R16,<L84
	ldi R17,>L84
	xcall _print_char
	.dbline 17
	ldi R16,<L85
	ldi R17,>L85
	xcall _print_char
	.dbline 18
	ldi R16,<L86
	ldi R17,>L86
	xcall _print_char
	.dbline 19
	ldi R16,<L87
	ldi R17,>L87
	xcall _print_char
	.dbline 20
	ldi R16,50
	xcall _delay
	.dbline 22
L80:
	.dbline 9
	xjmp L79
X5:
	.dbline -2
	.dbline 23
L78:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\32x16汉字\main.c
_display_buffer::
	.blkb 64
	.dbfile E:/32x16汉字/32x16led.h
	.dbsym e display_buffer _display_buffer A[64:64]c
_dir_f::
	.blkb 1
	.dbsym e dir_f _dir_f c
	.area data(ram, con, rel)
	.dbfile E:/32x16汉字/32x16led.h
L87:
	.blkb 39
	.area idata
	.byte 207,224,208,197,187,187,204,168,186,195,181,227,181,196,181,231
	.byte 196,212,187,225,211,208,184,252,186,195,181,196,208,167,185,251
	.byte 33,32,193,245,206,176,0
	.area data(ram, con, rel)
	.dbfile E:/32x16汉字/32x16led.h
L86:
	.blkb 38
	.area idata
	.byte 206,210,181,196,181,231,196,212,204,171,178,238,212,203,208,208
	.byte 198,240,192,180,192,207,202,199,210,187,182,217,210,187,182,217
	.byte 181,196,94,95,94,0
	.area data(ram, con, rel)
	.dbfile E:/32x16汉字/32x16led.h
L85:
	.blkb 40
	.area idata
	.byte 207,212,202,190,208,167,185,251,211,235,209,211,202,177,178,206
	.byte 202,253,186,205,181,231,196,212,203,217,182,200,211,208,186,220
	.byte 180,243,185,216,207,181,46,0
	.area data(ram, con, rel)
	.dbfile E:/32x16汉字/32x16led.h
L84:
	.blkb 18
	.area idata
	.byte 215,212,188,186,177,224,181,196,193,183,207,176,179,204,208,242
	.byte 44,0
	.area data(ram, con, rel)
	.dbfile E:/32x16汉字/32x16led.h
L83:
	.blkb 9
	.area idata
	.byte 206,210,176,174,189,240,211,227,0
	.area data(ram, con, rel)
	.dbfile E:/32x16汉字/32x16led.h
L82:
	.blkb 24
	.area idata
	.byte 'T,'E,'S,'T,32,'L,'E,'D,32,48,49,50,51,52,53,54
	.byte 55,56,57,32,'a,'b,'c,0
	.area data(ram, con, rel)
	.dbfile E:/32x16汉字/32x16led.h

⌨️ 快捷键说明

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