안녕하세요 졸업작품을 할려고하는데 이해가 가지를 안아서요
이렇게 질문합니다
제가 하고자 하는것이
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);
}
}