회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
847 자유주제 HOT안D로ID4 lovedoremi 2358 2008.12.12
846 자유주제 HOT회로도가3 빛나는 영혼 5422 2008.12.11
845 자유주제 HOT오늘은 많이 따뜻하네여~ 오후에도 행복한 시간되세요~ 늘푸른쉼터 2369 2008.12.10
844 자유주제 HOT2008년도 저물어가는 언덕에 서서 쏘나 4740 2008.12.10
843 자유주제 HOT왜 이렇게 할게 많을까... ㅠ.ㅠ lovedoremi 2633 2008.12.09
842 자유주제 HOT1주간 낚시왕~ 1위 ^^2 lovedoremi 4703 2008.12.09
841 자유주제 HOT여기오는 사람들... 실력이 엄청나다... ㅠ.ㅠ lovedoremi 2483 2008.12.08
840 자유주제 HOT영화 lovedoremi 2874 2008.12.08
839 자유주제 HOT인생은 쇼다~~~5 lovedoremi 2986 2008.12.07
838 자유주제 HOT빰빠라빰빠~ 푸하하하하. 오빠~... 한예슬과 강호동이 나누는 대화 내용... lovedoremi 2495 2008.12.07
837 자유주제 HOT날씨가 엄청 추운 주말입니다. 감기조심하십시요. 쏘나 2492 2008.12.06
836 자유주제 HOT11시 58분. 너구리 라면 한마리 몰고 갈까나... ㅋㅋ lovedoremi 5445 2008.12.06
835 자유주제 HOT라디오4 lovedoremi 2595 2008.12.05
834 자유주제 HOT비가 오다가 말다가 하네요. 풍운 2579 2008.12.04
833 자유주제 HOT남은건 뭐지... 케이블이 없어 부트로더 다운로드를 할 수 없내 -_- lovedoremi 2519 2008.12.03
832 자유주제 HOT길을 걷다가 드는 생각2 lovedoremi 2587 2008.12.03
831 자유주제 HOT갑자기1 빛나는 영혼 2499 2008.12.03
830 자유주제 HOT텀프로젝트 힘드네요2 태상노군 4433 2008.12.03
829 자유주제 HOT이렇게 기쁠때가.....2 あさひ 2473 2008.12.03
828 자유주제 HOT갑자기 밀려오는 걱정...4 lovedoremi 2550 2008.12.02
Prev 1 ... 88 89 90 91 92 93 94 95 96 97 ... 135 Next
  • 돈은 빌리지도 말고, 빌려주지도 말라. 빌려주면 흔히 돈과 친구 모두를 잃는 수가 있기 때문이다.
    - 세익스피어
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.