Tải bản đầy đủ - 0 (trang)
Hình 2.26: Cấu trúc của timer 2.

Hình 2.26: Cấu trúc của timer 2.

Tải bản đầy đủ - 0trang

Để thực hiện một quá trình chuyển đổi A/D, ta thực hiện các bước sau:

1. Định cấu hình module A/D.

- Định cấu hình các chân tương tự/tham chiếu điện áp và I/O số (ADCON1).

- Chọn kênh A/D ( ADCON0)

- Chọn xung nhịp cho hoạt động biến đổi A/D ( ADCON0)

- Bật module A/D (ADCON0)

2. Định cấu hình ngắt A/D.

- Xóa bit ADIF.

- Đặt bit ADIE.

- Đặt bit PEIE.

- Đặt bit GIE.

3. Chờ thời gian thu thập cần thiết.

4. Bắt đầu chuyển đổi.

- Đặt bit DO/DONE (ADCON0)

5. Chờ biến đổi xong, bằng cách:

- Hỏi vòng bit GO/DONE xem xóa chưa

- Chờ ngắt A/D.

6. Đọc cặp thanh ghi kết quả ADRESH: ADRESL, xóa bit ADIF nếu cần.

2.7.4 Hoạt động ngắt.

Có tất cả 14 nguyên nhân gây ra ngắt. Thanh ghi điều khiển ngắt (INTCON) theo

dõi từng yêu cầu ngắt riêng lẽ bằng các bit cờ. Các bit cho phép ngắt riêng lẻ và cho

phép ngắt toàn cục.

Bit cho phép ngắt toàn cục GIE (INTCON<7>) cho phép hoặc không cho phép tất

cả gây ra ngắt. Khi set bit GIE, cờ ngắt và bit cho phép nguyên nhân ngắt được set, thì

ngắt lập tức xảy ra.



Ngắt riêng lẻ có thể cấm thơng qua các bi tương ứng cho phép ngắt trong thanh

ghi khác nhau. Cờ ngắt riêng lẻ được set bất chấp trạng thái của bit GIE. Bit GIE bị

xoá khi reset.

Khi thực hiện lệnh RETFIE (quy lại điểm xảy ra ngắt), thoát khỏi chương trình

con ngắt, đồng thời phần cứng sẽ tự động set bit GIE, tái lập ngắt.

Cờ ngắt bởi chân RB0/INT, thay đổi trạng thái của PortB, TMR0 tràn nằm trong thanh

ghi INTCON. Cờ ngắt ngoại vi nằm trong thanh ghi chức năng đặt biệt PIR1 và PIR2

tương ứng với bit cho phép ngắt nằm trong thanh ghi PIE1 và PIE2, và bit cho phép

ngắt ngoại vi PEIE nằm trong thanh ghi INTCON.

Khi một ngắt được đáp ứng, bit GIE sẽ bị xoá để cấm ngắt khác xảy ra, địa chị

hiện tại được lưu vào Stack, bộ đếm chương trình được nạp địa chỉ 0004h. Trong

chương trình con phục vụ ngắt, nguồn ngắt có thể xác định bằng cách thăm dò cờ ngắt.

Cờ ngắt phải được xoá trước khi xảy ra ngắt tiếp theo để tránh ngắt trùng. Đối với

nguồn gây ra ngắt từ bên ngoài như chân INT hoặc ngắt do thây đổi PortB, khoảng

thời gian chờ ngắt sẽ từ 3 hoặc 4 chu kỳ lệnh, để thời gian chờ ngắt chính đúng khi có

sự kiện gây ra ngắt. Độ chờ là 1 hoặc 2 chu kỳ lệnh. Cờ ngắt riêng lẻ vẫn được set bất

chấp trạng thái của bit GIE hoặc PEIE.

 Ngắt do INT (ngắt ngoài).

Ngắt ngoài gây ra khi có cạnh lên (set bit INTEDG (OPTION_REG<6>) hoặc cạnh

xuống (xố bit INTEDG OPTION_REG<6>) ở chân RB0/INT, khi có cạnh phù hợp

trên chân RB0/INT, sẽ set cờ ngắt INTF (INTCON<1>), cấm ngắt này bằng cách xoá

bit INTE (INTCON<4>). Cờ ngắt INTF phải được xoá bằng phần mềm trong chương

con phục vụ ngắt trước khi tái cho phép ngắt. Ngắt ngồi cũng có thể đánh thức vi xử

lý trong chế độ nguồn giảm (SLEEP).

 Ngắt do TMR0.

Khi có tràn từ FFh xuống 00h, thanh ghi TMR0 sẽ set cờ ngắt TMR0IF

(INTCON<2>). Ngắt này có thể cho phép/cấm bằng cách set/xố bit cho phép

TMR0IE (INTCON<5>).



 Ngắt do PortB thay đổi.

Khi thay đổi ngõ vào PORTB<7:4> sẽ set cờ ngắt RBIF (INTCON<0>). Ngắt này có

thể cho phép/cấm bằng cách set/xố bit RBIE (INTCON<3>).

2.7.5 Chế độ điều chế độ rộng xung (PWM).

Trong chế độ điều chế độ rộng xung, chân CCPx tạo ở ngõ ra một PWM có độ chính

xác 10 bit, Trong khi chân CCP1 được đa hợp với bộ chốt dữ liệu PortC, bit

TRISC<2> phải được xoá để chân CCP1 là ngõ ra.



Hình 2.27: Sơ đồ khối PWM

 Chu kỳ PWM.

Chu kỳ PWM được chỉ rõ bằng cách ghi vào giá trị vào thanh ghi PR2. Chu kỳ.

PWM có thể được tính bởi cơng thức sau:

PWM period = [(PR2) + 1]*4*Tosc*(giá trị bộ của bộ chia trước TMR2).

Tần số PWM được định nghĩa là 1/[chu kỳ PWM] .

Khi TMR2 bằng PR2, 3 sự kiện sau xảy ra ở chu kỳ lệnh tiếp theo:

- TMR2 bị xoá.

- Chân CCP1 được set ( ngoại trừ: nếu chu trình làm việc PWM = 0%, chân

CCP1 sẽ khơng được set).



- Chu trình làm việc PWM được chốt từ thanh ghi CCPR1L vào trong CCPR1H.

 Chu trình làm việc PWM.

Chu trình làm việc PWM được chỉ rõ bằng cách ghi đến thanh ghi CCPR1L và 2

bit CCP1CON<5:4>, nâng lên được độ chính xác 10 bit. Thanh ghi CCPR1L chức 8

bit MSb và CCP1Con<5:4> chứa 2 bit LSb. Giá trị 10 bit được miêu tả bởi

CCPR1L:CCP1CON<5:4>. Công thức sau đây dùng để tính tốn thời gian của chu

trinh làm việc.

PWM duty cycle = (CCPR1L:CCP1CON<5:4>)*Tosc*(giá trị chia trước của

TMR2).

CCPR1L và CCP1CON<5:4> có thể được ghi bất cứ lúc nào, nhưng giá trị chu

trình làm việc chỉ được chốt vào CCPR1H khi có sự bằng nhau tiếp theo giữa PR2 và

TMR2 (ví dụ: hồn thành 1 chu kỳ).Trong chế độ PWM, thanh ghi CCPR1H chỉ được

phép đọc.Thanh ghi CCPR1H và 1 bộ chốt 2 bit bên trong là một bộ đệm kép của chu

trình làm việc PWM.Khi CCPR1H và 2 bit chốt bằng với TMR2 kết hợp với 2 bit

xung clock Q hoặc 2 bit của bộ chia tỉ lệ trước của TMR2,chân RC2/CCP1 sẽ xuống

thấp.

Độ phân giải lớn nhất(tính theo bit) của PWM cho mỗi tần số thì được tính bởi

cơng thức:



 Thiết lập hoạt động cho PWM.

Những bước sau đây cần được chú ý khi cấu hình cho CCP hoạt động ở chế độ PWM:

1. Set chu kỳ PWM bằng cách ghi giá trị đến thanh ghi PR2.

2. Set độ rộng xung PWM bằng cách ghi giá trị đến thanh ghi CCPR1L và các

bit



CCP1CON<5:4>.

3. Làm cho chân CCP1 là đầu ra bằng cách xóa bit TRISC<2>.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Hình 2.26: Cấu trúc của timer 2.

Tải bản đầy đủ ngay(0 tr)

×