회원가입 ID/PW 찾기
AA

안녕하세요 졸업작품을 할려고하는데 이해가 가지를 안아서요
이렇게 질문합니다

제가 하고자 하는것이
89S 51이용해서 온도센서 (LM35DZ)를 값을 ADC로 읽어서온도값 세그먼트에 출력하는것을 만드려합니다
온도센서 ADC IN4핀을 사용
(P1.0 ~P1.7)ADC연결
(P0.0~0.7)세그먼트2개
(P2.0~2.3)세그먼트1개 총3개 를 사용하였습니다
제가 생각하기론 ~~ 세그먼트부분 빨간색부분만 고치면 될것같은데
죄송하지만 그부분만 수정좀 해주시면 감사합니다^_^; 잘이해가 안되네요

앗 이해가 가지 않으시다면... 파일 첨부하였으니까 좀 세그먼트로 나오게 부탁드립니다



#include <io51.h>

#define XBYTE ((unsigned char volatile xdata *)0)
#define ADC_START   XBYTE[0X9005]
#define ADC_READ    XBYTE[0XD000]
#define seg1_EN     XBYTE[0X8000]
#define seg1_dataL  XBYTE[0X8100]
#define seg1_dataH  XBYTE[0X8102]

unsigned char AD_5CH = 0;


void dealy (unsigned int time_)
  {
    unsigned int i;
      for(i=0 ; i < time_ ; i++);
  }

void Hard_seg_sel(char seg_1, char seg_2 , char seg_3 , char seg_4)
  {
    seg1_EN    =  0x01;
    seg1_dataL =  seg_3 <<4 | seg_4 ;
    seg1_dataH =  seg_1 <<4 | seg_2 ;
  }

void seg_out(unsigned char dat)
  {
   char ch_4=0;
   char ch_3=0;
   char ch_2=0;
   char ch_1=0;
   ch_4 = dat % 10;
   Hard_seg_sel(0,0,0,ch_4);
   dat = dat / 10;
   ch_3 = dat % 10;
   Hard_seg_sel(0,0,ch_3,ch_4);
   dat = dat / 10;
   ch_2 = dat % 10;
   Hard_seg_sel(0,ch_2,ch_3,ch_4);
   dat = dat / 10;
   Hard_seg_sel(ch_1,ch_2,ch_3,ch_4);
  }


void main(void)
  {
    unsigned int i ;
    unsigned char LM35_dat;
    while(1)
      {
        ADC_START = 0x00;
        for(i=0 ; i<200; i++);

        AD_5CH = ADC_READ ;

        LM35_dat = AD_5CH/2;

        seg_out(LM35_dat);
       
      
      }
}   

댓글 1

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

search
번호 분류 제목 글쓴이 조회 수 날짜
등록된 글이 없습니다.
  • 나는 갈매기
    - 테레시코바
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.