?? led.lst
字號:
1 .file "led.c"
2 .arch atmega8
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:
124 .global tick_15ms
125 .global tick_15ms
126 .section .bss
129 tick_15ms:
130 0000 00 .skip 1,0
131 .global LedSeg
132 .section .progmem.data,"a",@progbits
135 LedSeg:
136 0000 3F .byte 63
137 0001 06 .byte 6
138 0002 5B .byte 91
139 0003 4F .byte 79
140 0004 66 .byte 102
141 0005 6D .byte 109
142 0006 7D .byte 125
143 0007 07 .byte 7
144 0008 7F .byte 127
145 0009 6F .byte 111
146 000a 77 .byte 119
147 000b 7C .byte 124
148 000c 39 .byte 57
149 000d 58 .byte 88
150 000e 5E .byte 94
151 000f 79 .byte 121
152 0010 71 .byte 113
153 0011 76 .byte 118
154 0012 74 .byte 116
155 0013 38 .byte 56
156 0014 54 .byte 84
157 0015 37 .byte 55
158 0016 5C .byte 92
159 0017 73 .byte 115
160 0018 50 .byte 80
161 0019 78 .byte 120
162 001a 3E .byte 62
163 001b 40 .byte 64
164 001c 00 .byte 0
165 .global fLedDotMap
166 .global fLedDotMap
167 .section .bss
170 fLedDotMap:
171 0001 00 .skip 1,0
172 .lcomm tick_60s,2
173 .lcomm tick_1s,2
174 .lcomm tick_500ms,2
175 .lcomm fLedFlashMap,2
176 .lcomm LedCnt,1
177 .lcomm fFlashison,1
178 .lcomm cnt,2
179 .lcomm tick_5s,2
180 .text
183 .global ByteToHC164
185 ByteToHC164:
1:drive/led.c **** #include"inc/config.h"
2:drive/led.c ****
3:drive/led.c ****
4:drive/led.c ****
5:drive/led.c **** u08 LedData[11]; //各位顯存的初始化
6:drive/led.c **** u08 fLedDotMap=0x00 ; //對應WEI為1 則數碼管加“.”
7:drive/led.c **** BOOL fledalrm ; //主要是0-4位
8:drive/led.c ****
9:drive/led.c **** /**共陰***/
10:drive/led.c ****
11:drive/led.c ****
12:drive/led.c **** const u08 PROGMEM LedSeg[29]=
13:drive/led.c **** {
14:drive/led.c **** 0x3f,/*0*/
15:drive/led.c **** 0x06,/*1*/
16:drive/led.c **** 0x5b,/*2*/
17:drive/led.c **** 0x4f,/*3*/
18:drive/led.c **** 0x66,/*4*/
19:drive/led.c **** 0x6d,/*5*/
20:drive/led.c **** 0x7d,/*6*/
21:drive/led.c **** 0x07,/*7*/
22:drive/led.c **** 0x7f,/*8*/
23:drive/led.c **** 0x6f,/*9*/
24:drive/led.c **** 0x77,/*a*/ //10
25:drive/led.c **** 0x7c,/*b*/ //11
26:drive/led.c **** 0x39,/*c*/ //12
27:drive/led.c **** 0x58,/*c*/ //13
28:drive/led.c **** 0x5e,/*d*/ //14
29:drive/led.c **** 0x79,/*e*/ //15
30:drive/led.c **** 0x71,/*f*/ //16
31:drive/led.c **** 0x76,/*h*/ //17
32:drive/led.c **** 0x74,/*h*/ //18
33:drive/led.c **** 0x38,/*l*/ //19
34:drive/led.c **** 0x54,/*n*/ //20
35:drive/led.c **** 0x37,/*n*/ //21
36:drive/led.c **** 0x5c,/*o*/ //22
37:drive/led.c **** 0x73,/*p*/ //23
38:drive/led.c **** 0x50,/*r*/ //24
39:drive/led.c **** 0x78,/*t*/ //25
40:drive/led.c **** 0x3e,/*u*/ //26
41:drive/led.c **** 0x40,/*-*/ //27
42:drive/led.c **** 0x00/*消隱碼*/ //28
43:drive/led.c ****
44:drive/led.c **** };
45:drive/led.c ****
46:drive/led.c ****
47:drive/led.c **** void DispSeperateShow( unit8 content,unit8 position )
48:drive/led.c **** {
49:drive/led.c **** DIG_RST();//共陰極。消隱,防止數據亂碼,可去,因ByteTo164中已經包含
50:drive/led.c **** ByteToHC164( content );
51:drive/led.c ****
52:drive/led.c **** if(position == DIG1){ LED1 = LED_ON;}
53:drive/led.c **** else if(position == DIG2){ LED2 = LED_ON;}
54:drive/led.c **** else if(position == DIG3){ LED3 = LED_ON;}
55:drive/led.c **** else if(position == DIG4){ LED4 = LED_ON;}
56:drive/led.c **** else if(position == DIG5){ LED5 = LED_ON;}
57:drive/led.c **** else if(position == DIG6){ LED0 = LED_ON;}
58:drive/led.c **** else if(position == DIG7){ LED6 = LED_ON;}
59:drive/led.c **** else if(position == DIG8){ LED6 = LED_ON;}
60:drive/led.c **** else if(position == DIG9){ LED6 = LED_ON;}
61:drive/led.c ****
62:drive/led.c ****
63:drive/led.c **** }
64:drive/led.c **** void ByteToHC164(uint8 ledbuffer)
65:drive/led.c **** {
187 .LM1:
188 /* prologue: frame size=0 */
189 /* prologue end (size=0) */
190 0000 282F mov r18,r24
66:drive/led.c ****
67:drive/led.c **** DIG_RST(); //令所有位選置1
192 .LM2:
193 0002 BB9A sbi 55-0x20,3
194 0004 C39A sbi 56-0x20,3
195 0006 BC9A sbi 55-0x20,4
196 0008 C49A sbi 56-0x20,4
197 000a BD9A sbi 55-0x20,5
198 000c C59A sbi 56-0x20,5
199 000e 8E9A sbi 49-0x20,6
200 0010 969A sbi 50-0x20,6
201 0012 8F9A sbi 49-0x20,7
202 0014 979A sbi 50-0x20,7
203 0016 B89A sbi 55-0x20,0
204 0018 C09A sbi 56-0x20,0
205 001a BE9A sbi 55-0x20,6
206 001c C69A sbi 56-0x20,6
68:drive/led.c **** SEG_A = (ledbuffer&(1<<0))>>0;
208 .LM3:
209 001e B99A sbi 55-0x20,1
210 0020 982F mov r25,r24
211 0022 9170 andi r25,lo8(1)
212 0024 990F lsl r25
213 0026 88B3 in r24,56-0x20
214 0028 8D7F andi r24,lo8(-3)
215 002a 892B or r24,r25
216 002c 88BB out 56-0x20,r24
69:drive/led.c **** SEG_B = (ledbuffer&(1<<1))>>1;
218 .LM4:
219 002e BF9A sbi 55-0x20,7
220 0030 3327 clr r19
221 0032 C901 movw r24,r18
222 0034 8270 andi r24,lo8(2)
223 0036 9070 andi r25,hi8(2)
224 0038 9595 asr r25
225 003a 8795 ror r24
226 003c 982F mov r25,r24
227 003e 9795 ror r25
228 0040 9927 clr r25
229 0042 9795 ror r25
230 0044 88B3 in r24,56-0x20
231 0046 8F77 andi r24,lo8(127)
232 0048 892B or r24,r25
233 004a 88BB out 56-0x20,r24
70:drive/led.c **** SEG_C = (ledbuffer&(1<<2))>>2;
235 .LM5:
236 004c A19A sbi 52-0x20,1
237 004e C901 movw r24,r18
238 0050 8470 andi r24,lo8(4)
239 0052 9070 andi r25,hi8(4)
240 0054 9595 asr r25
241 0056 8795 ror r24
242 0058 9595 asr r25
243 005a 8795 ror r24
244 005c 982F mov r25,r24
245 005e 990F lsl r25
246 0060 85B3 in r24,53-0x20
247 0062 8D7F andi r24,lo8(-3)
248 0064 892B or r24,r25
249 0066 85BB out 53-0x20,r24
71:drive/led.c **** SEG_D = (ledbuffer&(1<<3))>>3;
251 .LM6:
252 0068 A29A sbi 52-0x20,2
253 006a C901 movw r24,r18
254 006c 8870 andi r24,lo8(8)
255 006e 9070 andi r25,hi8(8)
256 0070 73E0 ldi r23,3
257 0072 9595 1: asr r25
258 0074 8795 ror r24
259 0076 7A95 dec r23
260 0078 E1F7 brne 1b
261 007a 982F mov r25,r24
262 007c 990F lsl r25
263 007e 990F lsl r25
264 0080 85B3 in r24,53-0x20
265 0082 8B7F andi r24,lo8(-5)
266 0084 892B or r24,r25
267 0086 85BB out 53-0x20,r24
72:drive/led.c **** SEG_E = (ledbuffer&(1<<4))>>4;
269 .LM7:
270 0088 8D9A sbi 49-0x20,5
271 008a C901 movw r24,r18
272 008c 8071 andi r24,lo8(16)
273 008e 9070 andi r25,hi8(16)
274 0090 64E0 ldi r22,4
275 0092 9595 1: asr r25
276 0094 8795 ror r24
277 0096 6A95 dec r22
278 0098 E1F7 brne 1b
279 009a 982F mov r25,r24
280 009c 9295 swap r25
281 009e 990F lsl r25
282 00a0 907E andi r25,0xe0
283 00a2 82B3 in r24,50-0x20
284 00a4 8F7D andi r24,lo8(-33)
285 00a6 892B or r24,r25
286 00a8 82BB out 50-0x20,r24
73:drive/led.c **** SEG_F = (ledbuffer&(1<<5))>>5;
288 .LM8:
289 00aa BA9A sbi 55-0x20,2
290 00ac C901 movw r24,r18
291 00ae 8072 andi r24,lo8(32)
292 00b0 9070 andi r25,hi8(32)
293 00b2 55E0 ldi r21,5
294 00b4 9595 1: asr r25
295 00b6 8795 ror r24
296 00b8 5A95 dec r21
297 00ba E1F7 brne 1b
298 00bc 982F mov r25,r24
299 00be 990F lsl r25
300 00c0 990F lsl r25
301 00c2 88B3 in r24,56-0x20
302 00c4 8B7F andi r24,lo8(-5)
303 00c6 892B or r24,r25
304 00c8 88BB out 56-0x20,r24
74:drive/led.c **** SEG_G = (ledbuffer&(1<<6))>>6;
306 .LM9:
307 00ca A09A sbi 52-0x20,0
308 00cc C901 movw r24,r18
309 00ce 8074 andi r24,lo8(64)
310 00d0 9070 andi r25,hi8(64)
311 00d2 46E0 ldi r20,6
312 00d4 9595 1: asr r25
313 00d6 8795 ror r24
314 00d8 4A95 dec r20
315 00da E1F7 brne 1b
316 00dc 982F mov r25,r24
317 00de 9170 andi r25,lo8(1)
318 00e0 85B3 in r24,53-0x20
319 00e2 8E7F andi r24,lo8(-2)
320 00e4 892B or r24,r25
321 00e6 85BB out 53-0x20,r24
75:drive/led.c **** SEG_DP= (ledbuffer&(1<<7))>>7;
323 .LM10:
324 00e8 A39A sbi 52-0x20,3
325 00ea 220F lsl r18
326 00ec 232F mov r18,r19
327 00ee 221F rol r18
328 00f0 330B sbc r19,r19
329 00f2 3195 neg r19
330 00f4 922F mov r25,r18
331 00f6 990F lsl r25
332 00f8 990F lsl r25
333 00fa 990F lsl r25
334 00fc 85B3 in r24,53-0x20
335 00fe 877F andi r24,lo8(-9)
336 0100 892B or r24,r25
337 0102 85BB out 53-0x20,r24
338 /* epilogue: frame size=0 */
339 0104 0895 ret
340 /* epilogue end (size=1) */
341 /* function ByteToHC164 size 131 (130) */
343 .Lscope0:
347 .global DispSeperateShow
349 DispSeperateShow:
351 .LM11:
352 /* prologue: frame size=0 */
353 0106 CF93 push r28
354 /* prologue end (size=1) */
355 0108 C62F mov r28,r22
357 .LM12:
358 010a BB9A sbi 55-0x20,3
359 010c C39A sbi 56-0x20,3
360 010e BC9A sbi 55-0x20,4
361 0110 C49A sbi 56-0x20,4
362 0112 BD9A sbi 55-0x20,5
363 0114 C59A sbi 56-0x20,5
364 0116 8E9A sbi 49-0x20,6
365 0118 969A sbi 50-0x20,6
366 011a 8F9A sbi 49-0x20,7
367 011c 979A sbi 50-0x20,7
368 011e B89A sbi 55-0x20,0
369 0120 C09A sbi 56-0x20,0
370 0122 BE9A sbi 55-0x20,6
371 0124 C69A sbi 56-0x20,6
373 .LM13:
374 0126 6CDF rcall ByteToHC164
376 .LM14:
377 0128 C530 cpi r28,lo8(5)
378 012a 19F4 brne .L5
380 .LM15:
381 012c BC9A sbi 55-0x20,4
382 012e C498 cbi 56-0x20,4
383 0130 21C0 rjmp .L3
384 .L5:
386 .LM16:
387 0132 C430 cpi r28,lo8(4)
388 0134 19F4 brne .L7
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -