📄 led.lst
字号:
< .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
< //========================================================================================
.EXTERNAL _guiLED_Value;
0000031C .RAM
.PUBLIC LED_No
0000031C 00 00 .VAR LED_No = 0;
00000000 .IRAM
0000AD03 .DATA
0000AD03 3F 00 06 00 C_Address: .DW 0x003f,0x0006,0x005b,0x004f, 0x0066,0x006d,0x007c,0x0007,0x007f,0x006f;//'0''1''2''3''4''5''6''7''8''9'的代码
5B 00 4F 00
66 00 6D 00
7C 00 07 00
7F 00 6F 00
0000AD0D 01 00 02 00 C_Dig: .DW 0x0001,0x0002,0x0008,0x1000,0x2000,0x4000;//选中LED管
08 00 00 10
00 20 00 40
0000980B .CODE
//============================================================================================
//函数: F_Show()
//语法:void F_Show(int A,int B)
//描述:点亮LED
//参数:A,LED的位数(C_Dig),B,LED的显示值
//返回:无
//============================================================================================
.PUBLIC _LED_Show;
.PUBLIC F_LED_Show;
_LED_Show: .PROC
F_LED_Show:
0000980B A8 DA PUSH r1,r5 TO [sp]; //弹出入口参数共两个入口参数
L_Loop:
0000980C 15 9B 1C 03 bp = [LED_No]
0000980E 0D 03 57 03 r1 = bp + _guiLED_Value;
00009810 C1 92 r1 = [r1];
00009811 0D 05 0D AD r2 = bp + C_Dig; //取LED管的片选地址
00009813 C2 94 r2 = [r2]
00009814 09 09 03 AD r4 = r1 + C_Address //取显示数据的地址
00009816 C4 98 r4 = [r4]
00009817 5C 99 R4 = R4 LSL 4;
00009818 5C 99 R4 = R4 LSL 4;
00009819 41 4A cmp bp, 1;
0000981A 10 5E je dot;
l:
0000981B 11 93 01 70 r1 = [P_IOA_Buffer]
0000981D 09 B3 FF 00 r1 &= 0x00ff
0000981F 04 A3 r1 |= r4
00009820 19 D3 01 70 [P_IOA_Buffer] = r1;
//r1 = [P_IOB_Data]
//r1 &= 0xfff0
//r1 |= r2
00009822 1A D5 05 70 [P_IOB_Data] = r2; //显示数据
00009824 41 0A bp = bp + 1
00009825 43 4A cmp bp,3;
00009826 07 5E je l2;
00009827 1D DB 1C 03 l1: [LED_No] = bp
00009829 A8 90 POP r1,r5 FROM [sp]
0000982A 90 9A RETF;
0000982B 0C A9 00 80 dot: r4 |= 0x8000;
0000982D 53 EE jmp l
0000982E 40 9A l2: bp = 0;
0000982F 49 EE jmp l1
.ENDP
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -