📄 gvgledtest.lst
字号:
1 .file "GvgLedTest.c"
2 .arch attiny13
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
72 .global INIT
74 INIT:
1:GvgLedTest.c **** /******************************************************************************
2:GvgLedTest.c **** * Compiler: WinAVR(GCC)
3:GvgLedTest.c **** * Device: ATtiny13
4:GvgLedTest.c **** * File name: GvgLedTest.c
5:GvgLedTest.c **** * Description: Main Program
6:GvgLedTest.c ****
7:GvgLedTest.c **** * Programmer: Liansen Wang
8:GvgLedTest.c **** * Revision: 1.0
9:GvgLedTest.c **** * Modification time: 2005-08-21 10:11
10:GvgLedTest.c ****
11:GvgLedTest.c **** ******************************************************************************/
12:GvgLedTest.c ****
13:GvgLedTest.c **** #include "general.h"
14:GvgLedTest.c ****
15:GvgLedTest.c **** //#define ADCEN
16:GvgLedTest.c ****
17:GvgLedTest.c ****
18:GvgLedTest.c **** unsigned char Display_data[Display_bit];
19:GvgLedTest.c **** unsigned char Key_data,Key_data_back;
20:GvgLedTest.c **** unsigned char ADC_value;
21:GvgLedTest.c **** unsigned char IR_Value;
22:GvgLedTest.c ****
23:GvgLedTest.c **** unsigned char Bit_make;
24:GvgLedTest.c **** #define Bit_make_ADC 0x00
25:GvgLedTest.c **** #define Bit_make_Display 0x01
26:GvgLedTest.c **** #define Bit_make_Key 0x02
27:GvgLedTest.c ****
28:GvgLedTest.c **** /*****************************************************************************/
29:GvgLedTest.c **** /*============================================================
30:GvgLedTest.c **** FUNCTION:
31:GvgLedTest.c ****
32:GvgLedTest.c **** ============================================================*/
33:GvgLedTest.c **** void INIT(void)
34:GvgLedTest.c **** {
76 .LM1:
77 /* prologue: frame size=0 */
78 /* prologue end (size=0) */
35:GvgLedTest.c **** //Settings DATA\ SCK\ STB\ LED is OUTPUT and IR\ RESET is INPUT
36:GvgLedTest.c **** DDRB = (1<<DATA)|(1<<SCK)|(1<<STB)|(1<<LED);
80 .LM2:
81 0000 87E1 ldi r24,lo8(23)
82 0002 87BB out 55-0x20,r24
37:GvgLedTest.c ****
38:GvgLedTest.c **** PORTB = 0xFF;
84 .LM3:
85 0004 8FEF ldi r24,lo8(-1)
86 0006 88BB out 56-0x20,r24
39:GvgLedTest.c ****
40:GvgLedTest.c **** TIMSK0 = (1<<TOIE0); //T/C0
88 .LM4:
89 0008 82E0 ldi r24,lo8(2)
90 000a 89BF out 89-0x20,r24
41:GvgLedTest.c **** TCCR0B = (1<< CS02)|(1<<CS00);
92 .LM5:
93 000c 85E0 ldi r24,lo8(5)
94 000e 83BF out 83-0x20,r24
42:GvgLedTest.c **** TCNT0 = 0x41;
96 .LM6:
97 0010 81E4 ldi r24,lo8(65)
98 0012 82BF out 82-0x20,r24
43:GvgLedTest.c **** sei(); // all interrupt is enabled
100 .LM7:
101 /* #APP */
102 0014 7894 sei
44:GvgLedTest.c **** #ifdef ADCEN
45:GvgLedTest.c **** ADMUX = (1<<ADLAR)|(1<<MUX1)|(1<<MUX0);
46:GvgLedTest.c **** #else
47:GvgLedTest.c **** GIMSK = (1<<PCIE); // pin change interrupt is enabled
104 .LM8:
105 /* #NOAPP */
106 0016 80E2 ldi r24,lo8(32)
107 0018 8BBF out 91-0x20,r24
48:GvgLedTest.c **** PCMSK = (1<<PCINT3); // select I/O pin of pin chang interrupt
109 .LM9:
110 001a 88E0 ldi r24,lo8(8)
111 001c 85BB out 53-0x20,r24
112 /* epilogue: frame size=0 */
113 001e 0895 ret
114 /* epilogue end (size=1) */
115 /* function INIT size 17 (16) */
117 .Lscope0:
118 .data
119 .LC0:
120 0000 3A4F 4646 .string ":OFF::::8"
120 3A3A 3A3A
120 3800
121 .LC1:
122 000a 4F50 454E .string "OPEN:::8:"
122 3A3A 3A38
122 3A00
123 .LC2:
124 0014 4E4F 4449 .string "NODISC8::"
124 5343 383A
124 3A00
125 .text
127 .global Key_Prog
129 Key_Prog:
49:GvgLedTest.c **** #endif
50:GvgLedTest.c ****
51:GvgLedTest.c **** }
52:GvgLedTest.c **** //*****************************************************************************
53:GvgLedTest.c ****
54:GvgLedTest.c **** /*============================================================
55:GvgLedTest.c ****
56:GvgLedTest.c **** ============================================================*/
57:GvgLedTest.c **** #ifdef ADCEN
58:GvgLedTest.c **** void Voltage_detect(void)
59:GvgLedTest.c **** {
60:GvgLedTest.c **** unsigned char i;
61:GvgLedTest.c ****
62:GvgLedTest.c **** ADCSRA = (1<<ADEN)|(1<<ADSC);
63:GvgLedTest.c **** while(ADCSRA & (1<<ADSC))
64:GvgLedTest.c **** {
65:GvgLedTest.c **** ;
66:GvgLedTest.c **** }
67:GvgLedTest.c ****
68:GvgLedTest.c **** // for(i=0;i<30;i++);
69:GvgLedTest.c **** Display_All_Bit(0x00);
70:GvgLedTest.c **** Display_data[2]=ADCH;
71:GvgLedTest.c **** if(ADCH & 0x80)
72:GvgLedTest.c **** {
73:GvgLedTest.c **** Display_data[1] = 0x01;
74:GvgLedTest.c **** }
75:GvgLedTest.c **** else
76:GvgLedTest.c **** {
77:GvgLedTest.c **** Display_data[1] =0x00;
78:GvgLedTest.c **** }
79:GvgLedTest.c **** if(ADCH >= 0xA5)
80:GvgLedTest.c **** {
81:GvgLedTest.c **** if(ADCH <= 0xC6)
82:GvgLedTest.c **** {
83:GvgLedTest.c **** if(ADC_value<= 255)
84:GvgLedTest.c **** {
85:GvgLedTest.c **** ADC_value++;
86:GvgLedTest.c **** }
87:GvgLedTest.c **** }
88:GvgLedTest.c **** else ADC_value= 0;
89:GvgLedTest.c ****
90:GvgLedTest.c **** }
91:GvgLedTest.c **** if(ADC_value>= 1)
92:GvgLedTest.c **** {
93:GvgLedTest.c **** PORTB &= ~(1<<LED);
94:GvgLedTest.c **** }
95:GvgLedTest.c **** else
96:GvgLedTest.c **** {
97:GvgLedTest.c **** PORTB |= (1<<LED);
98:GvgLedTest.c **** }
99:GvgLedTest.c **** }
100:GvgLedTest.c ****
101:GvgLedTest.c **** #endif
102:GvgLedTest.c ****
103:GvgLedTest.c **** /*============================================================
104:GvgLedTest.c ****
105:GvgLedTest.c **** ============================================================*/
106:GvgLedTest.c **** void Key_Prog(void)
107:GvgLedTest.c **** {
131 .LM10:
132 /* prologue: frame size=0 */
133 /* prologue end (size=0) */
108:GvgLedTest.c **** //if(Key_data == 0x00)
109:GvgLedTest.c **** // PORTB |= LED;
110:GvgLedTest.c **** //else
111:GvgLedTest.c **** // PORTB &= ~LED;
112:GvgLedTest.c ****
113:GvgLedTest.c **** /////////////////////////////////////////////////////////////////
114:GvgLedTest.c **** if(Key_data != 0xFF)
135 .LM11:
136 0020 9091 0000 lds r25,Key_data
137 0024 8091 0000 lds r24,Bit_make
138 0028 9F3F cpi r25,lo8(-1)
139 002a E9F0 breq .L3
115:GvgLedTest.c **** {
116:GvgLedTest.c **** if(Bit_make&(1<<Bit_make_Key) )
141 .LM12:
142 002c 82FF sbrs r24,2
143 002e 17C0 rjmp .L4
117:GvgLedTest.c **** {
118:GvgLedTest.c **** // Display(Key_data);
119:GvgLedTest.c **** switch(Key_data)
145 .LM13:
146 0030 892F mov r24,r25
147 0032 9927 clr r25
148 0034 8330 cpi r24,3
149 0036 9105 cpc r25,__zero_reg__
150 0038 61F0 breq .L7
151 003a 8430 cpi r24,4
152 003c 9105 cpc r25,__zero_reg__
153 003e 1CF4 brge .L10
154 0040 892B or r24,r25
155 0042 21F0 breq .L6
156 0044 0CC0 rjmp .L4
157 .L10:
158 0046 0897 sbiw r24,8
159 0048 39F0 breq .L8
160 004a 09C0 rjmp .L4
161 .L6:
120:GvgLedTest.c **** {
121:GvgLedTest.c **** case 00:
122:GvgLedTest.c **** Display(":OFF::::8");
163 .LM14:
164 004c 80E0 ldi r24,lo8(.LC0)
165 004e 90E0 ldi r25,hi8(.LC0)
166 0050 05C0 rjmp .L12
167 .L7:
123:GvgLedTest.c **** break;
124:GvgLedTest.c **** // case 02:
125:GvgLedTest.c **** // Display("2");
126:GvgLedTest.c **** // break;
127:GvgLedTest.c **** case 03:
128:GvgLedTest.c **** Display("OPEN:::8:");
169 .LM15:
170 0052 80E0 ldi r24,lo8(.LC1)
171 0054 90E0 ldi r25,hi8(.LC1)
172 0056 02C0 rjmp .L12
173 .L8:
129:GvgLedTest.c **** break;
130:GvgLedTest.c **** // case 05:
131:GvgLedTest.c **** // Display("5");
132:GvgLedTest.c **** // break;
133:GvgLedTest.c **** case 010:
134:GvgLedTest.c **** Display("NODISC8::");
175 .LM16:
176 0058 80E0 ldi r24,lo8(.LC2)
177 005a 90E0 ldi r25,hi8(.LC2)
178 .L12:
179 005c 00D0 rcall Display
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -