📄 adc_sram.lst
字号:
376 01aa F894 cli
377 01ac DEBF out __SP_H__,r29
378 01ae 0FBE out __SREG__,__tmp_reg__
379 01b0 CDBF out __SP_L__,r28
380 /* prologue end (size=10) */
381 01b2 6983 std Y+1,r22
382 01b4 7A83 std Y+2,r23
383 01b6 8B83 std Y+3,r24
384 01b8 9C83 std Y+4,r25
385 01ba 4D83 std Y+5,r20
66:G:/HVCBASOFT/AD/adc_sram.c **** //变量定义
67:G:/HVCBASOFT/AD/adc_sram.c **** // uint8_t addr_l,addr_m,addr_h;
68:G:/HVCBASOFT/AD/adc_sram.c **** //
69:G:/HVCBASOFT/AD/adc_sram.c **** cbi(PORTD,6);//ram片选拉低
387 .LM34:
388 01bc 8091 3200 lds r24,50
389 01c0 8F7B andi r24,lo8(-65)
390 01c2 8093 3200 sts 50,r24
70:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTD,5);//AD片选拉高
392 .LM35:
393 01c6 8091 3200 lds r24,50
394 01ca 8062 ori r24,lo8(32)
395 01cc 8093 3200 sts 50,r24
71:G:/HVCBASOFT/AD/adc_sram.c **** DDRA=0xFF;//a口输出
397 .LM36:
398 01d0 8FEF ldi r24,lo8(-1)
399 01d2 8093 3A00 sts 58,r24
72:G:/HVCBASOFT/AD/adc_sram.c **** // addr_h=(address>>16);//高4位地址
73:G:/HVCBASOFT/AD/adc_sram.c **** // addr_h=(addr_h&0x0F);
74:G:/HVCBASOFT/AD/adc_sram.c **** // addr_m=(address>>8);//中间8位地址
75:G:/HVCBASOFT/AD/adc_sram.c **** // addr_l=address;//低8位地址
76:G:/HVCBASOFT/AD/adc_sram.c **** // PORTA=addr_l;//写ram地址
77:G:/HVCBASOFT/AD/adc_sram.c **** // PORTC=addr_m;
78:G:/HVCBASOFT/AD/adc_sram.c **** // PORTF&=0xF0;//低4位清零
79:G:/HVCBASOFT/AD/adc_sram.c **** // PORTF|=addr_h;
80:G:/HVCBASOFT/AD/adc_sram.c **** PORTA=address;//低8位地址
401 .LM37:
402 01d6 8981 ldd r24,Y+1
403 01d8 8093 3B00 sts 59,r24
81:G:/HVCBASOFT/AD/adc_sram.c **** PORTC=(address>>8);//中间8位地址
405 .LM38:
406 01dc 8981 ldd r24,Y+1
407 01de 9A81 ldd r25,Y+2
408 01e0 AB81 ldd r26,Y+3
409 01e2 BC81 ldd r27,Y+4
410 01e4 892F mov r24,r25
411 01e6 9A2F mov r25,r26
412 01e8 AB2F mov r26,r27
413 01ea BB27 clr r27
414 01ec 8093 3500 sts 53,r24
82:G:/HVCBASOFT/AD/adc_sram.c **** PORTF&=0xF0;//低4位清零
416 .LM39:
417 01f0 90EF ldi r25,lo8(-16)
418 01f2 8091 6200 lds r24,98
419 01f6 8923 and r24,r25
420 01f8 8093 6200 sts 98,r24
83:G:/HVCBASOFT/AD/adc_sram.c **** PORTF|=(address>>16)&0x0F;
422 .LM40:
423 01fc 8981 ldd r24,Y+1
424 01fe 9A81 ldd r25,Y+2
425 0200 AB81 ldd r26,Y+3
426 0202 BC81 ldd r27,Y+4
427 0204 CD01 movw r24,r26
428 0206 AA27 clr r26
429 0208 BB27 clr r27
430 020a 982F mov r25,r24
431 020c 9F70 andi r25,lo8(15)
432 020e 8091 6200 lds r24,98
433 0212 892B or r24,r25
434 0214 8093 6200 sts 98,r24
84:G:/HVCBASOFT/AD/adc_sram.c **** cbi(PORTG,2);//地址锁存
436 .LM41:
437 0218 8091 6500 lds r24,101
438 021c 8B7F andi r24,lo8(-5)
439 021e 8093 6500 sts 101,r24
85:G:/HVCBASOFT/AD/adc_sram.c **** PORTA=data;//将数据放在总线上
441 .LM42:
442 0222 8D81 ldd r24,Y+5
443 0224 8093 3B00 sts 59,r24
86:G:/HVCBASOFT/AD/adc_sram.c **** cbi(PORTG,0);//写拉低
445 .LM43:
446 0228 8091 6500 lds r24,101
447 022c 8E7F andi r24,lo8(-2)
448 022e 8093 6500 sts 101,r24
87:G:/HVCBASOFT/AD/adc_sram.c **** delay_ms();//延时//////////////////
450 .LM44:
451 0232 0E94 0000 call delay_ms
88:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTG,0);//写拉高
453 .LM45:
454 0236 8091 6500 lds r24,101
455 023a 8160 ori r24,lo8(1)
456 023c 8093 6500 sts 101,r24
89:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTG,2);//去锁存
458 .LM46:
459 0240 8091 6500 lds r24,101
460 0244 8460 ori r24,lo8(4)
461 0246 8093 6500 sts 101,r24
90:G:/HVCBASOFT/AD/adc_sram.c **** }
463 .LM47:
464 /* epilogue: frame size=5 */
465 024a 2596 adiw r28,5
466 024c 0FB6 in __tmp_reg__,__SREG__
467 024e F894 cli
468 0250 DEBF out __SP_H__,r29
469 0252 0FBE out __SREG__,__tmp_reg__
470 0254 CDBF out __SP_L__,r28
471 0256 DF91 pop r29
472 0258 CF91 pop r28
473 025a 0895 ret
474 /* epilogue end (size=9) */
475 /* function SRAM_1M_8_WRITE size 95 (76) */
477 .Lscope4:
481 .global SRAM_1M_8_READ
483 SRAM_1M_8_READ:
91:G:/HVCBASOFT/AD/adc_sram.c **** //SRAM读操作
92:G:/HVCBASOFT/AD/adc_sram.c **** uint8_t SRAM_1M_8_READ(uint32_t address)
93:G:/HVCBASOFT/AD/adc_sram.c **** {
485 .LM48:
486 /* prologue: frame size=8 */
487 025c CF93 push r28
488 025e DF93 push r29
489 0260 CDB7 in r28,__SP_L__
490 0262 DEB7 in r29,__SP_H__
491 0264 2897 sbiw r28,8
492 0266 0FB6 in __tmp_reg__,__SREG__
493 0268 F894 cli
494 026a DEBF out __SP_H__,r29
495 026c 0FBE out __SREG__,__tmp_reg__
496 026e CDBF out __SP_L__,r28
497 /* prologue end (size=10) */
498 0270 6983 std Y+1,r22
499 0272 7A83 std Y+2,r23
500 0274 8B83 std Y+3,r24
501 0276 9C83 std Y+4,r25
94:G:/HVCBASOFT/AD/adc_sram.c **** uint8_t addr_l,addr_m,addr_h,temp;
95:G:/HVCBASOFT/AD/adc_sram.c **** cbi(PORTD,6);//ram片选拉低
503 .LM49:
504 .LBB3:
505 0278 8091 3200 lds r24,50
506 027c 8F7B andi r24,lo8(-65)
507 027e 8093 3200 sts 50,r24
96:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTD,5);//AD片选拉高
509 .LM50:
510 0282 8091 3200 lds r24,50
511 0286 8062 ori r24,lo8(32)
512 0288 8093 3200 sts 50,r24
97:G:/HVCBASOFT/AD/adc_sram.c **** DDRA=0xFF;//a口输出
514 .LM51:
515 028c 8FEF ldi r24,lo8(-1)
516 028e 8093 3A00 sts 58,r24
98:G:/HVCBASOFT/AD/adc_sram.c **** addr_l=address;//低8位地址
518 .LM52:
519 0292 8981 ldd r24,Y+1
520 0294 8D83 std Y+5,r24
99:G:/HVCBASOFT/AD/adc_sram.c **** addr_m=(address>>8);//中间8位地址
522 .LM53:
523 0296 8981 ldd r24,Y+1
524 0298 9A81 ldd r25,Y+2
525 029a AB81 ldd r26,Y+3
526 029c BC81 ldd r27,Y+4
527 029e 892F mov r24,r25
528 02a0 9A2F mov r25,r26
529 02a2 AB2F mov r26,r27
530 02a4 BB27 clr r27
531 02a6 8E83 std Y+6,r24
100:G:/HVCBASOFT/AD/adc_sram.c **** addr_h=(address>>16);//高4位地址
533 .LM54:
534 02a8 8981 ldd r24,Y+1
535 02aa 9A81 ldd r25,Y+2
536 02ac AB81 ldd r26,Y+3
537 02ae BC81 ldd r27,Y+4
538 02b0 CD01 movw r24,r26
539 02b2 AA27 clr r26
540 02b4 BB27 clr r27
541 02b6 8F83 std Y+7,r24
101:G:/HVCBASOFT/AD/adc_sram.c **** addr_h=(addr_h&0x0F);
543 .LM55:
544 02b8 8F81 ldd r24,Y+7
545 02ba 8F70 andi r24,lo8(15)
546 02bc 8F83 std Y+7,r24
102:G:/HVCBASOFT/AD/adc_sram.c **** PORTA=addr_l;//输出ram地址
548 .LM56:
549 02be 8D81 ldd r24,Y+5
550 02c0 8093 3B00 sts 59,r24
103:G:/HVCBASOFT/AD/adc_sram.c **** PORTC=addr_m;
552 .LM57:
553 02c4 8E81 ldd r24,Y+6
554 02c6 8093 3500 sts 53,r24
104:G:/HVCBASOFT/AD/adc_sram.c **** PORTF&=0xF0;//低4位清零
556 .LM58:
557 02ca 90EF ldi r25,lo8(-16)
558 02cc 8091 6200 lds r24,98
559 02d0 8923 and r24,r25
560 02d2 8093 6200 sts 98,r24
105:G:/HVCBASOFT/AD/adc_sram.c **** PORTF|=addr_h;
562 .LM59:
563 02d6 9091 6200 lds r25,98
564 02da 8F81 ldd r24,Y+7
565 02dc 892B or r24,r25
566 02de 8093 6200 sts 98,r24
106:G:/HVCBASOFT/AD/adc_sram.c **** cbi(PORTG,2);//地址锁存
568 .LM60:
569 02e2 8091 6500 lds r24,101
570 02e6 8B7F andi r24,lo8(-5)
571 02e8 8093 6500 sts 101,r24
107:G:/HVCBASOFT/AD/adc_sram.c **** cbi(PORTG,1);//读拉低
573 .LM61:
574 02ec 8091 6500 lds r24,101
575 02f0 8D7F andi r24,lo8(-3)
576 02f2 8093 6500 sts 101,r24
108:G:/HVCBASOFT/AD/adc_sram.c **** delay_ms();//延时//////////////////
578 .LM62:
579 02f6 0E94 0000 call delay_ms
109:G:/HVCBASOFT/AD/adc_sram.c **** DDRA=0x00;//a口输入
581 .LM63:
582 02fa 1092 3A00 sts 58,__zero_reg__
110:G:/HVCBASOFT/AD/adc_sram.c **** PORTA=0xFF;//设置上拉
584 .LM64:
585 02fe 8FEF ldi r24,lo8(-1)
586 0300 8093 3B00 sts 59,r24
111:G:/HVCBASOFT/AD/adc_sram.c **** temp=PINA;//读取总线上的数据
588 .LM65:
589 0304 8091 3900 lds r24,57
590 0308 8887 std Y+8,r24
112:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTG,1);//读拉高
592 .LM66:
593 030a 8091 6500 lds r24,101
594 030e 8260 ori r24,lo8(2)
595 0310 8093 6500 sts 101,r24
113:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTG,2);//去锁存
597 .LM67:
598 0314 8091 6500 lds r24,101
599 0318 8460 ori r24,lo8(4)
600 031a 8093 6500 sts 101,r24
114:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTD,6);//去掉片选信号
602 .LM68:
603 031e 8091 3200 lds r24,50
604 0322 8064 ori r24,lo8(64)
605 0324 8093 3200 sts 50,r24
115:G:/HVCBASOFT/AD/adc_sram.c **** return temp;
607 .LM69:
608 0328 8885 ldd r24,Y+8
609 032a 9927 clr r25
116:G:/HVCBASOFT/AD/adc_sram.c **** }
611 .LM70:
612 .LBE3:
613 /* epilogue: frame size=8 */
614 032c 2896 adiw r28,8
615 032e 0FB6 in __tmp_reg__,__SREG__
616 0330 F894 cli
617 0332 DEBF out __SP_H__,r29
618 0334 0FBE out __SREG__,__tmp_reg__
619 0336 CDBF out __SP_L__,r28
620 0338 DF91 pop r29
621 033a CF91 pop r28
622 033c 0895 ret
623 /* epilogue end (size=9) */
624 /* function SRAM_1M_8_READ size 113 (94) */
632 .Lscope5:
636 .global AD7891_WRITE
638 AD7891_WRITE:
117:G:/HVCBASOFT/AD/adc_sram.c **** //AD写操作
118:G:/HVCBASOFT/AD/adc_sram.c **** void AD7891_WRITE(uint16_t cmd)
119:G:/HVCBASOFT/AD/adc_sram.c **** {
640 .LM71:
641 /* prologue: frame size=3 */
642 033e CF93 push r28
643 0340 DF93 push r29
644 0342 CDB7 in r28,__SP_L__
645 0344 DEB7 in r29,__SP_H__
646 0346 2397 sbiw r28,3
647 0348 0FB6 in __tmp_reg__,__SREG__
648 034a F894 cli
649 034c DEBF out __SP_H__,r29
650 034e 0FBE out __SREG__,__tmp_reg__
651 0350 CDBF out __SP_L__,r28
652 /* prologue end (size=10) */
653 0352 8983 std Y+1,r24
654 0354 9A83 std Y+2,r25
120:G:/HVCBASOFT/AD/adc_sram.c **** //CS:PD5;WR:PG0;RD:PG1
121:G:/HVCBASOFT/AD/adc_sram.c **** //DATA0~DATA7:PORTA
122:G:/HVCBASOFT/AD/adc_sram.c **** //ADCD8~ADCD11:PB4~PB7
123:G:/HVCBASOFT/AD/adc_sram.c **** uint8_t addr_h;
124:G:/HVCBASOFT/AD/adc_sram.c **** DDRA=0xFF;//a口输出
656 .LM72:
657 .LBB4:
658 0356 8FEF ldi r24,lo8(-1)
659 0358 8093 3A00 sts 58,r24
125:G:/HVCBASOFT/AD/adc_sram.c **** DDRB|=0xF0;//端口B高4位输出
661 .LM73:
662 035c 8091 3700 lds r24,55
663 0360 806F ori r24,lo8(-16)
664 0362 8093 3700 sts 55,r24
126:G:/HVCBASOFT/AD/adc_sram.c **** // addr_l=cmd;
127:G:/HVCBASOFT/AD/adc_sram.c **** addr_h=(cmd>>8);
666 .LM74:
667 0366 8981 ldd r24,Y+1
668 0368 9A81 ldd r25,Y+2
669 036a 892F mov r24,r25
670 036c 9927 clr r25
671 036e 8B83 std Y+3,r24
128:G:/HVCBASOFT/AD/adc_sram.c **** addr_h=(addr_h<<4);//低4位移动到高位
673 .LM75:
674 0370 8B81 ldd r24,Y+3
675 0372 8295 swap r24
676 0374 807F andi r24,0xf0
677 0376 8B83 std Y+3,r24
129:G:/HVCBASOFT/AD/adc_sram.c **** addr_h&=0xF0;//取高4位
679 .LM76:
680 0378 90EF ldi r25,lo8(-16)
681 037a 8B81 ldd r24,Y+3
682 037c 8923 and r24,r25
683 037e 8B83 std Y+3,r24
130:G:/HVCBASOFT/AD/adc_sram.c **** //片选
131:G:/HVCBASOFT/AD/adc_sram.c **** cbi(PORTD,5);//ad片选拉低
685 .LM77:
686 0380 8091 3200 lds r24,50
687 0384 8F7D andi r24,lo8(-33)
688 0386 8093 3200 sts 50,r24
132:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTD,6);//ram片选拉高
690 .LM78:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -