BỘ ĐẾM THỜI GIAN LẬP TRÌNH

Một phần của tài liệu Thiết kế mạng giám sát và điều khiển MC68HC11 dùng RS 485 (Trang 58 - 62)

Đố với một số ứng dụng , yêu cầu về mặt thời gian là một phần rất quan trọng trong quá trình điều khiển .

Trong chương này , ta se xem xét các chức năng của bộ đếm thời gian lập trình . Đĩ là hệ thống đo thời gian vào ra , thay đổi trạng thái và chỉnh định thời gian . Hệ thống cĩ một số modul

• Bắt giữ ngõ vào

• So sánh ngõ ra

• Bộ tích lũy xung

• Bộ đếm thời gian lập trình cĩ các thanh ghi :

! Các thanh ghi điều khiển

• TCTL1 Thanh ghi điều khiển bộ đếm thời gian 1

• TCTL2 Thanh ghi điều khiển bộ đếm thời gian 2

• TMSK1 Thanh ghi che ngắt bộ đếm thời gian chính

• TMSK2 Thanh ghi che ngắt bộ đếm thời gian phụ

• PACTL Thanh ghi điều khiển bộ tích lũy xung

! Các thanh ghi dữ liệu

• TCNT Thanh ghi bộ đếm thời gian

• TIC1-TIC3 Thanh ghi tiếp nhận đầu vào 1, 2 và 3

• TOC1-TOC5 Thanh ghi so sánh thời gian đầu ra 1, 2, 3, 4 và 5

• PACNT Thanh ghi đếm bộ tích lũy xung

! Các thanh ghi trạng thái

• TFLG1 Thanh ghi cờ ngắt bộ đếm thời gian chính

• TFLG2 Thanh ghi cờ ngắt bộ đếm thời gian phụ

! Các chân

Mỗi chân port A cĩ hệ thống đếm thời gian tương ứng. Một số chân cĩ 2 chức năng. Nếu khơng yêu cầu chức năng đếm thời gian, chân cổng A tương ứng cĩ thể sử dụng như chân vào hoặc chân ra chung. Sau đây là danh sách các chức năng cổng A :

• PA0 IC3 Tiếp nhận đầu vào 3

• PA1 IC2 Tiếp nhận đầu vào 2

• PA2 IC1 Tiếp nhận đầu vào 1

• PA3 OC5/OC1 So sánh đầu ra 5 hoặc 1

• PA4 OC4/OC1 So sánh đầu ra 4 hoặc 1

• PA6 OC2/OC1 So sánh đầu ra 2 hoặc 1

• PA7 PA1/OC1 Bộ tích lũy xung vào hoặc so sánh đầu ra 1

Trung tâm của bộ đếm thời gian là bộ đếm liên tục TCNT (Free – Running Counter) ở địa chỉ $100E, 0F. Cứ xung đồng hồ hệ thống E (500ns) , thanh ghi tăng lên 1 chỉ số. Chương trình cĩ thể đọc ở thời điểm bất kỳ để lấy thơng tin thời gian . Hệ thống đếm thời gian sử dụng TCNT như thời gian cuẩn cho đa số hoạt động.

V.1 Bắt giữ ngõ vào (adsbygoogle = window.adsbygoogle || []).push({});

Vi điều khiển 67HC11 cĩ 3 chân vào IC1, IC2 và IC3 ở chân 2,1 và 0 cổng A. Hoạt động tiếp nhận ngõ vào được điềi khiển bằng các bit EDGxB và EDGxA trong thanh ghi điều khiển thời gian TCTL2, tiếp nhận đầu vào cĩ thể tác động khi tăng, giảm của sườn xung. Các thanh ghi Input Capture của Timer (TIC1, TIC2 và TIC3 tại địa chỉ $1010, $1012, $1014) là các thanh ghi 16 bit dùng để lưu lại các số từ bộ đếm hoạt động ngẫu nhiên 16 bit.

Các cờ IC1F, IC2F và IC3F là các bit trong thanh ghi cờ của timer-TFLG1 , các cờ này tương ứng với các ngắt của Input Capture IC1, IC2, IC3 và được tác động khi cĩ tín hiệu truyền trên nhĩm chân Input Capture .

Mỗi cờ Input Capture sẽ tạo nên 1 ngắt, các bit cho phép ngắt tương ứng là IC1I, IC2I, IC3I. Chúng đều ở trong thanh ghi che Timer (TMSK1). Mức 1 trong các bit này là cho phép cờ tạo nên 1 ngắt và ngược lại là mức 0 là mức cấm ngắt.

V.2 So sánh ngõ ra

Chức năng so sánh ngõ ra trong họ MC68HC11 được định dạng và điều khiển bời các thanh ghi điều khiển cĩ thể tiếp cận bằng phần mềm và các bit, và do đĩ chúng cĩ thể thực hiện các cơng việc rất khác nhau.

Cĩ 5 hàm so sánh ngõ ra ký hiệu là OC1 đến OC5. Mỗi chân cĩ phối hợp thanh ghi so sánh đầu ra bộ đếm thời gian 16 bit ký hiệu từ TOC1 đến TOC5. Các kênh phần mềm ghi các giá trị vào thanh ghi (TOCx). Khi thanh ghi bộ đếm thời gian TCNT tính và đặt giá trị lưu trữ trong TOCx thì MCU tự động đặt cờ so sánh đầu ra OCXF vào thanh ghi cờ của bộ đếm thời gian TFLG1. Đĩ là việc so sánh cĩ kết quả xảy ra khi cĩ sự phù hợp giữa thanh ghi so sánh đầu ra và thanh ghi bộ đếm.

Mỗi so sánh đầu ra trừ OC1 cĩ 1 chân phối hợp với nĩ. Hàm đầu ra định thời gian OC1 cĩ 2 thanh ghi dành riêng.

V.3 Các thanh ghi trong bộ đếm thời gian Thanh ghi so sánh bắt buộc (CFORC – $100B) Thanh ghi so sánh bắt buộc (CFORC – $100B)

Bit 7 6 5 4 3 2 1 Bit 0

FOC1 FOC2 FOC3 FOC4 FOC5 0 0 0

FOC[1:5] : gây áp lực so sánh ngõ ra.

! = 0 : khơng tác dụng

! = 1 : hành động tương ứng xảy ra ở ngõ ra x

Bit[2:0] : khơng thể kể đến , luơn được đọc là 0

Thanh ghi tạo áp lực so sánh sớm hơn, 5 bit FOC[1:5] tương ứng với 5 sao sánh ngõ ra. Khi bit FOC được dùng với mạch so sánh ngõ ra được đặt, các tác động lên mạch so sánh ngõ ra diễn ra ngay lập tức .

Thanh ghi mặt nạ (OC1M - $100C)

Bit 7 6 5 4 3 2 1 Bit 0

OC1M7 OC1M6 OC1M5 OC1M4 OC1M3 0 0 0

Reset 0 0 0 0 0 0 0 0

OC1M[7:3] :các mặt nạ so sánh ngõ ra.

! OCx = 1 : chọn PAx là ngõ ra của OC1.

! OCx = 0 : khơng chọn Pax là ngõ ra của OC1.

Bit [2:0] :khơng được kể đến , luơn được đọc là 0.

Sử dụng thanh ghi OC1M với OC1 chỉ ra rằng các bit của port A được tác động khi sự so sánh OC1 thành cơng. Các bit của thanh ghi OC1M tương ứng với PA[7:3].

Thanh ghi dữ liệu so sánh ngõ ra (OC1D - $100D)

Bit 7 6 5 4 3 2 1 Bit 0

OC1D7 OC1D6 OC1D5 OC1D4 OC1D3 0 0 0

Reset 0 0 0 0 0 0 0 0

Ta dùng thanh ghi này để chỉ ra rằng dữ liệu nào sẽ được lưu trữ trên chân port A được tác động sau khi so sánh OC1 thành cơng .

Nếu OC1Mx được đặt , dữ liệu trong OC1Dx là ngõ ra đối với bit x của port A được tác động sau khi so sánh OC1 thành cơng . (adsbygoogle = window.adsbygoogle || []).push({});

Thanh ghi đếm bộ định thời (TCNT - $100E,$100F)

Bit 7 6 5 4 3 2 1 Bit 0

HIGH TDRE TC RDRF IDLE OR NF FE 0

LOW 1 1 0 0 0 0 0 0

TCNTkhi reset là $0000 trong các chế độ hoạt động bình thường TCNT là chỉ đọc .

Thanh ghi điều khiển bộ định thời (TCTL1 -$1020)

OM2 OL2 OM3 OL3 OM4 OL4 OM5 OL5

Reset 0 0 0 0 0 0 0

Các bit của thanh ghi này chỉ rõ hành động diễn ra khi cĩ 1 kết quả so sánh ngõ ra OCx thành cơng

OM[2:5] : chọn chế độ ngõ ra.

OL[2:5] : Mức ngõ ra.

Các cặp bit điều khiển này được mã hĩa để xác định hoạt động nào xảy ra sau khi so sánh OCx thành cơng. Các chức năgn của OC5 chỉ cĩ khi I4/O5 trong thanh ghi PACTL xĩa. Xem bảng sau :

OMx OLx Các hoạt động diễn ra khi so sánh thành cơng 0 0 Bộ định thời khơng nối với chân logic ngõ ra

0 1 Đảo logic ngõ ra OCx

1 0 Tích cực mức 0

1 1 Tích cực mức 1

Thanh ghi che ngắt bộ định thời (TMSK1-$1022)

Dùng 8 bit của thanh ghi này để cho phép hay cấm các ngắt giữ ngõ ra và so sánh ngõ ra của bộ định thời.

Bit 7 6 5 4 3 2 1 Bit 0

OC1I OC2I OC3I OC4I IC4F/OC5I IC1I IC2I IC3I

Reset 0 0 0 0 0 0 0 0

OC1I – OC4I : cho phép ngắt so sánh ngõ ra x bit cho phép OCxI được đặt bit I4/O5 trong thanh ghi PACTL.

I4/O5 : cho phép ngắt bắt giữ ngõ vào 4/ so sánh ngõ ra 5, được lựa chọn bởi bit I4/O5 trong thanh ghi PACTL.

IC1I – IC3I : cho phép ngắt bắt giữ ngõ vào x.

Thanh ghi cờ ngắt bộ định thời 1 (TFLG1- $1023)

Bit 7 6 5 4 3 2 1 Bit 0

OC1F OC2F OC3F OC4F IC4F/OC5F IC1F IC2F IC3F

Reset 0 0 0 0 0 0 0 0

Các bit trong thanh ghi này chỉ rõ khi các sự kiện của hệ thống thời gian xảy ra. Nĩ đi kèm với cábit TMSK1, các bit của TFLG1 cho phép hệ thống bên dưới bộ định thời hoạt động. Mỗi bit của TFLG1 tương ứng với 1 bit trong TMSL1 ở cùng 1 vị trí.

OC1F – OC4F : so sánh ngõ ra x, đặt khi giá trị bộ đếm bằng với so sánh ngõ ra x. (adsbygoogle = window.adsbygoogle || []).push({});

I4/O5F : cờ bắt giữ ngõ vào 4/so sánh ngõ ra 5. IC1F – IC3F : cờ bắt giữ ngõ vào x.

Thanh ghi che ngắt bộ định thời 2 (TMSK2-$1024)

Bit 7 6 5 4 3 2 1 Bit 0

TOI RTII PAOVI PAII 0 0 PR1 PR0

Reset 0 0 0 0 0 0 0 0

TOI : Timer Over Interrupt Enable

! 0 : cấm ngắt quãng thời gian thực.

! 1 : cho phép ngắt quãng thời gian thực.

RTII : Real Time Interrupt Enable.

! 0 : cấm ngắt quãng thời gian thực.

! 1 : cho phép ngắt quãng thời gian thực.

PAOVI : Pulse Accumulator Overflow Interrupt Enable

! 0 : cấm ngắt quãng tràn bộ nhớ tích lũy xung.

! 1 : cho phép ngắt quãng tràn bộ nhớ tích lũy xung.

PAII : Pulse Accumulator Input Edge Interrupt Enable

! 0 : cấm ngắt quãng sườn vào bộ tích lũy xung.

! 1 : cho phép ngắt quãng sườn vào bộ tích lũy xung.

PR[1:0] : Timer Prescale Select

Thanh ghi cờ ngắt bộ định thời (TFLG2-$1025)

Bit 7 6 5 4 3 2 1 Bit 0

TOF RTIF PAOVF PAIF 0 0 0 0

Reset 0 0 0 0 0 0 0 0

Đi đơi với 4 bit cao của TMSK2, các bit này cho phép hệ thống bên dưới bộ định thời hoạt động trong hệ thống hỏi vịng hay cái. Mỗi bit của TFLG2 tương ứng với 1 bit trong TMSK ở vùng vị trí.

Một phần của tài liệu Thiết kế mạng giám sát và điều khiển MC68HC11 dùng RS 485 (Trang 58 - 62)