회원가입 ID/PW 찾기
AA

ADC 해서 그값을 세그먼트에 나타내는 소스입니다..
#include <mega128.h>            
#include <delay.h>

char seg_pat[16]= {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
   0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
                        
void  AD_disp(int);   // A/D 변환값 표시 
                
void main(void)
{             
        int   ad_val;
                  
 DDRB = 0xFF;   // 포트 B 출력 설정
        DDRF = 0xF0;      // PF4-PF7 출력, PF0-PF3 입력
                                                       
        ADMUX = 0x0;      // ADC0 단극성 입력 선택
        ADCSRA = 0x87;    // ADEN=1, 16MHz  256분주 -> 125kHz
        delay_ms(5);
        
         while(1){
               ADCSRA = 0xC7;                           // ADEN=1, ADSC = 1 변환 시작
               while((ADCSRA & 0x10) == 0);             // ADIF=1이 될떄까지
               ad_val = (int)ADCL + ((int)ADCH << 8);   // A/D 변환값 읽기     
              
               AD_disp(ad_val);    // A/D 변환값 표시
         }
}    

// A/D 변환값 표시
void AD_disp(int val)
{               
        float  fval;
        int  ival, buf;
        char N100, N10, N1;
       
        fval = (float)val * 5.0 / 1023.0;
        ival = (int)(fval  * 100.0 + 0.5);
       
        N100 = ival / 100;      // 정수부 추출
        buf = ival % 100;       
       
        N10 = buf / 10;         // 소수 첫째 자리 추출
        N1 = buf % 10;          // 소수 둘째 자리 추출

        PORTF = 0b11100000; // SEG 1(소수 둘째 자리 표시)  
       PORTB = seg_pat[N1];       
        delay_ms(1);
          
        PORTF = 0b11010000; // SEG 2(소수 첫째 자리 표시)
 PORTB = seg_pat[N10];             
 delay_ms(1);                         
 
      PORTF = 0b10110000; // SEG 3(정수부 표시)
        PORTB = seg_pat[N100];       
        delay_ms(1);
}

**************************************
        fval = (float)val * 5.0 / 1023.0;
        ival = (int)(fval  * 100.0 + 0.5);
**************************************
이부분이 이해가 안가요..정말 답답합니다..고수님들 부탁점 할게요..ㅜㅜ

댓글 4
  • 마이컴이 10bit AD 분해능을 가지므로 5V : 1024 = XV : 1 이렇게 해 보면 됩니다.

    즉, 마이컴에 들어오는 값이 0 ~ 1023 (총갯수1024) 인데요. 그것이 0V ~ 5V를 표현합니다.

    따라서 비례식으로 보시면 1의 변화량은 위와 같습니다.

    AD 채널에 5V가 들어간다고 하면 1023이 나와야 하는데 위의 식에 대입해 보세요.  val에 1023을 대입해 보시면

    5V가 나옵니다. 머 그런뜻이에요.

    ival = (int)(fval  * 100.0 + 0.5);  이것은 예를들어 fval 이 2.456볼트가 나온다고 하면 100을 곱했으니 245.6가 되고

    반올림 +0.5를 하니 246이 되겠네요.

    이런 뜻입니다.

    계산식같은 경우는 모를때 값을 대입해 보는것이 최고입니다.


  • No Profile
    어려워서 GG네요.
  • No Profile
    글쓴이 쭈우 08.12.11 16:12 댓글 좋아요 0 싫어요 0
    감사합니다...
    ^^
  • No Profile

    덕분에 알아갑니다 ㄳ 합니다^^:

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
352 마이크로프로세서 HOT차량 진단 스캐너를 만들려고 합니다.5 TreeOfDream 2669 2009.02.17
351 마이크로프로세서 HOTatm128 로 adc에 다수의 가변저항들을 연결방법좀알려주세요2 콩콩 3656 2009.01.31
350 마이크로프로세서 HOTAVR 입력회로 질문2 포비르 1563 2009.01.14
349 마이크로프로세서 HOTAVR 강좌란에 있는 칼만 필터에 관한2 챠리스만 2890 2009.01.14
348 마이크로프로세서 HOT모터 제어 관련 완전 초보입니다 도와주세요 ㅜ2 모터의신이되리 891 2009.01.10
347 Software & IDEs HOT데이터 전송 모듈... 류짜장 1036 2008.12.16
마이크로프로세서 HOT도와주세요..avr128 ADC 관련4 이정주 2435 2008.12.09
345 마이크로프로세서 HOT베틀로봇을 만들 만큼 충격에 강한 MCU를 알려 주세요.4 스텝빠스텝 1245 2008.12.04
344 마이크로프로세서 HOTATmega128을 이용해서 영상처리를 할려고 하는데여3 붉은개 2590 2008.12.03
343 마이크로프로세서 HOTAD 포트를 확장하고 싶습니다 ㅠㅠ2 코인 1011 2008.11.22
342 마이크로프로세서 HOT서보모터 제어 질문!!!9 암흑혜성 1541 2008.11.20
341 마이크로프로세서 HOTShoveler's Rhapsody(삽질하는 자의 광시곡)2 암흑혜성 3037 2008.11.18
340 마이크로프로세서 HOT초자 입문용 추천 도서 ?9 장군 1000 2008.11.17
339 Software & IDEs HOT8051 신호등 만들때 헤더파일 문제.1 마모루 1484 2008.11.16
338 마이크로프로세서 HOT안녕하세여1 qkdrkd 848 2008.11.07
337 마이크로프로세서 HOTsrf-05를 04모드로 사용 하는데.. 프로그램이.ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ4 콜록 2017 2008.10.31
336 마이크로프로세서 HOTpic 가뭔가요?3 용가리오빠 2890 2008.10.31
335 마이크로프로세서 HOTUSART통신질문입니다 고수님들 한말씀 부탁 드립니다 (--)(__)3 하고만다 1000 2008.10.30
334 마이크로프로세서 HOTop-amp 소자에 관한 질문입니다.2 고나영 2065 2008.10.30
333 마이크로프로세서 HOT스텝모터제어입니다(고수님들 한말씀씩 부탁요^^)4 하고만다 1398 2008.10.29
Prev 1 ... 36 37 38 39 40 41 42 43 44 45 ... 58 Next
  • 인간은 생각하는 것이 적으면 함부로 지껄인다.
    - 몽테스키외
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.