📄 gvgledtest.lss
字号:
{
unsigned char i,j;
//send LED Display Modle command
PORTB &= ~(1<<STB);
1ae: c0 98 cbi 0x18, 0 ; 24
V_SPI_SEND(Vfd_Display_Modle);
1b0: 83 e0 ldi r24, 0x03 ; 3
1b2: f0 df rcall .-32 ; 0x194
PORTB|= (1<<STB);
1b4: c0 9a sbi 0x18, 0 ; 24
//Send Led Display Data modle command
PORTB &= ~(1<<STB);
1b6: c0 98 cbi 0x18, 0 ; 24
V_SPI_SEND(Vfd_Display_DataOut);
1b8: 80 e4 ldi r24, 0x40 ; 64
1ba: ec df rcall .-40 ; 0x194
PORTB|= (1<<STB);
1bc: c0 9a sbi 0x18, 0 ; 24
//Send LED Display Data address
PORTB &= ~(1<<STB);
1be: c0 98 cbi 0x18, 0 ; 24
V_SPI_SEND(Vfd_Display_Addr);
1c0: 80 ec ldi r24, 0xC0 ; 192
1c2: e8 df rcall .-48 ; 0x194
//send LED Display Data
for (i=0; i<7; i++)
1c4: 30 e0 ldi r19, 0x00 ; 0
1c6: 43 2f mov r20, r19
1c8: 55 27 eor r21, r21
1ca: ee e7 ldi r30, 0x7E ; 126
1cc: f0 e0 ldi r31, 0x00 ; 0
1ce: 2f e0 ldi r18, 0x0F ; 15
{
for(j=0; j<16;j++)
{
if(Display_data[j] & (1<< i))
1d0: 81 91 ld r24, Z+
1d2: 99 27 eor r25, r25
1d4: 04 2e mov r0, r20
1d6: 02 c0 rjmp .+4 ; 0x1dc
1d8: 95 95 asr r25
1da: 87 95 ror r24
1dc: 0a 94 dec r0
1de: e2 f7 brpl .-8 ; 0x1d8
1e0: 80 ff sbrs r24, 0
1e2: 02 c0 rjmp .+4 ; 0x1e8
{
PORTB |= (1<<DATA);
1e4: c1 9a sbi 0x18, 1 ; 24
1e6: 01 c0 rjmp .+2 ; 0x1ea
}
else
{
PORTB &= ~(1<<DATA);
1e8: c1 98 cbi 0x18, 1 ; 24
}
PORTB &= ~(1<<SCK);
1ea: c2 98 cbi 0x18, 2 ; 24
PORTB |= (1<<SCK);
1ec: c2 9a sbi 0x18, 2 ; 24
1ee: 21 50 subi r18, 0x01 ; 1
1f0: 27 ff sbrs r18, 7
1f2: ee cf rjmp .-36 ; 0x1d0
1f4: 3f 5f subi r19, 0xFF ; 255
1f6: 37 30 cpi r19, 0x07 ; 7
1f8: 30 f3 brcs .-52 ; 0x1c6
}
}
PORTB |= (1<<STB);
1fa: c0 9a sbi 0x18, 0 ; 24
//Send Led Display ON command
PORTB &= ~(1<<STB);
1fc: c0 98 cbi 0x18, 0 ; 24
V_SPI_SEND(Vfd_Display_Corl);
1fe: 8b e8 ldi r24, 0x8B ; 139
200: c9 df rcall .-110 ; 0x194
PORTB|= (1<<STB);
202: c0 9a sbi 0x18, 0 ; 24
204: 08 95 ret
00000206 <V_Kay_Scan>:
}
/*============================================================
FUNCTION: VFD KEY DATA IN
============================================================*/
unsigned char V_Kay_Scan(void)
{
unsigned char i;
unsigned char data;
PORTB &= ~(1<<STB);
206: c0 98 cbi 0x18, 0 ; 24
//send Key value read command
V_SPI_SEND(Vfd_Display_DataIn);
208: 82 e4 ldi r24, 0x42 ; 66
20a: c4 df rcall .-120 ; 0x194
data = 0xFF;
20c: 8f ef ldi r24, 0xFF ; 255
//read key value
DDRB &= ~(1<<DATA);
20e: b9 98 cbi 0x17, 1 ; 23
for(i=0; i<40;i++ )
210: 20 e0 ldi r18, 0x00 ; 0
{
PORTB &= ~(1<<SCK);
212: c2 98 cbi 0x18, 2 ; 24
PORTB &= ~(1<<SCK);
214: c2 98 cbi 0x18, 2 ; 24
PORTB |= (1<<SCK);
216: c2 9a sbi 0x18, 2 ; 24
PORTB |= (1<<SCK);
218: c2 9a sbi 0x18, 2 ; 24
if(PINB & (1<<DATA))
21a: b1 99 sbic 0x16, 1 ; 22
{
data = i;
21c: 82 2f mov r24, r18
21e: 2f 5f subi r18, 0xFF ; 255
220: 28 32 cpi r18, 0x28 ; 40
222: b8 f3 brcs .-18 ; 0x212
}
}
DDRB |= (1<<DATA);
224: b9 9a sbi 0x17, 1 ; 23
PORTB|= (1<<STB);
226: c0 9a sbi 0x18, 0 ; 24
return data;
}
228: 99 27 eor r25, r25
22a: 08 95 ret
0000022c <Display>:
/*============================================================
============================================================*/
void Display (char *Keydata)
{
22c: b9 2f mov r27, r25
22e: a8 2f mov r26, r24
Display_data[9]=pgm_read_byte(Display_Code+((*(Keydata+0)) -0x30));
230: 8c 91 ld r24, X
232: 24 ee ldi r18, 0xE4 ; 228
234: 3f ef ldi r19, 0xFF ; 255
236: f3 2f mov r31, r19
238: e2 2f mov r30, r18
23a: e8 0f add r30, r24
23c: f1 1d adc r31, r1
23e: c8 95 lpm
240: 80 2d mov r24, r0
242: 80 93 87 00 sts 0x0087, r24
Display_data[8]=pgm_read_byte(Display_Code+((*(Keydata+1)) -0x30));
246: fb 2f mov r31, r27
248: ea 2f mov r30, r26
24a: 81 81 ldd r24, Z+1 ; 0x01
24c: f3 2f mov r31, r19
24e: e2 2f mov r30, r18
250: e8 0f add r30, r24
252: f1 1d adc r31, r1
254: c8 95 lpm
256: 80 2d mov r24, r0
258: 80 93 86 00 sts 0x0086, r24
Display_data[7]=pgm_read_byte(Display_Code+((*(Keydata+2)) -0x30));
25c: fb 2f mov r31, r27
25e: ea 2f mov r30, r26
260: 82 81 ldd r24, Z+2 ; 0x02
262: f3 2f mov r31, r19
264: e2 2f mov r30, r18
266: e8 0f add r30, r24
268: f1 1d adc r31, r1
26a: c8 95 lpm
26c: 80 2d mov r24, r0
26e: 80 93 85 00 sts 0x0085, r24
Display_data[0]=pgm_read_byte(Display_Code+((*(Keydata+3)) -0x30));
272: fb 2f mov r31, r27
274: ea 2f mov r30, r26
276: 83 81 ldd r24, Z+3 ; 0x03
278: f3 2f mov r31, r19
27a: e2 2f mov r30, r18
27c: e8 0f add r30, r24
27e: f1 1d adc r31, r1
280: c8 95 lpm
282: 80 2d mov r24, r0
284: 80 93 7e 00 sts 0x007E, r24
Display_data[1]=pgm_read_byte(Display_Code+((*(Keydata+4)) -0x30));
288: fb 2f mov r31, r27
28a: ea 2f mov r30, r26
28c: 84 81 ldd r24, Z+4 ; 0x04
28e: f3 2f mov r31, r19
290: e2 2f mov r30, r18
292: e8 0f add r30, r24
294: f1 1d adc r31, r1
296: c8 95 lpm
298: 80 2d mov r24, r0
29a: 80 93 7f 00 sts 0x007F, r24
Display_data[2]=pgm_read_byte(Display_Code+((*(Keydata+5)) -0x30));//AVR Flash
29e: fb 2f mov r31, r27
2a0: ea 2f mov r30, r26
2a2: 85 81 ldd r24, Z+5 ; 0x05
2a4: f3 2f mov r31, r19
2a6: e2 2f mov r30, r18
2a8: e8 0f add r30, r24
2aa: f1 1d adc r31, r1
2ac: c8 95 lpm
2ae: 80 2d mov r24, r0
2b0: 80 93 80 00 sts 0x0080, r24
Display_data[3]=pgm_read_byte(Display_Code+((*(Keydata+6)) -0x30));
2b4: fb 2f mov r31, r27
2b6: ea 2f mov r30, r26
2b8: 86 81 ldd r24, Z+6 ; 0x06
2ba: f3 2f mov r31, r19
2bc: e2 2f mov r30, r18
2be: e8 0f add r30, r24
2c0: f1 1d adc r31, r1
2c2: c8 95 lpm
2c4: 80 2d mov r24, r0
2c6: 80 93 81 00 sts 0x0081, r24
Display_data[4]=pgm_read_byte(Display_Code+((*(Keydata+7)) -0x30));
2ca: fb 2f mov r31, r27
2cc: ea 2f mov r30, r26
2ce: 87 81 ldd r24, Z+7 ; 0x07
2d0: f3 2f mov r31, r19
2d2: e2 2f mov r30, r18
2d4: e8 0f add r30, r24
2d6: f1 1d adc r31, r1
2d8: c8 95 lpm
2da: 80 2d mov r24, r0
2dc: 80 93 82 00 sts 0x0082, r24
Display_data[5]=pgm_read_byte(Display_Code+((*(Keydata+8)) -0x30));
2e0: fb 2f mov r31, r27
2e2: ea 2f mov r30, r26
2e4: 80 85 ldd r24, Z+8 ; 0x08
2e6: f3 2f mov r31, r19
2e8: e2 2f mov r30, r18
2ea: e8 0f add r30, r24
2ec: f1 1d adc r31, r1
2ee: c8 95 lpm
2f0: 80 2d mov r24, r0
2f2: 80 93 83 00 sts 0x0083, r24
2f6: 08 95 ret
000002f8 <IR_Time_detect>:
===========================================================*/
unsigned char IR_Time_detect(unsigned int time1,unsigned int time2)
{
2f8: f9 2f mov r31, r25
2fa: e8 2f mov r30, r24
unsigned int i=0;
2fc: 40 e0 ldi r20, 0x00 ; 0
2fe: 50 e0 ldi r21, 0x00 ; 0
unsigned char j=0;
300: a0 e0 ldi r26, 0x00 ; 0
while((PINB & (1<<IR))>=j)
{
i++;
if((PINB & (1<<IR))!=0) {j=1;}
if(i>time2) {return 0xFF;}
302: 86 b3 in r24, 0x16 ; 22
304: 4f 5f subi r20, 0xFF ; 255
306: 5f 4f sbci r21, 0xFF ; 255
308: b3 99 sbic 0x16, 3 ; 22
30a: a1 e0 ldi r26, 0x01 ; 1
30c: 64 17 cp r22, r20
30e: 75 07 cpc r23, r21
310: 78 f0 brcs .+30 ; 0x330
312: 86 b3 in r24, 0x16 ; 22
314: 99 27 eor r25, r25
316: 88 70 andi r24, 0x08 ; 8
318: 90 70 andi r25, 0x00 ; 0
31a: 2a 2f mov r18, r26
31c: 33 27 eor r19, r19
31e: 82 17 cp r24, r18
320: 93 07 cpc r25, r19
322: 84 f7 brge .-32 ; 0x304
}
if(i>time1){return 1;}
324: e4 17 cp r30, r20
326: f5 07 cpc r31, r21
328: 30 f4 brcc .+12 ; 0x336
32a: 81 e0 ldi r24, 0x01 ; 1
32c: 90 e0 ldi r25, 0x00 ; 0
32e: 08 95 ret
330: 8f ef ldi r24, 0xFF ; 255
332: 90 e0 ldi r25, 0x00 ; 0
334: 08 95 ret
else {return 0;}
336: 80 e0 ldi r24, 0x00 ; 0
338: 90 e0 ldi r25, 0x00 ; 0
}
33a: 08 95 ret
33c: 08 95 ret
0000033e <IR_Value_Read>:
/*===========================================================
============================================================*/
unsigned char IR_Value_Read(void)
{
33e: ef 92 push r14
340: ff 92 push r15
342: 0f 93 push r16
344: 1f 93 push r17
346: cf 93 push r28
348: df 93 push r29
34a: cd b7 in r28, 0x3d ; 61
34c: de b7 in r29, 0x3e ; 62
34e: 24 97 sbiw r28, 0x04 ; 4
350: 0f b6 in r0, 0x3f ; 63
352: f8 94 cli
354: de bf out 0x3e, r29 ; 62
356: 0f be out 0x3f, r0 ; 63
358: cd bf out 0x3d, r28 ; 61
unsigned char i,j,k;
unsigned char IR_Value_time[4];
if (IR_Time_detect(2400,3360)!=1)
35a: 60 e2 ldi r22, 0x20 ; 32
35c: 7d e0 ldi r23, 0x0D ; 13
35e: 80 e6 ldi r24, 0x60 ; 96
360: 99 e0 ldi r25, 0x09 ; 9
362: ca df rcall .-108 ; 0x2f8
364: 81 30 cpi r24, 0x01 ; 1
366: 51 f5 brne .+84 ; 0x3bc
{
GIFR|=(1<<PCIF);
return 0xFF;
}
for(i=0;i<4;i++)
368: ff 24 eor r15, r15
{
for(j=0;j<8;j++)
36a: ee 24 eor r14, r14
{
IR_Value_time[i]>>=1;
36c: 0c 2f mov r16, r28
36e: 1d 2f mov r17, r29
370: 0f 5f subi r16, 0xFF ; 255
372: 1f 4f sbci r17, 0xFF ; 255
374: 0f 0d add r16, r15
376: 11 1d adc r17, r1
378: f1 2f mov r31, r17
37a: e0 2f mov r30, r16
37c: 80 81 ld r24, Z
37e: 86 95 lsr r24
380: 80 83 st Z, r24
k=IR_Time_detect(800,1440);
382: 60 ea ldi r22, 0xA0 ; 160
384: 75 e0 ldi r23, 0x05 ; 5
386: 80 e2 ldi r24, 0x20 ; 32
388: 93 e0 ldi r25, 0x03 ; 3
38a: b6 df rcall .-148 ; 0x2f8
if(k==0xFF)
38c: 8f 3f cpi r24, 0xFF ; 255
38e: b1 f0 breq .+44 ; 0x3bc
{
GIFR|=(1<<PCIF);
return 0xFF;
}
if(k==1)
390: 81 30 cpi r24, 0x01 ; 1
392: 29 f4 brne .+10 ; 0x39e
{
IR_Value_time[i]|=0x80;
394: f1 2f mov r31, r17
396: e0 2f mov r30, r16
398: 80 81 ld r24, Z
39a: 80 68 ori r24, 0x80 ; 128
39c: 80 83 st Z, r24
39e: e3 94 inc r14
3a0: f7 e0 ldi r31, 0x07 ; 7
3a2: fe 15 cp r31, r14
3a4: 18 f7 brcc .-58 ; 0x36c
3a6: f3 94 inc r15
3a8: 83 e0 ldi r24, 0x03 ; 3
3aa: 8f 15 cp r24, r15
3ac: f0 f6 brcc .-68 ; 0x36a
}
}
}
if((IR_Value_time[2] & IR_Value_time[3])==0)
3ae: 9b 81 ldd r25, Y+3 ; 0x03
3b0: 8c 81 ldd r24, Y+4 ; 0x04
3b2: 89 23 and r24, r25
3b4: 31 f4 brne .+12 ; 0x3c2
return IR_Value_time[2];
3b6: 89 2f mov r24, r25
3b8: 99 27 eor r25, r25
3ba: 05 c0 rjmp .+10 ; 0x3c6
3bc: 8a b7 in r24, 0x3a ; 58
3be: 80 62 ori r24, 0x20 ; 32
3c0: 8a bf out 0x3a, r24 ; 58
else
return 0xFF;
3c2: 8f ef ldi r24, 0xFF ; 255
3c4: 90 e0 ldi r25, 0x00 ; 0
3c6: 24 96 adiw r28, 0x04 ; 4
3c8: 0f b6 in r0, 0x3f ; 63
3ca: f8 94 cli
3cc: de bf out 0x3e, r29 ; 62
3ce: 0f be out 0x3f, r0 ; 63
3d0: cd bf out 0x3d, r28 ; 61
3d2: df 91 pop r29
3d4: cf 91 pop r28
3d6: 1f 91 pop r17
3d8: 0f 91 pop r16
3da: ff 90 pop r15
3dc: ef 90 pop r14
3de: 08 95 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -