마이크로컴퓨터 실험 레포트(4)
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

마이크로컴퓨터 실험 레포트(4)에 대한 보고서 자료입니다.

목차

1. AD converter의 종류

2. ADCON0 & ADCON1 Register

3. A2D.c 프로그램 설명

4. Speed Direct.c 프로그램 설명

5. 레포트를 쓰고 나서...

본문내용

(PORTD); {
Delay_routine(Value);
PORTD가 왼쪽 방향으로 1개식 이동된다.
PORTD <<=1;
}
if(PORTD==0b00000000)
만약 PORTD가 0b00000000이 된다면, PORTD를 초기 값 0b00000001로 선언한다.
PORTD==0b00000001;
}
}
-RD0의 LED가 왼쪽 방향으로 1개식 shift 되고, 왼쪽 방향의 shift 속도를 가변저항으로 조정 할 수 있는 프로그램을 만들었다. 하지만, Delay_routine의 값이 최소 0, 최대 255로 Delay를 시켜도 눈에 보이지 않게 LED 전체가 켜 보일 뿐이다.
● Speed Direct1.c
Value(값이)가 unsigned(부호없는) int(10비트 변수(문자)형)이다. 최대 값 1023, 최소 값 0이다.
#include
unsigned int Value;
void Delay_routine(unsigned int Delay)
{
while(Delay--);
}
void main(void)
{
OSCCON = 0b01100000;
ANSEL = 0b00000001;
오른 쪽으로 정렬하고, 스위치 ON을 한다.
ADCON0 = 0b10000001;
ADCON1 = 0b00000000;
TRISA = 0b00000001;
Delay 값이 10에서 0이 될 때까지 시간만 보냄
TRISD = 0b00000000;
while(1){
Delay_routine(10);
Value 왼쪽으로 ADRESH 8비트를 이동한 것과 ADRESL을 더한다(OR)
GO_nDONE = 1;
while(GO_nDONE);
Value = (ADRESH<<8)| ADRESL;
최소 값 0, 최대 값 1023 Delay 시간이 char보다 4배 정도 늘어난다.
많이 적어주어 눈에 보이게 하였다.
while(PORTD); {
Delay_routine(Value);
Delay_routine(Value);
Delay_routine(Value);
PORTD <<=1;
PORTD가 왼쪽 방향으로 1개식 이동된다.
}
if(PORTD==0b00000000)
만약 PORTD가 0b00000000이 된다면, PORTD를 초기 값 0b00000001로 선언한다.
PORTD==0b00000001;
}
}
-RD0의 LED가 왼쪽 방향으로 1개식 shift 되고, 왼쪽 방향의 shift 속도를 가변저항으로 조정 할 수 있는 프로그램을 만들었다. 최소 값 0, 최대 값 1023 Delay 시간이 char보다 4배 정도 늘어난다. Delay_routine(Value); 이 것을 많이 적어주어 눈에 보이게 하였더니
가변저항을 최대치로 돌리면 빠르게 LED가 왼쪽 방향으로 1개식 shift 되고, 가변저항을 최소치로 돌리면 빠른 최대치 속도 보다 느리게 LED가 왼쪽 방향으로 1개식 shift 되었다.
● Speed Direct2.c
비트의 형식(1또는0)으로 SW_ON 변수를 선언하겠다.
#include
bit SW_ON;
unsigned int Value;
void Delay_routine(unsigned int Delay)
{
while(Delay--);
}
void AD_in(void)
{
Value 왼쪽으로 ADRESH 8비트를 이동한 것과 ADRESL을 더한다(OR)
GO_nDONE = 1;RB0를 입력포트로 사용하겠다.
while(GO_nDONE);
Value = (ADRESH<<8)| ADRESL;
}
void main(void)
{
오른 쪽으로 정렬하고, 스위치 ON을 한다.
OSCCON = 0b01100000;
ANSEL = 0b00000001;
ADCON0 = 0b10000001;
RA0를 사용한다.
ADCON1 = 0b00000000;
TRISA = 0b00000001;
RB0를 사용한다.
TRISB = 0b00000001;
TRISD = 0b00000000;
while(1){
AD_in();
if(!RB0){
Delay_routine(10000);
SW_ON^=1;
PORTD가 왼쪽방향으로 1씩 이동한다.
}
if(SW_ON){
Delay_routine(Value);
만약 PORTD가 0b00000000이 된다면, PORTD를 초기값 0b00000001로 선언한다.
PORTD <<=1;
if(PORTD==0b00000000)
PORTD==0b00000001;
}
SW3을 한번 누르면 PORTD값을 1씩 오른쪽으로 이동시킨다.
else{
Delay_routine(Value);
PORTD >>=1;
if(PORTD==0b00000000)
만약 PORTD가 0b00000000이 된다면, PORTD를 초기값 0b10000000로 선언한다.
PORTD==0b10000000;
}
}
}
-위의 프로그램과 전 시간에 배운 스위치를 응용하여 스위치를 누르면 LED 방향이 바뀌고, 가변 저항을 돌리면 속도가 조정 되는 프로그램을 만들었다. 결과 값은 아래와 같다.
5. 레포트를 쓰고 나서...
-AD converter가 Analog와 Digital 변환기로써, Lamp 타입, Successive approximation 타입, Flash 타입 등이 있고, ADCON0 & ADCON1 Register가 어떤 기능을 하는지, PIC16F917 MCU의 RD7에서 RD0를 발광 다이오드 D7에서 D0에 각각 연결하여 컴퓨터와 연결하고 스위치(SW3)을 가지고 컴퓨터가 인식하여 스위치로 LED를 작동 시키고, 가변저항을 연결하여 가변저항의 최대치, 최소치의 속도 조절을 할 수 있는 프로그램을 작성하여 실험 하였습니다. 한 주 씩 지나면 지날수록 한주의 배운 내용은 그렇게 어렵지 않은데 전 시간에 배웠던 것들과 응용하여 프로그램을 작성 하려고 하니까 기억이 잘 나지 않고, 어느 부분에 어떻게 프로그램을 넣어야 하나의 프로그램이 되는지 감이 잡히질 않았습니다. 이 미숙한 부분을 프로그래밍 연습을 하며 채워 나가야 될 것 같습니다.
마지막 프로그램의 결과를 보았을 때, 제가 동작 시켰다는 점에서 신기하였고, 이 신기함을 써먹을 수 있도록 열심히 하겠습니다.^^

키워드

전자,   전기,   컴퓨터,   마이컴,   공학
  • 가격1,000
  • 페이지수13페이지
  • 등록일2021.02.09
  • 저작시기2013.3
  • 파일형식한글(hwp)
  • 자료번호#1145120
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니