📄 system.lst
字号:
< .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
< //========================================================================================
.INCLUDE key.inc
< //========================================================================================
< // Progarm: The head file for pcplay.asm
< // Wrote by: Andy Hsu
< // Last modified date:
< // 2000/06/23: first version
< // 2000/07/20: modified
< //========================================================================================
<
< .EXTERNAL F_Key_Scan_Initial;
< .EXTERNAL F_Key_Scan_ServiceLoop; // 1 scan line +Vcc
< .EXTERNAL F_Key_Scan_ServiceLoop_2; // 2 scan line +Vcc / IOA
< .EXTERNAL F_Key_DebounceCnt_Down;
< .EXTERNAL F_SP_GetCh;
.DEFINE TIMER_CLKA_8K 0x0003
.DEFINE TIMER_CLKB_1 0x0030
.DEFINE RUN_TIMERA 0x1000
.DEFINE TIMER_DATA_FOR_8KHZ (0xFFFF-80)
.DEFINE P_ADC_MUX_Ctrl 0x702b
.DEFINE P_INT_Ctrl_New 0x702d
.EXTERNAL LED_No
00009554 .CODE
//============================================================================================
//函数: Clear_WatchDog()
//语法:void Clear_WatchDog(void)
//描述:清看门狗
//参数:无
//返回:无
//============================================================================================
.PUBLIC _System_Initial;
_System_Initial: .PROC
00009554 40 F0 6B 95 call L_User_Init_IO; //初始化IO口
00009556 40 F0 F6 95 call F_Key_Scan_Initial; //键盘初始化
00009558 40 F0 7D 95 call F_ADC_Init; //AD初始化
0000955A 40 F0 8C 95 call F_SP_INT_IRQ5; //ADC采样
0000955C 40 F0 BA 95 call F_SP_INT_IRQ6 //LED显示
0000955E 40 92 r1 = 0;
0000955F 19 D3 1C 03 [LED_No] = r1 //初始化LED显示位数
00009561 90 9A retf
.ENDP
//============================================================================================
//函数: Clear_WatchDog()
//语法:void Clear_WatchDog(void)
//描述:清看门狗
//参数:无
//返回:无
//============================================================================================
.PUBLIC _Clear_WatchDog;
_Clear_WatchDog: .PROC
00009562 41 92 r1 = 0x01;
00009563 19 D3 12 70 [P_Watchdog_Clear] = r1;
00009565 90 9A retf
.ENDP
//=============================================================================
// 函数: System_ServiceLoop();
// 语法: System_ServiceLoop();
// 描述: 程序扫描键盘、按键去抖调度
// 参数: 无
// 返回: 无
//=============================================================================
.PUBLIC _System_ServiceLoop;
_System_ServiceLoop: .PROC
00009566 40 F0 01 96 call F_Key_Scan_ServiceLoop; //扫描键盘
00009568 40 F0 67 96 call F_Key_DebounceCnt_Down; //按键去抖
0000956A 90 9A RETF;
.ENDP
//============================================================================================
//函数: L_User_Init_IO
//语法:L_User_Init_IO()
//描述:初始化A口低八位为下拉电阻输入,高八位为同相高电平输出
// 初始化B口低四位为同相高电平输出,
//参数:无
//返回:无
//=============================================================================================
.PUBLIC L_User_Init_IO;
L_User_Init_IO: .PROC
0000956B 09 93 10 FF r1 = 0xff10;
0000956D 19 D3 03 70 [P_IOA_Attrib] = r1;
0000956F 19 D3 02 70 [P_IOA_Dir] = r1;
00009571 09 93 00 FF r1 = 0xff00;
00009573 19 D3 00 70 [P_IOA_Data] = r1;
00009575 4F 92 r1 = 0x000F;
00009576 19 D3 08 70 [P_IOB_Attrib] = r1;
00009578 19 D3 07 70 [P_IOB_Dir] = r1;
0000957A 19 D3 05 70 [P_IOB_Data] = r1;
0000957C 90 9A RETF
.ENDP;
//============================================================================================
//函数: ADC_Init()
//语法:void ADC_Init()
//描述:初始化ADC
//参数:无
//返回:无
//=============================================================================================
.PUBLIC _ADC_Init;
.PUBLIC F_ADC_Init;
_ADC_Init: .PROC
F_ADC_Init:
0000957D 44 92 r1 = 0x0004 //选择通道LINE_IN为IOA4
0000957E 19 D3 2B 70 [P_ADC_MUX_Ctrl] = r1
00009580 11 93 15 70 r1 = [P_ADC_Ctrl]
00009582 41 A2 r1 |= 0x0001 //允许A/D转换
00009583 19 D3 15 70 [P_ADC_Ctrl] = r1
00009585 11 93 2A 70 r1 = [P_DAC_Ctrl]
00009587 09 B3 E7 FF r1 &= 0xffe7;
00009589 19 D3 2A 70 [P_DAC_Ctrl] = r1
0000958B 90 9A retf
.ENDP
//============================================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -