📄 ad.lst
字号:
< .DEFINE C_32K_Off 0x0000; //
< .DEFINE C_StrongMode 0x0000; // b5
< .DEFINE C_AutoMode 0x0000; //
<
< //... 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
< //========================================================================================
00008178 .CODE
.public _F_AD_Initial;
_F_AD_Initial: .PROC
00008178 88 D2 PUSH r1,r1 TO [sp];
00008179 41 92 R1 = 0x0001 //允许A/D
0000817A 19 D3 15 70 [P_ADC_Ctrl] = R1
0000817C 40 92 r1=0x0000; //通过读P_ADC触发ADC自动转换
0000817D 19 D3 2A 70 [P_DAC_Ctrl] = r1;
0000817F 41 92 r1 = 0x0001 //LINE1输入
00008180 19 D3 2B 70 [P_ADC_MUX_Ctrl] = r1;
00008182 88 90 POP r1,r1 FROM [sp];
00008183 90 9A RETF
.ENDP
//************** A/D 转换程序 **********************//
.public _F_ReadAD
_F_ReadAD: .PROC
00008184 A0 DA PUSH r2,r5 TO [sp];
00008185 08 0B 01 00 BP=SP+1;
00008187 06 92 r1 = [BP+6];
00008188 19 D3 2B 70 [P_ADC_MUX_Ctrl] = r1;//设置通道号
0000818A 41 92 r1=0x0001;
0000818B 19 D3 12 70 [P_Watchdog_Clear]=r1;
0000818D 50 94 r2=16 //进行4次转换
0000818E 40 96 r3=0
L_SampleLoop:
0000818F 11 93 2C 70 r1=[P_ADC_MUX_Data] //读[P_ADC_MUX_Data],启动一次AD转换
00008191 09 93 00 80 r1=0x8000
L_VoltageConverLoop:
00008193 11 C3 2B 70 TEST r1,[P_ADC_MUX_Ctrl]
00008195 43 5E JZ L_VoltageConverLoop;
00008196 11 93 2C 70 r1=[P_ADC_MUX_Data] //AD转换值
00008198 79 93 r1=r1 LSR 4 //将AD值移到低10位
00008199 69 93 r1=r1 LSR 2
0000819A 01 07 r3+=r1 //四次A/D值累加
0000819B 41 24 r2-=1
0000819C 4E 4E jnz L_SampleLoop
0000819D 7B 97 r3=r3 LSR 4 //结果除以4,求4次的平均值
0000819E 03 93 r1=r3 //返回结果
0000819F A0 92 POP r2,r5 FROM [sp];
000081A0 90 9A RETF
.ENDP
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -