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

📄 ad.asm

📁 some some some some some some
💻 ASM
字号:
			.include  	"2407.H" 	;引用头部文件
			.include	"conx.h"
			.include	"varx.h"
			.include	"intx.h"
			.def      	_c_int0
ADCOUNT		.usect ".user",1
ADRESULT	.usect ".user",1
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        	.text
_c_int0    
		SETC 	INTM
		CLRC 	SXM
		CLRC 	OVM
		CLRC 	CNF	
		LDP 	#0E0H
		SPLK	#81FEH,SCSR1				;CLKIN=6 M,CLKOUT=24 M 
		SPLK	#0E8h,WDCR				;关看门狗
		LDP		#0
		SPLK	#0001h,IMR				;允许INT1中断
		SPLK	#0FFFFh,IFR				;清所有中断标志
     	CALL	ADINIT          			;初始化ADC程序
		CLRC	INTM					;开总中断
     	CALL	AD             			;启动模数转换程序
WAIT: 	NOP  
     	B		WAIT
;(3)ADC初始化程序
ADINIT: 
      	LDP		#225      				;设置通用定时器	 4
      	SPLK	#0000H,T4CNT
      	SPLK	#170CH,T4CON 
      	SPLK	#075H,T4PR
      	SPLK	#0400H,GPTCONB
      	SPLK	#0FFFFH,EVBIFRB
      	SPLK	#0000H,EVBIMRB 	
      	LDP		#DP_PF2
      	SPLK	#0010H,ADCTRL1  			;设置ADC控制寄存器
      	SPLK	#8404H,ADCTRL2  	
      	SPLK	#000FH,MAXCONV 		;16 通道
      	SPLK	#3210H,CHSELSEQ1
      	SPLK	#7654H,CHSELSEQ2
      	SPLK	#0BA98H,CHSELSEQ3
      	SPLK	#0FEDCH,CHSELSEQ4
      	LDP		#DP_SARAM2     			;指向0A00h~0A80h
      	;SPLK	#0000H,ADRESULT
      	SPLK	#ADRESULT,ADCOUNT
	  	RET
;(4)启动模数转换程序
AD:
      	LDP		#225
      	LACL	T4CON
      	OR		#40H            			;启动定时器4
      	SACL	T4CON
      	RET
;(5)中断程序
GISR1:									;优先级INT1中断子程序入口
		;保护现场
		LDP		#0E0H
		LACC	PIVR,1					;读取外设中断向量寄存器(PIVR),并左移一位
		ADD		#PVECTORS				;加上外设中断入口地址
		BACC							;跳到相应的中断服务子程序
ADCINT_ISR:
     	CLRC 	SXM
     	LDP		#DP_SARAM2
      	LAR		AR1,ADCOUNT
      	LAR		AR0,#15 
      	LAR		AR2,#ADC_RESULT0
      	MAR		*,AR2
ADC1:	LACC	*+,10,AR1
     	SACH	*
      	ADRK	#32
      	MAR		*,AR0
      	BANZ   	ADC1,*-,AR2
      	LDP		#DP_PF2
      	LACL	ADCTRL2
      	OR		#4000H         			;复位 SEQ1
      	AND		#0FFDFH         			;清 INT FLAG SEQ1
      	SACL	ADCTRL2
      	LDP		#DP_SARAM2 
     	LACL	ADCOUNT
      	SUB		#ADRESULT+31
      	BCND	ADC2,GEQ
      	ADD		#ADRESULT+32    			;<32
      	SACL	ADCOUNT
      	B		GISR1_RET
ADC2:	SPLK	#ADRESULT,ADCOUNT 		;=32
      	LACL	T4CON
      	AND		#0FFBFH          			;停止定时器4,即停止AD转换
      	SACL	T4CON
      	B		GISR1_RET
GISR1_RET:								;中断返回出口
										;恢复现场
		CLRC	INTM					;开总中断,因为一进中断就自动关闭了总中断
		RET
;(6)假中断程序
PHANTOM 	
		KICK_DOG						;复位看门狗
		RET
     	END

⌨️ 快捷键说明

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