Hình 6.10 Sđ khi CCP

Một phần của tài liệu Thiết kế và điều khiển mô hình thang máy bằng vi xử lý PIC 16F877A (Trang 68)

- K tn i vi máy tính đ giám sát và ho tđ ngca mô hình thang máy.

Hình 6.10 Sđ khi CCP

C CCP1 và CCP2 v nguyên t c ho t đ ng đ u gi ng nhau và ch c n ng c a t ng kh i là khá đ c l p. Tuy nhiên trong m t s tr ng h p ngo i l CCP1 và CCP2 có kh n ng ph i h p v i nhau đ đ t o ra các hi n t ng đ c bi t (Special event trigger) ho c các tác đ ng lên Timer1 và Timer2. Các tr ng h p này đ c li t kê trong b ng sau:

¬Khi ho t đ ng ch đ Capture thì khi có m t “hi n t ng” s y ra t i pin RC2/CCP1 (ho c RC1/T1OSI/CCP2), giá tr c a thanh ghi TMR1 s đ c đ a vào thanh ghi CCPR1 (CCPR2). Các “hi n t ng” đ c đ nh ngh a b i các bit CCPxM3:CCPxM0 và có th là m t trong các hi n t ng sau:

- M i khi có c nh xu ng t i các pin CCP. - M i khi có c nh lên.

- M i c nh lên th 4. - M i c nh lên th 16.

Sau khi giá tr c a thanh ghi TMR1 đ c đ a vào thanh ghi CCPRx, c ng t CCPIF đ c set và ph i đ c xóa b ng ch ng trình. N u hi n t ng ti p theo s y ra mà giá tr trong thanh ghi CCPRx ch a đ c x lí, giá tr ti p theo nh n đ c s t đ ng đ c ghi đè lên giá tr c .

M t s đi m c n chú ý khi s d ng CCP nh sau:

- Các pin dùng cho kh i CCP ph i đ c n đnh là input (set các bit t ng ng trong thanh ghi TRISC). Khi n đnh các pin dùng cho kh i CCP là output, vi c đ a giá tr vào PORTC c ng có th gây ra các “hi n t ng” tác đ ng lên kh i CCP do tr ng thái c a pin thay đ i.

- Timer1 ph i đ c ho t đ ng ch đ Timer ho c ch đ đ m đ ng b .

- Tránh s d ng ng t CCP b ng cách clear bit CCPxIE (thanh ghi PIE1), c ng t CCPIF nên đ c xóa b ng ph n m m m i khi đ c set đ ti p t c nh n đnh đ c tr ng thái ho t đ ng c a CCP.

CCP còn đ c tích h p b chia t n s prescaler đ c đi u khi n b i các bit CCPxM3:CCPxM0. Vi c thay đ i đ i t ng tác đ ng c a prescaler có th t o ra ho t đ ng ng t. Prescaler đ c xóa khi CCP không ho t đ ng ho c khi reset.

¬ Khi ho t đ ng ch đ Compare: giá tr trong thanh ghi CCPRx s th ng xuyên đ c so sánh v i giá tr trong thanh ghi TMR1. Khi hai thanh ghi ch a giá tr b ng nhau, các chân c a CCP đ c thay đ i tr ng thái (đ c đ i lên m c cao, hay xu ng m c th p, ho c gi nguyên tr ng thái), đ ng th i c ng t CCPIF c ng s đ c cài đ t. S thay đ i tr ng thái c a chân có th đ c đi u khi n b i các bit bit CCPxM3,CCPxM0.

Hình 6.11 – S đ kh i CCP (Compare mode)

T ng t nh ch đ Capture, Timer1 ph i đ c n đ nh ch đ ho t đ ng là timer ho c đ m đ ng b . Ngoài ra, khi ch đ Compare, CCP có kh n ng t o ra hi n t ng đ c bi t (Special Event trigger) làm reset giá tr thanh ghi TMR1 và kh i đ ng b chuy n đ i ADC. i u này cho phép ta đi u khi n giá tr thanh ghi TMR1 m t cách linh đ ng h n.

¬ Khi ho t đ ng ch đ PWM (Pulse Width Modulation - kh i đi u ch đ r ng xung), tín hi u sau khi đi u ch s đ c đ a ra các pin c a kh i CCP (c n n đnh các pin này là output).

s d ng ch c n ng đi u ch này tr c tiên ta c n ti n hành các b c cài đ t sau: 1. Thi t l p th i gian c a 1 chu kì c a xung đi u ch cho PWM (period) b ng cách đ a giá tr thích h p vào thanh ghi PR2.

2. Thi t l p đ r ng xung c n đi u ch (duty cycle) b ng cách đ a giá tr vào thanh ghi CCPRxL và các bit CCP1CON.

3. i u khi n các pin c a CCP là output b ng cách clear các bit t ng ng trong thanh ghi TRISC.

4. Thi t l p giá tr b chia t n s prescaler c a Timer2 và cho phép Timer2 ho t đ ng b ng cách đ a giá tr thích h p vào thanh ghi T2CON.

5. Cho phép CCP ho t đ ng ch đ PWM.

Trong đó giá tr 1 chu kì (period) c a xung đi u ch đ c tính b ng công th c:

B chia t n s prescaler c a Timer2 ch có th nh n các giá tr 1,4 ho c 16 (xem l i Timer2 đ bi t thêm chi ti t). Khi giá tr thanh ghi PR2 b ng v i giá tr thanh ghi TMR2 thì quá trình sau s y ra:

- Thanh ghi TMR2 t đ ng đ c xóa. - Pin c a kh i CCP đ c set.

- Giá tr thanh ghi CCPR1L (ch a giá tr n đnh đ r ng xung đi u ch duty cycle)

- đ c đ a vào thanh ghi CCPRxH.

r ng c a xung đi u ch (duty cycle) đ c tính theo công th c:

Nh v y 2 bit CCPxCON<5:4> s ch a 2 bit LSB. Thanh ghi CCPRxL ch a byte cao c a giá tr quy t đnh đ r ng xung. Thanh ghi CCPRxH đóng vai trò là buffer cho kh i PWM. Khi giá tr trong thanh ghi CCPRxH b ng v i giá tr trong thanh ghi TMR2 và hai bit CCPxCON<5:4> b ng v i giá tr 2 bit c a b chia t n s prescaler, pin c a kh i CCP l i đ c đ a v m c th p, nh v y ta có đ c hình nh c a xung đi u ch t i ngõ ra c a kh i PWM nh hình 3.13.

¬M t s đi m c n chú ý khi s d ng kh i PWM:

Timer2 có hai b chia t n s prescaler và postscaler. Tuy nhiên b postscaler không đ c s d ng trong quá trình đi u ch đ r ng xung c a kh i PWM. N u th i gian duty cycle dài h n th i gian chu kì xung period thì xung ngõ ra ti p t c

đ c gi m c cao sau khi giá tr PR2 b ng v i giá tr TMR2.

Một phần của tài liệu Thiết kế và điều khiển mô hình thang máy bằng vi xử lý PIC 16F877A (Trang 68)

Tải bản đầy đủ (PDF)

(76 trang)