목차
문제 1. DS1620 소자의 각 핀의 기능에 대해 설명하시오.
문제 2. DS1620 내부의 다음 두 레지스터의 기능에 관해 설명하시오.
문제 3. 실험에 이용되는 프로그램에서 <ReadDS1620> 서브루틴의 동작 원리를 설명하시오.
문제 4. DS1620에서 다음 값을 출력하였다. 이 경우 이 값이 실제의 온도 값으로 변환되어 LCD에 디스플레이 되는 과정을 아래의 프로그램을 이용하여 설명하시오.
문제 2. DS1620 내부의 다음 두 레지스터의 기능에 관해 설명하시오.
문제 3. 실험에 이용되는 프로그램에서 <ReadDS1620> 서브루틴의 동작 원리를 설명하시오.
문제 4. DS1620에서 다음 값을 출력하였다. 이 경우 이 값이 실제의 온도 값으로 변환되어 LCD에 디스플레이 되는 과정을 아래의 프로그램을 이용하여 설명하시오.
본문내용
Word); // Hex 값을 디스플레이를 위해 Decimal로 바꿈
HexToASCII(BuffWord); // 저장된 Decimal 데이터를 ASCII 코드로 바꿈
if(Temp[2]>0x30) Cput(Temp[2]); // 온도 디스플레이, 100자리 수가 0면 표시하지 않음
if(Temp[1]>0x30) Cput(Temp[1]); // 온도 디스플레이, 100자리 수가 0면 표시하지 않음
Cput(Temp[0]);
Cput(0);
Cput('C');
Put_String(" ::::");
delay_ms(300);
}
(a) 000110010
- BuffWord = 0 0011 0010이다. 부호를 따지기 위해 0x100과 AND 연산을 하면 giho = 0x000이며 양수임을 말한다. 분해능이 0.5이므로 2로 나누는 문장 BuffWord>>=1을 해서 8비트로 바꾸어 주면
BuffWord = 00011001 이된다.(이때 마지막 0.5는 버린다) 온도 데이터를 제외한 모든 값들을 버리기 위해 0x7f와 &= 연산을 하면 그대로 00011001이고 조건문에 대해 0℃초과이므로 ‘+’를 LCD에 디스플레이 한다. 그리고 이 Hex 값을 디스플레이 하기 위해 Decimal로 바꾸고 ASCII를 인식하는 LCD를 위해 다시 ASCII로 바꾼다. 그리하여 00011001 = 25이고 부호비트 +가 더해져서 , +25°가 출력이 된다.
(b) 111001110
- BuffWord = 1 1100 1110이다. 부호계산을 위해 0x100과 AND연산을 하면 giho = 0x100이며 이는 음수임을 말한다. BuffWord>>=1을 해서 8비트로 바꾸어지면 11100111이되고, 다시 0x7f와 &=연산을 하면 01100111이 된다. 대해 giho>0이므로 0° 미만이므로 signed int로 바꾸기 위해 0x80을 뺀다.
조건문에 대해 BuffWord<0이므로 ‘-’ 를 LCD에 디스플레이 하고 숫자를 디스플레이하기 위해 데이터 변환을 한다. Buff &= 0xff로 -1을 해주고 Buff = 0x100-BuffWord 해주어서 비트를 반전시킨다. 이 Hex 값을 디스플레이하기위해 Decimal로 바꾸고 다시 ASCII로 바꾸어서 결국 부호비트 ‘-’에 온도 값은
00011001 = 25가 돼서 LCD에는 -25°가 출력이 된다.
참고로 1620 디지털 출력과 온도를 비교해서 보아도 알 수 있다.
HexToASCII(BuffWord); // 저장된 Decimal 데이터를 ASCII 코드로 바꿈
if(Temp[2]>0x30) Cput(Temp[2]); // 온도 디스플레이, 100자리 수가 0면 표시하지 않음
if(Temp[1]>0x30) Cput(Temp[1]); // 온도 디스플레이, 100자리 수가 0면 표시하지 않음
Cput(Temp[0]);
Cput(0);
Cput('C');
Put_String(" ::::");
delay_ms(300);
}
(a) 000110010
- BuffWord = 0 0011 0010이다. 부호를 따지기 위해 0x100과 AND 연산을 하면 giho = 0x000이며 양수임을 말한다. 분해능이 0.5이므로 2로 나누는 문장 BuffWord>>=1을 해서 8비트로 바꾸어 주면
BuffWord = 00011001 이된다.(이때 마지막 0.5는 버린다) 온도 데이터를 제외한 모든 값들을 버리기 위해 0x7f와 &= 연산을 하면 그대로 00011001이고 조건문에 대해 0℃초과이므로 ‘+’를 LCD에 디스플레이 한다. 그리고 이 Hex 값을 디스플레이 하기 위해 Decimal로 바꾸고 ASCII를 인식하는 LCD를 위해 다시 ASCII로 바꾼다. 그리하여 00011001 = 25이고 부호비트 +가 더해져서 , +25°가 출력이 된다.
(b) 111001110
- BuffWord = 1 1100 1110이다. 부호계산을 위해 0x100과 AND연산을 하면 giho = 0x100이며 이는 음수임을 말한다. BuffWord>>=1을 해서 8비트로 바꾸어지면 11100111이되고, 다시 0x7f와 &=연산을 하면 01100111이 된다. 대해 giho>0이므로 0° 미만이므로 signed int로 바꾸기 위해 0x80을 뺀다.
조건문에 대해 BuffWord<0이므로 ‘-’ 를 LCD에 디스플레이 하고 숫자를 디스플레이하기 위해 데이터 변환을 한다. Buff &= 0xff로 -1을 해주고 Buff = 0x100-BuffWord 해주어서 비트를 반전시킨다. 이 Hex 값을 디스플레이하기위해 Decimal로 바꾸고 다시 ASCII로 바꾸어서 결국 부호비트 ‘-’에 온도 값은
00011001 = 25가 돼서 LCD에는 -25°가 출력이 된다.
참고로 1620 디지털 출력과 온도를 비교해서 보아도 알 수 있다.
키워드
추천자료
- [공과대]-마이크로 프로세스의 구성요소,레지스터,외부 핀기능
- 마이크로 컨트롤러란?
- 마이크로 채널
- 대학물리실험 예비실험보고서 - 길이 및 곡률 반지름 측정
- AVR마이크로컨트롤러 연습문제
- 마이크로웨이브에너지를 이용한 CdS나노분말 합성
- [일반물리학실험Ⅰ] 3장. 빛지레를 이용한 물체의 두께 측정 (결과레포트)
- 기계공학 기초실험 (정밀측정)
- 마이크로웨이브(마이크로파) 결과보고서
- 마이켈슨간섭계 실험
- 마이크로 비커스 경도 시험
- 기계공학실험 - 경도시험 (브리넬 경도, 로크웰 경도, 쇼어 경도, 비커스 경도)
- 버니어 캘리퍼(Vernier calliper)와 마이크로미터(Micrometer)의 측정법 [물리학] : 물체의 ...
- 홍익대학교 기계공학실험 PSD센서 실험보고서
소개글