BASIC4MCU | 질문게시판 | atmega128 ADC온도센서 세그먼트
페이지 정보
작성자 도와주세요 작성일2018-05-31 23:38 조회9,380회 댓글1건본문
온도센서를달아서 세븐세그먼트에 온도가 나오게하고싶은데..
코딩이 막혀서 여쭤봅니다..
소숫점 1자리까지 표현하는건데 2번째 세그먼트에만 도트포인트 표현하려면어떻게해야하나요?
처음배우는단계라 어떻게해야하는지 모르겠습니다
도움주시면감사하겠습니다
댓글 1
조회수 9,380도와주세요님의 댓글
도와주세요 작성일
#include<avr/io.h>
#define F_CPU 16000000UL
#include<util/delay.h>
#include<avr/interrupt.h>
short temp;
ISR(ADC_vect){
long result;
result =ADC;
temp = result * 1000 /1024;
}
int main(void){
unsigned short fnd[] = {0x3F,0x06,0x5B,0x4F,0x66,0x66,0x6D,0x7D,0x27,0x7F,0x67};
DDRF=0x00;
DDRD=0xFF;
DDRC=0x03;
PORTD=0xFF;
PORTC=0x07;
PORTF=0x01;
ADMUX = 0x40; //아날로그 입력단자와 단극성 or 양극성 신호 인지를 설정한다. 기준전압 (내부전압 ,외부전압 AREF, AVCC) AD변환된값을 ADC레지스터에 저장할때 왼쪽정렬 오른쪽정렬 결정
ADCSRA =0xCF;
SREG = SREG | 0x80;
while(1){
//변환된온도값을 세그먼트에 표시해준다.
for(int k =0 ; k<250;k++){
PORTC=0x01;
PORTD=fnd[temp/100];
_delay_ms(1);
PORTC=0x02;
PORTD=fnd[temp/10%10];
_delay_ms(1);
PORTC=0x04;
PORTD=fnd[temp%10];
_delay_ms(1);
}
}
}