2016년 4월 25일 월요일

AVR 스탑워치 (StopWatch) 만들기AVR스탑워치,초시계,디지털초시계,atmega128,회로도,소스코드,동작원리,스톱워치,타이머

AVR 스탑워치 (StopWatch) 만들기AVR스탑워치,초시계,디지털초시계,atmega128,회로도,소스코드,동작원리,스톱워치,타이머
AVR 스탑워치(StopWatch) 만들기.zip


목차
Ⅰ. 목 표

Ⅱ. 개발환경

Ⅲ. AVR을 이용한 스탑워치 설계
1. 부품리스트
2. 회로도
3. 소스코드
4. 실험결과
5. 원리 및 동작해석

본문
Ⅰ. 목 표

AVR ATmega128을 이용하여 스탑워치(Stop Watch)를 구현해본다. 분:초:프레임(1/100) 의 구성으로 00:00:00 ~ 59:59:99 의 범위안의 시간을 카운팅한다. 그리고 Start, Stop, Reset 스위치 버튼을 이용해서 스탑워치의 시간을 시작하고, 멈추고, 초기화시킬 수 있도록 한다.
AVR의 Timer/Counter 기능을 이용하고 7-Segmnet를 이용하여 숫자를 출력하여 스탑워치를 구현한다.

Ⅱ. 개발환경

OS : Windows
Program tool : AVR Studio, Atmel studio
Compiler : AVR-GCC
Language : C language
AVR MCU : ATmega128

<중략>
#include <avr/interrupt.h>
#include <util/delay.h>

#define Fnd_delay 3 // FND Dynamic display 방식의 출력지연(mSec)

unsigned int min = 0, sec = 0;
unsigned int min_d1,min_d2,sec_d1,sec_d2,frm_d1,frm_d2;
unsigned int stop_flag = 0;
unsigned int count=0;

<중략>

위의 결과와 같이 시:분:프레임이 세그먼트에 1/100 Sec 단위로 표시되는 것을 확인 할 수 있다. Stop 버튼을 누르면 시간이 멈추고 Start 버튼을 누르면 다시 시간이 카운팅 된다. Reset 버튼을 누르면 시간이 00:00:00으로 초기화 된다.

- 원리 및 동작해석

1/100 Sec 단위 카운팅

본 스탑워치는 1/100 Sec 단위로 카운팅되면서 시간이 표시된다. 때문에 AVR의 Timer/Counter 기능을 이용하여 1/100 Sec 즉, 100hz의 주파수를 만들어 줄 필요가 있다.
그러기 위해서 16 bit인 Timer/Counter 1 를 CTC 모드로 사용하였다. 그리고 프리스케일러의 분주비는 256, OCR1A 의 값은 624이므로 계산은 다음과 같다.

하고 싶은 말
제가 직접 실험하고 공부한 레포트를 정리해서 작성한 압축문서입니다.

구성 : 보고서, 회로도, 소스코드, 결과사진/동영상

보고서에 실험환경이나 사용된 부품리스트 등이 나와 있기때문에
제공되는 소스코드와 회로도대로만 하시면 의도된 결과가 나올 것 입니다.
소스코드에는 주석이 디테일하게 기술되어 있고 실험마다 해설을 서술하여
공부하시고 이해하시기 좋도록 작성된 보고서입니다.

실행결과에 대한 사진과 동영상 파일도 첨부되어서
실험하시거나, 보고서를 작성하실 때 도움이 되실거라 생각합니다.

키워드
AVR스탑워치, atmega128초시계, 디지털초시계, 회로도, 타이머카운터

댓글 없음:

댓글 쓰기