[설계 결과 보고서] Processor(ATmega128)을 이용한 7-Segment Control
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

[설계 결과 보고서] Processor(ATmega128)을 이용한 7-Segment Control에 대한 보고서 자료입니다.

목차

1.명제
2.관련이론
 (1)ATmega128
 (2)IAR C
 (3)Language
3.회로 블록도
4.C Program Source 블록도
5.C Program Source 설명
 (1)Up/Down Counter
 (2)짝수 Up/Down Counter
 (3)홀수 Up/Down Counter
 (4)짝‧홀수 Up Counter
 (5)짝‧홀수 Down Counter
6.설계 과정
7.설계 회로도
8.테스트 결과
9.결과

본문내용

한 main부분
Source
설명
void main(void)
{
Init_control();
int num = 11;
while(1)
{
if(PIND == 0xfe)
{
if(num <= 1) num=11;
DispSeg(num-=2);
LDelay(20);
}
else if(PIND == 0xff)
{
if(num >= 11) num=-1;
DispSeg(num+=2);
LDelay(20);
}
}
}
main
main 작성 시작
Init_control 로드
int형 정수 num을 11로 초기화
while문
while문 시작
if문(D PIN이 0이면)
if문 시작
if num이 1보다 작거나 같으면 11으로 초기화
DispSeg에서 num이 2씩 감소
Delay 함수
if문 종료
if문(D PIN이 1이면)
if문 시작
if num이 11보다 크거나 같으면 -1로 초기화
DispSeg에서 num이 2씩 증가
Delay 함수
if문 종료
whil문 종료
main 종료
(4) 짝홀수 Up Counter
- 중복부분을 제외한 main부분
Source
설명
void main(void)
{
Init_control();
int num = 0;
while(1)
{
if(PIND == 0xfe)
{ if(num==1,num==3,num==5,num==7,num==9) num=num+1;
if(num >= 8) num=-2;
DispSeg(num+=2);
LDelay(20);
}
else if(PIND == 0xff)
{
if(num==num==0,num==2,num==4,num==6,num==8,num==10) num=num+1;
if(num >= 11) num=-1;
DispSeg(num+=2);
LDelay(20);
}
}
}
main
main 작성 시작
Init_control 로드
int형 정수 num을 0으로 초기화
while문
while문 시작
if문(D PIN이 0이면)
if문 시작
if num이 홀수이면 1을 더함
if num이 8보다 크거나 같으면 2로 초기화
DispSeg에서 num이 2씩 증가
Delay 함수
if문 종료
if문(D PIN이 1이면)
if문 시작
if num이 짝수이면 1을 더함
if num이 11보다 크거나 같으면 -1로 초기화
DispSeg에서 num이 2씩 증가
Delay 함수
if문 종료
whil문 종료
main 종료
(5) 짝홀수 Down Counter
- 중복부분을 제외한 main부분
Source
설명
void main(void)
{
Init_control();
int num = 0;
while(1)
{
if(PIND == 0xfe)
{
if(num==1,num==3,num==5,num==7,num==9) num=num+1;
if(num <= 0) num=10;
DispSeg(num-=2);
LDelay(20);
}
else if(PIND == 0xff)
{
if(num==0,num==2,num==4,num==6,num==8,num==10) num=num+1;
if(num <= -1) num=11;
DispSeg(num-=2);
LDelay(20);
}
}
}
main
main 작성 시작
Init_control 로드
int형 정수 num을 0으로 초기화
while문
while문 시작
if문(D PIN이 0이면)
if문 시작
if num이 홀수이면 1을 더함
if num이 0보다 작거나 같으면 10으로 초기화
DispSeg에서 num이 2씩 감소
Delay 함수
if문 종료
if문(D PIN이 1이면)
if문 시작
if num이 짝수이면 1을 더함
if num이 11보다 크거나 같으면 -1로 초기화
DispSeg에서 num이 2씩 감소
Delay 함수
if문 종료
whil문 종료
main 종료
6. 설계과정
1. 회로를 구성한다.
2. IAR Embedded Workbench로 작성한 C언어를 compile 하여 .hex 파일을 얻는다.
3. PonyProg2000 의 프로그램으로 ATmega128 Kit에 주입한다.
4. 회로가 설계한 것과 동일하게 작동되는지 확인한다.
7. 설계 회로도
8. 테스트 결과(사진)
9. 결과
이번 설계는 Processor(ATmega128)을 이용하여 기존에 제작된 7-Segment기판을 Control하는 것이다. ATmega128을 Control하기 위해서는 ATmega128에 C언어로 제작된 해당 프로그램을 주입시키면 된다. 그 결과 7-Segment는 내가 Program한 대로 작동을 해 주었고, C언어를 변형시킬 때 마다 그에 해당되는 출력값을 내보내게 되었다. 위에 작성된 C언어처럼 Up/Down Counter, 짝홀수 Up/Down Counter, Up/Down Counter Break! 등이 기존에 계획했던 대로 작동됨을 볼 수 있었다.
이번 설계를 하면서 ATmega128의 사용법과 C언어를 통해 Control할 수 있다는 걸 확인할 수 있었다. C언어에서 어느 방식으로 Program을 짜느냐에 따라 많은 변화를 가지고 올 수 있었다. 이러한 방식으로 같은 하드웨어를 다양한 방식으로 제어를 할 수 있음을 알 수 있었다.
ATmega128을 Programming하면서 많은 시행착오를 거치게 되었다. 작업공간이 한정되어있고, 실제로 Compile한 Program이 정상 작동을 하지 않고 오작동을 하는 경우도 있었으며, Kit가 오작동 하면서 주입이 불가한 상태가 된 Kit도 있었다. 하지만 이러한 부분을 조금씩 보완해 가면서 계속 시도한 결과 위와 같은 결과의 Source를 얻게 되었고 따라서 Program으로 7-Segment를 제어하게 되었다.
이번 제어는 많은 것을 시사하고 있다. 지금은 간단한 회로와 간단한 Source로 이루어 져 있지만, 좀 더 세밀하고 복잡한 회로에서는 더욱 많은 기능을 부여할 수 있다. 비록 이번 설계가 단순한 작업에서 비롯된 것이지만 앞으로 동일하거나 유사한 Micro-Controller를 사용할 경우 많은 기초 지식을 배양할 수 있는 설계가 되었다. 이번 설계는 앞으로 전자공학을 다니면서 나에게 더욱 많은 경험과 지식을 얻게 해 준 결과물이다.
  • 가격2,000
  • 페이지수11페이지
  • 등록일2012.03.31
  • 저작시기2010.12
  • 파일형식한글(hwp)
  • 자료번호#737253
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니