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

📄 main.src

📁 通用OSD控制(51单片机控制的TFTLCD源码,MTV018)
💻 SRC
📖 第 1 页 / 共 5 页
字号:
			; SOURCE LINE # 462
	CLR  	C
	MOV  	A,#05CH
	SUBB 	A,R3
	MOV  	pb?25104,A
; 	draw_progbar(row, col, &pb);
			; SOURCE LINE # 463
	MOV  	R3,#LOW (pb?25104)
	LJMP 	_draw_progbar
; END OF _bri_draw

; }
; 
; 
; 
; void cont_draw(char row, char col, unsigned char val)

	RSEG  ?PR?_cont_draw?MAIN
_cont_draw:
	USING	0
			; SOURCE LINE # 468
;---- Variable 'row?26105' assigned to Register 'R7' ----
;---- Variable 'val?26107' assigned to Register 'R3' ----
;---- Variable 'col?26106' assigned to Register 'R5' ----
; {
			; SOURCE LINE # 469
; 	struct progbar_struct pb;
; 	pb.step = 1;
			; SOURCE LINE # 471
	MOV  	pb?26108+03H,#01H
; 	pb.range = ABS(CONT_RANGE/CONT_FAC);
			; SOURCE LINE # 472
	MOV  	pb?26108+01H,#05CH
; 	pb.pos = (CONT_RANGE-(val-CONT_OFF))/CONT_FAC;
			; SOURCE LINE # 473
	CLR  	C
	MOV  	A,#09EH
	SUBB 	A,R3
	MOV  	pb?26108+02H,A
; 	pb.val = CONT_RANGE-val;
			; SOURCE LINE # 474
	CLR  	C
	MOV  	A,#05CH
	SUBB 	A,R3
	MOV  	pb?26108,A
; 	draw_progbar(row, col, &pb);
			; SOURCE LINE # 475
	MOV  	R3,#LOW (pb?26108)
	LJMP 	_draw_progbar
; END OF _cont_draw

; }
; 
; void col_draw(char row, char col, unsigned char val)

	RSEG  ?PR?_col_draw?MAIN
_col_draw:
	USING	0
			; SOURCE LINE # 478
;---- Variable 'row?27109' assigned to Register 'R7' ----
;---- Variable 'val?27111' assigned to Register 'R3' ----
;---- Variable 'col?27110' assigned to Register 'R5' ----
; {
			; SOURCE LINE # 479
; 	struct progbar_struct pb;
; 	pb.step = 1;
			; SOURCE LINE # 481
	MOV  	pb?27112+03H,#01H
; 	pb.range = ABS(COL_RANGE/COL_FAC);
			; SOURCE LINE # 482
	MOV  	pb?27112+01H,#05CH
; 	pb.pos = (val-COL_OFF)/COL_FAC;
			; SOURCE LINE # 483
	MOV  	A,R3
	ADD  	A,#093H
	MOV  	pb?27112+02H,A
; 	pb.val = val;
			; SOURCE LINE # 484
	MOV  	pb?27112,R3
; 	draw_progbar(row, col, &pb);
			; SOURCE LINE # 485
	MOV  	R3,#LOW (pb?27112)
	LJMP 	_draw_progbar
; END OF _col_draw

; }
; 
; void tint_draw(char row, char col, unsigned char val)

	RSEG  ?PR?_tint_draw?MAIN
_tint_draw:
	USING	0
			; SOURCE LINE # 488
;---- Variable 'row?28113' assigned to Register 'R7' ----
;---- Variable 'val?28115' assigned to Register 'R3' ----
;---- Variable 'col?28114' assigned to Register 'R5' ----
; {
			; SOURCE LINE # 489
; 	struct progbar_struct pb;
; 	pb.step = 1;
			; SOURCE LINE # 491
	MOV  	pb?28116+03H,#01H
; 	pb.range = ABS(TINT_RANGE/TINT_FAC);
			; SOURCE LINE # 492
	MOV  	pb?28116+01H,#05CH
; 	pb.pos = (val-TINT_OFF)/TINT_FAC;
			; SOURCE LINE # 493
	MOV  	A,R3
	ADD  	A,#089H
	MOV  	pb?28116+02H,A
; 	pb.val = val;
			; SOURCE LINE # 494
	MOV  	pb?28116,R3
; 	draw_progbar(row, col, &pb);
			; SOURCE LINE # 495
	MOV  	R3,#LOW (pb?28116)
	LJMP 	_draw_progbar
; END OF _tint_draw

; }
; 
; 
; void reset_draw(char row, char col, unsigned char val)

	RSEG  ?PR?_reset_draw?MAIN
_reset_draw:
			; SOURCE LINE # 499
	MOV  	row?29117,R7
	MOV  	col?29118,R5
	MOV  	val?29119,R3
; {
			; SOURCE LINE # 500
; }
			; SOURCE LINE # 501
	RET  	
; END OF _reset_draw

; 
; /*----------------------------------------------------------------------------------------------------*/
; 
; void show_menu(void)//显示菜单项目

	RSEG  ?PR?show_menu?MAIN
show_menu:
	USING	0
			; SOURCE LINE # 505
; {
			; SOURCE LINE # 506
; 	unsigned char i;
; 	struct menuitem_struct code *item;
; 
; 	for (i = 0, item = &items[0]; i < NR_ITEMS; i++, item++) {
			; SOURCE LINE # 510
	CLR  	A
	MOV  	i?30121,A
	MOV  	item?30122,#HIGH (items)
	MOV  	item?30122+01H,#LOW (items)
?C0109:
	MOV  	A,i?30121
	CLR  	C
	SUBB 	A,#05H
	JC   	$ + 5H
	LJMP 	?C0115
; 		osd_setrowattr(ROW_BRI+i, 0);
			; SOURCE LINE # 511
	CLR  	A
	MOV  	R3,A
	MOV  	R2,A
	MOV  	R5,#01EH
	MOV  	R7,i?30121
	LCALL	_mtv130_putd
; 		paint_line(ROW_BRI+i, 0, 12, 6);
			; SOURCE LINE # 512
	MOV  	?_paint_line?BYTE+03H,#06H
	MOV  	R3,#0CH
	CLR  	A
	MOV  	R5,A
	MOV  	R7,i?30121
	LCALL	_paint_line
; 		disp_str3(ROW_BRI+i, 1, item->title);
			; SOURCE LINE # 513
	MOV  	DPL,item?30122+01H
	MOV  	DPH,item?30122
	MOV  	R5,#01H
	MOV  	R7,i?30121
	LCALL	L?0202
; 		if (!(item->flags & MIF_DOCA)) {
			; SOURCE LINE # 514
	MOV  	DPL,item?30122+01H
	MOV  	DPH,item?30122
	MOV  	A,#03H
	MOVC 	A,@A+DPTR
	JB   	ACC.0,?C0111
; 			unsigned char c = item->read(item->addr);
			; SOURCE LINE # 515
	MOV  	A,#02H
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	MOV  	A,#05H
	MOVC 	A,@A+DPTR
	MOV  	R4,A
	MOV  	A,#06H
	MOVC 	A,@A+DPTR
	MOV  	R5,A
	MOV  	DPL,A
	MOV  	DPH,R4
	LCALL	?C?ICALL2
	MOV  	c?30120,R7
; 			paint_line(ROW_BRI+i, 12, 18, c == item->defval ? 2 : 4);
			; SOURCE LINE # 516
	MOV  	DPL,item?30122+01H
	MOV  	DPH,item?30122
	MOV  	A,#04H
	MOVC 	A,@A+DPTR
	CJNE 	A,c?30120,?C0113
	MOV  	R7,#02H
	SJMP 	?C0114
?C0113:
	MOV  	R7,#04H
?C0114:
	MOV  	?_paint_line?BYTE+03H,R7
	MOV  	R3,#012H
	MOV  	R5,#0CH
	MOV  	R7,i?30121
	LCALL	_paint_line
; 			item->draw(ROW_BRI+i, 12, c);
			; SOURCE LINE # 517
	MOV  	DPL,item?30122+01H
	MOV  	DPH,item?30122
	MOV  	A,#0BH
	MOVC 	A,@A+DPTR
	MOV  	R6,A
	MOV  	A,#0CH
	MOVC 	A,@A+DPTR
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	R3,c?30120
	MOV  	R5,#0CH
	MOV  	R7,i?30121
	LCALL	?C?ICALL2
; 		}
			; SOURCE LINE # 518
; 	}
			; SOURCE LINE # 519
?C0111:
	INC  	i?30121
	MOV  	A,#0DH
	ADD  	A,item?30122+01H
	MOV  	item?30122+01H,A
	CLR  	A
	ADDC 	A,item?30122
	MOV  	item?30122,A
	LJMP 	?C0109
; }
			; SOURCE LINE # 520
?C0115:
	RET  	
; END OF show_menu

; 
; void select_item(unsigned char id, bit selected)

	RSEG  ?PR?_select_item?MAIN
_select_item:
	USING	0
			; SOURCE LINE # 522
;---- Variable 'id?31123' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 523
; 	struct menuitem_struct code *item = &items[id];
			; SOURCE LINE # 524
	MOV  	A,R7
	MOV  	B,#0DH
	MUL  	AB
	ADD  	A,#LOW (items)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (items)
	MOV  	R5,DPL
	MOV  	item?31126,A
	MOV  	item?31126+01H,R5
; //	paint_line(ROW_BRI+id, 0, strlen(item->title), selected ? 5|8 : 6);
; 	disp_str2(ROW_BRI+id, 1, item->title, selected ? 5|8 : 6);
			; SOURCE LINE # 526
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R2,A
	MOV  	A,#01H
	MOVC 	A,@A+DPTR
	MOV  	R3,A
	JNB  	selected?31124,?C0116
	MOV  	R6,#0DH
	SJMP 	?C0117
?C0116:
	MOV  	R6,#06H
?C0117:
	MOV  	?_disp_str2?BYTE+04H,R6
	MOV  	R5,#01H
	LCALL	_disp_str2
; 	if (item->flags & MIF_DOCA) {
			; SOURCE LINE # 527
	MOV  	DPL,item?31126+01H
	MOV  	DPH,item?31126
	MOV  	A,#03H
	MOVC 	A,@A+DPTR
	JNB  	ACC.0,?C0121
; 		if (selected) {
			; SOURCE LINE # 528
	JNB  	selected?31124,?C0119
; 			unsigned char c = item->read(item->addr);
			; SOURCE LINE # 529
	MOV  	A,#02H
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	MOV  	A,#05H
	MOVC 	A,@A+DPTR
	MOV  	R4,A
	MOV  	A,#06H
	MOVC 	A,@A+DPTR
	MOV  	R5,A
	MOV  	DPL,A
	MOV  	DPH,R4
	LCALL	?C?ICALL2
	MOV  	c?31125,R7
; 			paint_line(ROW_BRI+NR_ITEMS+0, 8, 10, 5);
			; SOURCE LINE # 530
	MOV  	?_paint_line?BYTE+03H,#05H
	MOV  	R3,#0AH
	MOV  	R5,#08H
	MOV  	R7,#05H
	LCALL	_paint_line
; 			paint_line(ROW_BRI+NR_ITEMS+0, 18, 12, 6);
			; SOURCE LINE # 531
	MOV  	?_paint_line?BYTE+03H,#06H
	MOV  	R3,#0CH
	MOV  	R5,#012H
	MOV  	R7,#05H
	LCALL	_paint_line
; 			paint_line(ROW_BRI+NR_ITEMS+1, 0, 30, 6);
			; SOURCE LINE # 532
	MOV  	?_paint_line?BYTE+03H,#06H
	MOV  	R3,#01EH
	CLR  	A
	MOV  	R5,A
	MOV  	R7,#06H
	LCALL	_paint_line
; 			disp_str3(ROW_BRI+NR_ITEMS+0, 8, item->title);
			; SOURCE LINE # 533
	MOV  	DPL,item?31126+01H
	MOV  	DPH,item?31126
	MOV  	R5,#08H
	MOV  	R7,#05H
	LCALL	L?0202
; 			item->draw(ROW_BRI+NR_ITEMS+1, 1, c);
			; SOURCE LINE # 534
	MOV  	DPL,item?31126+01H
	MOV  	DPH,item?31126
	MOV  	A,#0BH
	MOVC 	A,@A+DPTR
	MOV  	R6,A
	MOV  	A,#0CH
	MOVC 	A,@A+DPTR
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	R3,c?31125
	MOV  	R5,#01H
	MOV  	R7,#06H
	LJMP 	?C?ICALL2
; 		} else {
			; SOURCE LINE # 535
?C0119:
; 			clear_line(ROW_BRI+NR_ITEMS+0);
			; SOURCE LINE # 536
	MOV  	R7,#05H
	LCALL	_clear_line
; 			clear_line(ROW_BRI+NR_ITEMS+1);
			; SOURCE LINE # 537
	MOV  	R7,#06H
	LCALL	_clear_line
; 		}
			; SOURCE LINE # 538
; 	}
			; SOURCE LINE # 539
; }
			; SOURCE LINE # 540
?C0121:
	RET  	
; END OF _select_item

; #if 1
; void hide_menu(void)

	RSEG  ?PR?hide_menu?MAIN
hide_menu:
	USING	0
			; SOURCE LINE # 542
; {
			; SOURCE LINE # 543
; 	unsigned char i;
; 	for (i = 0; i < NR_ITEMS; i++) {
			; SOURCE LINE # 545
	CLR  	A
	MOV  	i?32127,A
?C0122:
; 		clear_line(ROW_BRI+i);
			; SOURCE LINE # 546
	MOV  	R7,i?32127
	LCALL	_clear_line
; //		osd_setctrl1(CTRL1_OSDEN|CTRL1_RAMCLR);
; //		osd_setctrl1(CTRL1_OSDEN);
; 	}
			; SOURCE LINE # 549
	INC  	i?32127
	MOV  	A,i?32127
	CLR  	C
	SUBB 	A,#05H
	JC   	?C0122
?C0123:
; 	clear_line(ROW_BRI+NR_ITEMS+1);
			; SOURCE LINE # 550
	MOV  	R7,#06H
	LCALL	_clear_line
; 	clear_line(ROW_BRI+NR_ITEMS+2);
			; SOURCE LINE # 551
	MOV  	R7,#07H
	LJMP 	_clear_line
; END OF hide_menu

; }
; #endif
; 
; 
; #if 0
; bit mtv130_test(unsigned short c)
; {
; 	unsigned char i,j;
; 
; 	for (i = 0; i < 8; i++) {
; 		for (j = 0; j < 16; j++) {
; 			osd_putchar(i, j, c, 0x16);
; 			c++;
; 		}
; 	}
; 	return 1;
; }
; 
; #endif
; #if 1
; void osd_back(void)

	RSEG  ?PR?osd_back?MAIN
osd_back:
	USING	0
			; SOURCE LINE # 572
; {
			; SOURCE LINE # 573
;     mtv130_puta(WIN1ROW_ROW, WIN1ROW_COL, 0x0f);
			; SOURCE LINE # 574
	MOV  	R3,#0FH
	CLR  	A
	MOV  	R5,A
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 	mtv130_puta(WIN1COLS_ROW, WIN1COLS_COL, 0x04);
			; SOURCE LINE # 575
	MOV  	R3,#04H
	MOV  	R5,#01H
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 	mtv130_puta(WIN1COLE_ROW, WIN1COLE_COL,0xf1);
			; SOURCE LINE # 576
	MOV  	R3,#0F1H
	MOV  	R5,#02H
	MOV  	R7,#0FH
	LJMP 	_mtv130_puta
; END OF osd_back

; }
; #endif
; void osd_clear(void)

	RSEG  ?PR?osd_clear?MAIN
osd_clear:
	USING	0
			; SOURCE LINE # 579
; {
			; SOURCE LINE # 580
; 	osd_setctrl1(CTRL1_OSDEN|CTRL1_WENCLR|CTRL1_RAMCLR);
			; SOURCE LINE # 581
	MOV  	R3,#086H
	MOV  	R5,#011H
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 	osd_setctrl1(CTRL1_OSDEN);
			; SOURCE LINE # 582
	MOV  	R3,#080H
	MOV  	R5,#011H
	MOV  	R7,#0FH
	LJMP 	_mtv130_puta
; END OF osd_clear

; }
; 
; void osd_init(void)

	RSEG  ?PR?osd_init?MAIN
osd_init:
	USING	0
			; SOURCE LINE # 585
; {
			; SOURCE LINE # 586
; 	unsigned char i;
; 	osd_setctrl1(CTRL1_OSDEN|CTRL1_WENCLR|CTRL1_RAMCLR);
			; SOURCE LINE # 588
	MOV  	R3,#086H
	MOV  	R5,#011H
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 	osd_setctrl1(CTRL1_OSDEN);
			; SOURCE LINE # 589
	MOV  	R3,#080H
	MOV  	R5,#011H
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 	osd_setctrl2(CTRL2_FBKGP);
			; SOURCE LINE # 590
	MOV  	R3,#040H
	MOV  	R5,#012H
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 	for (i = 0; i < 15; i++) {
			; SOURCE LINE # 591
	CLR  	A
	MOV  	i?35128,A
?C0128:
; #ifdef CWS
; 		osd_setrowattr(i, RACR_CHS|RACR_CWS);
; #else
; 		osd_setrowattr(i, 0);
			; SOURCE LINE # 595
	CLR  	A
	MOV  	R3,A
	MOV  	R2,A
	MOV  	R5,#01EH
	MOV  	R7,i?35128
	LCALL	_mtv130_putd
; #endif
; 	}
			; SOURCE LINE # 597
	INC  	i?35128
	MOV  	A,i?35128
	CLR  	C
	SUBB 	A,#0FH
	JC   	?C0128
?C0129:
; 	mtv130_puta(HORD_ROW, HORD_COL,5);//12);
			; SOURCE LINE # 598
	MOV  	R3,#05H
	MOV  	R5,#0DH
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 	mtv130_puta(VERTD_ROW, VERTD_COL,4);// 4);//6);
			; SOURCE LINE # 599
	MOV  	R3,#04H
	MOV  	R5,#0CH
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 	mtv130_puta(CH_ROW, CH_COL, HZ_IND ? 0 : 4);
			; SOURCE LINE # 600
	JNB  	HZ_IND,?C0131
	MOV  	R3,#00H
	SJMP 	?C0132
?C0131:
	MOV  	R3,#04H
?C0132:
	MOV  	R5,#0EH
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 	mtv130_puta(HORR_ROW, HORR_COL,36);
			; SOURCE LINE # 601
	MOV  	R3,#024H
	MOV  	R5,#0FH
	MOV  	R7,#0FH
	LJMP 	_mtv130_puta
; END OF osd_init

; }
; 
; void show_video(void)

	RSEG  ?PR?show_video?MAIN
show_video:
	USING	0
			; SOURCE LINE # 604
; {
			; SOURCE LINE # 605
; 	disp_str2(1, 18, "VIDEO", 2);
			; SOURCE LINE # 606
	MOV  	R2,#HIGH (?SC_33)
	MOV  	R3,#LOW (?SC_33)
	MOV  	?_disp_str2?BYTE+04H,#02H
	MOV  	R5,#012H
	MOV  	R7,#01H
	LCALL	_disp_str2
; 	disp_str2(2, 19, HZ_IND ? "NTSC" : "PAL ", 6);
			; SOURCE LINE # 607
	JNB  	HZ_IND,?C0134
	MOV  	R6,#HIGH (?SC_39)
	MOV  	R7,#LOW (?SC_39)
	SJMP 	?C0197
?C0134:
	MOV  	R6,#HIGH (?SC_44)
	MOV  	R7,#LOW (?SC_44)
?C0197:
	MOV  	R2,AR6
	MOV  	R3,AR7
?C0135:
	MOV  	?_disp_str2?BYTE+04H,#06H
	MOV  	R5,#013H
	MOV  	R7,#02H
	LJMP 	_disp_str2
; END OF show_video

; }
; 
; 
; void hide_video(void)

	RSEG  ?PR?hide_video?MAIN
hide_video:
	USING	0
			; SOURCE LINE # 611
; {
			; SOURCE LINE # 612
; 	disp_str2(1, 18, "       ", 0);
			; SOURCE LINE # 613
	MOV  	R2,#HIGH (?SC_49)
	MOV  	R3,#LOW (?SC_49)
	CLR  	A
	MOV  	?_disp_str2?BYTE+04H,A
	MOV  	R5,#012H

⌨️ 快捷键说明

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