회원가입 ID/PW 찾기

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

콘텐츠 수 739
판매자 보해소주 판매 납포인트 무료 평점 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
jyp9125 2010.04.08 17:45
독학하는데 많은 도움이 되었습니다 감사합니다^^
profile
천상천하 2010.04.09 12:39

감사합니다.

profile
흑화향 2010.04.29 10:58

8051을 배우면서 많은 부분을 모르고있지만 오늘 타이머라는 부분에 대해 많은것을 배우고 갑니다 ㅎ

profile
wotmd 2010.05.07 21:08
감사합니다.
profile
마쵸 2010.05.09 22:44

잘 보고 갑니다ㅎ

profile
근위 2010.05.24 16:05

잘보고갑니다~

profile
종박 2010.05.25 19:19

좋은정보 도움되었네용~

profile
바람63 2010.06.01 21:11

그림이 안보입니다.

profile
진진진 2010.06.09 17:21
수고하셨습니다.
profile
Do 2010.06.11 20:12
음 쉽게 이해가 되었어요
profile
달리는찰스 2010.06.16 09:32

좋은정보 감사드립니다. ㅎ

profile
키핀 2010.06.18 14:09

읔.. 엑박이..ㅠㅠ

profile
박진철 2010.06.29 09:41
좋은 정보 감사합니다 ^^
profile
달리는찰스 2010.06.29 10:50

좋은 정보 감사드립니다 ^^

profile
고수되고파 2010.07.12 14:42
배꼽~~~ㅠ.ㅠ
profile
고수되고파 2010.07.12 14:48
그림 없지만 잘 읽었습니다...
profile
devilforce 2010.07.13 09:51
이해가 쏙쏙 잘 되요
profile
대빵자두 2010.07.19 22:11

정말 도움 많이 되네요

profile
상봉이 2010.07.22 04:52
감사합니다
profile
반야 2010.07.23 08:57

감사합니다.

profile
Hyeon 2010.08.10 13:09

정말 유용하네요..

profile
지금부터시작 2010.08.31 19:24

감사합니다.

profile
먼지삼촌 2010.10.20 15:31

잘보고 갑니다

profile
소심여우 2011.06.15 11:11

열심히 읽어 내려가는데 그림 파일이 안보이네요 ^^

그래도 내용은 잘 읽고 잘 배웠네요 감사합니다

profile
꼬마최민수 2011.07.20 10:48

과연 이 분야를 제가 범접할 수 있을지 두렵습니다...ㅠㅠ

챕터 1부터 100번 이상은 읽어야 약간 이해가 될지도...

완전 문외한이라..ㅠㅠ 더욱 노력해야 겠습니다~! 좋은 자료 감사합니다~!~! 아자아자 화이팅!!

profile
Interrupter 2011.09.30 08:52

좋은 자료 감사합니다.

profile
anonymous 2012.02.16 16:33
감사합니다.
profile
컴쟁이 2012.05.17 00:06
감사합니다.
profile
코딩은어려워 2013.03.24 14:29
감사합니다~
profile
코알라공원 2015.10.05 09:12

감사합니다

profile
시나브로69 2017.06.24 13:03
감사합니다.
search
List of Articles
번호 분류 제목 평점 포인트 판매자 등록일 구매수 조회 수
공지 공공의 목적으로 공유하고자 하는 소프트웨어는 '소프트웨어 자료실'에 업로드를 요청드립니다.
공지 구매후 평점 댓글을 남겨주시면 구매포인트의 20%를 돌려드립니다.
739 마이크로프로세서 AVR RTOS template [2] 무료 아크마 2017-08-26 0 178
738 마이크로프로세서 AVR ISP 결선도(프린터 포트/LPT) [1] 무료 아크마 2017-08-26 0 246
737 마이크로프로세서 STM32 시리즈 MCU graphical configuration tool [5] 무료 코찌코찌 2013-12-11 0 408
736 마이크로프로세서 Avr Studio에 형변환 연산자가 있나요? [2] 무료 트리비 2016-11-12 0 123
735 마이크로프로세서 PIC CC-C메뉴얼 [2] 무료 크히히힝 2016-08-12 0 176
734 마이크로프로세서 PIC MCU를 처음 접해보는데.. [1] 무료 크히히힝 2016-08-04 0 189
733 마이크로프로세서 mplab ide 8.92 설치! [2] 무료 회사간공대생 2016-08-04 0 559
732 마이크로프로세서 8051 [5] 무료 크크크크크1 2016-06-08 0 126
731 마이크로프로세서 stm32f103 demo board example [2] 무료 seele 2015-09-04 0 557
730 마이크로프로세서 stm32f103자료입니다. [3] 무료 seele 2015-09-04 0 765
729 마이크로프로세서 따끈한 MPLAB X IDE 한글 메뉴얼입니다. [25] 무료 om 2015-08-10 0 2951
728 마이크로프로세서 네오스 즐겨찾기 to 텍스트 VB6 [3] 무료 네오스f91e9 2015-07-31 0 188
727 마이크로프로세서 네오스 AVR soft usart code 생성기 VB6 [1] 무료 네오스f91e9 2015-07-30 0 216
726 마이크로프로세서 네오스 GPS 시뮬레이터 VB6 [3] 무료 네오스f91e9 2015-07-30 0 240
725 마이크로프로세서 네오스 AVR ISP 케이블 짝짓기 VB6 [1] 무료 네오스f91e9 2015-07-30 0 258
724 마이크로프로세서 네오스 LRC 계산기 VB6 [3] 무료 네오스f91e9 2015-07-30 0 562
723 마이크로프로세서 네오스 사인 테이블 생성기 VB6 [2] 무료 네오스f91e9 2015-07-30 0 243
722 마이크로프로세서 네오스 스위치 코드 메이커 VB6 무료 네오스f91e9 2015-07-30 0 224
721 마이크로프로세서 네오스 주석변경 툴 A, B VB6 무료 네오스f91e9 2015-07-30 0 218
720 마이크로프로세서 네오스 계산기 VB6 [2] 무료 네오스f91e9 2015-07-30 0 249
  • 사랑은 두 사람이 자기중심주의적이다.
    - A.D.샬
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.