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

📄 main.src

📁 通用OSD控制(51单片机控制的TFTLCD源码,MTV018)
💻 SRC
📖 第 1 页 / 共 5 页
字号:
; void disp_char(char row, char col, unsigned char c)

	RSEG  ?PR?_disp_char?MAIN
L?0200:
	USING	0
L?0201:
	MOV  	R5,col?866
	MOV  	R7,row?865
_disp_char:
	USING	0
			; SOURCE LINE # 150
;---- Variable 'row?140' assigned to Register 'R7' ----
;---- Variable 'c?142' assigned to Register 'R6' ----
	MOV  	R6,AR3
;---- Variable 'col?141' assigned to Register 'R5' ----
; {
			; SOURCE LINE # 151
; 	unsigned char v = c;
			; SOURCE LINE # 152
;---- Variable 'v?143' assigned to Register 'R3' ----
; 	if (c >= '0' && c <= '9')
			; SOURCE LINE # 153
	MOV  	A,R6
	CLR  	C
	SUBB 	A,#030H
	JC   	?C0002
	MOV  	A,R6
	SETB 	C
	SUBB 	A,#039H
	JNC  	?C0002
; 		v = c - '0' + 1;
			; SOURCE LINE # 154
	MOV  	A,R6
	ADD  	A,#0D1H
	MOV  	R3,A
?C0002:
; 	if (c >= 'A' && c <= 'N')
			; SOURCE LINE # 155
	MOV  	A,R6
	CLR  	C
	SUBB 	A,#041H
	JC   	?C0003
	MOV  	A,R6
	SETB 	C
	SUBB 	A,#04EH
	JNC  	?C0003
; 		v = c - 'A' + 11;
			; SOURCE LINE # 156
	MOV  	A,R6
	ADD  	A,#0CAH
	MOV  	R3,A
?C0003:
; 	if (c == 'O')
			; SOURCE LINE # 157
	CJNE 	R6,#04FH,?C0004
; 		v = 1;
			; SOURCE LINE # 158
	MOV  	R3,#01H
?C0004:
; 	if (c >= 'P' && c <= 'Z')
			; SOURCE LINE # 159
	MOV  	A,R6
	CLR  	C
	SUBB 	A,#050H
	JC   	?C0005
	MOV  	A,R6
	SETB 	C
	SUBB 	A,#05AH
	JNC  	?C0005
; 		v = c - 'A' + 10;
			; SOURCE LINE # 160
	MOV  	A,R6
	ADD  	A,#0C9H
	MOV  	R3,A
?C0005:
; 	if (c >= 'a' && c <= 'z')
			; SOURCE LINE # 161
	MOV  	A,R6
	CLR  	C
	SUBB 	A,#061H
	JC   	?C0006
	MOV  	A,R6
	SETB 	C
	SUBB 	A,#07AH
	JNC  	?C0006
; 		v = c - 'a' + 36;
			; SOURCE LINE # 162
	MOV  	A,R6
	ADD  	A,#0C3H
	MOV  	R3,A
?C0006:
; 	if (c == ' ')
			; SOURCE LINE # 163
	CJNE 	R6,#020H,?C0007
; 		v = 0;
			; SOURCE LINE # 164
	CLR  	A
	MOV  	R3,A
?C0007:
; 	mtv130_putd(row, col, v);
			; SOURCE LINE # 165
	LJMP 	_mtv130_putd
; END OF _disp_char

; }
; 
; void disp_str(char row, char col, unsigned char *str)

	RSEG  ?PR?_disp_str?MAIN
_disp_str:
	USING	0
			; SOURCE LINE # 168
	MOV  	row?244,R7
	MOV  	col?245,R5
	MOV  	str?246,R3
	MOV  	str?246+01H,R2
	MOV  	str?246+02H,R1
; {
			; SOURCE LINE # 169
?C0009:
; 	unsigned char c;
; 	while ((c = *str++) != 0) {
			; SOURCE LINE # 171
	MOV  	R3,str?246
	INC  	str?246+02H
	MOV  	A,str?246+02H
	MOV  	R2,str?246+01H
	JNZ  	?C0190
	INC  	str?246+01H
?C0190:
	DEC  	A
	MOV  	R1,A
	LCALL	?C?CLDPTR
;---- Variable 'c?247' assigned to Register 'R1' ----
	MOV  	R1,A
	JZ   	?C0011
; 		disp_char(row, col, c);
			; SOURCE LINE # 172
	MOV  	R3,A
	MOV  	R5,col?245
	MOV  	R7,row?244
	LCALL	_disp_char
; 		col += 1;
			; SOURCE LINE # 173
	INC  	col?245
; 	}
			; SOURCE LINE # 174
	SJMP 	?C0009
; }
			; SOURCE LINE # 175
?C0011:
	RET  	
; END OF _disp_str

; 
; void disp_str2(char row, char col, unsigned char code *str, unsigned char color)

	RSEG  ?PR?_disp_str2?MAIN
_disp_str2:
	USING	0
			; SOURCE LINE # 177
	MOV  	row?348,R7
	MOV  	str?350,R2
	MOV  	str?350+01H,R3
;---- Variable 'col?349' assigned to Register 'R1' ----
	MOV  	R1,AR5
; {
			; SOURCE LINE # 178
?C0012:
; 	unsigned char c;
; 	while ((c = *str++) != 0) {//先加地址,再取里面的数据。
			; SOURCE LINE # 180
	INC  	str?350+01H
	MOV  	A,str?350+01H
	MOV  	R6,str?350
	JNZ  	?C0191
	INC  	str?350
?C0191:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	c?352,A
	JZ   	?C0014
; 		disp_char(row, col, c);
			; SOURCE LINE # 181
	MOV  	R5,AR1
	MOV  	R3,A
	MOV  	R7,row?348
	LCALL	_disp_char
; 		mtv130_puta(row, col, color);
			; SOURCE LINE # 182
	MOV  	R5,AR1
	MOV  	R3,color?351
	MOV  	R7,row?348
	LCALL	_mtv130_puta
; 		col += 1;
			; SOURCE LINE # 183
	INC  	R1
; 	}
			; SOURCE LINE # 184
	SJMP 	?C0012
; }
			; SOURCE LINE # 185
?C0014:
	RET  	
; END OF _disp_str2

; 
; void disp_str3(char row, char col, unsigned char code *str)

	RSEG  ?PR?_disp_str3?MAIN
L?0202:
	USING	0
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R2,A
	MOV  	A,#01H
	MOVC 	A,@A+DPTR
	MOV  	R3,A
_disp_str3:
	USING	0
			; SOURCE LINE # 187
;---- Variable 'row?453' assigned to Register 'R7' ----
;---- Variable 'str?455' assigned to Register 'R2/R3' ----
;---- Variable 'col?454' assigned to Register 'R5' ----
; {
			; SOURCE LINE # 188
; 	disp_str(row, col, str);
			; SOURCE LINE # 189
	MOV  	R1,AR3
	MOV  	R3,#0FFH
	LJMP 	_disp_str
; END OF _disp_str3

; }
; 
; unsigned char data *get_num_str(unsigned char num)

	RSEG  ?PR?_get_num_str?MAIN
_get_num_str:
	USING	0
			; SOURCE LINE # 192
;---- Variable 'num?556' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 193
; 	static unsigned char num_str[4];
; 	char end = 3;
			; SOURCE LINE # 195
;---- Variable 'end?558' assigned to Register 'R6' ----
	MOV  	R6,#03H
; 
; 	num_str[end] = 0;
			; SOURCE LINE # 197
	MOV  	A,#LOW (num_str?557)
	ADD  	A,R6
	MOV  	R0,A
	CLR  	A
	MOV  	@R0,A
; 	end--;
			; SOURCE LINE # 198
	DEC  	R6
?C0016:
; 
; 	while (end >= 0) {
			; SOURCE LINE # 200
	CLR  	C
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?C0019
; 		num_str[end] = '0'+num%10;
			; SOURCE LINE # 201
	MOV  	A,R7
	MOV  	B,#0AH
	DIV  	AB
	MOV  	A,B
	ADD  	A,#030H
	MOV  	R5,A
	MOV  	A,#LOW (num_str?557)
	ADD  	A,R6
	MOV  	R0,A
	MOV  	@R0,AR5
; 		end--;
			; SOURCE LINE # 202
	DEC  	R6
; 		num /= 10;
			; SOURCE LINE # 203
	MOV  	A,R7
	MOV  	B,#0AH
	DIV  	AB
	MOV  	R7,A
; 		if (num == 0)
			; SOURCE LINE # 204
	JNZ  	?C0016
; 			break;
			; SOURCE LINE # 205
; 	}
			; SOURCE LINE # 206
?C0019:
; 	while (end >= 0) {
			; SOURCE LINE # 207
	CLR  	C
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?C0020
; 		num_str[end] = ' ';
			; SOURCE LINE # 208
	MOV  	A,#LOW (num_str?557)
	ADD  	A,R6
	MOV  	R0,A
	MOV  	@R0,#020H
; 		end--;
			; SOURCE LINE # 209
	DEC  	R6
; 	}
			; SOURCE LINE # 210
	SJMP 	?C0019
?C0020:
; 	return num_str;
			; SOURCE LINE # 211
	MOV  	R7,#LOW (num_str?557)
; }
			; SOURCE LINE # 212
?C0021:
	RET  	
; END OF _get_num_str

; 
; void paint_line(char row, char col, unsigned char count, unsigned char color)

	RSEG  ?PR?_paint_line?MAIN
_paint_line:
	USING	0
			; SOURCE LINE # 214
	MOV  	row?659,R7
	MOV  	col?660,R5
;---- Variable 'count?661' assigned to Register 'R1' ----
	MOV  	R1,AR3
; {
			; SOURCE LINE # 215
?C0022:
; 	while (count--)
			; SOURCE LINE # 216
	MOV  	R7,AR1
	DEC  	R1
	MOV  	A,R7
	JZ   	?C0024
; 		mtv130_puta(row, col++, color);
			; SOURCE LINE # 217
	MOV  	R5,col?660
	INC  	col?660
	MOV  	R3,color?662
	MOV  	R7,row?659
	LCALL	_mtv130_puta
	SJMP 	?C0022
; }
			; SOURCE LINE # 218
?C0024:
	RET  	
; END OF _paint_line

; 
; void clear_line(char row)

	RSEG  ?PR?_clear_line?MAIN
_clear_line:
	USING	0
			; SOURCE LINE # 220
	MOV  	row?763,R7
; {
			; SOURCE LINE # 221
; 	char col;
; 	for (col = 0; col != 30; col++) {
			; SOURCE LINE # 223
;---- Variable 'col?764' assigned to Register 'R1' ----
	CLR  	A
	MOV  	R1,A
?C0025:
; 		osd_putchar(row, col, 0, 0);
			; SOURCE LINE # 224
	MOV  	R5,AR1
	CLR  	A
	MOV  	R3,A
	MOV  	R7,row?763
	LCALL	_mtv130_putd
	MOV  	R5,AR1
	CLR  	A
	MOV  	R3,A
	MOV  	R7,row?763
	LCALL	_mtv130_puta
; 	}
			; SOURCE LINE # 225
	INC  	R1
	CJNE 	R1,#01EH,?C0025
; }
			; SOURCE LINE # 226
?C0031:
	RET  	
; END OF _clear_line

; 
; void draw_progbar(char row, char col, struct progbar_struct data *pb)

	RSEG  ?PR?_draw_progbar?MAIN
_draw_progbar:
	USING	0
			; SOURCE LINE # 228
	MOV  	row?865,R7
	MOV  	col?866,R5
;---- Variable 'pb?867' assigned to Register 'R3' ----
; {
			; SOURCE LINE # 229
; 	unsigned char range = pb->range, step = pb->step, pos = pb->pos;
			; SOURCE LINE # 230
	MOV  	A,R3
	INC  	A
	MOV  	R0,A
	MOV  	A,@R0
	MOV  	range?868,A
	MOV  	A,R3
	ADD  	A,#03H
	MOV  	R0,A
	MOV  	A,@R0
	MOV  	step?869,A
	MOV  	A,R3
	ADD  	A,#02H
	MOV  	R0,A
	MOV  	A,@R0
	MOV  	pos?870,A
; 	unsigned char i = 0, c;
			; SOURCE LINE # 231
;---- Variable 'i?871' assigned to Register 'R1' ----
	CLR  	A
	MOV  	R1,A
; 
; 	osd_setrowattr(row, 0);
			; SOURCE LINE # 233
	MOV  	R3,A
	MOV  	R5,#01EH
	LCALL	_mtv130_putd
; 
; 	disp_char(row, col, BAR_B);
			; SOURCE LINE # 235
	MOV  	R3,#080H
	LCALL	L?0200
; 	col += 1;
			; SOURCE LINE # 236
	INC  	col?866
; 	
; 	for (; i < pos*step/BAR_N; i++) {
			; SOURCE LINE # 238
?C0032:
	MOV  	A,pos?870
	MOV  	B,step?869
	MUL  	AB
	RRC  	A
	RRC  	A
	ANL  	A,#03FH
	MOV  	R7,A
	MOV  	A,R1
	CLR  	C
	SUBB 	A,R7
	JNC  	?C0033
; 		disp_char(row, col, BAR_F);
			; SOURCE LINE # 239
	MOV  	R3,#081H
	LCALL	L?0200
; 		col += 1;
			; SOURCE LINE # 240
	INC  	col?866
; 	}
			; SOURCE LINE # 241
	INC  	R1
	SJMP 	?C0032
?C0033:
; 	
; 	if ((c = pos*step%BAR_N) > 0) {
			; SOURCE LINE # 243
	MOV  	A,pos?870
	MOV  	B,step?869
	MUL  	AB
	ANL  	A,#03H
	MOV  	R7,A
;---- Variable 'c?872' assigned to Register 'R7' ----
	SETB 	C
	SUBB 	A,#00H
	JC   	?C0036
; 		disp_char(row, col, BAR_F + BAR_N - c);
			; SOURCE LINE # 244
	MOV  	A,#085H
	SUBB 	A,R7
	MOV  	R3,A
; 		col += 1;
			; SOURCE LINE # 245
; 		i++;
			; SOURCE LINE # 246
; 	}
			; SOURCE LINE # 247
; 
; 	for (; i < range*step/BAR_N; i++) {
			; SOURCE LINE # 249
	SJMP 	?C0196
?C0036:
	MOV  	A,range?868
	MOV  	B,step?869
	MUL  	AB
	RRC  	A
	RRC  	A
	ANL  	A,#03FH
	MOV  	R7,A
	MOV  	A,R1
	CLR  	C
	SUBB 	A,R7
	JNC  	?C0037
; 		disp_char(row, col, BAR_F+BAR_N);
			; SOURCE LINE # 250
	MOV  	R3,#085H
?C0196:
	LCALL	L?0201
; 		col += 1;
			; SOURCE LINE # 251
	INC  	col?866
; 	}
			; SOURCE LINE # 252
	INC  	R1
	SJMP 	?C0036
?C0037:
; 	disp_char(row, col, BAR_E);
			; SOURCE LINE # 253
	MOV  	R3,#086H
	LCALL	L?0201
; 
; 	disp_str(row-1, col-3, get_num_str(pos/*pb->val*/));
			; SOURCE LINE # 255
	MOV  	R7,pos?870
	LCALL	_get_num_str
	MOV  	R1,AR7
	MOV  	R2,#00H
	MOV  	R3,#00H
	MOV  	A,row?865
	DEC  	A
	MOV  	R7,A
	MOV  	A,col?866
	ADD  	A,#0FDH
	MOV  	R5,A
	LJMP 	_disp_str
; END OF _draw_progbar

; }
; 
; #ifdef CWS
; #define ROW_BRI	0	
; #else
; #define ROW_BRI 0
; #endif
; 
; /*-----------------------------------------------------------------------------------------------*/
; 
; #define check_value(val, off, range)	\
; 	(((val) < (off) || (val) > (off)+(range)) ? (off)+(range)/2 : (val))
; #define check_value2(val, off, range, def)	\
; 	(((val) < (off) || (val) > (off)+(range)) ? (def) : (val))
; #define step_value(val, fac, inc) \
; 	((inc) ? (val)+(fac) : (val)-(fac))
; #define inc_value(val, off, range, fac)	\
; 	(((val)+(fac) < (off) || (val)+(fac) > (off)+(range)) ? (off)+(range) : (val)+(fac))
; #define dec_value(val, off, range, fac)	\
; 	(((val)-(fac) < (off) || (val)-(fac) > (off)+(range)) ? (off) : (val)-(fac))
; 
; unsigned char bri_read(unsigned char addr)

	RSEG  ?PR?_bri_read?MAIN
_bri_read:
	USING	0
			; SOURCE LINE # 277
;---- Variable 'addr?973' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 278
; 	unsigned char c = simple_read(addr);
			; SOURCE LINE # 279
	LCALL	_simple_read
;---- Variable 'c?974' assigned to Register 'R7' ----
; 	return check_value(c, BRI_OFF, BRI_RANGE);
			; SOURCE LINE # 280
	MOV  	A,R7
	CLR  	C
	SUBB 	A,#042H
	JC   	?C0042
	MOV  	A,R7
	SETB 	C
	SUBB 	A,#09EH
	JC   	?C0040
?C0042:
	MOV  	R7,#070H
	SJMP 	?C0041
?C0040:
?C0041:
; }
			; SOURCE LINE # 281
?C0043:
	RET  	
; END OF _bri_read

; 
; unsigned char cont_read(unsigned char addr)

	RSEG  ?PR?_cont_read?MAIN
_cont_read:
	USING	0
			; SOURCE LINE # 283
;---- Variable 'addr?1075' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 284
; 	unsigned char c = simple_read(addr);
			; SOURCE LINE # 285
	LCALL	_simple_read
;---- Variable 'c?1076' assigned to Register 'R7' ----
; 	return check_value(c, CONT_OFF, CONT_RANGE);
			; SOURCE LINE # 286
	MOV  	A,R7
	CLR  	C
	SUBB 	A,#042H
	JC   	?C0046
	MOV  	A,R7
	SETB 	C
	SUBB 	A,#09EH
	JC   	?C0044
?C0046:
	MOV  	R7,#070H
	SJMP 	?C0045
?C0044:
?C0045:
; }
			; SOURCE LINE # 287
?C0047:
	RET  	

⌨️ 快捷键说明

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