회원가입 ID/PW 찾기

하드웨어 설계에 관련한 공개 강좌를 게재하는 공간입니다.
운영진에 의해 강좌글은 편집되며, 공익을 위한 게시글은 '하드웨어 강좌'란으로 이동될 수 있습니다.

콘텐츠 수 7

제4장. 타이머/카운터

8051 어셈블리 강좌(by 허인교수님) 구매수 0 조회 수 4690 2012.04.07 19:11:37
판매자 아크마 판매 납포인트 무료 평점 1.0점 / 총 1명 참여

4. 타이머/카운터

 

 

1. 타이머/카운터

ㅇ타이머

  - 시간을 잴 때 사용

  - 외부 공급 clock 12분주한 clock을 사용

ㅇ 카운터

  - 신호의 개수를 셀 때 사용

  - 카운터/타이머 0 : T0핀을 통해 들어오는 신호가 high low 바뀌면 레지스터 (TH0, TL0, TH1, TL1)에 값을 증가(+1)

 

ㅇ 타이머/카운터의 특수 기능 레지스터(SFR)

  - TCON, TMOD, TL0, TL1, TH0, TH1

  - 8052(8032, 8752)는 타이머/카운터가 3

    T2CON, RCAP2L, RCAP2H, TL2, TH2 레지스터 추가

  * 교재 85page 4-1 타이머의 특수 기능 레지스터 참조

 

2. 타이머/카운터 모드 레지스터(TMOD)

TMOD(Timer/counter MODe register)

b7

b6

b5

b4

b3

b2

b1

b0

ㅇ 비트별 제어 가능

GATE

C//T

M1

M0

GATE

C//T

M1

M0

                                

  - b7b4는 타이머/카운터 1,  b3~b0은 타이머/카운터 0

 

  - GATE : /INTx 핀 및 TRx(Timer/counter Run bit) 과의 논리 조합을 이루어

             타이머/카운터를 시작 또는 정지

    1이면 타이머/카운터를 /INTx 핀으로 즉, 하드웨어적으로 Run 시킴

    0이면 타이머/카운터를 TRx 비트로 즉, 소프트웨어적으로 Run 시킴

 

  - C//T : "1"이면 Counter, "0"이면 Timer

 

  - 동작 모드 선택

M1       M0        모드                    설명  

0         0           0          13비트 타이머/카운터 모드    

0         1           1          16비트 타이머/카운터 모드

1         0           2          8비트 자동 재적재 모드

1         1           3          분할 타이머 모드

3. 타이머/카운터 제어 레지스터(TCON)

TMOD(Timer/counter MODe register)

b7

b6

b5

b4

b3

b2

b1

b0

ㅇ 비트별 제어 가능 

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

 

  - b7b4가 타이머/카운터에 해당, b3b0은 인터럽트 해당 비트

  - TFx(Timer/counter x overFlow flag) : 하드웨어적으로 set

  - TRx(Timer/counter x Run control bit) : 타이머/카운터를 ON/OFF 하기 위해

                                           소프트웨어적으로 set/reset 

 

4. 타이머/카운터 모드

4.1 13비트 타이머/카운터 모드 (모드 0)

MCS-48과 호환을 위해서 만든 모드, 거의 사용되지 않음

 

4.2 16비트 타이머/카운터 모드 (모드 1)

 

 clip_image001[4].jpg

 

4.3 8비트 자동 재적재 모드 (모드 2)

clip_image002[4].jpg

 

4.4 분할 타이머 모드 (모드 3)

 

  clip_image003[4].jpg

 

ㅇ 프로그램 시작과 함께 타이머/카운터 초기화

  - TMOD 동작 모드 설정

    MOV TMOD, #00010000B

       타이머/카운터 1 사용, GATE=0(TR1로 시작/정지), C//T=0(타이머 사용),  모드1(M1=0, M0=1)

  - TH1/TL1 초기화

    MOV TL1, #9CH

       MOV TH1, #0F

  - SETB TR1 되면 시작

    TF1 100㎲ 후에 설정

       WAIT : JNB TF1, WAIT

  - TF1 OV 될 때 소프트웨어적으로 타이머를 멈추고 TF1 clear

    CLR TR1

       CLR TF1

 

 

5. 짧은 간격과 긴 간격

ㅇ 시간 간격의 프로그램 기법

최대간격()                                  

 10 정도                      소프트웨어로 조절

256 이내                      8비트 자동 재적재 모드

  65536                       16비트 타이머/카운터 모드

 무제한                       16비트 타이머/카운터 모드 + 소프트웨어 루프

 


위 내용은 청강대학교 허인 교수님의 고마운 공유정신 발휘로 마이컴박스에 게시 및 수정 업데이트됩니다.
허인 교수님 및 마이컴박스(개정부분)의 동의 없이 무단 복재 및 전재, 재배포 금지합니다.

모르는 것이 무엇인지 스스로 정리하고 질문하는 습관을 가집시다.
무성의/광범위하거나 직접 해보지 않고 올리는 질문은 서로를 피곤하게 합니다.
질문쪽지는 사절이오니 게시판에 글을 남겨주세요. 그래야 다같이 공유할 수 있으니까요.

첨부

profile
11시22분 2019.04.17 15:06
감사합니다
search

8051 어셈블리 강좌(by 허인교수님) : (7)
■ 제3장. 명령어 2019-04-17 14:58
ETC
  • 우유부단한 것만이 습관으로 되어 있는 사람보다 더 비참한 사람은 없다
    - 제임스
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.