1. Trang chủ
  2. » Giáo án - Bài giảng

Chuong 5 PIC TIMER edit compatibility mode (1)

18 541 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 18
Dung lượng 463,51 KB

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

Nội dung

HOẠT ĐỘNG CỦA BỘ ĐỊNH THỜI CHƯƠNG 5: HOẠT ĐỘNG BỘ ĐỊNH THỜI 1.. Bộ định thời TIMER0 Bộ định thời có 2 chức năng chính: định thời Timer và đếm xung Counter... CHƯƠNG 5: HOẠT ĐỘNG BỘ ĐỊN

Trang 1

HOẠT ĐỘNG CỦA

BỘ ĐỊNH THỜI

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

1 Bộ định thời TIMER0

Bộ định thời có 2 chức năng chính:

định thời (Timer) và đếm xung (Counter)

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

- Gồm 1 bộ tiền định tỉ lệ (Prescaler) 8 bit

Trang 2

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

a Bộ tiền định tỉ lệ (Prescaler)

- Là bộ đếm 8 bit đóng vai trò:

+ Bộ tiền chia tỉ lệ cho Timer0

+ Bộ hậu chia tỉ lệ cho bộ WDT

- Bit PSA lựa chọn Prescaler dùng cho Timer/WDT

- Giá trị tỉ lệ được xác định bởi 3 bit PS2 : PS0

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

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

Có 2 chế độ hoạt động được chọn bởi bit T0CS

(OPTION<5>).

- Ở chế độ định thời: thanh ghi TMR0 sẽ tăng lên

sau mỗi chu kỳ máy Tcy (khi Prescaler không có

tác dụng hoặc có tỉ 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 3

- Khi Timer0 dùng xung Clock ngoài, ta phải đảm

bảo xung Clock ngoài đồng bộ với xung Clock nội

- Với giá trị tỉ lệ Prescaler là 1:1, chu kỳ xung Clock

ngoài sẽ bằng với xung Clock nội

gian Ton hoặc Toff phải ít nhất là 2 Tosc

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

Hình 5.1: Cấu trúc Bộ định thời TIMER0

8

T0CKI

pin

Fosc/4

prescaler

Watchdog Timer

synchronize

WDT out

DATA BUS

OPTION

TMR0 Clock

Source Select

1 = T0CKI, 0 = Fosc/4

Source Edge Select

1 = High-to-Low

0 = Low-to-High

Prescaler Assignment

1= prescaler assigned to WDT 0= prescaler assigned to Timer 0

PS2 PS1 PS0

TMR0 RATE

0 1 1 1:16

1 0 0 1:32

1 0 1 1:64

1 1 0 1:128

1 1 1 1:256

Trang 4

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

Hình 5.2: Hoạt động định thời TIMER0

T0CKI

pin

Fosc/4

prescaler

Watchdog Timer

synchronize

WDT out

OPTION register

TMR0 Clock

Source Select

1 = TOCK1, 0 = Fosc/4 Source Edge Select

1 = increment TMR0 on high-to-low transition

0 = increment TMR0 on low-to-high transition

Prescaler Assignment

1= prescaler assigned to WDT 0= prescaler assigned to Timer 0

Prescaler Rate Select Bits

PS2 PS1 PS0

TMR0 RATE

0 1 1 1:16

1 0 0 1:32

1 0 1 1:64

1 1 0 1:128

1 1 1 1:256

8

DATA BUS

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

T0CKI

pin

Fosc/4

prescaler

Watchdog Timer

synchronize

8

DATA BUS

TMR0IF INTCON register

• Công thức tính thời gian định thời của TIMER0

Trang 5

c Ngắt TIMER0

số đếm từ FF → 00

- Khi tràn thì cờ tràn T0IF = 1 Bit này được xóa bởi

phần mềm

(SLEEP)

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

d Khởi tạo TIMER0

TIMER

TMR0 = XX : nạp giá trị đầu

T0CS = 0 : Clock nội

PSA = 0 : dùng Prescaler

PS<2:0> : chọn tỉ lệ Prescaler

Sử dụng NGẮT

T0IE = 1 : bật NGẮT Timer0

T0IF = 0 : xóa cờ NGẮT

GIE = 1 : bật NGẮT toàn cục

COUNTER TRISA4 = 1, RA4 = 1: T0CKI là Input TMR0 = XX : nạp giá trị đầu

T0CS = 1 : Clock bên ngoài T0SE = 0 : t.động ở cạnh lên

PSA = 1 : không dùng Prescaler PS<2:0> : chọn tỉ lệ Prescaler

Sử dụng NGẮT

T0IE = 1 : bật NGẮT Timer0 T0IF = 0 : xóa cờ NGẮT GIE = 1 : bật NGẮT toàn cục

Trang 6

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

2 Bộ định thời TIMER1

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

 Thanh ghi điều khiển T1CON

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

- Bit 5:4 - T1CKPS<1:0> chọn tỉ lệ xung vào

- Bit 3 - T1OSCEN: Chọn chế độ của bộ dao động

1 = Bật chế độ dao động LP(Low Power crystal)

0 = Tắt chế độ dao động LP

Trang 7

- Bit 2 - T1SYNC\ : Bit cho phép đồng bộ nguồn

xung bên ngoài (TMR1CS=1)

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

0 = Đồng bộ

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

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

0 = chọn xung bên trong ( Fosc /4 )

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

- Bit 0 - TMR1ON : Bit cho phép Timer1 Run/Stop

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

0 = Không cho phép

Trang 8

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

Hình 5.3: Cấu trúc Bộ định thời TIMER1

T1CKI

pin

T1 OSC

T1OS0

T1OSI

prescaler synchronize

Fosc/4

Enable TMR1ON

T1CKPS1 T1CKPS0 scale

Timer1 Gate Enable

Timer1 Gate Invert

1 = Không cho phép

0 = Cho phép đồng bộ

T1CON

Clock Source Select

1 = External (T1CKI)

0 = Internal (FOSC/4)

LP Oscillator Enable

1 = T1OSC selected

0 = T1CKI can be used

Timer1 On

1 = Enable Timer1

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

T1CKI

pin

T1 OSC

T1OS0

T1OSI

prescaler synchronize

Timer1 Control Register (T1CON)

Clock Source Select

1 = External (T1CKI)

0 = Internal (FOSC/4)

LP Oscillator Enable

1 = T1OSC selected

0 = T1CKI can be used

Fosc/4

Timer1 On

1 = Enable Timer1

Enable TMR1ON

Trang 9

Hình 5.4: Hoạt động định thời TIMER1

Timer1 External Clock Input Synchronization

1 = do not synchronize external clock input

0 = synchronize external clock input with internal clock (Fosc/4)

T1CKI

pin

T1 OSC

T1OS0

T1OSI

prescaler synchronize

Timer1 Control Register (T1CON)

Fosc/4

Timer1 Gate Enable and

Timer1 Gate Invert are

available on some devices

Enable

TMR1ON

T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON

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

a Các chế độ hoạt động của TIMER1

 Chế độ định thời đồng bộ (TMR1CS =0)

(Bit T1SYNC\ không có tác dụng ở chế độ này)

Trang 10

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

 Chế độ đếm - đồng bộ (TMR1CS =1,T1SYNC\=0)

của bộ Prescaler

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

 Chế độ đếm - không đồng bộ

không được đồng bộ với nguồn xung bên trong

thoát khỏi trạng thái SLEEP khi NGẮT xảy ra

Chú ý:

+ Khi đọc (Read) thanh ghi TMR1 trong khi Timer

đang chạy, ta sẽ nhận được giá trị tức thời

Trang 11

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

Timer1 bằng cách sử dụng Thạch anh có tần tối đa

200KHz, tại 2 chân T1OSC0 và T1OSC1

LP 32,768 KHz 33pF 33pF

100 KHz 15pF 15pF

200 KHz 15pF 15pF

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

c Ngắt TIMER1

- Ngắt Timer1 xảy ra khi tràn bộ đếm TMR1, nghĩa

là từ FFFF → 0000

- Khi Timer1 tràn TMR1IF = 1, cờ này được xóa

bằng phần mềm

- Ngắt Timer1 ở chế độ định thời/đếm đồng bộ

không làm PIC thoát khỏi SLEEP, điều này chỉ xảy

ra ở chế độ đếm Không đồng bộ

Trang 12

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

d Khởi tạo TIMER1

TIMER

TMR1ON = 0 : STOP Timer1

TMR1 = xx : nạp giá trị đầu

TMR1CS = 0 : Clock nội

( T1SYNC\ = x : không quan tâm )

T1CKPS<1:0> : chọn tỉ lệ Prescaler

Nếu sử dụng NGẮT

TMR1IE = 1 : bật NGẮT Timer1

TMR1IF = 0 : xóa cờ NGẮT

PEIE = 1 : bật NGẮT ngoại vi

GIE = 1 : bật NGẮT toàn cục

TMR1ON = 1 : cho Timer 1 chạy

COUNTER TMR1 = xx : nạp giá trị đầu TMR1CS = 1 : Clock ngoài T1SYNC\ = 0/1 : cho phép đồng bộ ? T1OSCEN=1: xung ở chân T1OSI/RC1 T1CKPS<1:0> : chọn tỉ lệ Prescaler

Nếu sử dụng NGẮT TMR1IE = 1 : bật NGẮT Timer1 TMR1IF = 0 : xóa cờ NGẮT PEIE = 1 : bật NGẮT ngoại vi GIE = 1 : bật NGẮT toàn cục TMR1ON = 1 : cho Timer chạy

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

3 Bộ định thời TIMER2

- TIMER2 là bộ định thời 8 bit, bao gồm:

+ Bộ tiền định tỉ lệ (PreScaler)

+ Bộ hậu định tỉ lệ (PostScaler)

+ Thanh ghi chu kỳ PR2

năng tạo ra khoảng thời gian hoạt động (Ton) trong

chế độ điều biến xung PWM (Module CCP)

Trang 13

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

Prescaler

1:1, 1:4, 1:16

COMPARATOR Postscaler1:1  1:16

TMR2 OUTPUT

PR2

Timer2 ON

1 = Timer2 enabled

T2CON

TMR2ON

T2CKPS1 T2CKPS2 Scale

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

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

Prescaler

1:1, 1:4, 1:16

COMPARATOR Postscaler1:1  1:16 Fosc/4

TMR2

TMR2 OUTPUT

PR2

1 PIR1

TMR2IF

Load Period

Register

Start Timer2 Counting

Flag set on first match with postscaler = 1:1

Trang 14

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

Hình 5.6: Hoạt động định thời TIMER2

Prescaler

1:1, 1:4, 1:16

COMPARATOR

TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0

Postscaler 1:1  1:16

Fosc/4

Timer2 ON

1 = Timer2 enabled

T2CKPS1 T2CKPS2 Scale

TMR2

TMR2 OUTPUT

PR2

Timer2 Control Register (T2CON)

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

Prescaler

1:1, 1:4, 1:16

COMPARATOR

TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0

Postscaler 1:1  1:16

Fosc/4

Timer2 ON

1 = Timer2 enabled

T2CKPS1 T2CKPS2 Scale

TMR2

TMR2 OUTPUT

PR2

TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 SCALE

Trang 15

a Thanh ghi T2CON

- Bit 7

- Bit 6:3 – TOUTPS<3:0> chọn giá trị tỉ lệ của bộ

Postscaler (nằm tại ngõ ra của Timer2).

0000 = 1:1

0001 = 1:2

… 1111 = 1:16

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

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

1 = Cho phép

0 = Không cho phép

- Bit 1:0 - T2CKPS<1:0> Bit chọn giá trị tỉ lệ ngõ vào

của Timer2 (Prescaler)

00 = 1:1

01 = 1:4 1x = 1:16

Trang 16

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

b Nguồn xung Clock của Timer2

được định tỉ lệ bởi 3bit T2CKPS<1:0> (Prescaler)

c Thanh ghi TMR2 và PR2

- TMR2 sẽ tăng từ giá trị 00H đến giá trị trong PR2,

sau đó được Reset về 00H cho chu kỳ đếm kế tiếp

CHƯƠNG 5: 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 tín hiệu xung

- Xung này tiếp tục được đưa qua bộ hậu định tỉ lệ

(PostScaler) và có thể được sử dụng làm xung Clock

cho Module truyền nối tiếp hoặc có thể làm tín hiệu

Reset cho Timer2

- Công thức tính thời gian định thời của Timer2:

Trang 17

e Reset các Bộ định tỉ lệ

Các bộ định tỉ lệ sẽ bị Reset khi:

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

f Chế độ SLEEP

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

sau khi thoát khỏi chế độ SLEEP

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

g Khởi tạo TIMER2

TIMER

PR2 = xxx : đặt giá trị vào thanh ghi đặt trước PR2

T2CKPS<1:0> : chọn tỉ lệ Prescaler

T2OUTPS<3:0> : chọn tỉ lệ Postscaler

Nếu sử dụng NGẮT

TMR2IE = 1 : bật NGẮT Timer2

TMR2IF = 0 : xóa cờ NGẮT

PEIE = 1 : bật NGẮT ngoại vi

GIE = 1 : bật NGẮT toàn cục

TMR2ON = 1 : cho Timer 2 chạy

Trang 18

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

4 Bảng tóm tắt các bộ Timer

SIZE OF

REGISTER

(TMR1H:TMR1L)

8-bits (TMR2) CLOCK SOURCE

(Internal)

CLOCK SOURCE

(External )

Timer 1 oscillator (T1OSC)

None

CLOCK SCALING

AVAILABLE

(Resolution)

Prescaler 3-bits (1:21:256)

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

Prescaler (1:1,1:4,1:8) Postscaler (1:11:16) INTERRUPT

EVENT and FLAG

LOCATION

On overflow FFh00h (TMR0IF in INTCON)

On overflow FFFFh0000h (TMR1IF in PIR1)

TMR2 matches PR2 (TMR2IF in PIR2) CAN WAKE PIC

FROM SLEEP?

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

6 Các Ví dụ và Bài tập

Ngày đăng: 19/10/2016, 23:59

HÌNH ẢNH LIÊN QUAN

Hình 5.1: Cấu trúc Bộ định thời TIMER0 - Chuong 5 PIC TIMER edit compatibility mode (1)
Hình 5.1 Cấu trúc Bộ định thời TIMER0 (Trang 3)
Hình 5.2: Hoạt động định thời TIMER0 - Chuong 5 PIC TIMER edit compatibility mode (1)
Hình 5.2 Hoạt động định thời TIMER0 (Trang 4)
Hình 5.3: Cấu trúc Bộ định thời TIMER1 - Chuong 5 PIC TIMER edit compatibility mode (1)
Hình 5.3 Cấu trúc Bộ định thời TIMER1 (Trang 8)
Hình 5.4: Hoạt động định thời TIMER1 - Chuong 5 PIC TIMER edit compatibility mode (1)
Hình 5.4 Hoạt động định thời TIMER1 (Trang 9)
Hình 5.5: Cấu trúc bộ định thời Timer2 - Chuong 5 PIC TIMER edit compatibility mode (1)
Hình 5.5 Cấu trúc bộ định thời Timer2 (Trang 13)
Hình 5.6: Hoạt động định thời TIMER2 - Chuong 5 PIC TIMER edit compatibility mode (1)
Hình 5.6 Hoạt động định thời TIMER2 (Trang 14)
4. Bảng tóm tắt các bộ Timer - Chuong 5 PIC TIMER edit compatibility mode (1)
4. Bảng tóm tắt các bộ Timer (Trang 18)

TỪ KHÓA LIÊN QUAN