1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Chương 4: Hoạt động của bộ định thời

35 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 1,81 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Chương 4: Hoạt động của bộ định thời giúp các bạn biết được bộ định thời Timero; bộ định thời Timer 1; bộ định thời Timer 2. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này, với các bạn chuyên ngành Công nghệ thông tin thì đây là tài liệu hữu ích. 

Trang 1

CHƯƠNG 4

I

Trang 2

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

1 Bô định thời TIMER0

- Bộ định thời TIMER0 là bô định thời / bô đếm 8 bit

- Bao gồm 1 bô tiền định ti% lê 8 bit lập trình được

(Prescaler)

- Có Bit chọn xung Clock nội hay bên ngoài

- Có Bit chọn xung Clock nội hay bên ngoài

- Có Bit lựa chọn cạnh tác động của xung Clock

Trang 3

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

a Bô tiền định ti lê (Prescaler)

bô đếm 8 bit được dùng làm bô tiền định ti% lê cho Timer0 hoặc hậu định ti% lê cho bô WDT

- Bit PSA là bit chọn dùng cho Timer hay WDT

- 3 bit PS2 : PS0 sẽ xác định gia; trị ti% lê

Trang 4

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

b Hoạt động bô định thời TIMER0

Timer0 có 2 chê; đô hoạt động được lựa chọn bởi

bit T0CS ( OPTION<5> )

- Ở chê đô định thời: thanh ghi TMR0 sẽ tăng lênsau mỗi chu kyB máy ( với điều kiện Prescaler không

có tác dụng hoặc có ti lê là 1:1 )

- Ở chê đô đếm xung: TMR0 sẽ tăng lên khi có

sườn cạnh lên hay sườn cạnh xuống (qui định bởi bit T0SE) xuất hiện tại chân T0CLK

Trang 5

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

- Khi Timer0 dùng xung Clock ngoài, ta phải đảmbảo xung Clock ngoài đồng bô với xung Clock nội

- Với ti% lê bô Prescaler là 1:1 Nguồn xung Clock ngoài sẽ đồng bô với xung Clock nội bằng cách lấymẫu tại chu kyB Q2 vaB Q4 của xung Clock nội

- Do đo;, trong 1 chu kyB của xung Clock ngoại, thờigian trạng thái cao (Ton) hoặc trạng thái thấp (Toff)

phải ít nhất là 2 Tosc

Trang 6

I

PS2 PS1 PS0

TMR0 RATE

Trang 7

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

c Ngắt TIMER0

-Ngắt Timer0 xảy ra khi tràn bô đếm TMR0: FF – 00h-Khi tràn T0IF = 1 CơB này được xóa bằng phần mềm.-Ngắt Timer0 không làm PIC thoát khỏi chê đô ngủ.

Trang 8

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

d Khởi tạo TIMER0

BSF STATUS, RP0 ; Chọn Bank1

BSF STATUS, RP0 ; Chọn Bank1

MOVLW 0xC3 ; Không cho phép Port B có trơ treo

MOVWF OPTION_REG ; Ngắt khi có 1 cạnh lên ở chân RB0 ;Timer0 tăng khi có xung (RUN)

;Tỉ lê bô tiền định là 1:16

OPTION RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0

Trang 9

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

BCF STATUS, RP0 ; Chọn Bank0

; BSF INTCON, T0IE ;Nếu cho phép Ngắt TIMER0

; BSF INTCON, GIE ;Cho phép ngắt toàn cục.

; Ngắt Timer0 bị cấm nên dùng vòng lặp kiểm tra

TMR0 tràn.

T0_OVFL_WAIT

Trang 10

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

BSF STATUS, RP0 ; Chọn Bank1

MOVLW 0x37 ; Cho phép Port B có trơ treo

MOVLW 0x37 ; Cho phép Port B có trơ treo

; Ngắt khi có 1 cạnh xuống ở chân RB0

;Timer0 tăng khi có xung (Timer RUN)

;Tỉ lê bô tiền định là 1:256

OPTION RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0

Trang 11

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

BCF STATUS, RP0 ; Chọn Bank0

; BSF INTCON, T0IE ;Nếu cho phép Ngắt TIMER0

; BSF INTCON, GIE ;Cho phép ngắt toàn cục.

; Ngắt Timer0 bị cấm nên dùng vòng lặp kiểm tra

TMR0 tràn.

T0_OVFL_WAIT

Trang 12

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

2 Bô định thời TIMER1

- Bô định thời TIMER1 là bô định thời / bô đếm 16 bit

- Bao gồm 2 thanh ghi 8 bit TMR1H vaB TMR1L

- CơB TMR1IF =1 khi xảy ra tràn TMR1 tưB FFFF ->0000

a Thanh ghi điều khiển T1CON

- Hai bit 7, 6 chưa được cấu hình

Trang 13

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

- Bit 5:4 - T1CKPS1:T1CKPS0 :Chọn ti% lê xung vào

11 = 1:8 (gia; trị ti% lê)

10 = 1:4

01 = 1:2

00 = 1:1

- Bit 3-T1OSCEN :cho phép bô dao động Timer1 OSC

1: dao động được cho phép 0: không cho phép

Trang 14

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

- Bit 2 - T1SYNC :Bit lựa chọn đồng bô hóa xung

Clock ngoài (bit này có tác dụng khi TMR1CS=1)

1= Không đồng bô với xung Clock ngoài

0= Đồng bô

- Bit 1 - TMR1CS :Bit lựa chọn nguồn xung Clock

ngoài cho Timer1

1= chọn xung Clock ngoài qua chân T1OSC/T1CKI

0= chọn xung Clock nội ( Fosc /4 )

Trang 15

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

- Bit 0 - TMR1ON :Bit cho phép hoặc dừng Timer1

1= Cho phép Timer1 hoạt động

0= Không cho phép

Trang 16

I

T1CKI

pin

T1 OSC

T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON

Clock Source Select

Timer1 Gate Enable

Timer1 Gate Invert

1 = Không cho phép

0 = Cho phép đồng bộ

Trang 17

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

b Các chê đô hoạt động của TIMER1

 Chê đô định thời đồng bô: được chọn bởi bit

TMR1CS =0

- Trong chê; đô này xung cấp cho Timer1 là Fosc/4

- Bit T1SYNC không có tác dụng vì xung cấp là

xung clock bên trong

- Hoạt động đồng bô được thực hiện ngay saf u bô Prescaler

- Trong chê; đô Sleep, bô đếm sẽ ngưng hoạt động

Trang 18

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

 Chê đô đếm đồng bô: được chọn bởi bit

TMR1CS =1 vaB T1SYNC =0

- Gia; trị bô đếm Timer1 tăng khi có xung cạnh lêntại chân T1OSI/RC1 (nếu bit T1OSCEN =1) hoặctại chân T1OSO/RC0 (nếu bit T1OSCEN =0)

- Xung ngoài sẽ được đồng bô với xung nội

- Hoạt động đồng bô được thực hiện ngay sau bô

Prescaler

- Trong chê; đô Sleep, bô đếm sẽ ngưng hoạt động

Trang 19

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

 Chê đô đếm không đồng bô

- Nếu bit T1SYNC =1, xung ngoài sẽ không đượcđồng bô Bô định thời sẽ tiếp tục đếm trong chê; đô

SLEEP, vaB tạo ra Ngắt khi bô đếm tràn làm PIC

thoát khỏi trạng thái SLEEP

thoát khỏi trạng thái SLEEP

- Khi ghi hay đọc vào Timer cần chu ý:

* Việc đọc thanh ghi TMR1H hay TMR1L trongkhi Timer đang chạy sẽ cho ta gia; trị tức thời

* Khi ghi vào Timer ta nên dừng Timer lại đê% Ghi

Trang 20

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI Chương trình Đọc giá trị 16

bit của bô đếm Timer1:

đổi khi ta kiểm tra

;Do đó ta đọc lại lần nữa để

Trang 21

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI Chương trình Ghi giá trị 16

bit vào bô đếm Timer1:

Trang 22

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

c Bộ dao động riêng của TIMER1

- Chúng ta có thể tạo ra 1 bộ dao động độc lập choTimer1 bằng thạch anh với tần số lên đến 200KH

- Khi đó, bộ đếm có thể hoạt động ở chế độ SLEEP

Hình 3: Bảng lựa chọn tụ lọc cho bộ OSC riêng

Trang 23

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

- Ngắt do Timer1 ở chế độ định thời và đếm đồng

bộ không làm PIC thoát khỏi chê đô ngu Chỉ cóchế độ đếm không đồng bộ mới được

Trang 24

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

e Khởi tạo TIMER1

1.Chế độ xung Clock nội

;Cho phép Timer1 hoạt động

;Timer1 TRÀN

BCF PIR1, TMR1IF

Trang 25

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

2.Chế độ xung Clock ngoài

;Cho phép Timer1 hoạt động

;Timer1 TRÀN

BCF PIR1, TMR1IF

Trang 26

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

3 Bô định thời TIMER2

- TIMER2 là bô định thời 8 bit, bao gồm 1 bộ tiền

định tỉ lệ (PreScaler) và 1 bộ hậu định tỉ lệ

(Postscaler) và 1 thanh ghi chu kỳ PR2

- Việc kết hợp 2 bộ định tỉ lệ vào Timer2 cho phép

- Việc kết hợp 2 bộ định tỉ lệ vào Timer2 cho phép

nó hoạt động như là bộ định thời 16 bit

- Ngoài ra, Timer2 còn có chức năng cung cấp thời

gian hoạt động cho chế độ điều biến xung PWM khi

module CCP được chọn

Trang 28

PIR1

Start Timer2 Counting

Hình 4: Cấu trúc bộ định thời Timer2

PR2

1 PIR1

TMR2IF

Load Period Register

Flag set on first match with

postscaler = 1:1

Trang 29

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

a Thanh ghi T2CON

- Bit 7 chưa được cấu hình

- Bit 6:3 - TOUTPS3 : TOUTPS0 :các bit chọn tỉ lệ

ngõ ra Timer2

0000 = 1:1 (Tỉ lệ ngõ ra)

0001 = 1:2

… 1111 = 1:16

Trang 30

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

- Bit 2 - TMR2ON :Cho phép Timer2 hoạt động

Trang 31

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

b Nguồn xung Clock của Timer2

- Timer2 chỉ có một nguồn xung Clock duy nhất là

xung bên trong được định tỉ lệ bởi các bit

T2CKPS1:T2CKPS0 của bộ Prescaler

c Thanh ghi TMR2 và PR2

- TMR2 và PR2 là hai thanh ghi cho phép đọc/ghi

- TMR2 sẽ tăng từ giá trị 00H đến giá trị nằm trongPR2, sau đó nó được Reset về 0 cho chu kỳ đếm kếtiếp

Trang 32

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

d Tín hiệu báo trạng thái cân bằng

- Khi giá trị trong thanh ghi TMR2 và PR2 bằng nhau,

bộ so sánh sẽ tạo ra một xung

- Xung này được đưa vào bộ hậu định tỉ lệ

(PostScaler) hoặc dùng làm xung Clock cho Module

(PostScaler) hoặc dùng làm xung Clock cho Module truyền nối tiếp (Shift clock)

- Ngoài ra, xung này còn được dùng làm tín hiệu

Reset cho Timer2

Trang 33

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

e Xóa các Bộ định tỉ lệ

Các bộ định tỉ lệ được xóa khi:

- Ghi một giá trị vào thanh ghi TMR2

- Ghi một giá trị vào thanh ghi T2CON

- Khi xảy ra bất kỳ một trạng thái Reset thiết bị

f Chế độ SLEEP

- Trong chế độ này, Timer2 không hoạt động

- Giá trị của bộ định tỉ lệ sẽ được lưu và khôi phục lạisau khi thoát khỏi chế độ SLEEP

Trang 34

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

g Khởi tạo TIMER2

;Cho phép Timer2 hoạt động

BSF T2CON, TMR2ON CLRF INTCON

;Xóa tghi NGẮT ngoại vi

;Timer1 TRÀN

BCF PIR1, TMR2IF

Trang 35

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

AVAILABLE

(Resolution)

Prescaler 3-bits (1:21:256)

Prescaler 2-bits (÷1,÷2,÷4,÷8)

Prescaler (1:1,1:4,1:8) Postscaler (1:11:16)

INTERRUPT

EVENT and FLAG

LOCATION

On overflow FFh00h

(TMR0IF in INTCON)

On overflow FFFFh0000h

(TMR1IF in PIR1)

TMR2 matches

PR2 (TMR2IF in PIR2) CAN WAKE PIC

FROM SLEEP?

... class="page_container" data-page="4">

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

b Hoạt động bơ định thời TIMER0

Timer0 có chê; đô hoạt động lựa chọn

bit T0CS... class="page_container" data-page="12">

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

2 Bô định thời TIMER1

- Bô định thời TIMER1 bô định thời / bô đếm 16 bit

- Bao gồm... data-page="26">

CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI

3 Bô định thời TIMER2

- TIMER2 bô định thời bit, bao gồm tiền

định tỉ lệ (PreScaler) hậu định tỉ lệ

(Postscaler)

Ngày đăng: 11/05/2021, 19:06

🧩 Sản phẩm bạn có thể quan tâm

w