마하전자기술연구소 LOGO

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

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

제 목 04. 지연 시간을 만드는 방법(사이클의 세는 방법)
첨부파일


지연 시간을 만드는 방법(사이클의 세는 방법)

【지연 시간이란? 】

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

【지연을 만드는 방법】

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

1. 명령 실행 시간을 이용해, 필요한 명령의 수를 실행해 늦춘다.

2. 타이머를 사용해 일정시간 카운트 해, 카운트가 종료하는 것을
  기다린다.
  이 기다리는 방법에는, 명령으로 카운트업의 플래그가 ON가 된다
  의를 기다리는 방법과 세치기를 기다리는 방법이 있습니다.
  타이머의 사용법은 다음의 페이지로 소개하고 있습니다.


【명령으로 지연을 만드는 방법】

명령은 실행하는데 일정한 시간이 걸리기 때문에, 그것을 융통반
일로 지연 시간을 만듭니다. 따라서 명령의 실행 시간을 알 수 있으면
시간을 정확하게 결정할 수가 있습니다.

 (1) 명령의 단위(1 사이클) 실행 시간
   명령의 1 사이클의 실행 시간은 아래와 같이입니다.
      
     1 사이클 실행 시간=4/클락 발진자의 주파수
   
   예를 들면, 클락 10 MHz(0.1μsec)의 경우는, 1 사이클은
    0.4μsec 의 실행 시간을 필요로 합니다.
  
 (2) 명령의 사이클수
   상기로 명령의 실행 시간이 정해집니다만, 대부분의 명령은
   1 사이클로 실행 완료합니다.
   다만, 아래와 같은 명령만은, 2 사이클 필요로 하므로, 배의
   실행 시간을 필요로 합니다.

    ·GOTO 명령
    ·CALL 명령과 RETURN, RETFIE, RETLW 명령
    ·BTFSC, BTFSS, DECFSZ, INCFSZ 명령으로 스킵 할 때
        이것은 예를 들면 아래와 같은 같은 때
              DECFSZ   COUNT, F
              GOTO    LOOP 
        만약 COUNT가 꼭 0이 되었다고 하면(자), 아래와 같이
        실행되기 (위해)때문에, 스킵 할 때에는 2 사이클의
        명령이 됩니다.
              DECFSZ   COUNT, F
              NOP 

 (3) 기본적인 지연 써브루틴 프로그램예
   클락 10 MHz 때, 100μsec의 지연을 만들어 내는 프로그램
   (은)는 아래와 같이 됩니다.

   TIME1           사이클수
       MOVLW  052H    1
       MOVWF  COUNT    1
       NOP         1
   LOOP
       DECFSZ  COUNT, F   1*81+2
       GOTO   LOOP     2*81
       RETURN        2    합계 250
  
       상기로 DECFSZ는 최후만은 2 사이클이므로
       1 사이클이 81회와 2 사이클이 1회라고 하는 것에
       됩니다. (와)과 같이 GOTO문은 81회만 실행됩니다.
       또 NOP 명령은 꼭 250 사이클로 하기 위한 더미
       명령으로서 삽입되고 있습니다.
       클락이 10 MHz라면 0.4μsecX250=100μsec 의
       지연이 됩니다.

목록보기

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