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

📄 main.src

📁 通用OSD控制(51单片机控制的TFTLCD源码,MTV018)
💻 SRC
📖 第 1 页 / 共 5 页
字号:
	MOV  	R7,#01H
	LCALL	_disp_str2
; 	disp_str2(2, 19, "    ", 0);
			; SOURCE LINE # 614
	MOV  	R2,#HIGH (?SC_57)
	MOV  	R3,#LOW (?SC_57)
	CLR  	A
	MOV  	?_disp_str2?BYTE+04H,A
	MOV  	R5,#013H
	MOV  	R7,#02H
	LJMP 	_disp_str2
; END OF hide_video

; }
; 
; void power_turnon(void)

	RSEG  ?PR?power_turnon?MAIN
power_turnon:
	USING	0
			; SOURCE LINE # 617
; {
			; SOURCE LINE # 618
; 	unsigned char i;
; 	struct menuitem_struct code *item;
; 
; 
; 	PIN_POWER = 1;
			; SOURCE LINE # 623
	SETB 	PIN_POWER
; 	mdelay(500);
			; SOURCE LINE # 624
?C0141:
	MOV  	c?38129,#01H
	MOV  	c?38129+01H,#0F4H
?C0143:
	MOV  	A,c?38129+01H
	DEC  	c?38129+01H
	MOV  	R6,c?38129
	JNZ  	?C0192
	DEC  	c?38129
?C0192:
	ORL  	A,R6
	JZ   	?C0139
	MOV  	R7,#090H
	MOV  	R6,#01H
	LCALL	___delay
	SJMP 	?C0143
?C0139:
;       	PIN_VSEL = 0;
			; SOURCE LINE # 625
	CLR  	PIN_VSEL
; 	PIN_POWLED = 0;
			; SOURCE LINE # 626
	CLR  	PIN_POWLED
; 
; 	for (i = 0, item = &items[0]; i < NR_ITEMS; i++, item++) {
			; SOURCE LINE # 628
	CLR  	A
	MOV  	i?38131,A
	MOV  	item?38132,#HIGH (items)
	MOV  	item?38132+01H,#LOW (items)
?C0145:
	MOV  	A,i?38131
	CLR  	C
	SUBB 	A,#05H
	JNC  	?C0146
; 		if (item->addr != -1) {
			; SOURCE LINE # 629
	MOV  	DPL,item?38132+01H
	MOV  	DPH,item?38132
	MOV  	A,#02H
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	CPL  	A
	JZ   	?C0147
; 			unsigned char c = item->read(item->addr);
			; SOURCE LINE # 630
	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?38130,R7
; 			item->apply(c);
			; SOURCE LINE # 631
	MOV  	DPL,item?38132+01H
	MOV  	DPH,item?38132
	MOV  	A,#09H
	MOVC 	A,@A+DPTR
	MOV  	R6,A
	MOV  	A,#0AH
	MOVC 	A,@A+DPTR
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	R7,c?38130
	LCALL	?C?ICALL2
; 		}
			; SOURCE LINE # 632
; 	}
			; SOURCE LINE # 633
?C0147:
	INC  	i?38131
	MOV  	A,#0DH
	ADD  	A,item?38132+01H
	MOV  	item?38132+01H,A
	CLR  	A
	ADDC 	A,item?38132
	MOV  	item?38132,A
	SJMP 	?C0145
?C0146:
; 
; 	osd_init();
			; SOURCE LINE # 635
	LJMP 	osd_init
; END OF power_turnon

; }
; 
;  void delay500ms()

	RSEG  ?PR?delay500ms?MAIN
delay500ms:
	USING	0
			; SOURCE LINE # 638
; {
			; SOURCE LINE # 639
;   int i;
;   for(i=0;i<3000;i++)
			; SOURCE LINE # 641
;---- Variable 'i?39133' assigned to Register 'R6/R7' ----
	CLR  	A
	MOV  	R7,A
	MOV  	R6,A
?C0150:
;     {;;;}
			; SOURCE LINE # 642
	INC  	R7
	CJNE 	R7,#00H,?C0193
	INC  	R6
?C0193:
	CJNE 	R6,#0BH,?C0150
	CJNE 	R7,#0B8H,?C0150
; }
			; SOURCE LINE # 643
?C0153:
	RET  	
; END OF delay500ms

; 
; void main(void) using 0

	RSEG  ?PR?main?MAIN
main:
	USING	0
	PUSH 	PSW
	MOV  	PSW,#00H
			; SOURCE LINE # 645
; {
; 	unsigned char id = EDIT_NULL;
			; SOURCE LINE # 647
	MOV  	id?40135,#0FFH
; 	unsigned char val;
; 	unsigned char hide_expires;
; 	unsigned char video_expires;
; 	unsigned char powoff_expires = 0;
			; SOURCE LINE # 651
	CLR  	A
	MOV  	powoff_expires?40139,A
; 	bit  sys_ind,pin_off,visible,visiblemenu= 0, auto_powoff = 1;
			; SOURCE LINE # 652
	CLR  	visiblemenu?40143
	SETB 	auto_powoff?40144
; //  bit      backflag=1;
;         
; 	initial();
			; SOURCE LINE # 655
	LCALL	initial
;     power_turnon();
			; SOURCE LINE # 656
	LCALL	power_turnon
; //	show_video();
; //	visible = 1;
; 	PIN_POWER = 0;
			; SOURCE LINE # 659
	CLR  	PIN_POWER
; 	PIN_POWLED = 1;
			; SOURCE LINE # 660
	SETB 	PIN_POWLED
; 
; #if 0
; {
; 	unsigned char i;
; 	bit dummy = 1;
; 	power_turnon();
; 	for (i = 0; i < 15; i++)
; 		osd_setrowattr(i, 0);
; 	mtv130_test(0);
; 	i = 0;
; 	for (; dummy;) {
; 		if (!key_on) {
; 			continue;
; 		}
; 		i += 128;
; 		mtv130_test(i);
; 
; 		key_on = 0;
; 	}
; }
; #endif
; 	//////////////////
; //	power_turnon();
; 	///////////////////
; 
; 	for (;;) {
			; SOURCE LINE # 686
; 		wdt_reset();
			; SOURCE LINE # 687
?C0157:
; 		if (!PIN_OFF && visible && time_after(jiffies, video_expires)) {
			; SOURCE LINE # 688
	JB   	PIN_OFF,?C0159
	JNB  	visible?40142,?C0159
	MOV  	R7,jiffies
	CLR  	C
	MOV  	A,video_expires?40138
	SUBB 	A,R7
	CLR  	C
	XRL  	A,#080H
	SUBB 	A,#080H
	JNC  	?C0159
; 				hide_video();
			; SOURCE LINE # 689
	LCALL	hide_video
; 				visible = 0;
			; SOURCE LINE # 690
	CLR  	visible?40142
; 			}
			; SOURCE LINE # 691
?C0159:
; 			if (id != EDIT_NULL && visiblemenu&&time_after(jiffies, hide_expires)) {
			; SOURCE LINE # 692
	MOV  	A,id?40135
	CPL  	A
	JZ   	?C0160
	JNB  	visiblemenu?40143,?C0160
	MOV  	R7,jiffies
	CLR  	C
	MOV  	A,hide_expires?40137
	SUBB 	A,R7
	CLR  	C
	XRL  	A,#080H
	SUBB 	A,#080H
	JNC  	?C0160
; 				hide_menu();
			; SOURCE LINE # 693
	LCALL	hide_menu
; 			//	osd_clear();
; 				id = EDIT_NULL;
			; SOURCE LINE # 695
	MOV  	id?40135,#0FFH
; 			}
			; SOURCE LINE # 696
?C0160:
; 			if (pin_off != PIN_OFF) {
			; SOURCE LINE # 697
	MOV  	C,pin_off?40141
	JNB  	PIN_OFF,?C0194
	CPL  	C
?C0194:
	JNC  	?C0161
; 		           pin_off = PIN_OFF;
			; SOURCE LINE # 698
	MOV  	C,PIN_OFF
	MOV  	pin_off?40141,C
; 		     	   if (PIN_OFF) {
			; SOURCE LINE # 699
	JNB  	PIN_OFF,?C0162
; 					delay500ms();
			; SOURCE LINE # 700
	LCALL	delay500ms
; 					mtv130_puta(VERTD_ROW, VERTD_COL,4);// 4);//6);
			; SOURCE LINE # 701
	MOV  	R3,#04H
	MOV  	R5,#0CH
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 					osd_clear();
			; SOURCE LINE # 702
	LCALL	osd_clear
; 					visiblemenu= 0;
			; SOURCE LINE # 703
	CLR  	visiblemenu?40143
; 					osd_back();
			; SOURCE LINE # 704
	LCALL	osd_back
; 					disp_str2(7, 10, "NO SIGNAL", 6|8);
			; SOURCE LINE # 705
	MOV  	R2,#HIGH (?SC_62)
	MOV  	R3,#LOW (?SC_62)
	MOV  	?_disp_str2?BYTE+04H,#0EH
	MOV  	R5,#0AH
	MOV  	R7,#07H
	LCALL	_disp_str2
; 					show_video();
			; SOURCE LINE # 706
; 					visible = 1;
			; SOURCE LINE # 707
; 					video_expires = jiffies + HZ*5;
			; SOURCE LINE # 708
; 			        } else {
			; SOURCE LINE # 709
	SJMP 	?C0198
?C0162:
; 					delay500ms();
			; SOURCE LINE # 710
	LCALL	delay500ms
; 					osd_clear(); //backflag=0;
			; SOURCE LINE # 711
	LCALL	osd_clear
;                     mtv130_puta(VERTD_ROW, VERTD_COL,6);// 4);//6);
			; SOURCE LINE # 712
	MOV  	R3,#06H
	MOV  	R5,#0CH
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 					show_video();
			; SOURCE LINE # 713
?C0198:
	LCALL	show_video
; 					visible = 1;
			; SOURCE LINE # 714
	SETB 	visible?40142
; 					video_expires = jiffies + HZ*5;}
			; SOURCE LINE # 715
	MOV  	A,jiffies
	ADD  	A,#064H
	MOV  	video_expires?40138,A
; 			  }
			; SOURCE LINE # 716
?C0161:
; 			  
; 			if (sys_ind != HZ_IND) {
			; SOURCE LINE # 718
	MOV  	C,sys_ind?40140
	JNB  	HZ_IND,?C0195
	CPL  	C
?C0195:
	JNC  	?C0164
; 				sys_ind = HZ_IND;
			; SOURCE LINE # 719
	MOV  	C,HZ_IND
	MOV  	sys_ind?40140,C
; 				mtv130_puta(CH_ROW, CH_COL, HZ_IND ? 0 : 4);
			; SOURCE LINE # 720
	JNB  	HZ_IND,?C0165
	MOV  	R3,#00H
	SJMP 	?C0166
?C0165:
	MOV  	R3,#04H
?C0166:
	MOV  	R5,#0EH
	MOV  	R7,#0FH
	LCALL	_mtv130_puta
; 				show_video();
			; SOURCE LINE # 721
	LCALL	show_video
; 				visible = 1;
			; SOURCE LINE # 722
	SETB 	visible?40142
; 				video_expires = jiffies + HZ*5;
			; SOURCE LINE # 723
	MOV  	A,jiffies
	ADD  	A,#064H
	MOV  	video_expires?40138,A
; 			}
			; SOURCE LINE # 724
?C0164:
; 	    if (!key_on) {
			; SOURCE LINE # 725
	JB   	key_on,$ + 6H
	LJMP 	?main?loop_end
; 		  goto loop_end;
			; SOURCE LINE # 726
; 		}
			; SOURCE LINE # 727
?C0167:
; 		hide_expires = jiffies + HZ*5;
			; SOURCE LINE # 728
	MOV  	A,jiffies
	ADD  	A,#064H
	MOV  	hide_expires?40137,A
; 		powoff_expires = xtime.min+10;
			; SOURCE LINE # 729
	MOV  	A,xtime
	ADD  	A,#0AH
	MOV  	powoff_expires?40139,A
; 
; 		if (key_last == KEY_MENU || key_last == KEY_UP || key_last == KEY_DOWN) {
			; SOURCE LINE # 731
	MOV  	A,key_last
	XRL  	A,#03H
	JZ   	?C0170
	MOV  	A,key_last
	XRL  	A,#0EH
	JZ   	?C0170
	MOV  	A,key_last
	XRL  	A,#0FH
	JNZ  	?C0169
?C0170:
; 		    visiblemenu= 1;
			; SOURCE LINE # 732
	SETB 	visiblemenu?40143
; 			if (id == EDIT_NULL) {
			; SOURCE LINE # 733
	MOV  	A,id?40135
	CJNE 	A,#0FFH,?C0171
; 				if (key_last != KEY_MENU)
			; SOURCE LINE # 734
	MOV  	A,key_last
	XRL  	A,#03H
	JZ   	$ + 5H
	LJMP 	?main?loop_end
; 					goto loop_end;
			; SOURCE LINE # 735
?C0172:
; 				id = EDIT_FIRST;
			; SOURCE LINE # 736
	CLR  	A
	MOV  	id?40135,A
; 				osd_clear();
			; SOURCE LINE # 737
	LCALL	osd_clear
; 				show_menu();
			; SOURCE LINE # 738
	LCALL	show_menu
; 			} else {
			; SOURCE LINE # 739
	SJMP 	?C0173
?C0171:
; 				select_item(id, 0);
			; SOURCE LINE # 740
	CLR  	?_select_item?BIT
	MOV  	R7,id?40135
	LCALL	_select_item
; 				if (key_last == KEY_UP) {
			; SOURCE LINE # 741
	MOV  	A,key_last
	CJNE 	A,#0EH,?C0174
; 					if (id == EDIT_FIRST)
			; SOURCE LINE # 742
	MOV  	A,id?40135
	JNZ  	?C0175
; 						id = EDIT_LAST;
			; SOURCE LINE # 743
	MOV  	id?40135,#04H
	SJMP 	?C0173
?C0175:
; 					else
; 						--id;
			; SOURCE LINE # 745
	DEC  	id?40135
; 				} else {
			; SOURCE LINE # 746
	SJMP 	?C0173
?C0174:
; 					if (id == EDIT_LAST)
			; SOURCE LINE # 747
	MOV  	A,id?40135
	CJNE 	A,#04H,?C0178
; 						id = EDIT_FIRST;
			; SOURCE LINE # 748
	CLR  	A
	MOV  	id?40135,A
	SJMP 	?C0173
?C0178:
; 					else
; 						++id;
			; SOURCE LINE # 750
	INC  	id?40135
; 				}
			; SOURCE LINE # 751
; 			}
			; SOURCE LINE # 752
?C0173:
; 			select_item(id, 1);
			; SOURCE LINE # 753
	SETB 	?_select_item?BIT
	MOV  	R7,id?40135
	LCALL	_select_item
; 			/* add */
; 			val = items[id].read(items[id].addr);
			; SOURCE LINE # 755
	MOV  	A,id?40135
	MOV  	B,#0DH
	MUL  	AB
	ADD  	A,#LOW (items+02H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (items+02H)
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	MOV  	A,id?40135
	MOV  	B,#0DH
	MUL  	AB
	ADD  	A,#LOW (items+05H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (items+05H)
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R4,A
	MOV  	A,#01H
	MOVC 	A,@A+DPTR
	MOV  	R5,A
	MOV  	DPL,A
	MOV  	DPH,R4
	LCALL	?C?ICALL2
	MOV  	val?40136,R7
; 			goto loop_end;
			; SOURCE LINE # 756
	LJMP 	?main?loop_end
; 		}
			; SOURCE LINE # 757
?C0169:
; 	
; 		if ((key_last == KEY_INC || key_last == KEY_DEC) && id != EDIT_NULL) {
			; SOURCE LINE # 759
	MOV  	A,key_last
	XRL  	A,#01H
	JZ   	?C0181
	MOV  	A,key_last
	XRL  	A,#02H
	JZ   	$ + 5H
	LJMP 	?main?loop_end
?C0181:
	MOV  	A,id?40135
	CPL  	A
	JNZ  	$ + 5H
	LJMP 	?main?loop_end
; 			struct menuitem_struct code *item = &items[id];
			; SOURCE LINE # 760
	MOV  	A,id?40135
	MOV  	B,#0DH
	MUL  	AB
	ADD  	A,#LOW (items)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (items)
	MOV  	R7,DPL
	MOV  	item?40134,A
	MOV  	item?40134+01H,R7
; 
; 			val = item->step(val, key_last == KEY_INC);
			; SOURCE LINE # 762
	MOV  	A,key_last
	CJNE 	A,#01H,?C0182
	MOV  	R5,#01H
	SJMP 	?C0183
?C0182:
	MOV  	R5,#00H
?C0183:
	MOV  	DPL,item?40134+01H
	MOV  	DPH,item?40134
	MOV  	A,#07H
	MOVC 	A,@A+DPTR
	MOV  	R6,A
	MOV  	A,#08H
	MOVC 	A,@A+DPTR
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	R7,val?40136
	LCALL	?C?ICALL2
	MOV  	val?40136,R7
; 			item->apply(val);
			; SOURCE LINE # 763
	MOV  	DPL,item?40134+01H
	MOV  	DPH,item?40134
	MOV  	A,#09H
	MOVC 	A,@A+DPTR
	MOV  	R6,A
	MOV  	A,#0AH
	MOVC 	A,@A+DPTR
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	R7,val?40136
	LCALL	?C?ICALL2
; 			if (item->flags & MIF_DOCA)
			; SOURCE LINE # 764
	MOV  	DPL,item?40134+01H
	MOV  	DPH,item?40134
	MOV  	A,#03H
	MOVC 	A,@A+DPTR
	JNB  	ACC.0,?C0184
; 				item->draw(ROW_BRI+NR_ITEMS+1, 1, val);
			; SOURCE LINE # 765
	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,val?40136
	MOV  	R5,#01H
	MOV  	R7,#06H
	SJMP 	?C0199
?C0184:
; 			else {
			; SOURCE LINE # 766
; 				paint_line(ROW_BRI+id-1, 12, 18, val == item->defval ? 2 : 4);
			; SOURCE LINE # 767
	MOV  	A,id?40135
	DEC  	A
	MOV  	R7,A
	MOV  	DPL,item?40134+01H
	MOV  	DPH,item?40134
	MOV  	A,#04H
	MOVC 	A,@A+DPTR
	CJNE 	A,val?40136,?C0186
	MOV  	R6,#02H
	SJMP 	?C0187
?C0186:
	MOV  	R6,#04H
?C0187:
	MOV  	?_paint_line?BYTE+03H,R6
	MOV  	R3,#012H
	MOV  	R5,#0CH
	LCALL	_paint_line
; 				item->draw(ROW_BRI+id-1, 12, val);
			; SOURCE LINE # 768
	MOV  	A,id?40135
	DEC  	A
	MOV  	R7,A
	MOV  	DPL,i

⌨️ 快捷键说明

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