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

📄 main.src

📁 通用OSD控制(51单片机控制的TFTLCD源码,MTV018)
💻 SRC
📖 第 1 页 / 共 5 页
字号:
; .\Obj\main.SRC generated from: Source\main.c
; COMPILER INVOKED BY:
;        C:\Keil\C51\BIN\C51.EXE Source\main.c REGFILE(.\Obj\MTVOSD.ORC) BROWSE DEBUG OBJECTEXTEND PRINT(.\Lst\main.lst) SRC(.\Obj\main.SRC)

$NOMOD51

NAME	MAIN

P1	DATA	090H
P3	DATA	0B0H
AC	BIT	0D0H.6
T0	BIT	0B0H.4
T1	BIT	0B0H.5
EA	BIT	0A8H.7
PIN_DIMMER	BIT	0B0H.4
AIN0	BIT	090H.0
AIN1	BIT	090H.1
IE	DATA	0A8H
P1_0	BIT	090H.0
FL	BIT	0D0H.1
P1_1	BIT	090H.1
P3_0	BIT	0B0H.0
P1_2	BIT	090H.2
P3_1	BIT	0B0H.1
P1_3	BIT	090H.3
P3_2	BIT	0B0H.2
P1_4	BIT	090H.4
PIN_POWLED	BIT	0B0H.5
P3_3	BIT	0B0H.3
P1_5	BIT	090H.5
P3_4	BIT	0B0H.4
P1_6	BIT	090H.6
P3_5	BIT	0B0H.5
ES	BIT	0A8H.4
P1_7	BIT	090H.7
IP	DATA	0B8H
P3_7	BIT	0B0H.7
RI	BIT	098H.0
CY	BIT	0D0H.7
INT0	BIT	0B0H.2
INT1	BIT	0B0H.3
TI	BIT	098H.1
PS	BIT	0B8H.4
SP	DATA	081H
PIN_OFF	BIT	0B0H.3
OV	BIT	0D0H.2
SBUF	DATA	099H
PCON	DATA	087H
SCON	DATA	098H
TMOD	DATA	089H
TCON	DATA	088H
AOUT	BIT	0B0H.6
IE0	BIT	088H.1
IE1	BIT	088H.3
B	DATA	0F0H
ACC	DATA	0E0H
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
ET2	BIT	0A8H.5
TF1	BIT	088H.7
RB8	BIT	098H.2
TH0	DATA	08CH
EX0	BIT	0A8H.0
IT0	BIT	088H.0
TH1	DATA	08DH
EX1	BIT	0A8H.2
TB8	BIT	098H.3
IT1	BIT	088H.2
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
SM1	BIT	098H.6
TL1	DATA	08BH
SM2	BIT	098H.5
PT0	BIT	0B8H.1
RS0	BIT	0D0H.3
PT1	BIT	0B8H.3
RS1	BIT	0D0H.4
TR0	BIT	088H.4
PIN_POWER	BIT	0B0H.0
TR1	BIT	088H.6
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
DPH	DATA	083H
HZ_IND	BIT	0B0H.1
DPL	DATA	082H
REN	BIT	098H.4
PIN_RLSHIFT	BIT	090H.6
RXD	BIT	0B0H.0
TXD	BIT	0B0H.1
F0	BIT	0D0H.5
PSW	DATA	0D0H
?PR?initial?MAIN     SEGMENT CODE 
?PR?_disp_char?MAIN  SEGMENT CODE 
?PR?_disp_str?MAIN   SEGMENT CODE 
?DT?_disp_str?MAIN   SEGMENT DATA OVERLAYABLE 
?PR?_disp_str2?MAIN  SEGMENT CODE 
?DT?_disp_str2?MAIN  SEGMENT DATA OVERLAYABLE 
?PR?_disp_str3?MAIN  SEGMENT CODE 
?PR?_get_num_str?MAIN                    SEGMENT CODE 
?DT?MAIN             SEGMENT DATA 
?PR?_paint_line?MAIN SEGMENT CODE 
?DT?_paint_line?MAIN SEGMENT DATA OVERLAYABLE 
?PR?_clear_line?MAIN SEGMENT CODE 
?DT?_clear_line?MAIN SEGMENT DATA OVERLAYABLE 
?PR?_draw_progbar?MAIN                   SEGMENT CODE 
?DT?_draw_progbar?MAIN                   SEGMENT DATA OVERLAYABLE 
?PR?_bri_read?MAIN   SEGMENT CODE 
?PR?_cont_read?MAIN  SEGMENT CODE 
?PR?_col_read?MAIN   SEGMENT CODE 
?PR?_tint_read?MAIN  SEGMENT CODE 
?PR?_reset_read?MAIN SEGMENT CODE 
?DT?_reset_read?MAIN SEGMENT DATA OVERLAYABLE 
?PR?_simple_read?MAIN                    SEGMENT CODE 
?DT?_simple_read?MAIN                    SEGMENT DATA OVERLAYABLE 
?PR?_bri_step?MAIN   SEGMENT CODE 
?PR?_cont_step?MAIN  SEGMENT CODE 
?PR?_col_step?MAIN   SEGMENT CODE 
?PR?_tint_step?MAIN  SEGMENT CODE 
?PR?_reset_step?MAIN SEGMENT CODE 
?DT?_reset_step?MAIN SEGMENT DATA OVERLAYABLE 
?PR?_bri_apply?MAIN  SEGMENT CODE 
?PR?_cont_apply?MAIN SEGMENT CODE 
?PR?_col_apply?MAIN  SEGMENT CODE 
?PR?_tint_apply?MAIN SEGMENT CODE 
?DT?_tint_apply?MAIN SEGMENT DATA OVERLAYABLE 
?PR?_reset_apply?MAIN                    SEGMENT CODE 
?DT?_reset_apply?MAIN                    SEGMENT DATA OVERLAYABLE 
?PR?_bri_draw?MAIN   SEGMENT CODE 
?DT?_bri_draw?MAIN   SEGMENT DATA OVERLAYABLE 
?PR?_cont_draw?MAIN  SEGMENT CODE 
?DT?_cont_draw?MAIN  SEGMENT DATA OVERLAYABLE 
?PR?_col_draw?MAIN   SEGMENT CODE 
?DT?_col_draw?MAIN   SEGMENT DATA OVERLAYABLE 
?PR?_tint_draw?MAIN  SEGMENT CODE 
?DT?_tint_draw?MAIN  SEGMENT DATA OVERLAYABLE 
?PR?_reset_draw?MAIN SEGMENT CODE 
?DT?_reset_draw?MAIN SEGMENT DATA OVERLAYABLE 
?PR?show_menu?MAIN   SEGMENT CODE 
?DT?show_menu?MAIN   SEGMENT DATA OVERLAYABLE 
?PR?_select_item?MAIN                    SEGMENT CODE 
?DT?_select_item?MAIN                    SEGMENT DATA OVERLAYABLE 
?BI?_select_item?MAIN                    SEGMENT BIT OVERLAYABLE 
?PR?hide_menu?MAIN   SEGMENT CODE 
?DT?hide_menu?MAIN   SEGMENT DATA OVERLAYABLE 
?PR?osd_back?MAIN    SEGMENT CODE 
?PR?osd_clear?MAIN   SEGMENT CODE 
?PR?osd_init?MAIN    SEGMENT CODE 
?PR?show_video?MAIN  SEGMENT CODE 
?PR?hide_video?MAIN  SEGMENT CODE 
?PR?power_turnon?MAIN                    SEGMENT CODE 
?DT?power_turnon?MAIN                    SEGMENT DATA OVERLAYABLE 
?PR?delay500ms?MAIN  SEGMENT CODE 
?PR?main?MAIN        SEGMENT CODE 
?DT?main?MAIN        SEGMENT DATA OVERLAYABLE 
?BI?main?MAIN        SEGMENT BIT OVERLAYABLE 
?CO?MAIN             SEGMENT CODE 
	EXTRN	CODE (mtv130_init)
	EXTRN	BIT (key_on)
	EXTRN	CODE (i2c_init)
	EXTRN	CODE (at24c02_init)
	EXTRN	DATA (xtime)
	EXTRN	CODE (___delay)
	EXTRN	CODE (_at24cxx_writebyte)
	EXTRN	CODE (timer_init)
	EXTRN	CODE (key_init)
	EXTRN	DATA (key_last)
	EXTRN	DATA (jiffies)
	EXTRN	CODE (_mtv130_puta)
	EXTRN	CODE (_mtv130_putd)
	EXTRN	CODE (_at24cxx_read)
	EXTRN	CODE (?C?CLDPTR)
	EXTRN	CODE (?C?ICALL2)
	EXTRN	CODE (?C_STARTUP)
	PUBLIC	items
	PUBLIC	main
	PUBLIC	delay500ms
	PUBLIC	power_turnon
	PUBLIC	hide_video
	PUBLIC	show_video
	PUBLIC	osd_init
	PUBLIC	osd_clear
	PUBLIC	osd_back
	PUBLIC	hide_menu
	PUBLIC	?_select_item?BIT
	PUBLIC	_select_item
	PUBLIC	show_menu
	PUBLIC	_reset_draw
	PUBLIC	_tint_draw
	PUBLIC	_col_draw
	PUBLIC	_cont_draw
	PUBLIC	_bri_draw
	PUBLIC	_reset_apply
	PUBLIC	_tint_apply
	PUBLIC	_col_apply
	PUBLIC	_cont_apply
	PUBLIC	_bri_apply
	PUBLIC	_reset_step
	PUBLIC	_tint_step
	PUBLIC	_col_step
	PUBLIC	_cont_step
	PUBLIC	_bri_step
	PUBLIC	_simple_read
	PUBLIC	_reset_read
	PUBLIC	_tint_read
	PUBLIC	_col_read
	PUBLIC	_cont_read
	PUBLIC	_bri_read
	PUBLIC	_draw_progbar
	PUBLIC	_clear_line
	PUBLIC	?_paint_line?BYTE
	PUBLIC	_paint_line
	PUBLIC	_get_num_str
	PUBLIC	_disp_str3
	PUBLIC	?_disp_str2?BYTE
	PUBLIC	_disp_str2
	PUBLIC	_disp_str
	PUBLIC	_disp_char

	RSEG  ?DT?_disp_str2?MAIN
?_disp_str2?BYTE:
        row?348:   DS   1
	ORG  1
        col?349:   DS   1
	ORG  2
        str?350:   DS   2
	ORG  4
      color?351:   DS   1
	ORG  5
          c?352:   DS   1

	RSEG  ?DT?_reset_read?MAIN
?_reset_read?BYTE:
    ucData?1382:   DS   1

	RSEG  ?DT?_paint_line?MAIN
?_paint_line?BYTE:
        row?659:   DS   1
	ORG  1
        col?660:   DS   1
	ORG  1
      count?661:   DS   1
	ORG  3
      color?662:   DS   1

	RSEG  ?DT?_reset_apply?MAIN
?_reset_apply?BYTE:
        i?24102:   DS   1
	ORG  1
      VAL?24103:   DS   1
	ORG  2
     item?24104:   DS   2

	RSEG  ?DT?_reset_draw?MAIN
?_reset_draw?BYTE:
      ROW?29126:   DS   1
	ORG  1
      COL?29127:   DS   1
	ORG  2
      VAL?29128:   DS   1

	RSEG  ?DT?_reset_step?MAIN
?_reset_step?BYTE:
    ucData?1995:   DS   1

	RSEG  ?DT?main?MAIN
?main?BYTE:
	ORG  5
     item?40143:   DS   2
	ORG  0
       id?40144:   DS   1
	ORG  1
      val?40145:   DS   1
	ORG  2
hide_expires?40146:   DS   1
	ORG  3
video_expires?40147:   DS   1
	ORG  4
powoff_expires?40148:   DS   1

	RSEG  ?BI?main?MAIN
?main?BIT:
  sys_ind?40149:   DBIT   1
	ORG  1
  pin_off?40150:   DBIT   1
	ORG  2
  visible?40151:   DBIT   1
	ORG  3
visiblemenu?40152:   DBIT   1
	ORG  4
auto_powoff?40153:   DBIT   1

	RSEG  ?DT?_cont_draw?MAIN
?_cont_draw?BYTE:
       pb?26112:   DS   4

	RSEG  ?DT?_tint_apply?MAIN
?_tint_apply?BYTE:
   ucData?23100:   DS   1

	RSEG  ?DT?_bri_draw?MAIN
?_bri_draw?BYTE:
       pb?25108:   DS   4

	RSEG  ?DT?_col_draw?MAIN
?_col_draw?BYTE:
       pb?27116:   DS   4

	RSEG  ?DT?_tint_draw?MAIN
?_tint_draw?BYTE:
      Row?28120:   DS   1
	ORG  1
      Col?28121:   DS   1
	ORG  2
       pb?28122:   DS   4

	RSEG  ?DT?hide_menu?MAIN
?hide_menu?BYTE:
        i?32136:   DS   1

	RSEG  ?DT?power_turnon?MAIN
?power_turnon?BYTE:
	ORG  3
        c?38138:   DS   2
	ORG  3
        c?38139:   DS   1
	ORG  0
        i?38140:   DS   1
	ORG  1
     item?38141:   DS   2

	RSEG  ?DT?_disp_str?MAIN
?_disp_str?BYTE:
        row?244:   DS   1
	ORG  1
        col?245:   DS   1
	ORG  2
        str?246:   DS   3

	RSEG  ?DT?show_menu?MAIN
?show_menu?BYTE:
	ORG  3
        c?30129:   DS   1
	ORG  0
        i?30130:   DS   1
	ORG  1
     item?30131:   DS   2

	RSEG  ?DT?_draw_progbar?MAIN
?_draw_progbar?BYTE:
        row?865:   DS   1
	ORG  1
        col?866:   DS   1
	ORG  2
      range?868:   DS   1
	ORG  3
       step?869:   DS   1
	ORG  4
        pos?870:   DS   1

	RSEG  ?DT?_simple_read?MAIN
?_simple_read?BYTE:
         c?1484:   DS   1

	RSEG  ?DT?_clear_line?MAIN
?_clear_line?BYTE:
        row?763:   DS   1

	RSEG  ?DT?_select_item?MAIN
?_select_item?BYTE:
	ORG  2
        c?31134:   DS   1
	ORG  0
     item?31135:   DS   2

	RSEG  ?BI?_select_item?MAIN
?_select_item?BIT:
 selected?31133:   DBIT   1

	RSEG  ?DT?MAIN
    num_str?557:   DS   4

	RSEG  ?CO?MAIN
?SC_0:
	DB  'B' ,'R' ,'I' ,'G' ,'H' ,'T' ,000H

?SC_7:
	DB  'C' ,'O' ,'N' ,'T' ,'R' ,'A' ,'S' ,'T' ,000H

?SC_16:
	DB  'C' ,'O' ,'L' ,'O' ,'R' ,000H

?SC_22:
	DB  'T' ,'I' ,'N' ,'T' ,000H

?SC_27:
	DB  'R' ,'E' ,'S' ,'E' ,'T' ,000H

?SC_33:
	DB  'V' ,'I' ,'D' ,'E' ,'O' ,000H

?SC_39:
	DB  'N' ,'T' ,'S' ,'C' ,000H

?SC_44:
	DB  'P' ,'A' ,'L' ,' ' ,000H

?SC_49:
	DB  ' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,000H

?SC_57:
	DB  ' ' ,' ' ,' ' ,' ' ,000H

?SC_62:
	DB  'N' ,'O' ,' ' ,'S' ,'I' ,'G' ,'N' ,'A' ,'L' ,000H

items:
	DW	?SC_0	 ; ptr2
	DB	009H
	DB	003H
	DB	070H
	DW	_bri_read + 0
	DW	_bri_step + 0
	DW	_bri_apply + 0
	DW	_bri_draw + 0
	DW	?SC_7	 ; ptr2
	DB	00AH
	DB	003H
	DB	070H
	DW	_cont_read + 0
	DW	_cont_step + 0
	DW	_cont_apply + 0
	DW	_cont_draw + 0
	DW	?SC_16	 ; ptr2
	DB	00CH
	DB	003H
	DB	09BH
	DW	_col_read + 0
	DW	_col_step + 0
	DW	_col_apply + 0
	DW	_col_draw + 0
	DW	?SC_22	 ; ptr2
	DB	00DH
	DB	003H
	DB	0A5H
	DW	_tint_read + 0
	DW	_tint_step + 0
	DW	_tint_apply + 0
	DW	_tint_draw + 0
	DW	?SC_27	 ; ptr2
	DB	0FFH
	DB	000H
	DB	000H
	DW	_reset_read + 0
	DW	_reset_step + 0
	DW	_reset_apply + 0
	DW	_reset_draw + 0

; #pragma REGISTERBANK(0)
; 
; #include "Header.H"
; 
; extern bit key_on;
; extern unsigned char key_last;
; extern void timer_init(void);
; extern void i2c_init(void);
; extern void mtv130_init(void);
; extern void at24c02_init(void);
; extern void key_init(void);
; 
; //#define ARRAY_SIZE(a)	(sizeof(a)/sizeof(a[0]))
; 
; //bit PIN_SIGIND = 0;
; 
; 
; static void initial(void)

	RSEG  ?PR?initial?MAIN
initial:
			; SOURCE LINE # 18
; {
			; SOURCE LINE # 19
; 	/* disable all interrupts */
; 	IE = 0;
			; SOURCE LINE # 21
	CLR  	A
	MOV  	IE,A
; 	IP = 0;
			; SOURCE LINE # 22
	MOV  	IP,A
; 
; 	/* deactivate output ports */
; 	P1=P3 = 0xff;
			; SOURCE LINE # 25
	MOV  	P3,#0FFH
	MOV  	P1,#0FFH
; 
; 	/* timer 0 16 bits, timer 1 16 bits */
; 	TMOD = 0x51;
			; SOURCE LINE # 28
	MOV  	TMOD,#051H
; //	PCON = 0x80;
; 	
; 	timer_init();
			; SOURCE LINE # 31
	LCALL	timer_init
; 	i2c_init();
			; SOURCE LINE # 32
	LCALL	i2c_init
; 	at24c02_init();
			; SOURCE LINE # 33
	LCALL	at24c02_init
; 	mtv130_init();
			; SOURCE LINE # 34
	LCALL	mtv130_init
; 	key_init();
			; SOURCE LINE # 35
	LCALL	key_init
; 	
; 	EA = 1;
			; SOURCE LINE # 37
	SETB 	EA
; }
			; SOURCE LINE # 38
	RET  	
; END OF initial

; 
; struct progbar_struct {
; //	unsigned char row, col;
; 	unsigned char val;
; 	unsigned char range, pos, step;
; };
; void delay500ms();
; unsigned char bri_read(unsigned char addr);//读亮度值
; unsigned char cont_read(unsigned char addr);//读对比度值
; unsigned char col_read(unsigned char addr);//读彩色值
; unsigned char tint_read(unsigned char addr);
; unsigned char reset_read(unsigned char addr);
; unsigned char simple_read(unsigned char addr);
; unsigned char bri_step(unsigned char val, unsigned char inc);
; unsigned char cont_step(unsigned char val, unsigned char inc);
; unsigned char col_step(unsigned char val, unsigned char inc);
; unsigned char tint_step(unsigned char val, unsigned char inc);
; unsigned char reset_step(unsigned char val, unsigned char inc);
; //unsigned char bival_step(unsigned char val, unsigned char inc);
; void bri_apply(unsigned char val);
; void cont_apply(unsigned char val);
; void col_apply(unsigned char val);
; void tint_apply(unsigned char val);
; void reset_apply(unsigned char val);
; void bri_draw(char row, char col, unsigned char val);
; void cont_draw(char row, char col, unsigned char val);
; void col_draw(char row, char col, unsigned char val);
; void tint_draw(char row, char col, unsigned char val);
; void reset_draw(char row, char col, unsigned char val);
; 
; #define ABS(x)		((x) > 0 ? (x) : -(x))
; 
; 
; 
; #define BRI_ADDR	9//亮度控制的存储地址。
; #define BRI_OFF		66//亮度的最大值
; #define BRI_RANGE	92//亮度值的范围。
; #define BRI_FAC		1//亮度的间隙值。
; #define BRI_DEF     112//亮度的默认值。
; 
; #define CONT_ADDR	10//对比度控制的存储地址。
; #define CONT_OFF	66
; #define CONT_RANGE	92
; #define CONT_FAC	1
; #define CONT_DEF    112
; 
; #define COL_ADDR	12//彩色控制的存储地址。
; #define COL_OFF		109
; #define COL_RANGE	92
; #define COL_FAC		1
; #define COL_DEF     155
; 
; #define TINT_ADDR	13//色调控制的地址。
; #define TINT_OFF	119
; #define TINT_RANGE	92
; #define TINT_FAC	1
; #define TINT_DEF    165
; 
; 
; struct menuitem_struct {//菜单结构体
; 	unsigned char code *title;//菜单标号
; 	unsigned char addr;//对应的菜单存储地址。
; 	unsigned char flags;//对应的选中的菜单项颜色标志。
;     #define MIF_DOCA	0x01
;     #define MIF_RESET	0x02
; 	unsigned char defval;//对应菜单值的默认值。
; 	unsigned char (code *read)(unsigned char addr);//指向相应菜单函数的入口地址。
; 	unsigned char (code *step)(unsigned char val, unsigned char inc);//指向相应菜单函数的设置步数。
; 	void (code *apply)(unsigned char val);//
; 	void (code *draw)(char row, char col, unsigned char val);//画相应菜单的进度条。
; };
; 
; struct menuitem_struct code items[] = {
; 	{ "BRIGHT", BRI_ADDR, MIF_DOCA|MIF_RESET, BRI_DEF, bri_read, bri_step, bri_apply, bri_draw },
; 	{ "CONTRAST", CONT_ADDR, MIF_DOCA|MIF_RESET, CONT_DEF, cont_read, cont_step, cont_apply, cont_draw },
; 	{ "COLOR", COL_ADDR, MIF_DOCA|MIF_RESET, COL_DEF, col_read, col_step, col_apply, col_draw },
; 	{ "TINT", TINT_ADDR, MIF_DOCA|MIF_RESET, TINT_DEF, tint_read, tint_step, tint_apply, tint_draw },
; 	{ "RESET", -1, 0, 0, reset_read, reset_step, reset_apply, reset_draw },
; };
; 
; #define NR_ITEMS	(sizeof(items)/sizeof(items[0]))//计算
; 
; #define EDIT_FIRST	0
; #define EDIT_BRIGHTNESS	(EDIT_FIRST)
; #define EDIT_CONTRAST	(EDIT_FIRST+1)
; #define EDIT_COLOR	(EDIT_FIRST+2)
; #define EDIT_TINT	(EDIT_FIRST+3)
; #define EDIT_RESET	(EDIT_FIRST+4)
; #define EDIT_LAST	(EDIT_FIRST+4)
; #define EDIT_COUNT	5
; #define EDIT_NULL	255
; 
; #undef CHS
; #undef CWS
; 
; #ifdef MTV130
; 
; #define BAR_N		4
; #define BAR_B		128
; #define BAR_F		129
; #define BAR_E		(BAR_F+BAR_N+1)
; 
; #else
; 
; #define BAR_N		4
; #define BAR_B		128
; #define BAR_F		129
; #define BAR_E		(BAR_F+BAR_N+1)
; 
; #endif
; 

⌨️ 快捷键说明

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