📄 test1.lst
字号:
< //... Define for P_AD_Ctrl ....................
< .DEFINE C_AD 0x0001; //
< .DEFINE C_DA 0x0000; //
< .DEFINE C_MIC 0x0000; //
< .DEFINE C_LINE 0x0002; //
<
< //... Define for P_DA_Ctrl ....................
< .DEFINE C_PushPull 0x0000; // b0, (default)
< .DEFINE C_DoubleEnd 0x0001; // b0
< .DEFINE C_DAC_Mode 0x0000; // b1, (default)
< .DEFINE C_PWM_Mode 0x0002; // b1
<
< .DEFINE C_D1_Direct 0x0000; // DAC1 latch
< .DEFINE C_D1_LatchA 0x0008; //
< .DEFINE C_D1_LatchB 0x0010; //
< .DEFINE C_D1_LatchAB 0x0018; //
<
< .DEFINE C_D2_Direct 0x0000; // DAC2 latch
< .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
< //========================================================================================
00000000 .ram
00000000 3F 00 06 00 array: .dw 0x3f,0x06,0x5b,0x8f,0x66,0x67,0x7d,0x07,0xff,0x6f
5B 00 8F 00
66 00 67 00
7D 00 07 00
FF 00 6F 00
0000000A 00 00 .var R_LedControl //定义变量
0000000B 00 00 .var R_DelayCounter
00008026 .code
.public _main
_main:
00008026 09 93 FF FF r1 = 0xFFFF //设置A0~A7口为同相低电平输出口
00008028 19 D3 02 70 [P_IOA_Dir] = r1
0000802A 19 D3 03 70 [P_IOA_Attrib] = r1
0000802C 41 92 r1 = 0x0001
0000802D 19 D3 00 70 [P_IOA_Data] = r1
0000802F 09 93 00 10 r1=0x1000 //设置B6口为同相高电平输出口
00008031 19 D3 07 70 [P_IOB_Dir]=r1
00008033 19 D3 08 70 [P_IOB_Attrib]=r1
00008035 19 D3 05 70 [P_IOB_Data]=r1 //B6输出高电平,保证LED阴极接地
00008037 09 93 00 10 r1=0x1000
00008039 19 D3 0A 00 [R_LedControl] = r1 //LED点亮控制初值
L_MainLoop:
0000803B 11 93 0A 00 r1 = [R_LedControl]
0000803D 19 D3 00 70 [P_IOA_Data]=r1 //送数据到A口
0000803F 11 93 00 00 r1=[array] //修改LED点亮控制参数
NoOver:
00008041 19 D3 0A 00 [R_LedControl] = r1
00008043 40 92 r1 = 0x0000 //延时计数器清零
00008044 19 D3 0B 00 [R_DelayCounter] = r1
00008046 40 F0 49 80 call F_Delay //延时
00008048 4E EE jmp L_MainLoop //跳转到L_MainLoop循环,点亮LED
F_Delay:
L_DelayLoop:
00008049 41 92 r1=0x0001 //清看门狗
0000804A 19 D3 12 70 [P_Watchdog_Clear]=r1
0000804C 11 93 0B 00 r1 = [R_DelayCounter]
0000804E 41 02 r1 += 1 //延时计数加1
0000804F 19 D3 0B 00 [R_DelayCounter] = r1
00008051 49 4E jnz L_DelayLoop //加到65536吗?
00008052 90 9A retf
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -