본문내용
고 바로 밑의 루틴을 그냥 넘어가고, 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
-순서도-
(단자사이의 차동전압을 비교하여 +,-출력)
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
-순서도-
추천자료
- eing digital 비트
- DBM(Digital Multimedia Broadcasting) 방송
- 미국과 우리나라를 중심으로 한 정보격차(Digital Divide)의 현황과 대응방안 연구
- 아날로그 카메라와 디지털 카메라 비교
- 사이버 및 인터넷 용어 분석
- DMD(digital micromirror device)의 구조 동작원리 및 공정
- 교육적측면에서의 바라본 사이버문화
- Digital Light Processing (기술동향 조사 및 예측)
- PSP(Digital signal Processor)
- 데이터 표현단위 및 해밍코드와 디지털,아날로그
- [공업][중화학공업][철강공업][재래공업][공업화공법]공업과 공업발달, 공업과 중화학공업, ...
- MATLAB 실습과 함께 배우는 아날로그 및 디지털 통신이론 (생능/김명진) MATLAB 실습 프로그램
- 아날로그 감성 과학화의 이해 및 사례 분석.pptx