1 / 12

8051 마이크로컨트롤러 제 4 장 . 타이머 / 카운터 (Timer/Counter)

8051 마이크로컨트롤러 제 4 장 . 타이머 / 카운터 (Timer/Counter). 타이머 / 카운터. 타이머 / 카운터 (Timer/Counter) - 타이머 : 시간을 잴 때 사용 8051  외부 공급 clock(crystal) 을 12 분주한 clock 을 사용 - 카운터 : 신호의 개수를 셀 때 사용 8051  T0/T1 핀을 통해 들어오는 신호 (High  Low) 의 개수

taurus
Download Presentation

8051 마이크로컨트롤러 제 4 장 . 타이머 / 카운터 (Timer/Counter)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) 타이머/카운터 • 타이머/카운터(Timer/Counter) - 타이머 : 시간을 잴 때 사용 8051 외부 공급 clock(crystal)을 12분주한 clock을 사용 - 카운터 : 신호의 개수를 셀 때 사용 8051  T0/T1핀을 통해 들어오는 신호(High  Low)의 개수 • 타이머/카운터의 특수 기능 레지스터(SFR) - TCON, TMOD, TL0, TL1, TH0, TH1 - 8052는 타이머/카운터가 3개이므로 T2CON, RCAP2L, RCAP2H, TL2, TH2 레지스터 추가 보유 -1-청강문화산업대학 이동통신과

  2. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) TMOD(Timer/counter MODe register) - TMOD 7 ~ 4 : 타이머/카운터 1, TMOD 3 ~ 0 : 타이머/카운터 0 - GATE : “0”이면 TRx 비트로 Run 시킴, “1”이면 INTx 핀으로 Run 시킴 - C/T : “1”이면 Counter, “0”이면 Timer - 타이머/카운터 모드 M1( 0 ) M0( 0 ) 모드0 13비트 타이머/카운터 모드 M1( 0 ) M0( 1 ) 모드1 16비트 타이머/카운터 모드 M1( 1 ) M0( 0 ) 모드2 8비트 자동 재적재 모드 M1( 1 ) M0( 1 ) 모드3 분할 타이머 모드 -2-청강문화산업대학 이동통신과

  3. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) TCON • TCON(Timer/counter CONtrol register) - TCON 7, 6 : 타이머/카운터 1, TCON 5, 4 : 타이머/카운터 0 (TCON 3 ~ 0 : 인터럽트) - TF1(Timer/counter 1 over Flow flag) : overflow가 발생하면 “0”  “1” - TR1(Timer/counter 1 Run control bit) : GATE가 “0”인 상태에서 TR1이 “1”이면 타이머/카운터(T/C) 1이 시작(Run), “0 ”이면 T/C 1이 정지(Stop) - TF0(Timer/counter 0 over Flow flag) - TR0(Timer/counter 0 Run control bit) -3-청강문화산업대학 이동통신과

  4. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) 타이머/카운터 모드 • 모드0 (13비트 타이머/카운터 모드) MCS-48과 호환을 하기 위해 만든 모드, 거의 사용되지 않음 • 모드1 (16비트 타이머/카운터 모드) -4-청강문화산업대학 이동통신과

  5. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) 타이머/카운터 모드 • 모드2 (8비트 자동 재적재 모드) • 모드3 (분할 타이머 모드) 타이머/카운터0은 2개의 8비트 타이머(TL0  TF0, TH0  TF1) -5-청강문화산업대학 이동통신과

  6. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) 타이머/카운터의 초기화 • TMOD 설정 - MOV TMOD, #00010000B 타이머/카운터 1 사용, TR1로 시작/정지(GATE = 0), 타이머(C/T = 0), 모드1(M1 = 0, M0 = 0) • TH1, TL1 초기화 (예 : 10000us = 10ms = 0.01초 / 12MHz 경우) - MOV TH1, #HIGH(-10000) - MOV TL1, #LOW(-10000) • SETB TR1 되면 시작 - WAIT: JNB TF1, WAIT  TF1은 처음에 “0”이다가, 0.01초 후에 “1” • TF1이 “1”(over flow)이 되면 타이머를 멈추고, TF1을 clear - CLR TR1 - CLR TF1 -6-청강문화산업대학 이동통신과

  7. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) 짧은 간격과 긴 간격  시간 간격의 프로그램 기법 최대 간격(us) 기 법 예제  10 소프트웨어로 조절 예제4-1(펄스파 발생) 256 이하 모드2(8비트 자동 재적재 모드) 예제4-2(10KHz 구형파) 65536 이하 모드1(16비트 타이머/카운터 모드) 예제4-3(1KHz 구형파) 65536 이상 모드1 + 소프트웨어 루프 예제4-4(부저 인터페이스) -7-청강문화산업대학 이동통신과

  8. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) 실험(예제 4-1) • 주기가 4us(최소 주기)인 펄스파 발생(12MHz 사용) ORG 8000H LOOP: SETB P1.0 ; 1 machine cycle CLR P1.0 ; 1 machine cycle SJMP LOOP ; 2 machine cycle END P1.0 -8-청강문화산업대학 이동통신과

  9. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) 실험(예제 4-2) • 10KHz 구형파 프로그램 작성(P1.0에 출력, 12MHz 사용)  T(주기) = 1 / f(주파수) = 1 / 10KHz = 100us 반주기(2/T)는 50us, 50us 마다 over flow가 발생, 모드2사용 ORG 8000H MOV TMOD, #02H MOV TH0, #-50 SETB TR0 CPL P1.0 WAIT: JNB TF0, WAIT SJMP WAIT CLR TF0 END -9-청강문화산업대학 이동통신과

  10. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) 실험(예제 4-3) • 1KHz 구형파 프로그램 작성(P1.0에 출력, 12MHz 사용)  T(주기) = 1 / f(주파수) = 1 / 1KHz = 1000us 반주기(2/T)는 500us, 500us 마다 over flow가 발생, 모드1사용 ORG 8000H MOV TMOD, #01H CLR TF0 LOOP: MOV TH0, #HIGH(-500) CLR TR0 MOV TL0, #LOW(-500) CPL P1.0 SETB TR0 SJMP LOOP WAIT: JNB TF0, WAIT END -10-청강문화산업대학 이동통신과

  11. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) 실험(예제 4-4) • P1.7의 입력이 “1”  “0”로 전이될 때, P1.0에서 5초간 출력  5초 = 50000us 100 (50000us는 모드1, 100은 소프트웨어 루프) ORG 8000H AGAIN: MOV TH0, #HIGH(-50000) MOV TMOD, #01H MOV TL0, #LOW(-50000) LOOP: JNB P1.7, LOOP SETB TR0 WAIT: JB P1.7, WAIT JNB TF0, $ SETB P1.0 CLR TF0 CALL DELAY CLR TR0 CLR P1.0 DJNZ R0, AGAIN SJMP LOOP RET DELAY: MOV R0, #100 END -11-청강문화산업대학 이동통신과

  12. 8051 마이크로컨트롤러 제4장. 타이머/카운터(Timer/Counter) 과제물(Report) • 기한 : 10월 4일(금) 17시까지 강의도우미가 수거하여 제출 1. 예제 4-2 : 문제, 프로그램, 설명 기재 2. 예제 4-3 : 문제, 프로그램, 설명 기재 3. 예제 4-4 : 문제, 프로그램, 설명 기재 * 자필로 작성해야 함(가급적 A4지 1장에 기재) -12-청강문화산업대학 이동통신과

More Related