⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soc_test.lst

📁 atmega128串口通信
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0514) NOP5();
    0511 DB7E      RCALL	_NOP5
(0515) NOP5();
    0512 DB7D      RCALL	_NOP5
(0516) NOP5();
    0513 DB7C      RCALL	_NOP5
(0517) NOP5();
    0514 DB7B      RCALL	_NOP5
(0518) NOP5();
    0515 DB7A      RCALL	_NOP5
(0519) NOP5();
    0516 DB79      RCALL	_NOP5
(0520) systemregH=systemregH|0b00001000;
    0517 91800102  LDS	R24,_systemregH
    0519 6088      ORI	R24,0x8
    051A 93800102  STS	_systemregH,R24
(0521) SYSCTL_BYTE_HIG=systemregH;
    051C 2E28      MOV	R2,R24
    051D 922019FF  STS	0x19FF,R2
(0522) NOP5();
    051F DB70      RCALL	_NOP5
(0523) NOP5();
    0520 DB6F      RCALL	_NOP5
(0524) NOP5();
    0521 DB6E      RCALL	_NOP5
(0525) NOP5();
    0522 DB6D      RCALL	_NOP5
(0526) NOP5();
    0523 DB6C      RCALL	_NOP5
(0527) NOP5();
    0524 DB6B      RCALL	_NOP5
(0528) NOP5();
    0525 DB6A      RCALL	_NOP5
(0529) systemregH=systemregH&0b11110111;
    0526 91800102  LDS	R24,_systemregH
    0528 7F87      ANDI	R24,0xF7
    0529 93800102  STS	_systemregH,R24
(0530) SYSCTL_BYTE_HIG=systemregH;
    052B 2E28      MOV	R2,R24
    052C 922019FF  STS	0x19FF,R2
(0531) }// end DDS_param_set
    052E 9624      ADIW	R28,4
    052F 940E0794  CALL	pop_gset3
    0531 9508      RET
_NCO_param_set:
  temp2                --> R10
  temp1                --> Y+0
    0532 940E07B2  CALL	push_gset3
    0534 9724      SBIW	R28,4
(0532) 
(0533) /*********************************************************
(0534) NCO参数设置
(0535) *********************************************************/
(0536) void NCO_param_set(void)
(0537) {long temp1;
(0538) short temp2;
(0539) temp1=(long)buffer[4]*256*256*256;
    0535 90200123  LDS	R2,0x123
    0537 2433      CLR	R3
    0538 2444      CLR	R4
    0539 2455      CLR	R5
    053A E040      LDI	R20,0
    053B E051      LDI	R21,1
    053C E060      LDI	R22,0
    053D E070      LDI	R23,0
    053E 925A      ST	R5,-Y
    053F 924A      ST	R4,-Y
    0540 923A      ST	R3,-Y
    0541 922A      ST	R2,-Y
    0542 018A      MOVW	R16,R20
    0543 019B      MOVW	R18,R22
    0544 940E0761  CALL	empy32s
    0546 E040      LDI	R20,0
    0547 E051      LDI	R21,1
    0548 E060      LDI	R22,0
    0549 E070      LDI	R23,0
    054A 933A      ST	R19,-Y
    054B 932A      ST	R18,-Y
    054C 931A      ST	R17,-Y
    054D 930A      ST	R16,-Y
    054E 018A      MOVW	R16,R20
    054F 019B      MOVW	R18,R22
    0550 940E0761  CALL	empy32s
    0552 E040      LDI	R20,0
    0553 E051      LDI	R21,1
    0554 E060      LDI	R22,0
    0555 E070      LDI	R23,0
    0556 933A      ST	R19,-Y
    0557 932A      ST	R18,-Y
    0558 931A      ST	R17,-Y
    0559 930A      ST	R16,-Y
    055A 018A      MOVW	R16,R20
    055B 019B      MOVW	R18,R22
    055C 940E0761  CALL	empy32s
    055E 01FE      MOVW	R30,R28
    055F 8300      STD	Z+0,R16
    0560 8311      STD	Z+1,R17
    0561 8322      STD	Z+2,R18
    0562 8333      STD	Z+3,R19
(0540) temp1=temp1+(long)buffer[5]*256*256;
    0563 90200124  LDS	R2,0x124
    0565 2433      CLR	R3
    0566 2444      CLR	R4
    0567 2455      CLR	R5
    0568 E040      LDI	R20,0
    0569 E051      LDI	R21,1
    056A E060      LDI	R22,0
    056B E070      LDI	R23,0
    056C 925A      ST	R5,-Y
    056D 924A      ST	R4,-Y
    056E 923A      ST	R3,-Y
    056F 922A      ST	R2,-Y
    0570 018A      MOVW	R16,R20
    0571 019B      MOVW	R18,R22
    0572 940E0761  CALL	empy32s
    0574 E040      LDI	R20,0
    0575 E051      LDI	R21,1
    0576 E060      LDI	R22,0
    0577 E070      LDI	R23,0
    0578 933A      ST	R19,-Y
    0579 932A      ST	R18,-Y
    057A 931A      ST	R17,-Y
    057B 930A      ST	R16,-Y
    057C 018A      MOVW	R16,R20
    057D 019B      MOVW	R18,R22
    057E 940E0761  CALL	empy32s
    0580 01FE      MOVW	R30,R28
    0581 8020      LDD	R2,Z+0
    0582 8031      LDD	R3,Z+1
    0583 8042      LDD	R4,Z+2
    0584 8053      LDD	R5,Z+3
    0585 0E20      ADD	R2,R16
    0586 1E31      ADC	R3,R17
    0587 1E42      ADC	R4,R18
    0588 1E53      ADC	R5,R19
    0589 01FE      MOVW	R30,R28
    058A 8220      STD	Z+0,R2
    058B 8231      STD	Z+1,R3
    058C 8242      STD	Z+2,R4
    058D 8253      STD	Z+3,R5
(0541) temp1=temp1+(long)buffer[6]*256;
    058E 90200125  LDS	R2,0x125
    0590 2433      CLR	R3
    0591 2444      CLR	R4
    0592 2455      CLR	R5
    0593 E040      LDI	R20,0
    0594 E051      LDI	R21,1
    0595 E060      LDI	R22,0
    0596 E070      LDI	R23,0
    0597 925A      ST	R5,-Y
    0598 924A      ST	R4,-Y
    0599 923A      ST	R3,-Y
    059A 922A      ST	R2,-Y
    059B 018A      MOVW	R16,R20
    059C 019B      MOVW	R18,R22
    059D 940E0761  CALL	empy32s
    059F 01FE      MOVW	R30,R28
    05A0 8020      LDD	R2,Z+0
    05A1 8031      LDD	R3,Z+1
    05A2 8042      LDD	R4,Z+2
    05A3 8053      LDD	R5,Z+3
    05A4 0E20      ADD	R2,R16
    05A5 1E31      ADC	R3,R17
    05A6 1E42      ADC	R4,R18
    05A7 1E53      ADC	R5,R19
    05A8 01FE      MOVW	R30,R28
    05A9 8220      STD	Z+0,R2
    05AA 8231      STD	Z+1,R3
    05AB 8242      STD	Z+2,R4
    05AC 8253      STD	Z+3,R5
(0542) temp1=temp1+(long)buffer[7];
    05AD 90200126  LDS	R2,0x126
    05AF 2433      CLR	R3
    05B0 2444      CLR	R4
    05B1 2455      CLR	R5
    05B2 01FE      MOVW	R30,R28
    05B3 8060      LDD	R6,Z+0
    05B4 8071      LDD	R7,Z+1
    05B5 8082      LDD	R8,Z+2
    05B6 8093      LDD	R9,Z+3
    05B7 0C62      ADD	R6,R2
    05B8 1C73      ADC	R7,R3
    05B9 1C84      ADC	R8,R4
    05BA 1C95      ADC	R9,R5
    05BB 01FE      MOVW	R30,R28
    05BC 8260      STD	Z+0,R6
    05BD 8271      STD	Z+1,R7
    05BE 8282      STD	Z+2,R8
    05BF 8293      STD	Z+3,R9
(0543) NCO_freq_set(temp1);
    05C0 01FE      MOVW	R30,R28
    05C1 8100      LDD	R16,Z+0
    05C2 8111      LDD	R17,Z+1
    05C3 8122      LDD	R18,Z+2
    05C4 8133      LDD	R19,Z+3
    05C5 DD82      RCALL	_NCO_freq_set
(0544) temp2=buffer[8]*256+buffer[9];
    05C6 91200127  LDS	R18,0x127
    05C8 2733      CLR	R19
    05C9 E000      LDI	R16,0
    05CA E011      LDI	R17,1
    05CB 940E0751  CALL	empy16s
    05CD 0158      MOVW	R10,R16
    05CE 90200128  LDS	R2,0x128
    05D0 2433      CLR	R3
    05D1 0CA2      ADD	R10,R2
    05D2 1CB3      ADC	R11,R3
(0545) NCO_phase_set(temp2);
    05D3 0185      MOVW	R16,R10
    05D4 DD98      RCALL	_NCO_phase_set
(0546) }// end NCO_param_set
    05D5 9624      ADIW	R28,4
    05D6 940E0794  CALL	pop_gset3
    05D8 9508      RET
_sys_seting:
    05D9 940E0797  CALL	push_gset1
(0547) /*********************************************************
(0548) 系统参数设置
(0549) *********************************************************/
(0550) void sys_seting(void)
(0551) {switch(buffer[4])
    05DB 91400123  LDS	R20,0x123
    05DD 2755      CLR	R21
    05DE 3040      CPI	R20,0
    05DF 0745      CPC	R20,R21
    05E0 F049      BEQ	0x05EA
    05E1 3041      CPI	R20,1
    05E2 E0E0      LDI	R30,0
    05E3 075E      CPC	R21,R30
    05E4 F071      BEQ	0x05F3
    05E5 3042      CPI	R20,2
    05E6 E0E0      LDI	R30,0
    05E7 075E      CPC	R21,R30
    05E8 F0B1      BEQ	0x05FF
    05E9 C020      RJMP	0x060A
(0552) {case 0x00://正常工作
(0553)    systemregH=systemregH&0b11111100;
    05EA 91800102  LDS	R24,_systemregH
    05EC 7F8C      ANDI	R24,0xFC
    05ED 93800102  STS	_systemregH,R24
(0554)    SYSCTL_BYTE_HIG=systemregH;
    05EF 2E28      MOV	R2,R24
    05F0 922019FF  STS	0x19FF,R2
(0555)    break;
    05F2 C017      RJMP	0x060A
(0556)  case 0x01://DDS输出
(0557)    systemregH=systemregH&0b11111110;
    05F3 91800102  LDS	R24,_systemregH
    05F5 7F8E      ANDI	R24,0xFE
    05F6 93800102  STS	_systemregH,R24
(0558)    systemregH=systemregH|0b00000010;
    05F8 6082      ORI	R24,2
    05F9 93800102  STS	_systemregH,R24
(0559)    SYSCTL_BYTE_HIG=systemregH;
    05FB 2E28      MOV	R2,R24
    05FC 922019FF  STS	0x19FF,R2
(0560)    break;
    05FE C00B      RJMP	0x060A
(0561)  case 0x02://AD输出
(0562)    systemregH=systemregH&0b11111101;
    05FF 91800102  LDS	R24,_systemregH
    0601 7F8D      ANDI	R24,0xFD
    0602 93800102  STS	_systemregH,R24
(0563)    systemregH=systemregH|0b00000001;
    0604 6081      ORI	R24,1
    0605 93800102  STS	_systemregH,R24
(0564)    SYSCTL_BYTE_HIG=systemregH;
    0607 2E28      MOV	R2,R24
    0608 922019FF  STS	0x19FF,R2
(0565)    break;
(0566)  default:break;
(0567) }
(0568) systemregH=systemregH&0b11111011;
    060A 91800102  LDS	R24,_systemregH
    060C 7F8B      ANDI	R24,0xFB
    060D 93800102  STS	_systemregH,R24
(0569) SYSCTL_BYTE_HIG=systemregH;
    060F 2E28      MOV	R2,R24
    0610 922019FF  STS	0x19FF,R2
(0570) NOP5();
    0612 DA7D      RCALL	_NOP5
(0571) NOP5();
    0613 DA7C      RCALL	_NOP5
(0572) NOP5();
    0614 DA7B      RCALL	_NOP5
(0573) NOP5();
    0615 DA7A      RCALL	_NOP5
(0574) NOP5();
    0616 DA79      RCALL	_NOP5
(0575) NOP5();
    0617 DA78      RCALL	_NOP5
(0576) NOP5();
    0618 DA77      RCALL	_NOP5
(0577) systemregH=systemregH|0b00000100;
    0619 91800102  LDS	R24,_systemregH
    061B 6084      ORI	R24,4
    061C 93800102  STS	_systemregH,R24
(0578) SYSCTL_BYTE_HIG=systemregH;
    061E 2E28      MOV	R2,R24
    061F 922019FF  STS	0x19FF,R2
(0579) NOP5();
    0621 DA6E      RCALL	_NOP5
(0580) NOP5();
    0622 DA6D      RCALL	_NOP5
(0581) NOP5();
    0623 DA6C      RCALL	_NOP5
(0582) NOP5();
    0624 DA6B      RCALL	_NOP5
(0583) NOP5();
    0625 DA6A      RCALL	_NOP5
(0584) NOP5();
    0626 DA69      RCALL	_NOP5
(0585) NOP5();
    0627 DA68      RCALL	_NOP5
(0586) systemregH=systemregH&0b11111011;
    0628 91800102  LDS	R24,_systemregH
    062A 7F8B      ANDI	R24,0xFB
    062B 93800102  STS	_systemregH,R24
(0587) SYSCTL_BYTE_HIG=systemregH;
    062D 2E28      MOV	R2,R24
    062E 922019FF  STS	0x19FF,R2
(0588) }
    0630 940E079A  CALL	pop_gset1
    0632 9508      RET
(0589) /*****************************************************************************
(0590) ******************************************************************************
(0591) ******************************************************************************
(0592) 至此所有子程序结束
(0593) ******************************************************************************
(0594) ******************************************************************************
(0595) *****************************************************************************/
(0596) /*********************************************************
(0597) 主函数
(0598) *********************************************************/
(0599) void main(void)
(0600) {
(0601) 	CLI();                   //关中断
_main:
    0633 94F8      BCLR	7
(0602)     
(0603) 	#ifndef SIMULATOR
(0604) 	asm("ldi R16,$67");      //延时2s,以保证DSP有充足的时间配置FPGA
    0634 E607      LDI	R16,0x67
(0605) 	//delay1();
(0606) 	#endif
(0607) 	enable_XMEM();           //使能外部SRAM
    0635 DAA1      RCALL	_enable_XMEM
(0608) 	initial_work();  //初始化工作
    0636 DA5F      RCALL	_initial_work
(0609) 	UDR0=0x00;       //先发一数到串口以清串口
    0637 2422      CLR	R2
    0638 B82C      OUT	0x0C,R2
(0610) 	query_TXC();
    0639 DA99      RCALL	_query_TXC
(0611) 	systemregL=0x00;
    063A 2422      CLR	R2
    063B 92200103  STS	_systemregL,R2
(0612) 	systemregH=0x00;
    063D 92200102  STS	_systemregH,R2
(0613) 	ddc_param=0b0000000010000000;
    063F E880      LDI	R24,0x80
    0640 E090      LDI	R25,0
    0641 93900101  STS	_ddc_param+1,R25
    0643 93800100  STS	_ddc_param,R24
(0614) 	send_instruct(ddc_param,0x00);
    0645 2722      CLR	R18
    0646 018C      MOVW	R16,R24
    0647 DB9F      RCALL	_send_instruct
    0648 C056      RJMP	0x069F
(0615) 	while(1)         //循环接收数据
(0616) 	{
(0617) 		#ifndef DEBUG_BUFFER
(0618) 		CLI();
    0649 94F8      BCLR	7
(0619) 		buf_index=0;			//每次开始接收时,buf_index为
    064A 2422      CLR	R2
    064B 92200105  STS	_buf_index,R2
(0620) 		beginWord=0x00;		//开始字还没收到
    064D 9220010A  STS	_beginWord,R2
(0621) 		endWord=0x00;			//结束字还没收到
    064F 92200109  STS	_endWord,R2
(0622) 		haveUartInt=0;			//还没有中断
    0651 92200108  STS	_haveUartInt,R2
(0623) 		haveSpeWord=0;			//清接收转义字符标志
    0653 92200106  STS	_haveSpeWord,R2
(0624) 		haveError=0;			//清错误标志
    0655 92200107  STS	_haveError,R2
(0625) 		usart_flush();
    0657 DA87      RCALL	_usart_flush
(0626) 		SEI();
    0658 9478      BSET	7
    0659 C010      RJMP	0x066A
(0627) 		while(1)		//接收循环
(0628) 		{
(0629) 			//注意:修改后若接收有错误,则END_WORD!=endWord,不会跳出接收循环
(0630) 			while(haveUartInt==0);	//死循环等待接收数据
    065A 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -