📄 delay1ms.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
< //========================================================================================
0000A818 .code
.public _delay
_delay:
0000A818 41 02 r1+=1;
0000A819 00 EE nop
0000A81A 00 EE nop
0000A81B 00 EE nop
0000A81C 00 EE nop
0000A81D 00 EE nop
0000A81E 00 EE nop
0000A81F 90 9A retf;
.public _car_wait
_car_wait: .proc
wait1:
0000A820 40 92 r1=0;
0000A821 0A 95 FF FF r2=0xffff;
0000A823 41 02 wait: r1+=1
0000A824 02 43 cmp r1,r2
0000A825 43 0E jb wait
0000A826 41 06 r3+=1
0000A827 04 47 cmp r3,r4
0000A828 49 0E jb wait1
0000A829 70 92 r1=0x0030
.endp
.public _F_Apwm;
_F_Apwm:.proc
0000A82A 09 93 00 01 R1=0x0100 //将IOB8设置成同相输出端口
0000A82C 19 D3 07 70 [P_IOB_Dir]=R1
0000A82E 19 D3 08 70 [P_IOB_Attrib] = R1
0000A830 4C 92 R1=0x000c
0000A831 19 D3 05 70 [P_IOB_Data]=R1
//设置TimerA的APWMO信号的周期Tapwmo=(12.288MHz / 512) / 16 = 1.5KHz,设
//置信号的占空比APWMO
//Tduty= (3/16)*Tapwmo。详细内容请参见定时器/计数器部分。
0000A833 11 93 02 02 R1=[_Mk_Z6] //选择计数频率与占空比
0000A835 19 D3 0B 70 [P_TimerA_Ctrl]=R1
0000A837 09 93 FF FD R1=0xFDFF //设置TimerA的计数初值
0000A839 19 D3 0A 70 [P_TimerA_Data]=R1
0000A83B 90 9A retf
.end
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -