ADC(Analog to Digital Converter)
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
해당 자료는 10페이지 까지만 미리보기를 제공합니다.
10페이지 이후부터 다운로드 후 확인할 수 있습니다.

본문내용

고 바로 밑의 루틴을 그냥 넘어가고, MSB가 1이면 비교한 전압이 음수임을 판단하고 LCD에 표시를 하게 된다.
(단자사이의 차동전압을 비교하여 +,-출력)
JMPLOOP3
CLRAL
SUBAL,BL
CLRAH
SBCAH,BH
MOVBH,AH
MOVBL,AL
MSB가 1이면 음수이고 부호가 표시 되었으므로 루프3으로 점프하여 절대값 연산을 하게 된다.
LOOP3:LDIAH,high(500) voltage = value*5/512
LDIAL,low(500)
CALLMUL16
LDIDH,high(512)
LDIDL,low(512)
CALLDIV16
LDIBL,100 display X.XX
CALLDIV8
MOVLCD_BUFFER,AL
ORILCD_BUFFER,'0'
CALLLCD_DATA
LDILCD_BUFFER,'.'
CALLLCD_DATA
MOVAL,AH
CLRAH
LDIBL,10
CALLDIV8
MOVLCD_BUFFER,AL
ORILCD_BUFFER,'0'
CALLLCD_DATA
MOVLCD_BUFFER,AH
ORILCD_BUFFER,'0'
CALLLCD_DATA
CALLD200MS delay 200 ms
JMPLOOP
차동입력이므로 변환의 결과가 -5V~+5V사이에 대응되어 출력이 된다. 이 값은 A/D 컨버터로 읽어들인 값에 대해 대응이 되어 나타내어진다.
;===================================================================
;Include User Subroutine File
;===================================================================
.include "OK128SUB.INC" include OK-128 subroutine file
-순서도-
(6)아날로그 비교기 사용
-예제프로그램
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
;[] []
;[] Exp08_6.asm : Analog Comparator - VR1 vs 1.23V []
;[] []
;[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
;
;------------------------------------------------
;Include Header File
;------------------------------------------------
.include "MEGA128.INC" include ATmega128 definition file
.include "OK128DEF.INC" include OK-128 I/O definition file
;===================================================================
;Main Program
;===================================================================
.cseg
.org0x0000
LDIAH,high(RAMEND) initialize SP
LDIAL,low(RAMEND)
OUTSPH,AH
OUTSPL,AL
CALLINIT_OK128 initialize ATmega128 CPU & OK-128 kit
CALLD50MS wait for system stabilization
CALLINIT_LCD initialize text LCD
;------------------------------------------------
;Comparator ADC3 with 1.23V
;------------------------------------------------
CALLLCD_HOME1 display title
CALLLCD_STRING
.db" Analog Comp. ",0,0
CALLLCD_HOME2
CALLLCD_STRING
.db" VR1 < 1.23V ",0,0
CALLBEEP
LDIAL,0b01000011 + input = 1.23V
OUTACSR,AL
아날로그 비교기 동작, 양극성입력에 인가되는 내부 기준 전압을 1.23V로 선택. 출력의 상승에지에서 아날로그 비교기의 인터럽트가 발생한다.
LDIAL,0b00001000 use ADC input pin
OUTSFIOR,AL
음극성 입력에 A/D 컨버터의 입력신호가 사용될 수 있도록 한다.
LDIAL,0b00000000 ADEN = 0
OUTADCSRA,AL
ADEN=0으로 설정하여 A/D 컨버터의 동작을 정지시키면 ADC0~ADC7의 입력신호가 아날로그 비교기의 음극성 입력으로 사용된다. 분주비는 2.
LDIAL,0b00000011 - input = ADC3
OUTADMUX,AL
단극성 입력 ADC3을 음극성입력으로 설정한다.
LOOP:SBISACSR,ACO
RJMPADC3HIGH
LDIAL,0b00010000 if ADC3 < 1.23V, LED1 on
OUTPORTB,AL
LDILCD_BUFFER,0xC6 and display "<"
CALLLCD_COMMAND
LDILCD_BUFFER,'<'
CALLLCD_DATA
CALLD100MS
RJMPLOOP
아날로그 비교기의 출력 값을 비교하여 LED를 점등한다.
ADC3HIGH:LDIAL,0b10000000 if ADC3 > 1.23V, LED4 on
OUTPORTB,AL
LDILCD_BUFFER,0xC6 and display ">"
CALLLCD_COMMAND
LDILCD_BUFFER,'>'
CALLLCD_DATA
CALLD100MS
RJMPLOOP
;===================================================================
;Include User Subroutine File
;===================================================================
.include "OK128SUB.INC" include OK-128 subroutine file
-순서도-

키워드

  • 가격3,000
  • 페이지수31페이지
  • 등록일2009.02.23
  • 저작시기2008.9
  • 파일형식한글(hwp)
  • 자료번호#520074
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니