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

📄 sys.asm

📁 凌阳大学计划61板可使用的温度测试系统
💻 ASM
字号:
.INCLUDE	 Hardware.inc;

.CODE
.PUBLIC 	_System_Initial;
_System_Initial: .PROC

//---------------- 系统时钟、中断 --------------------// 
     r1=0
     [P_SystemClock]=r1

     r1=0
     [R_InterruptStatus] = r1
     [P_INT_Ctrl]=r1
     IRQ OFF
     FIQ OFF
     
     r1 = 0x0000 					//IOA0---A15设为带下拉电阻的输入 	
 	 [P_IOA_Dir] = r1 
	 [P_IOA_Attrib] = r1	
	 [P_IOA_Data] = r1 

     retf;
	.ENDP;

//**************** 初始化 A/D **********************//
.PUBLIC _InitAD	
_InitAD: .PROC
		r1 = 0x0001			
		[P_ADC_Ctrl] = r1;			//自动方式, 允许A/D工作
		
		r1 = 0x0;					//通过读[P_ADC_MUX_Data] 单元进行A/D转换
		[P_DAC_Ctrl] = r1;
	
        r1 = 0x0001            		//LINE1输入			
		[P_ADC_MUX_Ctrl] = r1;

	    retf 
       .ENDP
    
	
//************** A/D 转换程序 **********************//	
.PUBLIC _ReadAD
_ReadAD: .PROC
		   r2=4      				//进行4次转换
		   r3=0
TestLoop:	   
		   r1=[P_ADC_MUX_Data]      //读[P_ADC_MUX_Data],启动一次AD转换
           r1=0x8000
 TempConverLoop:   
          TEST r1,[P_ADC_MUX_Ctrl]
          JZ TempConverLoop 
          r1=[P_ADC_MUX_Data]      	//AD转换值 
          r1=r1 LSR 4           	//将AD值移到低10位
          r1=r1 LSR 2
          r3+=r1             		//四次A/D值累加
          r2-=1
          jnz  TestLoop
          r3=r3 LSR 2     			//结果除以4,求4次的平均值
          r1=r3           			//返回结果
          
          retf
          .ENDP
.Public _Clear_WatchDog
_Clear_WatchDog: 	.PROC
		R1=0x0001;                      	
		[P_Watchdog_Clear]=R1;       		
		retf;
		.ENDP
        

⌨️ 快捷键说明

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