📄 system.lst
字号:
< .DEFINE C_D2_LatchA 0x0020; //
< .DEFINE C_D2_LatchB 0x0040; //
< .DEFINE C_D2_LatchAB 0x00C0; //
<
< //... 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
< //========================================================================================
.EXTERNAL R_InterruptStatus;
00009002 .CODE
//========================================================================================================
//函数: _F_SPCE061A_Initial
//语法:void _F_SPCE061A_Initial()
//描述:061系统初始化
//参数:无
//返回:无
//========================================================================================================
.PUBLIC _F_SPCE061A_Initial
_F_SPCE061A_Initial:
00009002 88 D2 PUSH r1,r1 TO [sp];
00009003 40 92 r1=0x0000
00009004 19 D3 13 70 [P_SystemClock]=r1
00009006 11 93 B2 01 r1=[R_InterruptStatus]
00009008 44 A2 r1|=0x0004; //开2HZ中断
00009009 19 D3 10 70 [P_INT_Ctrl]=r1; //
0000900B 19 D3 B2 01 [R_InterruptStatus]=r1;//
0000900D 41 F1 INT IRQ
0000900E 09 93 FF FF r1 = 0xffff;
00009010 19 D3 03 70 [P_IOA_Attrib] = r1;
00009012 19 D3 02 70 [P_IOA_Dir] = r1;
00009014 09 93 FF FF r1 = 0xffff;
00009016 19 D3 00 70 [P_IOA_Data] = r1;
00009018 09 93 F0 00 r1 = 0x00f0; //IOB0-IOB3为带下拉电阻的输入端,IOB4-IOB6为高电平输出
0000901A 19 D3 08 70 [P_IOB_Attrib] = r1;
0000901C 19 D3 07 70 [P_IOB_Dir] = r1;
0000901E 19 D3 05 70 [P_IOB_Data] = r1;
00009020 88 90 POP r1,r1 FROM [SP];
00009021 90 9A RETF;
.PUBLIC _F_Display_Command
_F_Display_Command:
00009022 A8 DA PUSH r1,r5 TO [sp];
00009023 08 0B 01 00 bp=sp+1;
00009025 07 92 r1=[bp+7]
00009026 59 93 r1=r1 lsl 4;
00009027 59 93 r1=r1 lsl 4;
00009028 19 D3 00 70 [P_IOA_Data]=r1;
0000902A A8 90 POP r1,r5 FROM [sp];
0000902B 90 9A RETF
//========================================================================================================
//函数: F_Led_Show
//语法:void F_Led_Show(unsigned int uiChannelNumber,unsigned int uiLedValue)
//描述:uiChannelNumber:通道号;uiLedValue:为LED数值
//参数:无
//返回:无
//========================================================================================================
.public _F_Led_Show;
_F_Led_Show: .PROC
0000902C A8 DA push r1,r5 to [sp]; //弹出入口参数共两个入口参数
0000902D 08 0B 01 00 bp = sp + 1
0000902F 07 92 r1 = [bp+7] //cs
00009030 08 96 r3 = [bp+8] //data
00009031 09 05 4B BE r2 = r1 + T_Led_Cs; //取LED管的片选地址
00009033 C2 94 r2 = [r2]
00009034 41 42 CMP r1,1
00009035 03 5E JE L_DisplayDot;
00009036 0B 09 41 BE r4 = r3 + T_Led_Data //取显示数据的地址
00009038 02 EE JMP L_Display
L_DisplayDot:
00009039 0B 09 51 BE r4 = r3 + T_Led_Data_Dot;
L_Display:
0000903B C4 98 r4 = [r4]
0000903C 04 A5 r2 |= r4
0000903D 1A D5 00 70 [P_IOA_Data] = r2; //显示数据
0000903F A8 90 pop r1,r5 from [sp]
00009040 90 9A retf;
.ENDP
0000BE41 .data
0000BE41 00 3F 00 06 T_Led_Data: .dw 0x3f00,0x0600,0x5b00,0x4f00, 0x6600,0x6d00,0x7c00,0x0700,0x7f00,0x6f00;//'0''1''2''3''4''5''6''7''8''9'的代码
00 5B 00 4F
00 66 00 6D
00 7C 00 07
00 7F 00 6F
0000BE4B 01 00 02 00 T_Led_Cs: .dw 0x0001,0x0002,0x0008,0x0010,0x0020,0x0040;//选中LED管
08 00 10 00
20 00 40 00
0000BE51 00 BF 00 86 T_Led_Data_Dot: .dw 0xbf00,0x8600,0xdb00,0xcf00, 0xe600,0xed00,0xfc00,0x8700,0xff00,0xef00;//'0''1''2''3''4''5''6''7''8''9'的代码
00 DB 00 CF
00 E6 00 ED
00 FC 00 87
00 FF 00 EF
// T_Led_Cs: .dw 0x0001,0x0002,0x0008,0x0010,0x0020,0x0040;//选中LED管
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -