목차
1. 프로그램 Hellow_World.c 구성 요소 설명
2. 프로그램 Blink_LED.c 구성 요소 설명
3. 다른 패턴으로 LED를 ON시키는 새 프로그램의 작성과 설명
4. LED 조명 주기를 변경하는 새 프로그램의 작성과 설명
5. 레포트를 쓰고 나서...
2. 프로그램 Blink_LED.c 구성 요소 설명
3. 다른 패턴으로 LED를 ON시키는 새 프로그램의 작성과 설명
4. LED 조명 주기를 변경하는 새 프로그램의 작성과 설명
5. 레포트를 쓰고 나서...
본문내용
마이크로컴퓨터 실습 레포트
< 1 >
학과 전자정보계열
이름 백 * *
교수명 강 * *
작성일 03.29.일
목 차
0. 하드웨어 연결
PIC16F917
MCU
LED x 8 270 x 8
GND
1. 프로그램 Hellow_World.c 구성 요소 설명
OSCCON값이 0b01100000; 이므로 4MHz이다.
· Hellow_World.c
#include
PORTD가 0b00001111; 이기 때문에 00001111을 출력한다.
void main(void)
{
OSCCON = 0b01100000;
ANSEL = 0b00000000;
TRISD = 0b00000000;
PORTD = 0b00001111;
TRISD값이 0b00000000; 이므로 출력포트이다.
while(1);
}
· Hellow_World.c 구성 요소 설명
-OSCCON : 내부 발진 회로 제어로써 최대치는 8MHz이다.
ex)8MHz -> (0)111
4MHz -> 0110
2MHz -> 0101
-TRISD : 3 상태 논리(Tri-State Logic)로써 PORTD를 제어하는 역할을 한다. 아래의 그림은 3 상태 논리를 출력 포트로 제어하는 모습과 입력 포트로 제어하는 모습을 나타낸다.
신호가 나감(출력포트)
신호가 들어감(입력포트)
2. 프로그램 Blink_LED.c 구성 요소 설명
· Blink_LED.c
#include
int Delay;
void main(void)
{
OSCCON = 0b01100000;
ANSEL = 0b00000000;
TRISD = 0b00000000;
PORTD = 0b00000000;
while문이 1이기에 아래 값을 실행한다.
while(1)
{
RD0 = 1;
Delay = 10000;
while(--Delay);
RD0 = 0;
Delay = 10000;
while(--Delay);
}
}
· Blink_LED.c 구성 요소 설명
-int Delay; : Delay를 int(정수형)으로 선언한다.
-while : while(1) 또는 while(True)이면 while문 아래 값을 실행하고 while(0) 또는 while(Fail)이면 while문 아래 값을 실행하지 않는다.
-RD0 = 1; : RD0을 ON시킨다.
-설명 : RD0가 ON일 때, Delay 값은 10000 이고 1씩 감소한다. 그리고 RD0가 OFF일 때도, Delay 값 10000에서 1씩 감소하는 것을 반복 한다. 이때 dute factor은 50%이다.
D = x 100[%]
= x 100
= 50[%]
따라서 RD0가 1대 1 비율로 켜졌다 꺼졌다를 반복한다.
3. 다른 패턴으로 LED를 ON시키는 새 프로그램의 작성과 설명
· Hellow_World.c
#include
void main(void)
{
OSCCON = 0b01100000;
ANSEL = 0b00000000;
TRISD = 0b00000000;
RD0 = 1;
while(1);
}
· Hellow_World.c 설명
-TRISD의 값이 0b00000000 이므로 전부 출력하는 출력포트가 된다. RD0 =1;은 RD0에만 ON을 시킨다는 말이다. PORTD = 0b00000001; 이라고 입력한 값과 같은 의미이기에 더욱 짧아진 값으로 편하게 사용 할 수 있다.
4. LED 조명 주기를 변경하는 새 프로그램의 작성과 설명
· Blink_LED.c
#include
#define _XTAL_FREQ 4000000
void main(void)
{
OSCCON = 0b01100000;
ANSEL = 0b00000000;
TRISD = 0b00000000;
PORTD = 0b00000000;
while(1)
RD0이 ON일 때 delay는 25ms
{
RD0 = 1;
RD0이 OFF 때 delay는 975ms
__delay_ms(25);
RD0 = 0;
__delay_ms(975);
}
}
· Blink_LED.c 설명
-RD0가 1이면 ON이 되고, ON이 되는 시간은 25ms이고 RD0가 0이면 OFF가 되고, OFF가 되는 시간은 975ms이다. 이 과정을 반복해서 실행한다.
975
25
1000ms = 1 sec
D = x 100[%]
= x 100
= 2.5%
5. 레포트를 쓰고 나서...
-1학년 때 C프로그래밍이 복학 후 전혀 기억도 나지 않았고 그렇게 잘하지도 못했습니다. 이 과목을 통해 C프로그래밍의 기초를 다시 복습하고 LED를 내 마음대로 ON, OFF 시킬 수 있다는 것과 LED의 주기를 조정해 깜빡거리게 만들 수 있는 것을 배우니 정말 재밋어 흥미를 느끼게 만들어 주었습니다. 감사합니다.
< 1 >
학과 전자정보계열
이름 백 * *
교수명 강 * *
작성일 03.29.일
목 차
0. 하드웨어 연결
PIC16F917
MCU
LED x 8 270 x 8
GND
1. 프로그램 Hellow_World.c 구성 요소 설명
OSCCON값이 0b01100000; 이므로 4MHz이다.
· Hellow_World.c
#include
PORTD가 0b00001111; 이기 때문에 00001111을 출력한다.
void main(void)
{
OSCCON = 0b01100000;
ANSEL = 0b00000000;
TRISD = 0b00000000;
PORTD = 0b00001111;
TRISD값이 0b00000000; 이므로 출력포트이다.
while(1);
}
· Hellow_World.c 구성 요소 설명
-OSCCON : 내부 발진 회로 제어로써 최대치는 8MHz이다.
ex)8MHz -> (0)111
4MHz -> 0110
2MHz -> 0101
-TRISD : 3 상태 논리(Tri-State Logic)로써 PORTD를 제어하는 역할을 한다. 아래의 그림은 3 상태 논리를 출력 포트로 제어하는 모습과 입력 포트로 제어하는 모습을 나타낸다.
신호가 나감(출력포트)
신호가 들어감(입력포트)
2. 프로그램 Blink_LED.c 구성 요소 설명
· Blink_LED.c
#include
int Delay;
void main(void)
{
OSCCON = 0b01100000;
ANSEL = 0b00000000;
TRISD = 0b00000000;
PORTD = 0b00000000;
while문이 1이기에 아래 값을 실행한다.
while(1)
{
RD0 = 1;
Delay = 10000;
while(--Delay);
RD0 = 0;
Delay = 10000;
while(--Delay);
}
}
· Blink_LED.c 구성 요소 설명
-int Delay; : Delay를 int(정수형)으로 선언한다.
-while : while(1) 또는 while(True)이면 while문 아래 값을 실행하고 while(0) 또는 while(Fail)이면 while문 아래 값을 실행하지 않는다.
-RD0 = 1; : RD0을 ON시킨다.
-설명 : RD0가 ON일 때, Delay 값은 10000 이고 1씩 감소한다. 그리고 RD0가 OFF일 때도, Delay 값 10000에서 1씩 감소하는 것을 반복 한다. 이때 dute factor은 50%이다.
D = x 100[%]
= x 100
= 50[%]
따라서 RD0가 1대 1 비율로 켜졌다 꺼졌다를 반복한다.
3. 다른 패턴으로 LED를 ON시키는 새 프로그램의 작성과 설명
· Hellow_World.c
#include
void main(void)
{
OSCCON = 0b01100000;
ANSEL = 0b00000000;
TRISD = 0b00000000;
RD0 = 1;
while(1);
}
· Hellow_World.c 설명
-TRISD의 값이 0b00000000 이므로 전부 출력하는 출력포트가 된다. RD0 =1;은 RD0에만 ON을 시킨다는 말이다. PORTD = 0b00000001; 이라고 입력한 값과 같은 의미이기에 더욱 짧아진 값으로 편하게 사용 할 수 있다.
4. LED 조명 주기를 변경하는 새 프로그램의 작성과 설명
· Blink_LED.c
#include
#define _XTAL_FREQ 4000000
void main(void)
{
OSCCON = 0b01100000;
ANSEL = 0b00000000;
TRISD = 0b00000000;
PORTD = 0b00000000;
while(1)
RD0이 ON일 때 delay는 25ms
{
RD0 = 1;
RD0이 OFF 때 delay는 975ms
__delay_ms(25);
RD0 = 0;
__delay_ms(975);
}
}
· Blink_LED.c 설명
-RD0가 1이면 ON이 되고, ON이 되는 시간은 25ms이고 RD0가 0이면 OFF가 되고, OFF가 되는 시간은 975ms이다. 이 과정을 반복해서 실행한다.
975
25
1000ms = 1 sec
D = x 100[%]
= x 100
= 2.5%
5. 레포트를 쓰고 나서...
-1학년 때 C프로그래밍이 복학 후 전혀 기억도 나지 않았고 그렇게 잘하지도 못했습니다. 이 과목을 통해 C프로그래밍의 기초를 다시 복습하고 LED를 내 마음대로 ON, OFF 시킬 수 있다는 것과 LED의 주기를 조정해 깜빡거리게 만들 수 있는 것을 배우니 정말 재밋어 흥미를 느끼게 만들어 주었습니다. 감사합니다.
소개글