⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 system.asm

📁 arm3000语音开发模块 arm3000语音开发模块
💻 ASM
字号:
//========================================================================================================
// 文件名称:system.asm
// 实现功能:实现与硬件相关的底层操作
// 日    期:
//========================================================================================================
.INCLUDE   hardware.inc
.CODE
//========================================================================================================
//函数: F_ADC_Initial
//语法:void F_ADC_Initial()
//描述:初始化
//参数:无
//返回:无
//========================================================================================================	
.PUBLIC _F_ADC_Initial;
_F_ADC_Initial: .PROC 
	PUSH r1,r1 TO [sp];

    R1 = 0x0001                   //选择通道LINE_IN为IOA0
	[P_ADC_MUX_Ctrl] = R1
    R1 = 0x0003                   //允许A/D转换
    [P_ADC_Ctrl] = R1 	
    	 
	POP r1,r1 FROM [sp];
	RETF;
	.ENDP
//========================================================================================================
//函数: F_ADC_Read
//语法:unsigned int F_ADC_Read(void)
//描述:读AD转换数据
//参数:无
//返回:r1,返回值
//========================================================================================================	
.PUBLIC _F_ADC_Read;
_F_ADC_Read: .PROC 
L_AD:
    R1 = 0x0001;
    [P_Watchdog_Clear] = R1;      //清看门狗
    
    R1 = [P_ADC_MUX_Ctrl];        //读寄存器[P_ADC_MUX_Ctrl]的B15位
    TEST R1,0x8000;               //判断是否转换完毕
    JZ L_AD;                      //否,继续转换
    R1 = [P_ADC_MUX_DATA];        //是,则读出[P_ADC_MUX_DATA]转换结果
    
	RETF;
	.ENDP


.PUBLIC _Delay;
_Delay: .PROC 
	PUSH r2,r3 TO [sp];
	R2 = 0x20;
	R3 = 0x1;
L1:
    R2 = R2-1;    
    CMP R2,R3;
    JNGE L2;
    JMP L1;
L2:
    R2 = 0x20;
    R1 = R1-1;
    CMP R1,R3;
    JNGE L3;
    JMP L2;      
L3:
 	POP r2,r3 FROM [sp];
	RETF;
	.ENDP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -