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

📄 osd.s

📁 7"车载液晶电视机 控制程序源码 WinRar3.2压缩 MCU ATMega8
💻 S
📖 第 1 页 / 共 2 页
字号:
L76:
	.dbline 24
	movw R30,R22
	ld R16,Z+
	movw R22,R30
	rcall _iic_send
L77:
	.dbline 23
	inc R20
L79:
	.dbline 23
	cpi R20,36
	brlo L76
	.dbline 25
	rcall _iic_stop
	.dbline 26
	wdr
	.dbline -2
	.dbline 27
L75:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r x 22 pc
	.dbsym r j 20 c
	.dbend
	.dbfunc e OSD_init _OSD_init fV
	.even
_OSD_init::
	.dbline -1
	.dbline 32
	.dbline 33
	rcall _iic_init
	.dbline 34
	rcall _iic_start
	.dbline 35
	ldi R16,122
	rcall _iic_send
	.dbline 36
	ldi R16,143
	rcall _iic_send
	.dbline 37
	ldi R16,17
	rcall _iic_send
	.dbline 38
	ldi R16,251
	rcall _iic_send
	.dbline 39
	.dbline -2
	.dbline 40
L80:
	.dbline 0 ; func end
	rjmp _iic_stop
	.dbend
	.area lit(rom, con, rel)
L82:
	.byte 'z,143
	.byte 64,10
	.byte 5,193
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,0
	.byte 0,16
	.byte 10,0
	.byte 36,0
	.byte 145,209
	.byte 0,0
	.byte 0,0
	.area text(rom, con, rel)
	.dbfile C:\_项目\7寸液晶电视\软件\osd.c
	.dbfunc e OSD_window _OSD_window fV
;  osd_init_code -> y+0
;              i -> R20
;              x -> R20
	.even
_OSD_window::
	rcall push_gset1
	mov R20,R16
	sbiw R28,26
	.dbline -1
	.dbline 48
	.dbline 50
	ldi R24,<L82
	ldi R25,>L82
	movw R30,R28
	ldi R16,26
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	rcall asgncblk
	.dbline 54
	clr R21
	cpi R20,0
	cpc R20,R21
	breq L86
X72:
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	breq L91
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L96
	rjmp L83
X73:
	.dbline 55
L86:
	.dbline 57
	clr R2
	std y+3,R2
	.dbline 58
	ldi R24,72
	std y+5,R24
	.dbline 59
	ldi R24,9
	std y+15,R24
	.dbline 60
	ldi R24,44
	std y+16,R24
	.dbline 61
	rjmp L84
L91:
	.dbline 63
	ldi R24,6
	std y+3,R24
	.dbline 64
	ldi R24,112
	std y+5,R24
	.dbline 65
	ldi R24,24
	std y+15,R24
	.dbline 66
	ldi R24,31
	std y+16,R24
	.dbline 67
	rjmp L84
L96:
	.dbline 69
	clr R2
	std y+3,R2
	.dbline 70
	ldi R24,120
	std y+5,R24
	.dbline 71
	ldi R24,58
	std y+15,R24
	.dbline 72
	ldi R24,32
	std y+16,R24
	.dbline 73
L83:
L84:
	.dbline 76
	rcall _OSD_init
	.dbline 77
	rcall _iic_init
	.dbline 78
	rcall _iic_start
	.dbline 79
	clr R20
	rjmp L104
L101:
	.dbline 80
	.dbline 81
	movw R24,R28
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	rcall _iic_send
	.dbline 82
L102:
	.dbline 79
	inc R20
L104:
	.dbline 79
	cpi R20,26
	brlo L101
	.dbline 83
	rcall _iic_stop
	.dbline -2
	.dbline 84
L81:
	adiw R28,26
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym l osd_init_code 0 A[26:26]c
	.dbsym r i 20 c
	.dbsym r x 20 c
	.dbend
	.dbfunc e OSD_out_1row _OSD_out_1row fc
;            mid -> R20
;              j -> R22
;         string -> R10,R11
;           size -> y+12
;         extent -> R12
;            col -> R14
;            row -> R22
	.even
_OSD_out_1row::
	rcall push_gset5
	mov R14,R18
	mov R22,R16
	ldd R12,y+10
	ldd R10,y+14
	ldd R11,y+15
	.dbline -1
	.dbline 94
	.dbline 97
	ldd R20,y+12
	subi R20,255    ; addi 1
	.dbline 98
	mov R16,R12
	ldd R17,y+12
	rcall lsl8
	mov R12,R16
	.dbline 99
	rcall _iic_init
	.dbline 100
	rcall _iic_start
	tst R16
	brne L106
	.dbline 101
	clr R16
	rjmp L105
L106:
	.dbline 102
	ldi R16,122
	rcall _iic_send
	tst R16
	brne L108
	.dbline 103
	clr R16
	rjmp L105
L108:
	.dbline 104
	mov R16,R22
	subi R16,128    ; addi 128
	rcall _iic_send
	tst R16
	brne L110
	.dbline 105
	clr R16
	rjmp L105
L110:
	.dbline 106
	ldi R16,30
	rcall _iic_send
	tst R16
	brne L112
	.dbline 107
	clr R16
	rjmp L105
L112:
	.dbline 108
	ldi R24,3
	ldd R0,y+12
	mul R24,R0
	mov R16,R0
	rcall _iic_send
	tst R16
	brne L114
	.dbline 109
	clr R16
	rjmp L105
L114:
	.dbline 110
	rcall _iic_stop
	.dbline 111
	rcall _iic_start
	tst R16
	brne L116
	.dbline 112
	clr R16
	rjmp L105
L116:
	.dbline 113
	ldi R16,122
	rcall _iic_send
	tst R16
	brne L118
	.dbline 114
	clr R16
	rjmp L105
L118:
	.dbline 115
	mov R16,R22
	subi R16,128    ; addi 128
	rcall _iic_send
	tst R16
	brne L120
	.dbline 116
	clr R16
	rjmp L105
L120:
	.dbline 117
	clr R22
	rjmp L125
L122:
	.dbline 118
	.dbline 119
	mov R17,R20
	mov R16,R22
	rcall div8u
	ldi R24,2
	mul R24,R16
	movw R30,R0
	add R30,R10
	adc R31,R11
	ldd R18,z+0
	ldd R19,z+1
	mov R18,R19
	clr R19
	ldi R16,32
	ldi R17,0
	rcall empy16s
	movw R2,R16
	mov R4,R14
	clr R5
	mov R16,R22
	clr R17
	add R16,R4
	adc R17,R5
	add R16,R2
	adc R17,R3
	rcall _iic_send
	tst R16
	brne L126
	.dbline 120
	clr R16
	rjmp L105
L126:
	.dbline 121
	mov R17,R20
	mov R16,R22
	rcall div8u
	ldi R24,2
	mul R24,R16
	movw R30,R0
	add R30,R10
	adc R31,R11
	ldd R16,z+0
	rcall _iic_send
	tst R16
	brne L128
	.dbline 122
	clr R16
	rjmp L105
L128:
	.dbline 123
L123:
	.dbline 117
	inc R22
L125:
	.dbline 117
	cp R22,R12
	brlo L122
	.dbline 124
	rcall _iic_stop
	.dbline 126
	ldi R16,255
	.dbline -2
L105:
	rcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym r mid 20 c
	.dbsym r j 22 c
	.dbsym r string 10 pi
	.dbsym l size 12 c
	.dbsym r extent 12 c
	.dbsym r col 14 c
	.dbsym r row 22 c
	.dbend
	.dbfunc e OSD_out_num _OSD_out_num fc
;           size -> y+8
;          value -> R20
;            col -> R22
;            row -> R10
	.even
_OSD_out_num::
	rcall push_gset3
	mov R22,R18
	mov R10,R16
	ldd R20,y+6
	.dbline -1
	.dbline 136
	.dbline 137
	rcall _iic_init
	.dbline 138
	rcall _iic_start
	tst R16
	brne L131
	.dbline 139
	clr R16
	rjmp L130
L131:
	.dbline 140
	ldi R16,122
	rcall _iic_send
	tst R16
	brne L133
	.dbline 141
	clr R16
	rjmp L130
L133:
	.dbline 142
	mov R16,R10
	subi R16,128    ; addi 128
	rcall _iic_send
	tst R16
	brne L135
	.dbline 143
	clr R16
	rjmp L130
L135:
	.dbline 144
	ldi R16,30
	rcall _iic_send
	tst R16
	brne L137
	.dbline 145
	clr R16
	rjmp L130
L137:
	.dbline 146
	ldi R24,3
	ldd R0,y+8
	mul R24,R0
	mov R16,R0
	rcall _iic_send
	tst R16
	brne L139
	.dbline 147
	clr R16
	rjmp L130
L139:
	.dbline 148
	rcall _iic_stop
	.dbline 149
	rcall _iic_start
	tst R16
	brne L141
	.dbline 150
	clr R16
	rjmp L130
L141:
	.dbline 151
	ldi R16,122
	rcall _iic_send
	tst R16
	brne L143
	.dbline 152
	clr R16
	rjmp L130
L143:
	.dbline 153
	mov R16,R10
	subi R16,128    ; addi 128
	rcall _iic_send
	tst R16
	brne L145
	.dbline 154
	clr R16
	rjmp L130
L145:
	.dbline 155
	mov R16,R22
	subi R16,192    ; addi 64
	rcall _iic_send
	tst R16
	brne L147
	.dbline 156
	clr R16
	rjmp L130
L147:
	.dbline 157
	ldi R17,10
	mov R16,R20
	rcall div8u
	rcall _conversion_char
	rcall _iic_send
	tst R16
	brne L149
	.dbline 158
	clr R16
	rjmp L130
L149:
	.dbline 159
	ldd R0,y+8
	tst R0
	breq L151
	.dbline 160
	.dbline 161
	ldi R17,10
	mov R16,R20
	rcall div8u
	rcall _conversion_char
	rcall _iic_send
	tst R16
	brne L153
	.dbline 162
	clr R16
	rjmp L130
L153:
	.dbline 163
L151:
	.dbline 164
	ldi R17,10
	mov R16,R20
	rcall mod8u
	rcall _conversion_char
	rcall _iic_send
	tst R16
	brne L155
	.dbline 165
	clr R16
	rjmp L130
L155:
	.dbline 166
	ldd R0,y+8
	tst R0
	breq L157
	.dbline 167
	.dbline 168
	ldi R17,10
	mov R16,R20
	rcall mod8u
	rcall _conversion_char
	rcall _iic_send
	tst R16
	brne L159
	.dbline 169
	clr R16
	rjmp L130
L159:
	.dbline 170
L157:
	.dbline 171
	rcall _iic_stop
	.dbline 173
	ldi R16,255
	.dbline -2
L130:
	rcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym l size 8 c
	.dbsym r value 20 c
	.dbsym r col 22 c
	.dbsym r row 10 c
	.dbend
	.area lit(rom, con, rel)
L162:
	.byte 'z,133
	.byte 'B
	.byte 0,0,0,0,0,0,0,0,0,0
	.area text(rom, con, rel)
	.dbfile C:\_项目\7寸液晶电视\软件\osd.c
	.dbfunc e gauge_num _gauge_num fc
;              x -> y+13
;         tmpbuf -> y+0
;              j -> R10
;          value -> y+23
	.even
_gauge_num::
	rcall push_arg4
	rcall push_gset3
	sbiw R28,17
	.dbline -1
	.dbline 183
	.dbline 185
	ldi R24,<L162
	ldi R25,>L162
	movw R30,R28
	ldi R16,13
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	rcall asgncblk
	.dbline 187
	movw R30,R28
	ldd R2,z+23
	ldd R3,z+24
	ldd R4,z+25
	ldd R5,z+26
	ldi R20,113
	ldi R21,2
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	rcall empy32u
	movw R30,R28
	std z+13,R16
	std z+14,R17
	std z+15,R18
	std z+16,R19
	.dbline 188
	clr R10
	rjmp L166
L163:
	.dbline 189
	.dbline 190
	mov R2,R10
	clr R3
	ldi R30,11
	ldi R31,0
	sub R30,R2
	sbc R31,R3
	movw R24,R28
	add R30,R24
	adc R31,R25
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R26,R28
	adiw R26,13
	ld R2,x+
	ld R3,x+
	ld R4,x+
	ld R5,x
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	rcall mod32u
	std z+0,R16
	.dbline 191
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+13
	ldd R3,z+14
	ldd R4,z+15
	ldd R5,z+16
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	rcall div32u
	movw R30,R28
	std z+13,R16
	std z+14,R17
	std z+15,R18
	std z+16,R19
	.dbline 192
L164:
	.dbline 188
	inc R10
L166:
	.dbline 188
	mov R24,R10
	cpi R24,8
	brsh X74
	rjmp L163
X74:
	.dbline 193
	ldi R24,3
	mov R10,R24
	rjmp L170
L167:
	.dbline 194
	.dbline 195
	movw R24,R28
	adiw R24,1
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	movw R24,R28
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R2
	.dbline 196
L168:
	.dbline 193
	inc R10
L170:
	.dbline 193
	mov R24,R10
	cpi R24,7
	brlo L167
	.dbline 197
	ldi R24,3
	mov R10,R24
	rjmp L175
L172:
	.dbline 198
	.dbline 199
	movw R24,R28
	mov R2,R10
	clr R3
	add R2,R24
	adc R3,R25
	movw R30,R2
	ldd R16,z+0
	push R30
	push R31
	rcall _conversion_char
	pop R31
	pop R30
	std z+0,R16
	.dbline 200
L173:
	.dbline 197
	inc R10
L175:
	.dbline 197
	mov R24,R10
	cpi R24,12
	brlo L172
	.dbline 201
	ldi R24,243
	std y+7,R24
	.dbline 202
	ldi R24,23
	std y+11,R24
	.dbline 203
	ldi R24,132
	std y+12,R24
	.dbline 204
	rcall _iic_init
	.dbline 205
	rcall _iic_start
	tst R16
	brne L179
	.dbline 206
	clr R16
	rjmp L161
L179:
	.dbline 207
	clr R10
	rjmp L184
L181:
	.dbline 208
	.dbline 209
	movw R24,R28
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	rcall _iic_send
	tst R16
	brne L185
	.dbline 210
	clr R16
	rjmp L161
L185:
	.dbline 211
L182:
	.dbline 207
	inc R10
L184:
	.dbline 207
	mov R24,R10
	cpi R24,13
	brlo L181
	.dbline 212
	rcall _iic_stop
	.dbline 214
	ldi R16,255
	.dbline -2
L161:
	adiw R28,17
	rcall pop_gset3
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym l x 13 l
	.dbsym l tmpbuf 0 A[13:13]c
	.dbsym r j 10 c
	.dbsym l value 23 l
	.dbend
	.dbfunc e OSD_attrib_1row _OSD_attrib_1row fc
;              j -> R20
;       bg_color -> R22
;       fg_color -> R10
;         extent -> R12
;            col -> R14
;            row -> y+10
	.even
_OSD_attrib_1row::
	rcall push_arg4
	rcall push_gset5
	mov R14,R18
	ldd R12,y+14
	ldd R10,y+16
	ldd R22,y+18
	.dbline -1
	.dbline 225
	.dbline 226
	clr R20
	.dbline 227
	rcall _iic_init
	.dbline 228
	rcall _iic_start
	tst R16
	brne L188
	.dbline 229
	clr R16
	rjmp L187
L188:
	.dbline 230
	ldi R16,122
	rcall _iic_send
	tst R16
	brne L190
	.dbline 231
	clr R16
	rjmp L187
L190:
	.dbline 232
	ldd R16,y+10
	subi R16,96    ; addi 160
	rcall _iic_send
	tst R16
	brne L192
	.dbline 233
	clr R16
	rjmp L187
L192:
	.dbline 234
	mov R16,R14
	subi R16,192    ; addi 64
	rcall _iic_send
	tst R16
	brne L194
	.dbline 235
	clr R16
	rjmp L187
L194:
	.dbline 236
	clr R20
	rjmp L199
L196:
	.dbline 237
	.dbline 238
	mov R24,R22
	andi R24,#0x0F
	swap R24
	mov R16,R10
	add R16,R24
	rcall _iic_send
	tst R16
	brne L200
	.dbline 239
	clr R16
	rjmp L187
L200:
	.dbline 240
L197:
	.dbline 236
	inc R20
L199:
	.dbline 236
	cp R20,R12
	brlo L196
	.dbline 241
	rcall _iic_stop
	.dbline 242
	ldi R16,255
	.dbline -2
L187:
	rcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r j 20 c
	.dbsym r bg_color 22 c
	.dbsym r fg_color 10 c
	.dbsym r extent 12 c
	.dbsym r col 14 c
	.dbsym l row 10 c
	.dbend
	.dbfunc e OSD_off _OSD_off fV
	.even
_OSD_off::
	.dbline -1
	.dbline 248
	.dbline 249
	rcall _iic_start
	.dbline 250
	ldi R16,122
	rcall _iic_send
	.dbline 251
	ldi R16,143
	rcall _iic_send
	.dbline 252
	ldi R16,17
	rcall _iic_send
	.dbline 253
	ldi R16,123
	rcall _iic_send
	.dbline 254
	.dbline -2
	.dbline 255
L202:
	.dbline 0 ; func end
	rjmp _iic_stop
	.dbend

⌨️ 快捷键说明

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