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

📄 adctrig.asm

📁 ADI公司的产品aduc824单片机的ADC转换程序
💻 ASM
字号:
;======================================================================
;
; Author        : ADI - Apps
;
; Date          : Sept. '99
;
; File          : adctrig.asm
;
; Description   : Flash led an initial rate of 100ms
;		  Pressing INTO triggers single conversion
;		  The ADC result is written to external memory
;		  The delay rate is increased
;		  The program waits for the next INTO to repeat the 
;		  above sequence
;
;======================================================================
;       
$MOD824					; Use ADuC824 predefined Symbols

FLAG	EQU	00H			; Define Bit

CSEG					; Defines the following as a segment of code

ORG     0000H				; Load Code at '0'	

		JMP     MAIN		; Jump to MAIN

;======================================================================

ORG 0003h				; (INT0 ISR)
		MOV	B,A		; Copy A (sets delay)
		INC 	A		; Increment delay

		MOV	ADCMODE,#22H	; INITIATE A MAIN ADC SINGLE CONVERSION

		JNB 	RDY0,$		; Wait for conversion results
					
					; Write ADC Result H/M/L to ext. memory
		MOV	DPTR, #00H	; DPTR=00
		MOV	A,ADC0L		; read ADC low byte 
		MOVX	@DPTR,A		; write low byte to ext memory
		INC	DPTR		; DPTR=01
		MOV	A,ADC0M		; read ADC Middle byte 
		MOVX	@DPTR,A		; write Middle byte to ext memory
		INC	DPTR		; DPTR=02
		MOV	A,ADC0H		; read ADC High byte 
		MOVX	@DPTR,A		; write low High byte to ext memory
		INC	DPTR

		MOV	A,B		; Restore A (sets delay)
		INC 	A		; Increment delay

		RETI			; Return from Interrupt

;======================================================================


ORG 004Bh				; Subroutines

;------------------------------------------------------------------

DELAY:					; Delays by 100ms * A

		MOV	R0,A		; Acc holds delay variable
 DLY0:		MOV	R1,#019h	; Set up delay loop0
 DLY1:		MOV	R2,#0FEh	; Set up delay loop1
		DJNZ	R2,$		; Dec R2 & Jump here until R2 is 0
		DJNZ	R1,DLY1         ; Dec R1 & Jump DLY1 until R1 is 0
		DJNZ	R0,DLY0		; Dec R0 & Jump DLY0 until R0 is 0
		RET			; Return from subroutine

;======================================================================

MAIN:					; (main program)

					; Configure ADC
		MOV	ADCMODE,#20H	; ENABLE MAIN ADC; Mode- Power down 
		MOV	ADC0CON,#47H	; 24 BITS
					; USE EXTERNAL REFERENCE
					; AIN1-AIN2 
					; BIPOLAR MODE
					; RANGE = +/-2.56V 

		SETB	IT0		; INT0 edge triggered
		SETB	EA		; enable inturrupts
		SETB	EX0		; enable INT0
	
		CLR	FLAG		; Clear Bit defined as FLAG
	
		MOV	A,#01H		; Initialize A -> 1
BLINK:		CPL	P3.4		; blink LED using compliment instruction
		CALL	DELAY		; Jump to subroutine DELAY
		JNB	FLAG,BLINK	; If FLAG is still cleared the jump to Blink

END

	

⌨️ 快捷键说明

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