소스복사하기
다운로드: 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 #include #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이므로 계산은 다음과 같다. |