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

📄 adcsingl.asm

📁 于ADuC812的智能无功补偿控制器的研制 一种眼科B型超声诊断议 SL11R单片机外部存储器扩展 单片机复位电路...支持键盘双击事件的C程序设计! 一些源程序 FrankLin C51 库函数的一
💻 ASM
字号:
;********************************************************************
;
; Author        : ADI - Apps            www.analog.com/MicroConverter
;
; Date          : April 2002
;
; File          : ADCsingl.asm
;
; Hardware      : ADuC814
;
; Description   : Performs repeated single ADC conversions and moves
;                 results to UART. Sets the red LED on the eval
;                 board upon completion of each conversion.  A new
;                 conversion is innitiated every 200ms.
;                 All rate calculations assume an 2.097152MHz Mclk.
;		
;********************************************************************

$MOD814                         ; Use 8052&ADuC814 predefined symbols

LED     EQU     P3.3            ; P3.3 drives red LED on eval board
CHAN    EQU     0               ; convert this ADC input channel..
                                ; ..chan values can be 0 thru 6
;____________________________________________________________________
                                                  ; BEGINNING OF CODE
CSEG

ORG 0000h

        JMP     MAIN            ; jump to main program
;____________________________________________________________________
            
ORG 0033H                                              ; INTERRUPT VECTOR SPACE
	SETB    LED
	RETI
	

;====================================================================
                                                       ; MAIN PROGRAM
ORG 004Bh

MAIN:

; Set up UART
	MOV     RCAP2H,#0FFh ; config UART for 9600 baud
        MOV     RCAP2L,#-7   ; 
        MOV     TH2,#0FFh
        MOV     TL2,#-7
        MOV     SCON,#52h
        MOV     T2CON,#34h
; PRECONFIGURE...

        MOV     ADCCON1,#080h   ; power up ADC
        MOV     ADCCON2,#CHAN   ; select channel to convert
        SETB	EA              ; enable interrupts
        SETB    EADC            ; enable ADC interrupt

; PERFORM REPEATED SINGLE CONVERSIONS...

AGAIN:  CLR     LED             ; turn the LED off
        MOV     A,#01H		; Delay length
	CALL    DELAY           ; delay 100ms
        SETB    SCONV           ; innitiate single ADC conversion
        		        ; ADC ISR is called upon completion
	JNB     LED,$
	MOV     A,ADCDATAH
	CALL    SENDVAL
	MOV     A,ADCDATAL
	CALL    SENDVAL
	
	MOV     A,#01H		; Delay length
        CALL    DELAY           ; delay 100ms
        JMP     AGAIN           ; repeat

;____________________________________________________________________
                                                         ; SUBROUTINE
DELAY:					; Delays by 100ms * A
					; 100mSec based on 2.097152MHZ 
					; Core Clock 
					; i.e. default ADuC814 Clock

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


;____________________________________________________________________
		

$INCLUDE(UARTIO.ASM)		
END

⌨️ 快捷键说明

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