📄 tv_power_tester.lst
字号:
__text_start:
__start:
0013 E5CF LDI R28,0x5F
0014 E0D4 LDI R29,4
0015 BFCD OUT 0x3D,R28
0016 BFDE OUT 0x3E,R29
0017 51C4 SUBI R28,0x14
0018 40D0 SBCI R29,0
0019 EA0A LDI R16,0xAA
001A 8308 STD Y+0,R16
001B 2400 CLR R0
001C E6E0 LDI R30,0x60
001D E0F0 LDI R31,0
001E E010 LDI R17,0
001F 36E0 CPI R30,0x60
0020 07F1 CPC R31,R17
0021 F011 BEQ 0x0024
0022 9201 ST R0,Z+
0023 CFFB RJMP 0x001F
0024 8300 STD Z+0,R16
0025 E2E6 LDI R30,0x26
0026 E0F0 LDI R31,0
0027 E6A0 LDI R26,0x60
0028 E0B0 LDI R27,0
0029 E010 LDI R17,0
002A 32E6 CPI R30,0x26
002B 07F1 CPC R31,R17
002C F021 BEQ 0x0031
002D 95C8 LPM
002E 9631 ADIW R30,1
002F 920D ST R0,X+
0030 CFF9 RJMP 0x002A
0031 D06F RCALL _main
_exit:
0032 CFFF RJMP _exit
_DELAY_10uS:
a --> R20
b --> R22
i --> R16
0033 D0AE RCALL push_gset2
FILE: E:\company\hardware\eboda\LCD_TV\TV_power_tester\funcation.c
(0001) #include <iom8v.h>
(0002) #include <define.h>
(0003)
(0004)
(0005) /********************DELAY_10uS***************************/
(0006) void DELAY_10uS(unsigned int i)
(0007) { unsigned int a, b;
(0008) for( a=i;a;a--)
0034 01A8 MOVW R20,R16
0035 C00A RJMP 0x0040
(0009) for(b=14;b;b--);// a=1 &b=14 for 10us
0036 E06E LDI R22,0xE
0037 E070 LDI R23,0
0038 C002 RJMP 0x003B
0039 5061 SUBI R22,1
003A 4070 SBCI R23,0
003B 3060 CPI R22,0
003C 0767 CPC R22,R23
003D F7D9 BNE 0x0039
003E 5041 SUBI R20,1
003F 4050 SBCI R21,0
0040 3040 CPI R20,0
0041 0745 CPC R20,R21
0042 F799 BNE 0x0036
0043 D096 RCALL pop_gset2
0044 9508 RET
_DELAY_100uS:
a --> R20
b --> R22
i --> R20
0045 D09C RCALL push_gset2
0046 01A8 MOVW R20,R16
(0010) }
(0011) /**********************DELAY_10uS****************************/
(0012)
(0013)
(0014) /********************DELAY_100uS***************************/
(0015) void DELAY_100uS(unsigned int i)
(0016) { unsigned int a, b;
(0017) for( a=i*10;a;a--)
0047 E00A LDI R16,0xA
0048 E010 LDI R17,0
0049 019A MOVW R18,R20
004A D07F RCALL empy16s
004B 01A8 MOVW R20,R16
004C C00A RJMP 0x0057
(0018) for(b=23;b;b--);// a=10 &b=23 for 100us
004D E167 LDI R22,0x17
004E E070 LDI R23,0
004F C002 RJMP 0x0052
0050 5061 SUBI R22,1
0051 4070 SBCI R23,0
0052 3060 CPI R22,0
0053 0767 CPC R22,R23
0054 F7D9 BNE 0x0050
0055 5041 SUBI R20,1
0056 4050 SBCI R21,0
0057 3040 CPI R20,0
0058 0745 CPC R20,R21
0059 F799 BNE 0x004D
005A D07F RCALL pop_gset2
005B 9508 RET
_DELAY_1MS:
a --> R20
b --> R22
i --> R20
005C D085 RCALL push_gset2
005D 01A8 MOVW R20,R16
(0019) }
(0020) /**********************DELAY_100uS****************************/
(0021)
(0022) /********************DELAY_1MS***************************/
(0023) void DELAY_1MS(unsigned int i)
(0024) { unsigned int a, b;
(0025) for( a=i*10;a;a--)
005E E00A LDI R16,0xA
005F E010 LDI R17,0
0060 019A MOVW R18,R20
0061 D068 RCALL empy16s
0062 01A8 MOVW R20,R16
0063 C00A RJMP 0x006E
(0026) for(b=270;b;b--);
0064 E06E LDI R22,0xE
0065 E071 LDI R23,1
0066 C002 RJMP 0x0069
0067 5061 SUBI R22,1
0068 4070 SBCI R23,0
0069 3060 CPI R22,0
006A 0767 CPC R22,R23
006B F7D9 BNE 0x0067
006C 5041 SUBI R20,1
006D 4050 SBCI R21,0
006E 3040 CPI R20,0
006F 0745 CPC R20,R21
0070 F799 BNE 0x0064
0071 D068 RCALL pop_gset2
0072 9508 RET
_DELAY_10MS:
a --> R20
b --> R22
i --> R20
0073 D06E RCALL push_gset2
0074 01A8 MOVW R20,R16
(0027) }
(0028) /**********************DELAY_1MS****************************/
(0029)
(0030)
(0031) /********************DELAY_10MS***************************/
(0032) void DELAY_10MS(unsigned int i)
(0033) { unsigned int a, b;
(0034) for( a=i*100;a;a--)
0075 E604 LDI R16,0x64
0076 E010 LDI R17,0
0077 019A MOVW R18,R20
0078 D051 RCALL empy16s
0079 01A8 MOVW R20,R16
007A C00A RJMP 0x0085
(0035) for(b=270;b;b--);//A=100 AND B=270 FOR 10MS
007B E06E LDI R22,0xE
007C E071 LDI R23,1
007D C002 RJMP 0x0080
007E 5061 SUBI R22,1
007F 4070 SBCI R23,0
0080 3060 CPI R22,0
0081 0767 CPC R22,R23
0082 F7D9 BNE 0x007E
0083 5041 SUBI R20,1
0084 4050 SBCI R21,0
0085 3040 CPI R20,0
0086 0745 CPC R20,R21
0087 F799 BNE 0x007B
0088 D051 RCALL pop_gset2
0089 9508 RET
_DELAY_1S:
a --> R20
b --> R22
i --> R20
008A D057 RCALL push_gset2
008B 01A8 MOVW R20,R16
(0036) }
(0037) /**********************DELAY_10MS****************************/
(0038)
(0039) /********************DELAY_1S***************************/
(0040) void DELAY_1S(unsigned int i)
(0041) { unsigned int a, b;
(0042) for( a=i*100;a;a--)
008C E604 LDI R16,0x64
008D E010 LDI R17,0
008E 019A MOVW R18,R20
008F D03A RCALL empy16s
0090 01A8 MOVW R20,R16
0091 C00A RJMP 0x009C
(0043) for(b=20000;b;b--);//A=100 AND B=270 FOR 10MS
0092 E260 LDI R22,0x20
0093 E47E LDI R23,0x4E
0094 C002 RJMP 0x0097
0095 5061 SUBI R22,1
0096 4070 SBCI R23,0
0097 3060 CPI R22,0
0098 0767 CPC R22,R23
0099 F7D9 BNE 0x0095
009A 5041 SUBI R20,1
009B 4050 SBCI R21,0
009C 3040 CPI R20,0
009D 0745 CPC R20,R21
009E F799 BNE 0x0092
009F D03A RCALL pop_gset2
00A0 9508 RET
FILE: E:\company\hardware\eboda\LCD_TV\TV_power_tester\main.c
(0001) //EJK601_TEST prj
(0002) //V1.0 release 2006.12.30
(0003) //
(0004) //
(0005) //
(0006) #include <iom8v.h>
(0007) #include <define.h>
(0008)
(0009)
(0010)
(0011)
(0012) void main(void)
(0013) {
(0014) unsigned char i=0;
_main:
i --> R20
00A1 2744 CLR R20
(0015)
(0016) DELAY_10MS(10);//(2)
00A2 E00A LDI R16,0xA
00A3 E010 LDI R17,0
00A4 DFCE RCALL _DELAY_10MS
(0017) //-------------------INIT PORT---------------------
(0018)
(0019) DDRB=0XFF; //DDFINE PB OUTPUT
00A5 EF8F LDI R24,0xFF
00A6 BB87 OUT 0x17,R24
(0020) PORTB=0xFF; //
00A7 BB88 OUT 0x18,R24
(0021)
(0022) DDRC=0XFF; //DDFINE PC OUTPUT
00A8 BB84 OUT 0x14,R24
(0023) PORTC=0xFF; //
00A9 BB85 OUT 0x15,R24
(0024)
(0025) DDRD=0X00; //PD0.....PD3 INPUT,PD4....PD7 OUPUT
00AA 2422 CLR R2
00AB BA21 OUT 0x11,R2
(0026) PORTD=0x00;
00AC BA22 OUT 0x12,R2
(0027) //-------------------INIT PORT---------------------
(0028) TV_POWER_ON();
00AD 98AD CBI 0x15,5
(0029) DELAY_1S(4); // power on delay times
00AE E004 LDI R16,4
00AF E010 LDI R17,0
00B0 DFD9 RCALL _DELAY_1S
00B1 C015 RJMP 0x00C7
(0030)
(0031) while(i<10)
(0032) {
(0033) i++;
00B2 9543 INC R20
(0034) DELAY_1S(4); // power on delay times
00B3 E004 LDI R16,4
00B4 E010 LDI R17,0
00B5 DFD4 RCALL _DELAY_1S
(0035) if((PIND&0x08)==0x08)
00B6 B380 IN R24,0x10
00B7 7088 ANDI R24,0x8
00B8 3088 CPI R24,0x8
00B9 F441 BNE 0x00C2
(0036) {
(0037) DELAY_1S(1); // backlight on delay times
00BA E001 LDI R16,1
00BB E010 LDI R17,0
00BC DFCD RCALL _DELAY_1S
(0038) TV_POWER_OFF();
00BD 9AAD SBI 0x15,5
(0039) DELAY_10MS(2); // power off delay times
00BE E002 LDI R16,2
00BF E010 LDI R17,0
00C0 DFB2 RCALL _DELAY_10MS
(0040) }
00C1 C004 RJMP 0x00C6
(0041) else
(0042) {
(0043) TV_POWER_OFF();
00C2 9AAD SBI 0x15,5
(0044) PORTB=0;
00C3 2422 CLR R2
00C4 BA28 OUT 0x18,R2
(0045) break;
00C5 C003 RJMP 0x00C9
(0046) }
(0047) TV_POWER_ON();
FILE: <library>
00C6 98AD CBI 0x15,5
00C7 304A CPI R20,0xA
00C8 F348 BCS 0x00B2
00C9 9508 RET
empy16s:
00CA 920A ST R0,-Y
00CB 921A ST R1,-Y
00CC 938A ST R24,-Y
00CD 939A ST R25,-Y
00CE 9F02 MUL R16,R18
00CF 01C0 MOVW R24,R0
00D0 9F12 MUL R17,R18
00D1 0D90 ADD R25,R0
00D2 9F03 MUL R16,R19
00D3 0D90 ADD R25,R0
00D4 018C MOVW R16,R24
00D5 9199 LD R25,Y+
00D6 9189 LD R24,Y+
00D7 9019 LD R1,Y+
00D8 9009 LD R0,Y+
00D9 9508 RET
pop_gset2:
00DA E0E2 LDI R30,2
00DB C00C RJMP pop
push_gset5:
00DC 92FA ST R15,-Y
00DD 92EA ST R14,-Y
push_gset4:
00DE 92DA ST R13,-Y
00DF 92CA ST R12,-Y
push_gset3:
00E0 92BA ST R11,-Y
00E1 92AA ST R10,-Y
push_gset2:
00E2 937A ST R23,-Y
00E3 936A ST R22,-Y
push_gset1:
00E4 935A ST R21,-Y
00E5 934A ST R20,-Y
00E6 9508 RET
pop_gset1:
00E7 E0E1 LDI R30,1
pop:
00E8 9149 LD R20,Y+
00E9 9159 LD R21,Y+
00EA FDE0 SBRC R30,0
00EB 9508 RET
00EC 9169 LD R22,Y+
00ED 9179 LD R23,Y+
00EE FDE1 SBRC R30,1
00EF 9508 RET
00F0 90A9 LD R10,Y+
00F1 90B9 LD R11,Y+
00F2 FDE2 SBRC R30,2
00F3 9508 RET
00F4 90C9 LD R12,Y+
00F5 90D9 LD R13,Y+
00F6 FDE3 SBRC R30,3
00F7 9508 RET
00F8 90E9 LD R14,Y+
00F9 90F9 LD R15,Y+
00FA 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -