[마이크로프로세서응용실험] (결과) 실험 10: 온도 센서
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

[마이크로프로세서응용실험] (결과) 실험 10: 온도 센서에 대한 보고서 자료입니다.

목차

문제 1.
a) 현재의 실내 온도가 어떻게 되는지 측정하시오.
b) 손가락, 입김 등으로 DS1620 온도소자의 측정온도를 변화시켜보고, 그 결과를 측정하시오.

문제 2. TH 레지스터를 현재 실내 온도보다 약간 높게 설정하여 손으로 온도센서 칩을 수 초 접촉할 때 P1.0의 LED가 켜지

문제 3. TL 레지스터를 20°C로 설정하고 온도가 낮으면 P1.1의 LED가 켜지도록 프로그램을 작성하시오. 이런 기능을 어떤 곳에 이용할 수 있을지 설명하시오.

문제 4. 실험 키트에서 8051 MCU와 DS1620 소자가 어떻게 연결되는지를 그림으로 보이시오. 이 때 8051의 Port 1에 DS1620(온도센서)과 DS1302(RTC)가 함께 연결되어 있는데 이들을 어떻게 구별하여 데이터를 주고받을 수 있는지에 관해 설명하시오.

※ 검토 및 고찰

본문내용

0~3의 LED로 sbit LED3 = P1^2;define 하는 문장을 추가했다.
sibt LED4 = P1^3;
- -----------
void main()
{
unsigned char ReadValue;
LED1 = 0;// P1.0의 LED를 0으로 초기화 시킨다.
InitDs1620();
Lcd_Clr();
Put_String(\"Control the\");
Line2();
Put_String(\"Temp. Sensor....\");
CmdTempWrite9(WRITE_TH, 72);
// WRITE_TH 명령을 하고, TH값을 입력한다. 프로토콜 다음에 9비트 TH 레지스터에 사용자가 설정하고자 하는 data가 쓰여진다. Decimal로 쓰던지, Hexa로 쓰던지 문제는 없지만 이 1620 온도센서는 분해능이 0.5°이다. 우리가 쓰는 값이 실제로 1620이 인식해서 입력될 때는 절반이 되는 셈이다. 즉, 함수에 72°를 적으면 TH에는 36°가 쓰여지는 것이다. 따라서 이것에 주의해서 우리가 생각하고자 하는 값의 2배를 해서 함수에 사용할 수 있다.
for(ReadValue=0;ReadValue<8;ReadValue++){ // \'°\'폰트를 위해 CGRAM에 폰트데이터 씀
Cg_Ram_Write(ReadValue,Font[ReadValue]);
}
while(1){
DisplayTemp();
if ((CmdDataRead(READ_CONFIG) & 0x40) == 0x40)
{
LED1 = 1;
}
//CmdDataRead()함수를 사용해서 명령을 한 후에 8비트 데이터 값을 읽어들인다. 함수의 cmd로 READ_CONFIG를 넣으면 아래와 같은 config 레지스터의 값을 읽어들인다.
설정한 TH 값보다 온도가 높으면 이 레지스터의 THF 비트가 1이된다. 다른 비트는 무시하고 THF 비트만 확인하려고 할 때, if 조건문에서 읽어들인 config레지스터의 값에 0x40
( 01000000 )을 AND연산해서 나온 결과와 0x40 ( 01000000 )이 같은지 비교하면 THF 비트 값이 1인지 아닌지 알 수 있게 된다. 따라서 이 조건문이 맞으면 THF가 1이라는 것이므로 if문 안의 LED1 ON 문장을 실행시킨다.
}
}
따라서 이 수정된 프로그램을 실행시키면 현재 실내온도가 33° 일 때, 8051키트의 1620 온도센서를 손으로 접촉시켜서 온도를 높이면 온도가 36° (TH 설정값)가
  • 가격2,800
  • 페이지수6페이지
  • 등록일2014.03.16
  • 저작시기2014.1
  • 파일형식한글(hwp)
  • 자료번호#908213
본 자료는 최근 2주간 다운받은 회원이 없습니다.
다운로드 장바구니