📄 uart.lst
字号:
<
< //... Define for P_LVD_Ctrl ...................
< .DEFINE C_LVD24V 0x0000; // LVD = 2.4V
< .DEFINE C_LVD28V 0x0001; // LVD = 2.8V
< .DEFINE C_LVD32V 0x0002; // LVD = 3.2V
< .DEFINE C_LVD36V 0x0003; // LVD = 3.6V
<
<
< .EXTERNAL F_SP_Read_INT_Status; // for further use
< .EXTERNAL F_SP_Write_INT_Status; // for further use
< .EXTERNAL F_SP_Set_INT_Vector; // for further use
< .EXTERNAL F_SP_Clear_INT_Vector; // for further use
<
< .EXTERNAL F_SP_Send_Out; //
< .EXTERNAL F_SP_Send_DAC1; //
< .EXTERNAL F_SP_Send_DAC2; //
< .EXTERNAL F_SP_Send_Two_DAC; //
< .EXTERNAL F_SP_Init_HW; //
<
< .EXTERNAL R_InterruptStatus;
<
<
< .EXTERNAL F_SP_RampUpDAC1;
< .EXTERNAL F_SP_RampDnDAC1;
< .EXTERNAL F_SP_RampUpDAC2;
< .EXTERNAL F_SP_RampDnDAC2;
<
< .EXTERNAL F_SP_InitQueue;
< .EXTERNAL F_SP_ReadQueue;
< .EXTERNAL F_SP_WriteQueue;
< .EXTERNAL F_SP_TestQueue;
<
<
<
< .EXTERNAL F_SP_Get_ADC
<
< .EXTERNAL F_SP_Set_P_TimerA_Ctrl
< .EXTERNAL F_SP_Set_P_TimerA_Data
< .EXTERNAL F_SP_Set_P_TimerB_Ctrl
< .EXTERNAL F_SP_Set_P_TimerB_Data
< .EXTERNAL F_SP_Set_P_INT_Ctrl
< .EXTERNAL F_SP_Set_P_INT_Clear
< .EXTERNAL F_SP_Set_P_SystemClock
< .EXTERNAL F_SP_Set_P_DAC_Ctrl
< .EXTERNAL F_SP_Set_P_ADC_Ctrl
<
<
<
< //--------------------------------------------
< SACM_MACRO1: .MACRO
<
< .ENDM
<
< SACM_MACRO2: .MACRO
<
< .ENDM
<
<
<
<
< //.define PC_Play_Enable_A2000 1 // Enable the PC-Play function for SACM-A2000 module
< //.define PC_Play_Enable_S480 1 // Enable the PC-Play function for SACM-S480 module
< //.define PC_Play_Enable_S240 1 // Enable the PC-Play function for SACM-S240 module
< //.define PC_Play_Enable_MS01 1 // Enable the PC-Play function for SACM-MS01 module
<
<
<
< //========================================================================================
< // End of hardware.inc
< //========================================================================================
00008FBC .CODE
//========================================================================================================
//函数: F_UART_Initial
//语法:void F_UART_Initial()
//描述:初始化UART
//参数:无
//返回:无
//========================================================================================================
.PUBLIC _F_UART_Initial;
_F_UART_Initial:
//INT OFF;
//r1 = 0x0000; //未使能任何中断
//[P_INT_Ctrl] = r1;
00008FBC 11 93 08 70 r1=[P_IOB_Attrib]
00008FBE 09 A3 80 04 r1|=0x0480 //设置IOB7为输入IOB10为输出
00008FC0 19 D3 08 70 [P_IOB_Attrib] = r1;
00008FC2 11 93 07 70 r1=[P_IOB_Dir]
00008FC4 09 A3 00 04 r1|=0x0400;
00008FC6 09 B3 7F FF r1&=0xFF7F;
00008FC8 19 D3 07 70 [P_IOB_Dir] = R1;
00008FCA 11 93 06 70 r1= [P_IOB_Buffer]
00008FCC 09 B3 7F FB r1&=0xFB7F;
00008FCE 19 D3 06 70 [P_IOB_Buffer] = R1;
00008FD0 09 93 6B 00 R1 = 0x006b; //设置波特率为115.2Kbps
00008FD2 19 D3 24 70 [P_UART_BaudScalarLow] = R1;
00008FD4 40 92 R1 = 0x0000;
00008FD5 19 D3 25 70 [P_UART_BaudScalarHigh] = R1;
00008FD7 40 92 R1 = 0x0000;
00008FD8 0C 99 C0 00 R4 = 0x00C0; //使能输入和输出
00008FDA 19 D3 21 70 [P_UART_Command1] = R1;
00008FDC 1C D9 22 70 [P_UART_Command2] = R4;
00008FDE 90 9A retf
//========================================================================================================
//函数: F_UART_Read
//语法:unsigned int F_UART_Read(void)
//描述:读UART
//参数:无
//返回:r1,返回值低8bit为有效值
//========================================================================================================
.public _F_UART_ReadByte
_F_UART_ReadByte:
00008FDF A0 DA PUSH r2,r5 TO [sp];
00008FE0 0C 99 FF 00 r4=0x00FF;
00008FE2 0B 97 FF FF r3=0xFFFF;
L_Check_RxRDY:
00008FE4 41 26 r3-=1;
00008FE5 02 4E JNZ L_TestUART;
00008FE6 41 28 r4-=1;
00008FE7 09 5E JZ L_UART_Read_Timeout;
L_TestUART:
00008FE8 12 95 22 70 r2 = [P_UART_Command2]; //检测是否有数据接收
00008FEA 0A B5 80 00 r2 &= 0x0080;
00008FEC 49 5E JZ L_Check_RxRDY;
00008FED 11 93 23 70 r1 = [P_UART_Data]; //接收数据
00008FEF A0 92 POP r2,r5 FROM [sp]
00008FF0 90 9A retf;
L_UART_Read_Timeout:
00008FF1 09 93 FF FF r1=0xffff;
00008FF3 A0 92 POP r2,r5 FROM [sp]
00008FF4 90 9A retf;
//========================================================================================================
//函数: F_UART_SendCommand
//语法:void F_UART_SendCommand(unsigned int)
//描述:写UART
//参数:为要写入串口的值,其低8bit为有效值。
//返回:无
//========================================================================================================
.PUBLIC _F_UART_SendCommand
_F_UART_SendCommand:
00008FF5 A8 DA PUSH r1,r5 TO [sp]
00008FF6 08 0B 01 00 bp=sp+1;
00008FF8 07 92 r1=[bp+7]; //命令值
L_Check_TxRDY:
00008FF9 12 95 22 70 R2 = [P_UART_Command2];
00008FFB 0A B5 40 00 R2 &= 0x0040; //检测输出是否READY
00008FFD 45 5E JZ L_Check_TxRDY;
00008FFE 19 D3 23 70 [P_UART_Data] = r1; //
00009000 A8 90 POP r1,r5 FROM [SP]
00009001 90 9A RETF;
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -