마하전자기술연구소 LOGO

제품검색 고객센터053-604-2355
기술자료실

Home > 기술자료실 기술자료실

제 목 05. 타이머의 사용법
첨부파일


타이머의 사용법(지연 타이머)

【지연 시간이란? 】

 마이크로 컴퓨터에서는 직접 외부 기기를 제어하는 것이 많이 있어
가, 항상 마이크로컴퓨터측의 속도와 제어 대상 기기의 속도를 어디선가
맞추는 것이 필요하게 됩니다.
즉, 외부 기기는 릴레이라든지 램프라든지 모터라든지 센서라든지
(이)가 있습니다만, 모두 마이크로컴퓨터의 속도보다는 훨씬 늦은 속도로
밖에 동작하지 않습니다. 거기서 마이크로컴퓨터측에서 지연(지연)을 일부러 작
(이)라고 맞추어 줄 필요가 있습니다.
여기에서는 그 지연을 만드는 방법을 설명합니다.

【지연을 만드는 방법】

우선 지연을 만들려면 어떻게 하는가 하면(자), 몇개의 방법이 있습니다.

1. 명령 실행 시간을 이용해, 필요한 명령의 수를 실행해 늦춘다.
  이 방법은 전의 페이지로 소개하고 있기 때문에 그 쪽을 참조 소원
  .
2. 타이머를 사용해 일정시간 카운트 해, 카운트가 종료하는 것을
  기다린다.
  이 기다리는 방법에는, 명령으로 카운트업의 플래그가 ON가 된다
  의를 기다리는 방법과 세치기를 기다리는 방법이 있습니다.
  


【타이머로 지연을 만드는 방법】

PIC에 준비되어 있는 타이머는 다양한 사용법을 할 수 있습니다. 예를 들면
  ·인터벌 타이머로서 사용한다
  ·카운터로서 사용한다
  ·지연 타이머로서 사용한다
  ·펄스 출력에 사용하는 등 등
여기에서는, 타이머로 일정한 시간을 만들어 내는 방법을 설명합니다.
기본적인 설정은 인터벌 타이머로서 사용할 때와 완전히 같아, 융통
반환을 하지 않는 것뿐입니다.

(1) 기본적인 움직이는 방법의 흐름
 우선, 타이머로서 사용하는 것은, PIC 시리즈의 경우는 TMR0를 사용해
 . 이 타이머를 움직이는 기본적인 방법은 아래와 같은 순서가 됩니다.

       카운터의 동작 모드 설정
         ↓
       TMR0에 카운트치 설정
         ↓
       카운트업 대기

   (2) 실제의 프로그램예
    상기의 순서를 실제의 프로그램으로 쓰면(자) 아래와 같이 되어
    .
       BSF    STATUS, RP0  ;페이지 1에 변환
       MOVLW  088H     ;카운터 모드치
                   ;(아래와 같이(4) 항참조)
       MOVWF  OPTION_REG  ;모드 설정
       BCF   STATUS, RP0  ;페이지 0에 변환
       MOVLW  03CH     ;카운트치 로드
       MOVWF  TMR0     ;TMR0에 출력
    LOOP
       BTFSS  INTCON, T0IF  ;카운트업 대기
       GOTO   LOOP
       BCF   INTCON, T0IF  ;플래그 클리어

(3) 카운터의 시간 설정
  상기 프로그램에서는 적당한 값을 TMR0로 설정해 있습니다만, 이
  타이머로 만들어지는 시간은 어떻게 요구하는 것일까요?
  우선, 타이머의 동작 원리로부터 시작합니다.
  PIC16 시리즈의 타이머(TMR0)는, CPU 팁의 클락도와
  (으)로 해 카운트 하게 되어 있습니다.  따라서 있는 시간을 만든다
  유익의 카운터치는 아래와 같은님이 해 요구합니다.

     (인터벌 시간)/(CPU 클락 x4)

  예를 들면, CPU의 수정 발진자가 10MHz(0.1μsec)때에 100μsec
  의 시간의 타이머와 하기 위해서는, 100μsec/0.1usec*4=250 하지만
  카운트치가 됩니다.
  거기서 상기의 프로그램으로 03 CH가 되고 있는 곳을, 0 FAH와
  하면, 100μsec의 시간의 타이머를 만들 수 있게 됩니다.
  다만, 정확하게는 카운트업 기다리는 명령의 실행 시간도
  계산에 넣고 생각하지 않으면 안됩니다.

(4) 프리스케이라의 사용법
 PIC 시리즈의 타이머(TMR0)에는, 프리스케이라라고 하는 기능이 붙어
 있습니다. 이것은 무엇을 하는가 하면(자), 상기의 방법에서는, 256이 TMR0
 의 카운트치의 상한이기 때문에, 겨우 100μsec를 할 수 있는 타이머의
 시간의 상한이라는 것이 되어 버립니다. 거기서, 이 프리스케이라
 의 기능을 추가하면(자), TMR0의 카운터의 전단에 하나 더 최대 8비트
 의 카운터가 추가되어 카운트치의 상한이 256x256 까지 확대되고
 것이 됩니다. 일전에단에 삽입되는 카운터는, 1비트마다
 최대 8비트까지 지정한 비트로 할 수가 있어 전단에서 카운트를
 프리스케이라 하기 위한(해) 프리스케이라라고 부릅니다.
 이 프리스케이라의 설정 방법법은 아래와 같은 같은 값을 OPTION 레지스터에
 설정하는 것으로 실시합니다. (상기 프로그램 참조)

  OPTION_REG에의 설정치 프리스케이라치
     80          2(1비트)
     81          4(2비트)
     82          8(3비트)
     83         16(4비트)
     84         32(5비트)
     85         64(6비트)
     86        128(7비트)
     87        256(8비트)

 이것으로 예를 들면, 87을 OPTION_REG로 설정하면(자), 최대의 타이머 시간은
 클락이 10 MHz때에는 256x256x0. 4μsec= 약 26msec 라고 하는 것에
 되어 큰폭으로 긴 시간의 타이머를 할 수 있게 됩니다.

목록보기

www.1chip.com, www.1chip.co.kr
www.micom114.com
자료실바로가기

대구광역시 북구 산격2동 1629 산업용재관 10동 13호 (2층) / Tel. 053-604-2355 / Fax. 053-383-2354 / E-mail. maha@paran.com