회원가입 ID/PW 찾기

1) 지식 창고는 본인이 작성한 콘텐츠(팁/노하우/리소스/강좌 등)을 무료 혹은 가상화폐인 납포인트를 통해 공유하는 공간입니다.
2) 본인이 작성한 콘텐츠에 대해서만 지식 창고에 등록할 수 있으며, 저작권에 위배되는 콘텐츠는 사전경고 없이 삭제될 수 있습니다.
3) 콘텐츠 구매 및 첨부파일 다운로드는 회원그룹 '연구원' 이상 가능하오니, 경험치를 쌓아 진급한 후에 이용 부탁드립니다.
4) 무료 콘텐츠의 본문은 구매절차 없이 즉시 이용할 수 있으며, 판매 납포인트가 있는 콘텐츠는 구매 후 이용할 수 있습니다.
5) 콘텐츠 판매에 따른 납포인트 수익은 지정한 비율(50%)에 따라 판매자에게 지급하며, 납포인트 수익을 통해 진급을 빨리할 수 있습니다.
6) 구매 후 평가를 하면 구매 납포인트의 20%를 돌려 드립니다.

콘텐츠 수 33
판매자 보해소주 판매 납포인트 무료 평점 0점 / 총 0명 참여
8051 타이머 정복 - 제1부 -



제1부 : 8051 타이머 개요
제2부 : 타이머 관련된 SFR 레지스터 분석
제3부 : 타이머 동작모드 분석 및 예제 프로그램 작성
제4부 : 타이머 활용 및 정리



0. 들어가며

8051 마이크로컨트롤러를 학습하면서 어려움에 부딪히는 가장 중요한 기능 중의 하나가 바로 "타이머/카운터"의 활용입니다. 왜냐하면, 이 타이머 기능은 타이머 자체로서 그 역할을 하는 것에서 벗어나 인터럽트 및 시리얼 통신의 사용에 있어서도 이용이 되기 때문입니다. 다시말해, 8051의 다른 부분을 공부하다가도 다시 한번 되돌아와서 봐야 하는 부분이 바로 이 타이머/카운터(이하 타이머라고 하겠습니다). 해서, 본 강좌에서는 Ateml의 AT89S51 프로세서를 중심으로 8051 타이머에 대한 이해를 돕고, 이를 이용하여 간단한 응용 함수를 구현해보도록 하겠습니다.



1. 타이머/카운터 개요

먼저 용어의 정의를 살펴보도록 하죠. 타이머와 카운터는 일정 주기의 클럭신호를 입력 받아 특정 레지스터의 값을 계수하는 기능을 말합니다. 여기서 일정 주기의 클럭신호를 통상 클럭소스라 부르며 이 클럭소스를 외부 특정 핀으로부터 입력받으면 카운터, CPU 내부에서 입력받으면 타이머라고 부릅니다. 여기서 CPU 내부에서 클럭신호를 받는다 함은 89S51의 클럭을 담당하는 오실레이터 혹은 크리스털 부품을 이용한 클럭신호를 말하는데 보통 이 크리스털 등은 CPU 외부에 별도의 부품으로 존재하나, CPU 내의 모든 기능이 이 신호를 기준으로 동작하므로 카운터와의 구별을 위해 내부 클럭신호라고 부르도록 하겠습니다. 카운터로 동작하는 경우에는 아래 그림의 빨간색과 파란색 표시가 된 핀이 신호의 입력을 담당하게 됩니다. 참고로 고전적인 8051계열의 칩은 이 타이머/카운터가 2개 존재하며, 8051의 개량형인 8052계열(AT89S52, AT89S8252 등)은 추가 타이머 1개를 포함하여 총 3개의 타이머를 제공합니다.



<그림 1 : AT89S51(좌) 및 AT89S52(우)의 타이머/카운터 핀 아웃>



위의 그림에서처럼, 카운터는 소스가 외부(T0,T1)에서 인가되는 것 외에는 기본적인 기능은 타이머와 다를 바가 없으므로 타이머에 대해서 확실히 알게 되면 카운터는 식은죽 먹기입니다.

자아!!! 이제 본론으로 들어가기 전에 몇 가지 질문을 받아보도록 할까요?

[Q]위에서 오실레이터와 크리스털이란 부품을 언급하셨는데 각각이 어떤 부품을 말하는지 궁금합니다.

[A]통상 CPU는 자신과 내부 모듈 그리고 주변장치와의 신호간 동기화를 위해 클럭이란 시그널을 사용합니다. 이 클럭 주파수가 높을 수록 처리속도가 높다고 보아도 무방하죠. 이 클럭신호는 CPU칩마다 이용하는 방식이 다른데, 크게 CPU 내부에서 자체적으로 만들어내는 것과, 외부의 부품을 달아서 클럭신호를 제공받는 경우 두 가지가 존재합니다. 8051칩은 이 중 후자의 경우에 해당하기 때문에 클릭신호 생성을 위해 별도의 외장부품을 달아야 합니다. 그 외장부품이 바로 오실레이터크리스털입니다. 아래 사진에 두 부품의 외형을 실었습니다. 두 부품의 차이점은 CPU에 클럭신호를 제공하는 것에는 차이가 없으나 배선 방식에 다소 차이가 나며, 가격은 오실레이터보다 크리스털이 좀 더 저렴하고, 8051과 같은 마이컴 계열의 보드에서는 부품배치가 용이한 ATS타입의 크리스털이 주로 이용되기도 합니다. 참고로 크리스털은 자체만으로는 진동을 할 수 없기 때문에 LC진동을 위해서 커패시터를 추가적으로 달아주게 되어 있습니다.




<그림 2 : 오실레이터(좌)와 크리스털(중), ATS 타입 크리스털(우)>



[Q] 제가 가진 보드의 크리스털은 클럭주파수가 22.1182MHz입니다. 같은 CPU라도 사용되는 클럭주파수가 보드마다 다른 경우가 있던데 타이머 강좌를 하면서 문제가 되진 않나요?

[A] 당연히 사용되는 클럭주파수에 따라 타이머 주기가 달라진답니다. 본 강좌를 공부하시고 나면 클럭주파수에 따른 타이머 주기를 계산 할 수 있습니다. 따라서, 특별히 문제되는 것은 없으니 걱정 안하셔도 됩니다. *^^*


[Q] 8051 관련 교재를 공부하다보면 타이머0,1 각각에 타이머모드라는게 존재하던데요.

[A] 그것 때문에 이 글을 쓰게 된 것입니다. 타이머0,1는 각각 모드 0 부터 모드3까지 4가지의 동작모드가 있습니다. 각각의 모드는 설정 방법이나 동작 방식이 상이하므로 정확한 이해가 필요한데, 어떤 동작모드를 사용하느냐에 따라 타이머 관련 응용함수의 구현 방식도 달라지기 때문입니다.



오늘은 맛배기니까 일단 여기까지입니다. 혹시라도 타이머에 대해서 더 궁금하신 분들은아래 링크된문서를 다운받아 읽어보시는 것도 좋을 듯합니다.

문서보기

그럼 제2부에서 뵙기로 하죠!!! *^^*

profile
진도령 2007.09.08 19:28

초보자인 저도 보기쉽게 잘 설명해 주셔서 감사합니다.앞으로 잘 부탁 드립니다.

profile
도리형 2007.09.19 17:55

좋은 글 감사합니다.

profile
콜록 2007.09.30 16:33
옷.. 감사감사.~
profile
붕붕 2007.11.03 16:49
잘보았습니다^_^ㅋ
profile
yahoosm 2007.11.25 17:30
설명을 너무 잘하시네요^^ 감동!
profile
찹쌀덕두개 2007.12.06 13:05
자료감사합니다
profile
ssonic00 2008.03.10 15:49
자료 감사합니다.
profile
sniperlee 2008.03.12 21:20

감사히 볼께요.

profile
해려니 2008.04.05 10:15
안그래도 타이머가 뭔지 몰라 고생이었는데 좋은 자료 감사해용
profile
대장 2008.04.08 01:02
열심히 공부하겠습니다.
profile
kayer 2008.04.12 23:47
잘보고 갑니다~~
profile
울프썬 2008.04.15 23:14
^^좋은자료 감사합니다^^
profile
Zosys 2008.04.21 13:59
감사합니다^^
profile
아이구머쩌라 2008.05.22 11:48
감사합니다^^
profile
호랭이 2008.05.23 10:07
좋은글 감사합니다 ~~~~
profile
bug 2008.06.08 22:45
수고하셨어요
profile
바람돌돌 2008.06.19 16:36
감사합니다.
profile
A.T.O 2008.07.07 23:25
감사합니다~
profile
진검승부 2008.08.25 13:00

한 수 배웠습니다. ^^;;

profile
마르베쑤 2008.09.16 09:40

감사합니다

profile
초보 컨트롤 2008.09.16 11:30
감사합니다
profile
뽀슬비 2008.09.17 16:32
좋은 글 감솨~
profile
쫑가 2008.09.19 08:08

감사합니다.

profile
moneywin 2008.09.21 20:40

 좋은자료 감사합니다~~^^

profile
사사사 2008.09.22 14:11
좋은자료 ㄳ
profile
꿀꿀 2008.10.01 22:46
감사합니다 !! ㅋ
profile
외뿔공룡 2008.10.10 20:55
설명이 쉽게 되어 있네요. 감사-
profile
오뎅 2008.10.17 13:27
감사합니다. ㅋㅋ
profile
하지훈 2008.10.23 20:18
감사합니다^^
profile
투덜이닌자 2008.10.24 10:17
thank you
profile
함해보끄나 2008.11.27 18:06
쌩유~~
profile
비누방울 2008.12.03 14:28
캄사합니당 >.<
profile
여누법사 2009.05.12 22:20
와우~ 여기 정말 좋은거 같네요
profile
마니온 2009.08.13 17:20
좋은 자료 감사합니다.~~
profile
newcheck 2009.09.24 19:53
굿 입니당..ㅎ
profile
ernie 2009.10.15 22:46
감사합니다. ^^
profile
단단다다 2009.10.16 03:13
감사합니다ㅎㅎ 그런데 그림 링크가 깨졌네요;
profile
snapshot 2009.11.01 01:58
2부가 기대 되는 군요...
profile
leo 2009.11.27 16:20
많은 도움이 되었습니다.
profile
물지않아요 2009.11.30 13:49
많은도움이되었어요!
profile
피타고라니 2009.12.01 15:59
자세하군요 감사합니다.
profile
GONGBA 2009.12.15 10:15
아...빨리 공부하고 싶은데 납이 없으니까 안되네요...
열심히 하겠습니다...
profile
평생동안 2009.12.28 10:55
잘 배우고갑니다~
profile
오호 2010.01.07 10:34
아하하하 감사합니다... 그림이 링크가 깨져서 조금 아쉽네요.. ^^
profile
라온아비 2010.02.24 09:46
강의가 쉽고 재밋게 되어 있네요.. 잘 봤습니다.
profile
어쩌라고 2010.03.20 10:22

감사합니다.

잘 배웠습니다~^^

profile
kusum 2010.03.30 01:40
좋은 강좌 감사드립니다.
profile
키키오오 2010.04.04 02:18

감사합니다.

profile
야래 2010.04.05 18:56
감사합니다!
profile
야래 2010.04.05 19:51
사진이 안뜨네요...저만그런가..ㅜㅜ
search
List of Articles
번호 분류 제목 평점 포인트 판매자 등록일 구매수 조회 수
공지 공공의 목적으로 공유하고자 하는 소프트웨어는 '소프트웨어 자료실'에 업로드를 요청드립니다.
공지 구매후 평점 댓글을 남겨주시면 구매포인트의 20%를 돌려드립니다.
33 Software & IDEs fortran에서 수치해석 라이브러리 IMSL사용하기 [3] 무료 도시인 2014-03-04 0 215
32 Software & IDEs C# - GPS 예제 [4] 무료 달리는거북이 2010-12-03 0 3642
31 Software & IDEs 저는 학원에서 패스했습니다 ㅋ 무료 뒤집기달인y 2010-10-22 0 1993
30 Software & IDEs VS6 MFC기반에서 Rchedit 컨트롤 추가시 에러 무료 아크마 2010-10-04 0 2100
29 Software & IDEs MFC 테트리스프로그램 입니다^^ [8] 무료 초짜초짜초짜 2010-09-27 0 3103
28 Software & IDEs [Win32api/게임 ] 갤러그 [4] 무료 밍구리 2010-07-02 0 3576
27 Software & IDEs VB 에서 VC++ 처럼 메시지 이벤트 사용 [2] 무료 전자과조교 2010-05-04 0 1893
26 Software & IDEs Serial로 데이터 받아 처리하는 신체검사프로그램 [7] 무료 맑은소리 2010-04-26 0 1852
25 Software & IDEs 그리기 예제입니다 ^^ [5] 무료 전설의사나이 2010-04-10 0 1855
24 Software & IDEs MFC를 이용한 타자게임 입니다 ^^ [4] 무료 전설의사나이 2010-04-10 0 3196
23 Software & IDEs Winsock API 한글 도움말 입니다 . [6] 무료 쑤잉아 2010-04-08 0 2032
22 Software & IDEs unix network 프로그래밍 관련 자료 입니다. [2] 무료 블루미르7 2010-01-05 0 1782
21 Software & IDEs 강아지 키트를 이용하여 만들었습니다~~~ [17] 무료 kimd 2009-11-20 0 2118
20 Software & IDEs [MFC] 날짜 계산기입니다 [8] 무료 shindy 2009-10-28 0 3538
19 Software & IDEs 제어용DSP 추천합니다 [1] 무료 날아가는잡쉐 2008-09-25 0 1282
18 Software & IDEs API 시리얼통신 함수 사용방법 입니다. 참고하세요 [10] 무료 뺘쑝 2008-04-30 0 3911
17 Software & IDEs [MFC] 윈도우 크기 고정하기 [6] 무료 아크마 2008-04-28 0 3956
16 Software & IDEs 섭씨 화씨 변환 프로그램 [8] 무료 아크마 2008-04-23 0 2536
15 Software & IDEs 저.. 지금 딱 두번 글을 올려 봤는데.. 움.. 먼가 좀 바꿔야 될듯 해서..;; ㅋㅋ [1] 무료 행복하면 2007-12-03 0 1313
14 Software & IDEs c언어와 c++ 할 줄은 아는데.. 개념이 조금 부족하신분.. [14] 무료 행복하면 2007-11-29 0 1966
  • 물이 너무 맑으면 물고기가 없고, 사람이 너무 살피면 친구가 없다.
    - 명심보감
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.