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

Một phần của tài liệu Thiết kế mạch điều khiển led 3D (Trang 32 - 39)

2.2.4.1: Giới thiệu

Bộ định thời (hay còn gọi là timer) được sử dụng phổ biến trong việc đo lường và điều khiển. Giả sử n Flip-Flop mắc nối tiếp với nhau tạo ra bộ định thời n bit. Đầu vào của Flip-Flop đầu tiên cũng là đầu vào của timer. Đầu ra Flip-Flop thể hiện giá trị đầu ra của bộ định thời. Khi đầu ra báo tràn của timer phản ánh trạng thái lúc đó của nó. Tùy thuộc vào các ứng dụng đầu vào mà có thể lấy nguồn xung từ xung nhịp của vi điều khiển hay lấy từ bên ngồi. Vi điều khiển 89S52 này có 3 bộ định thời 16 bit trong đó có hai bộ định thời timer 0 và timer 1 gồm có bốn chế độ hoạt động, cịn lại riêng timer 2 có ba chế độ hoạt động. Những bộ định thời này mực đích sử dụng là hẹn giờ, đếm sự kiện xảy ra bên ngoài hay ở các cổng nối tiếp sẽ tạo ra các baud của vi điều khiển.

Những ứng dụng định thời gian, bộ định thời đã được lập trình sao cho sẽ tràn ra sau một thời gian nhất định và lúc này thiết lập cờ tràn bằng 1. Các cờ tràn được sử dụng để kiểm tra trạng thái của ngõ vào hay gửi sự kiện ở ngõ ra.

Bộ định thời mà được sử dụng đếm số lần xảy ra của 1 sự kiện gọi là đém sự kiện. Ở đây người ta gán các sự kiện thành sự chuyển đổi mức 1 về 0 trên chân T0 hay T1 hay T2 tùy thuộc vào các timer tương ứng vào việc đếm sự kiện đó.

Với các chức năng trên, bộ định thời được lập trình để tạo xung nhịp, đo thời gian đã qua giữa hai sự kiện .

-Thanh ghi chế độ định thời (TMOD): gồm hai nhóm 4 bit được sử dụng để cài đặt chế độ hoạt động của timer0, timer1.

-THx và TLx lần lượt là 2 thanh ghi gồm 8 bit chứa các giá trị khởi tạo hay giá trị hiện thời của 2 bộ định thời timer 0 và timer 1. Những thanh ghi trên không được định địa chỉ bit.

Bảng 2.3: Bảng thanh ghi TMOD của timer 0, timer 1

Bit Tên Timer Mô tả

7 GATE 1 1 Bit mở cổng timer 1 và bằng 1, đồng thời INT1 ở mức cao thì timer 1 sẽ hoạt động. Nếu bit mở cổng timer 1 bằng 0 thì cũng khơng ảnh hưởng đến hoạt động của timer 1 vì INT1 vẫn giữ ở mức cao

6 C/T1 1 Bit này dùng để chọn chế độ timer/counter của timer 1 1: bộ đếm sự kiện

0: bộ định khoảng thời gian 5 M1 1 Bit 1 chọn mode của timer 1 4 M0 1 Bit 0 chọn mode của timer 1

00: chế độ 0- timer 13bit 01: chế độ 1-timer 16bit

10: chế độ 2-timer 8 bit tự nạp lại 11: chế độ 3-tách timer

3 GATE0 0 Bit mở cổng timer 0 và bằng 1, đồng thời INT0 ở mức cao thì timer 0 sẽ hoạt động

2 C/T0 0 Bit này dùng để chọn chế độ timer/counter của timer 0

1 M1 0 Bit 1 chọn mode của timer 0 0 M0 0 Bit 0 chọn mode của timer 0

-Thanh ghi điều khiển TCON có chức năng chứa bit trạng thái điều khiển

timer và timer 1.

Bảng 2.4: Thanh ghi TCON của timer 0, timer 1 Bit Ký hiệu Địa chỉ bit Mô tả

TCON.7 TF1 8FH Cờ báo tràn timer 1, được đặt ở phần cứng khi báo tràn. Được xóa thơng qua phần mềm hay phần cứng khi bộ xử lý đến chương trình phục vụ ngắt TCON.6 TR1 8EH Bit điều khiển timer 1 hoạt động

được đăt hoặc xóa thơng qua phần mềm để điều khiển timer chạy hay dừng

TCON.5 TF0 8DH Cờ báo tràn timer 0

TCON.4 TR0 8CH Bit điều khiển timer 0 hoạt động TCON.3 IE1 8BH Cờ ngắt do timer 1

TCON.2 IT1 8AH Cờ ngắt ngoài 1 TCON.1 IE0 89H Cờ ngắt do timer 0 TCON.0 IT0 88H Cờ ngắt ngoài 0

b: Các thanh ghi timer 2

Bảng 2.5: Bảng thanh ghi T2CON của timer 2 Bit Ký hiệu Mô tả

T2CON.7 TF2 Cờ báo tràn timer 2. TF2 hoạt động khi TCLK hay RCLK khác 1

T2CON.6 EXF2 Cờ ngắt ngoài timer 2. Với EXF2=1 khi xảy ra sự nạp hay thu nhận đồng thời cũng gây ra ngắt timer 2 nếu được lấp trình cho phép

T2CON.5 RCLK Bit chọn timer cung cấp xung nhịp cho việc nhận của cổng nối tiếp

T2CON.4 TCLK Bit chọn timer cung cấp xung nhịp cho việc truyền của cổng nối tiếp

T2CON.3 EXEN2 Bit điều khiển hoạt động của timer2. EXEN2=1 việc nạp hay thu nhận sẽ có sự chuyển đổi trạng thái 1 về 0 ở chân T2EX nếu timer 2 khơng có chức năng cung cấp baud cho cổng nối tiếp

2

T2CON.0 CPRL2 Bit chọn thu nhận hay nạp lại của timer2 1: thu nhận sẽ hoạt đơng EXEN1=1 và có sườn xuống của chân T2EX

0: nạp lại sẽ được thực hiện EXEN2=1 và có sườn xuống của chân T2EX. Nếu RCLK hay TCLK =1 timer 2 tự nạp tràn. Lúc đó bit này sẽ được bỏ qua

-Thanh ghi T2MOD có địa chỉ 0C9H,ở thanh ghi này khơng có định địa chỉ

Bảng 2.6: Thanh ghi T2MOD của timer2 Bit Ký hiệu Mô tả

T2MOD.7 - Không sử dụng T2MOD.6 - Không sử dụng T2MOD.5 - Không sử dụng T2MOD.4 - Không sử dụng T2MOD.3 - Không sử dụng T2MOD.2 - Không sử dụng

T2MOD.1 T2OE Cho phép đầu ra khi sử dụng timer 2 để tạo xung (xung-clock out)

T2MOD.0 DCEN Cho phép timer 2 hoạt động chế độ đếm tiến hoặc lùi

-Các thanh ghi còn lại TH2, TL2 của timer 2 cũng giống như TH1, TL1

và TH0, TL0 đều có chức năng chứa giá trị đếm timer 2. Và các thanh ghi RCAP2H, RCAP2L của timer 2 dùng để chứa giá trị nạp lại.

2.2.4.3: Các chế độ của bộ định thời a: Chế độ của timer 0 và timer 1

-Chế độ 0: là chế độ định thời 13 bit dùng để chứa các giá trị đếm. Trong đó có 3 bit thấp TL khơng sử dụng được.

Hình 2.11: Chế độ 0 của timer 0 và timer 1

-Chế độ 1: bộ timer dùng 2 thanh ghi TH, TL dùng để chứa giá trị đếm, chế độ này gọi là chế độ định thời 16 bit. Ở chế độ 1 timer chứa giá trị được nhiều nhất là 65535 (tương ứng với FFFFFFH). Khi vượt qua giá trị này sẽ xảy ra tràn, lúc này TF=1. Sauk hi tràn mà muốn timer tiếp tục hoạt động thì chương trình phải có câu lệnh nạp lại giá trị khởi tạo bằng cách xóa bit TR.

Hình 2.12: Chế độ 1 của timer0 và timer1

-Chế độ 2: ở chế độ 2 thanh ghi TL chưa giá trị đếm và thanh ghi TH

chứa giá trị nạp lại, do đó chế độ này còn được gọi là chế độ tự nạp lại 8 bit. Với chế độ 2 hoạt động đếm quá 255 sẽ xảy ra tràn. Lúc đó TF=1 đồng thời giá trị của timer tự động nạp lại thơng qua nội dung của TH.

Hình 2.13: Chế độ 2 của timer 0 và timer 1

-Chế độ 3: Lúc này timer 0 sẽ tách ra làm 2 bộ timer hoạt động riêng

biệt. Timer thứ nhất với xung clock được lấy qua bộ chia tần hay bộ dao động xung bên ngoài ở chân T0 hoặc trên chip. Giá trị đếm timer được chứa trong TL0, TF0=1 gây ra ngắt timer 0 khi xảy ra tràn.

+Bộ timer thứ hai: Việc điều khiển timer này là dặt giá trị bit TR0. Ở đây giá trị đếm chứa trong TH0, TF=1 và xảy ra ngắt do timer 1.

+Khi timer 0 được tách như vậy thì timer 1 vẫn hoạt động bình thường ở chế độ 0, 1, 2. Nhưng khi xảy ra tràn cờ TF1 khơng bằng 1. Do đó ở trường hợp này timer 1 chỉ hoạt động cho ứng dụng không cần thiết ngắt (TF1=1).

b: Chế độ hoạt động của timer 2

-Timer 2 có 3 chế độ hoạt động: chế độ thu nhận (Capture), chế độ nạp lại (Auto-reload) và chế độ cung cấp baud cho cổng nối tiếp (Baud rate generator).

Bảng 2.7: Chế độ hoạt động của timer 2 RCLK+TCLK TR2 CP/RL2 Chế độ

0 0 1 16 bit Auto-reload: 16 bit tự nạp lại 0 1 1 16 bit capture:16 bit thu nhận

1 X 1 Baud rate generator: cung cấp tốc độ baud

X X 0 Off

-Chế độ thu nhận (Capture)

Hình 2.15: Chế độ thu nhận của timer 2 -Chế độ nạp lại (Auto-reload)

Hình 2.16: Chế độ thu nhận của timer 2

- Cung cấp baud cho cổng nối tiếp (Baud rate generator).

Hình 2.17: Cung cấp baud cho cổng nối tiếp của timer 2

Một phần của tài liệu Thiết kế mạch điều khiển led 3D (Trang 32 - 39)

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

(100 trang)
w