8051호환 칩셋인 at89s52를 이용하여 써미스터에서 받아온 아날로그 신호를 ADC0809로 디지털로 변환하여 8051의 시리얼 통신으로 PC의 하이퍼터미널 창에 온도 값을 뿌리는 하드웨어를 제작하였다.
그 하드웨어를 기반으로 정상 작동을 하는 소스를 만들었다.
소스를 보면.
#include <regx52.h> //비트 제어 하기 위한 헤더파일
#include delay_h.h
#include converter.h
#define EN 0x0A //커서를 내려준다.
#define TER 0x0D //커서를 젤 앞으로 보내준다.
unsigned char position = 0;
code char ADC_temp[206] = {
0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0,
0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0,
0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0,
0 ,1 ,1 ,2 ,2 ,2 ,3 ,3 ,4 ,4 , 4 ,5 ,5 ,6 ,6 ,6 ,7 ,7 ,7 ,8,
8 ,9 ,9 ,9 ,10,10,10,11,11,12, 12,12,13,13,13,14,14,14,15,15,
15,16,16,16,17,17,17,18,18,19, 19,19,20,20,20,21,21,21,22,22,
22,23,23,24,24,24,25,25,25,26, 26,26,27,27,27,28,28,29,29,29,
30,30,30,31,31,32,32,32,33,33, 33,34,34,35,35,35,36,36,37,37,
37,38,38,38,39,39,40,40,41,41, 42,42,43,43,44,44,45,45,46,46,
47,47,48,48,49,49,50,50,51,51, 52,52,53,53,53,55,55,56,56,57,
58,58,59,59,60
};
# 결과 예측
이 소스를 보면 ADC0809의 IN0로 써미스터의 아날로그 신호가 들어 옴을 알수 있다.
GET_ADC_DATA가 실행됨으로서 디지털신호로의 변환이 일어 나고 소스에 따라 시리얼로 값을 뿌리는 것을 알수 있다.
하이퍼터미널 창에 온도 값이 실시간으로 변화면서 계속적으로 출력 될 것이다.