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

📄 tft_7.lst

📁 7"车载液晶电视机 控制程序源码 WinRar3.2压缩 MCU ATMega8
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0544)   OSD_time=OSD_TIME;
    0576 D8EB      RCALL	0x0E62
(0545) }
    0577 9626      ADIW	R28,6
    0578 D845      RCALL	pop_gset5
    0579 9508      RET
_aload_default:
  p                    --> R20
  j                    --> R22
    057A D85C      RCALL	push_gset2
(0546) /*========================
(0547) 加载默认值
(0548) ========================*/
(0549) void aload_default(void)
(0550) {
(0551)   unsigned char *p;
(0552)   unsigned char j;
(0553)   p=&user_adjust[1][0];
    057B E745      LDI	R20,0x75
    057C E050      LDI	R21,0
(0554)   for(j=0;j<5;j++)
    057D 2766      CLR	R22
    057E C005      RJMP	0x0584
(0555)   {
(0556)     EEPROMwrite(j,user_config[j]);
    057F D948      RCALL	0x0EC8
    0580 8120      LDD	R18,Z+0
    0581 2F06      MOV	R16,R22
    0582 DED6      RCALL	_EEPROMwrite
    0583 9563      INC	R22
    0584 3065      CPI	R22,5
    0585 F3C8      BCS	0x057F
(0557)   }
(0558)   for(j=0;j<18;j++)
    0586 2766      CLR	R22
    0587 C006      RJMP	0x058E
(0559)   {
(0560)     EEPROMwrite(j+10,*(p+j));
    0588 D998      RCALL	0x0F21
    0589 8120      LDD	R18,Z+0
    058A 2F06      MOV	R16,R22
    058B 5F06      SUBI	R16,0xF6
    058C DECC      RCALL	_EEPROMwrite
    058D 9563      INC	R22
    058E 3162      CPI	R22,0x12
    058F F3C0      BCS	0x0588
(0561)   }
(0562) }
    0590 D827      RCALL	pop_gset2
    0591 9508      RET
_aload_config:
  p                    --> R20
  j                    --> R22
    0592 D844      RCALL	push_gset2
(0563) /*========================
(0564) 读取配置
(0565) ========================*/
(0566) void aload_config(void)
(0567) {
(0568)   unsigned char *p;
(0569)   unsigned char j;
(0570)   p=&user_adjust[1][0];
    0593 E745      LDI	R20,0x75
    0594 E050      LDI	R21,0
(0571)   for(j=1;j<5;j++)
    0595 E061      LDI	R22,1
    0596 C005      RJMP	0x059C
(0572)   {
(0573)     user_config[j]=EEPROMread(j);
    0597 2F06      MOV	R16,R22
    0598 DEF5      RCALL	_EEPROMread
    0599 D92E      RCALL	0x0EC8
    059A 8300      STD	Z+0,R16
    059B 9563      INC	R22
    059C 3065      CPI	R22,5
    059D F3C8      BCS	0x0597
(0574)   }
(0575)   for(j=0;j<18;j++)
    059E 2766      CLR	R22
    059F C006      RJMP	0x05A6
(0576)   {
(0577)     *(p+j)=EEPROMread(j+10);
    05A0 2F06      MOV	R16,R22
    05A1 5F06      SUBI	R16,0xF6
    05A2 DEEB      RCALL	_EEPROMread
    05A3 D97D      RCALL	0x0F21
    05A4 8300      STD	Z+0,R16
    05A5 9563      INC	R22
    05A6 3162      CPI	R22,0x12
    05A7 F3C0      BCS	0x05A0
(0578)   }
(0579) }
    05A8 D80F      RCALL	pop_gset2
    05A9 9508      RET
(0580) /*========================
(0581) 上电初始化
(0582) ========================*/
(0583) void power_on(void)
(0584) {  
(0585)   write_user_char();
_power_on:
    05AA DCAE      RCALL	_write_user_char
(0586)   if(key(6)==KMENU)
    05AB E006      LDI	R16,6
    05AC DDF7      RCALL	_key
    05AD 3604      CPI	R16,0x64
    05AE F409      BNE	0x05B0
(0587)     aload_default();
    05AF DFCA      RCALL	_aload_default
(0588)   aload_config();
    05B0 DFE1      RCALL	_aload_config
(0589)   CHwrite(user_config[channel]);
    05B1 91000069  LDS	R16,0x69
    05B3 DEFD      RCALL	_CHwrite
(0590)   video_choose(user_config[video_input]);
    05B4 9100006B  LDS	R16,0x6B
    05B6 DD19      RCALL	_video_choose
(0591)   dis_video(user_config[video_input]);
    05B7 9100006B  LDS	R16,0x6B
    05B9 DD6D      RCALL	_dis_video
    05BA D85E      RCALL	<created procedures>
    05BB D862      RCALL	0x0E1E
(0592)   screen_mode(user_adjust[user_config[video_input]][5]);
    05BC 8100      LDD	R16,Z+0
    05BD DD2F      RCALL	_screen_mode
(0593)   pal_ntsc(PAL);
    05BE E001      LDI	R16,1
    05BF DD49      RCALL	_pal_ntsc
(0594)   screen_inversion(user_config[inversion]=ON);
    05C0 E081      LDI	R24,1
    05C1 9380006C  STS	0x6C,R24
    05C3 E001      LDI	R16,1
    05C4 DD4A      RCALL	_screen_inversion
    05C5 D853      RCALL	<created procedures>
    05C6 D879      RCALL	0x0E40
(0595)   screen_mirror(user_adjust[user_config[video_input]][4]);
    05C7 8100      LDD	R16,Z+0
(0596) }
    05C8 CD4C      RJMP	_screen_mirror
_dis_menu:
  j                    --> R20
  x                    --> R22
    05C9 D80D      RCALL	push_gset2
    05CA 2F60      MOV	R22,R16
    05CB 9726      SBIW	R28,6
(0597) /*========================
(0598) 菜单
(0599) ========================*/
(0600) void dis_menu(unsigned char x)
(0601) {
(0602)   unsigned char j;
(0603)   if(x<7)
    05CC 3067      CPI	R22,7
    05CD F008      BCS	0x05CF
    05CE C089      RJMP	0x0658
(0604)   {
(0605)     if(FOSD!=DIS_MENU1)
    05CF 91800060  LDS	R24,0x60
    05D1 3082      CPI	R24,2
    05D2 F409      BNE	0x05D4
    05D3 C04D      RJMP	0x0621
(0606)     {
(0607)     FOSD=DIS_MENU1;
    05D4 E082      LDI	R24,2
    05D5 93800060  STS	0x60,R24
(0608) 	OSD_window(1);
    05D7 E001      LDI	R16,1
    05D8 D517      RCALL	_OSD_window
(0609) 	for(j=0;j<3;j++)  //标题文字
    05D9 2744      CLR	R20
    05DA C008      RJMP	0x05E3
(0610) 	{
(0611) 	  OSD_out_1row(0,j*5+1,3,0,c_menu[j]);
    05DB E086      LDI	R24,6
    05DC 9F84      MUL	R24,R20
    05DD 0110      MOVW	R2,R0
    05DE ED83      LDI	R24,0xD3
    05DF D844      RCALL	0x0E24
    05E0 D8D2      RCALL	0x0EB3
    05E1 D551      RCALL	_OSD_out_1row
    05E2 9543      INC	R20
    05E3 3043      CPI	R20,3
    05E4 F3B0      BCS	0x05DB
(0612) 	}
(0613)     //标题颜色
(0614) 	OSD_attrib_1row(0,0,15,7,3);
    05E5 E083      LDI	R24,3
    05E6 838C      STD	Y+4,R24
    05E7 E087      LDI	R24,7
    05E8 D8A5      RCALL	0x0E8E
    05E9 2700      CLR	R16
    05EA D69F      RCALL	_OSD_attrib_1row
    05EB D8B2      RCALL	0x0E9E
(0615) 	OSD_attrib_1row(0,(user_config[video_input]-1)*5,5,7,2);
    05EC E085      LDI	R24,5
    05ED 8388      STD	Y+0,R24
    05EE 9020006B  LDS	R2,0x6B
    05F0 9D82      MUL	R24,R2
    05F1 2D20      MOV	R18,R0
    05F2 5025      SUBI	R18,5
    05F3 2700      CLR	R16
    05F4 D695      RCALL	_OSD_attrib_1row
(0616) 	for(j=1;j<7;j++)
    05F5 E041      LDI	R20,1
    05F6 C00B      RJMP	0x0602
(0617) 	{
(0618) 	  OSD_out_1row(j,2,3,0,c_menu[j+3]);
    05F7 E086      LDI	R24,6
    05F8 9F84      MUL	R24,R20
    05F9 0110      MOVW	R2,R0
    05FA EE85      LDI	R24,0xE5
    05FB D828      RCALL	0x0E24
    05FC E083      LDI	R24,3
    05FD 8388      STD	Y+0,R24
    05FE E022      LDI	R18,2
    05FF 2F04      MOV	R16,R20
    0600 D532      RCALL	_OSD_out_1row
    0601 9543      INC	R20
    0602 3047      CPI	R20,7
    0603 F398      BCS	0x05F7
(0619) 	}
(0620) 	for(j=0;j<4;j++)
    0604 2744      CLR	R20
    0605 C00B      RJMP	0x0611
(0621) 	{
(0622) 	  OSD_out_num(j+1,10,user_adjust[user_config[video_input]][j],0);
    0606 2422      CLR	R2
    0607 822A      STD	Y+2,R2
    0608 D810      RCALL	<created procedures>
    0609 D822      RCALL	0x0E2C
    060A D90B      RCALL	0x0F16
    060B 8228      STD	Y+0,R2
    060C E02A      LDI	R18,0xA
    060D 2F04      MOV	R16,R20
    060E 5F0F      SUBI	R16,0xFF
    060F D58D      RCALL	_OSD_out_num
    0610 9543      INC	R20
    0611 3044      CPI	R20,4
    0612 F398      BCS	0x0606
    0613 D805      RCALL	<created procedures>
    0614 D82B      RCALL	0x0E40
    0615 D892      RCALL	0x0EA8
(0623) 	}
(0624) 	OSD_out_1row(5,11,1,0,c_on_off[user_adjust[user_config[video_input]][4]]);
    0616 EC89      LDI	R24,0xC9
    0617 D80C      RCALL	0x0E24
    0618 D926      RCALL	0x0F3F
    0619 D519      RCALL	_OSD_out_1row
    061A D7FE      RCALL	<created procedures>
    061B D802      RCALL	0x0E1E
    061C D88B      RCALL	0x0EA8
(0625) 	OSD_out_1row(6,11,1,0,mode_1_2_3[user_adjust[user_config[video_input]][5]]);
    061D EC8D      LDI	R24,0xCD
    061E D805      RCALL	0x0E24
    061F D91A      RCALL	0x0F3A
    0620 D512      RCALL	_OSD_out_1row
(0626) 	}
(0627)     for(j=1;j<7;j++)
    0621 E041      LDI	R20,1
    0622 C010      RJMP	0x0633
(0628)     {
(0629)       if(j!=x)
    0623 1746      CP	R20,R22
    0624 F039      BEQ	0x062C
(0630) 	    OSD_attrib_1row(j,0,15,7,2);
    0625 E082      LDI	R24,2
    0626 838C      STD	Y+4,R24
    0627 E087      LDI	R24,7
    0628 D865      RCALL	0x0E8E
    0629 2F04      MOV	R16,R20
    062A D65F      RCALL	_OSD_attrib_1row
    062B C006      RJMP	0x0632
(0631)       else  //选中
(0632) 	  {
(0633) 	    OSD_attrib_1row(j,0,15,5,4);
    062C E084      LDI	R24,4
    062D 838C      STD	Y+4,R24
    062E E085      LDI	R24,5
    062F D85E      RCALL	0x0E8E
    0630 2F04      MOV	R16,R20
    0631 D658      RCALL	_OSD_attrib_1row
    0632 9543      INC	R20
    0633 3047      CPI	R20,7
    0634 F370      BCS	0x0623
(0634) 	  }
(0635) 	}
(0636) 	if(x<5)
    0635 3065      CPI	R22,5
    0636 F460      BCC	0x0643
(0637) 	  OSD_out_num(x,10,user_adjust[user_config[video_input]][x-1],0);
    0637 2422      CLR	R2
    0638 822A      STD	Y+2,R2
    0639 D7DF      RCALL	<created procedures>
    063A D7F1      RCALL	0x0E2C
    063B 2FE6      MOV	R30,R22
    063C D8A5      RCALL	0x0EE2
    063D 8020      LDD	R2,Z+0
    063E 8228      STD	Y+0,R2
    063F E02A      LDI	R18,0xA
    0640 2F06      MOV	R16,R22
    0641 D55B      RCALL	_OSD_out_num
    0642 C076      RJMP	0x06B9
(0638) 	else if(x==5)
    0643 3065      CPI	R22,5
    0644 F441      BNE	0x064D
    0645 D7D3      RCALL	<created procedures>
    0646 D7F9      RCALL	0x0E40
    0647 D860      RCALL	0x0EA8
(0639) 	  OSD_out_1row(5,11,1,0,c_on_off[user_adjust[user_config[video_input]][4]]);
    0648 EC89      LDI	R24,0xC9
    0649 D7DA      RCALL	0x0E24
    064A D8F4      RCALL	0x0F3F
    064B D4E7      RCALL	_OSD_out_1row
    064C C06C      RJMP	0x06B9
(0640) 	else if(x==6)
    064D 3066      CPI	R22,6
    064E F009      BEQ	0x0650
    064F C069      RJMP	0x06B9
(0641) 	  OSD_out_1row(6,11,1,0,mode_1_2_3[user_adjust[user_config[video_input]][5]]);
    0650 D7C8      RCALL	<created procedures>
    0651 D7CC      RCALL	0x0E1E
    0652 D855      RCALL	0x0EA8
    0653 EC8D      LDI	R24,0xCD
    0654 D7CF      RCALL	0x0E24
    0655 D8E4      RCALL	0x0F3A
    0656 D4DC      RCALL	_OSD_out_1row
(0642)   }
    0657 C061      RJMP	0x06B9
(0643)   else  //第二页
(0644)   {    
(0645)     if(FOSD!=DIS_MENU2)
    0658 91800060  LDS	R24,0x60
    065A 3083      CPI	R24,3
    065B F409      BNE	0x065D
    065C C040      RJMP	0x069D
(0646)     {
(0647)     FOSD=DIS_MENU2;
    065D E083      LDI	R24,3
    065E 93800060  STS	0x60,R24
(0648) 	OSD_window(1);
    0660 E001      LDI	R16,1
    0661 D48E      RCALL	_OSD_window
(0649) 	for(j=0;j<3;j++)  //标题文字
    0662 2744      CLR	R20
    0663 C008      RJMP	0x066C
(0650) 	{
(0651) 	  OSD_out_1row(0,j*5+1,3,0,c_menu[j]);
    0664 E086      LDI	R24,6
    0665 9F84      MUL	R24,R20
    0666 0110      MOVW	R2,R0
    0667 ED83      LDI	R24,0xD3
    0668 D7BB      RCALL	0x0E24
    0669 D849      RCALL	0x0EB3
    066A D4C8      RCALL	_OSD_out_1row
    066B 9543      INC	R20
    066C 3043      CPI	R20,3
    066D F3B0      BCS	0x0664
    066E D82F      RCALL	0x0E9E
(0652) 	}
(0653)     //标题颜色
(0654) 	OSD_attrib_1row(0,0,5,7,2);
    066F E085      LDI	R24,5
    0670 8388      STD	Y+0,R24
    0671 2722      CLR	R18
    0672 2700      CLR	R16
    0673 D616      RCALL	_OSD_attrib_1row
(0655) 	OSD_attrib_1row(0,5,10,7,3);
    0674 E083      LDI	R24,3
    0675 838C      STD	Y+4,R24
    0676 E087      LDI	R24,7
    0677 838A      STD	Y+2,R24
    0678 E08A      LDI	R24,0xA
    0679 8388      STD	Y+0,R24
    067A E025      LDI	R18,5
    067B 2700      CLR	R16
    067C D60D      RCALL	_OSD_attrib_1row
(0656) 	for(j=0;j<3;j++)
    067D 2744      CLR	R20
    067E C012      RJMP	0x0691
(0657) 	{
(0658) 	  OSD_out_1row(j+1,2,4,0,c_menu2[j]);
    067F E088      LDI	R24,0x8
    0680 9F84      MUL	R24,R20
    0681 0110      MOVW	R2,R0
    0682 E08F      LDI	R24,0xF
    0683 E091      LDI	R25,1
    0684 0E28      ADD	R2,R24
    0685 1E39      ADC	R3,R25
    0686 823D      STD	Y+5,R3
    0687 822C      STD	Y+4,R2
    0688 2422      CLR	R2
    0689 822A      STD	Y+2,R2
    068A E084      LDI	R24,4
    068B 8388      STD	Y+0,R24
    068C E022      LDI	R18,2
    068D 2F04      MOV	R16,R20
    068E 5F0F      SUBI	R16,0xFF
    068F D4A3      RCALL	_OSD_out_1row
    0690 9543      INC	R20
    0691 3043      CPI	R20,3
    0692 F360      BCS	0x067F
(0659) 	}
(0660) 	OSD_out_1row(1,12,1,0,c_on_off[OFF]);
    0693 EC89      LDI	R24,0xC9
    0694 E090      LDI	R25,0
    0695 839D      STD	Y+5,R25
    0696 838C      STD	Y+4,R24
    0697 D7A3      RCALL	0x0E3B
    0698 E02C      LDI	R18,0xC
    0699 E001      LDI	R16,1
    069A D498      RCALL	_OSD_out_1row
    069B D7D9      RCALL	0x0E75
(0661) 	OSD_out_num(3,11,user_config[channel],0);	
    069C D500      RCALL	_OSD_out_num
(0662) 	}
(0663)     for(j=1;j<6;j++)
    069D E041      LDI

⌨️ 快捷键说明

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