📄 master.lst
字号:
186 003c 94E8 ldi r25,lo8(-124)
62:master.c ****
63:master.c **** if(ack)
188 .LM19:
189 003e 6111 cpse r22,__zero_reg__
64:master.c **** tmp|=_BV(TWEA);
191 .LM20:
192 0040 94EC ldi r25,lo8(-60)
193 .L19:
65:master.c **** TWCR=tmp;
195 .LM21:
196 0042 96BF out 86-0x20,r25
197 .L20:
66:master.c **** while ((TWCR & _BV(TWINT)) == 0) ;
199 .LM22:
200 0044 06B6 in __tmp_reg__,86-0x20
201 0046 07FE sbrs __tmp_reg__,7
202 0048 FDCF rjmp .L20
67:master.c ****
68:master.c **** *c=TWDR;
204 .LM23:
205 004a 83B1 in r24,35-0x20
206 004c 8083 st Z,r24
69:master.c ****
70:master.c **** return TW_STATUS;
208 .LM24:
209 004e 81B1 in r24,33-0x20
210 0050 9927 clr r25
71:master.c **** }
212 .LM25:
213 0052 887F andi r24,lo8(248)
214 0054 9070 andi r25,hi8(248)
215 /* epilogue: frame size=0 */
216 0056 0895 ret
217 /* epilogue end (size=1) */
218 /* function twi_readbyte size 16 (15) */
222 .global WaitKeyDown
224 WaitKeyDown:
72:master.c **** /*************主模式IIC操作部分*************结束**************/
73:master.c ****
74:master.c **** //检测按键
75:master.c **** uchar WaitKeyDown(void)
76:master.c **** {
226 .LM26:
227 /* prologue: frame size=0 */
228 0058 CF93 push r28
229 /* prologue end (size=1) */
230 .L24:
77:master.c **** uchar key;
78:master.c ****
79:master.c **** while(1)
80:master.c **** {
81:master.c **** key=PIND & KEY;
82:master.c **** if( key!=KEY)
232 .LM27:
233 005a 8299 sbic 48-0x20,2
234 005c 08C0 rjmp .L26
83:master.c **** {
84:master.c **** DelayMs(30);
236 .LM28:
237 005e 8EE1 ldi r24,lo8(30)
238 0060 90E0 ldi r25,hi8(30)
239 0062 CEDF rcall DelayMs
85:master.c **** key=PIND & KEY;
241 .LM29:
242 0064 80B3 in r24,48-0x20
86:master.c **** if(key!=KEY)
244 .LM30:
245 0066 C82F mov r28,r24
246 0068 C470 andi r28,lo8(4)
247 006a 82FF sbrs r24,2
248 006c 04C0 rjmp .L25
249 .L26:
87:master.c **** break;
88:master.c **** }
89:master.c **** DelayMs(1);
251 .LM31:
252 006e 81E0 ldi r24,lo8(1)
253 0070 90E0 ldi r25,hi8(1)
254 0072 C6DF rcall DelayMs
255 0074 F2CF rjmp .L24
256 .L25:
90:master.c **** }
91:master.c ****
92:master.c **** while((PIND & KEY)!=KEY)
93:master.c **** DelayMs(10);
258 .LM32:
259 0076 8299 sbic 48-0x20,2
260 0078 05C0 rjmp .L32
261 .L30:
262 007a 8AE0 ldi r24,lo8(10)
263 007c 90E0 ldi r25,hi8(10)
264 007e C0DF rcall DelayMs
265 0080 829B sbis 48-0x20,2
266 0082 FBCF rjmp .L30
267 .L32:
94:master.c ****
95:master.c **** return key;
96:master.c **** }
269 .LM33:
270 0084 8C2F mov r24,r28
271 0086 9927 clr r25
272 /* epilogue: frame size=0 */
273 0088 CF91 pop r28
274 008a 0895 ret
275 /* epilogue end (size=2) */
276 /* function WaitKeyDown size 26 (23) */
280 .global main
282 main:
97:master.c ****
98:master.c **** int main(void)
99:master.c **** {
284 .LM34:
285 /* prologue: frame size=0 */
286 008c C0E0 ldi r28,lo8(__stack - 0)
287 008e D0E0 ldi r29,hi8(__stack - 0)
288 0090 DEBF out __SP_H__,r29
289 0092 CDBF out __SP_L__,r28
290 /* prologue end (size=4) */
100:master.c **** uchar i;
101:master.c ****
102:master.c **** //便能SCL、SDA引脚内部上拉电阻
103:master.c **** DDRC=0;
292 .LM35:
293 0094 14BA out 52-0x20,__zero_reg__
104:master.c **** PORTC=0X30;
295 .LM36:
296 0096 80E3 ldi r24,lo8(48)
297 0098 85BB out 53-0x20,r24
105:master.c ****
106:master.c **** //
107:master.c **** DDRD=0;
299 .LM37:
300 009a 11BA out 49-0x20,__zero_reg__
108:master.c **** PORTD=0;
302 .LM38:
303 009c 12BA out 50-0x20,__zero_reg__
109:master.c ****
110:master.c **** TWBR=73;
305 .LM39:
306 009e 89E4 ldi r24,lo8(73)
307 00a0 80B9 out 32-0x20,r24
308 .L34:
111:master.c ****
112:master.c **** while(1)
113:master.c **** {
114:master.c **** WaitKeyDown();
310 .LM40:
311 00a2 DADF rcall WaitKeyDown
115:master.c ****
116:master.c **** twi_start();
313 .LM41:
314 00a4 BBDF rcall twi_start
117:master.c **** WAITPRINTDEBUG;
316 .LM42:
317 00a6 84E6 ldi r24,lo8(100)
318 00a8 90E0 ldi r25,hi8(100)
319 00aa AADF rcall DelayMs
118:master.c **** twi_writebyte(TWI_ADDRESS|TW_WRITE);
321 .LM43:
322 00ac 82E3 ldi r24,lo8(50)
323 00ae BDDF rcall twi_writebyte
119:master.c **** WAITPRINTDEBUG;
325 .LM44:
326 00b0 84E6 ldi r24,lo8(100)
327 00b2 90E0 ldi r25,hi8(100)
328 00b4 A5DF rcall DelayMs
120:master.c **** for(i=0;i<10;i++)
330 .LM45:
331 00b6 C0E0 ldi r28,lo8(0)
332 .L39:
121:master.c **** {
122:master.c **** twi_writebyte(i);
334 .LM46:
335 00b8 8C2F mov r24,r28
336 00ba B7DF rcall twi_writebyte
123:master.c **** WAITPRINTDEBUG;
338 .LM47:
339 00bc 84E6 ldi r24,lo8(100)
340 00be 90E0 ldi r25,hi8(100)
341 00c0 9FDF rcall DelayMs
343 .LM48:
344 00c2 CF5F subi r28,lo8(-(1))
345 00c4 CA30 cpi r28,lo8(10)
346 00c6 C0F3 brlo .L39
124:master.c **** }
125:master.c **** twi_stop();
348 .LM49:
349 00c8 A6DF rcall twi_stop
350 00ca EBCF rjmp .L34
351 /* epilogue: frame size=0 */
352 /* epilogue: noreturn */
353 /* epilogue end (size=0) */
354 /* function main size 32 (28) */
357 .text
359 Letext:
360 /* File "master.c": code 107 = 0x006b ( 96), prologues 5, epilogues 6 */
DEFINED SYMBOLS
*ABS*:00000000 master.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
J:\DOCUME~1\tcf\LOCALS~1\Temp/ccQfaaaa.s:55 .text:00000000 DelayMs
J:\DOCUME~1\tcf\LOCALS~1\Temp/ccQfaaaa.s:103 .text:00000016 twi_stop
J:\DOCUME~1\tcf\LOCALS~1\Temp/ccQfaaaa.s:120 .text:0000001c twi_start
J:\DOCUME~1\tcf\LOCALS~1\Temp/ccQfaaaa.s:147 .text:0000002a twi_writebyte
J:\DOCUME~1\tcf\LOCALS~1\Temp/ccQfaaaa.s:178 .text:0000003a twi_readbyte
J:\DOCUME~1\tcf\LOCALS~1\Temp/ccQfaaaa.s:224 .text:00000058 WaitKeyDown
J:\DOCUME~1\tcf\LOCALS~1\Temp/ccQfaaaa.s:282 .text:0000008c main
J:\DOCUME~1\tcf\LOCALS~1\Temp/ccQfaaaa.s:359 .text:000000cc Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -