IV. NGÀY HỒN THÀNH NHI ỆM VỤ:
B ảng 2.6 Thiếtlập ngắt ngoài INT0 cho vi điều khiển
0 0 Mức thấp trên chân INT0 phát một yêu cầu ngắt 0 1 Khơng sử dụng
1 0 Cạnh xuống trên chân INT0 phát một yêu cầu ngắt 1 1 Cạnh lên trên chân INT0 phát một yêu cầu ngắt.
Giá trị trên chân INT0 được lấy mẩu trước khi các cạnh được phát hiện. Nếu ngắt cạnh
được chọn, những xung kéo dài hơn 1 chu kỳ xung đồng hồ CPU sẽ phát sinh một ngắt. Những xung ngắn hơn thì khơng bảo đảm sẽ phát sinh một ngắt. Nếu ngắt mức thấp được chọn, mức thấp phải được giữ cho đến khi MCU hoàn thành lệnh đang làm và phát sinh một ngắt. Nếu được cho phép, một ngắt kích hoạt mức sẽ phát sinh một yêu cầu ngắt nữa miễn là chân nàyđược giữ ở mức thấp.
2.4. Cấu tạo và lý thuyết chung Timer/Counter
Vi điều khiển AT90S8535 cĩ tất cả ba timer/counter khác nhau gồm hai timer/counter 8 bit và một timer/counter 16 bit. Timer/counter2 cĩ thể được chọn nguồn clock khơng đồng bộ từ dao động bên ngồi. Daođộng nàyđược tối ưu hố
khi sử dụng thạch anh đồng hồ 32.768 Khz, khi đĩ Timer/counter2 được sử dụng nhưmột đồng hồ thời gian thực (RTC : real timer clock). Timer/counter 0 và 1 cĩ bộ chia tần số riêng, nĩ cĩ thể chia tần số gần nhưmột bộ chia tần số 10bit. Timer/counter 2 thì cĩ một bộ chia riêng của nĩ. Cả ba Timer/counter này cĩ thể
được sử dụng nhưmột bộ định thời (timer) với nền xung clock bên trong của hệ thống hoặc cĩ thể sử dụng nhưbộ đếm (counter) với nguồn xung kích (trigger) bên ngồi.
2.4.1. Bộ chia Timer/counter
Cấu tạo bộ chia Timer/counter 0 và 1:
2.4.2. Timer/counter 0
Timer/counter0 là Timer/counter 8 bit, cĩ thể chọn nguồn xung clock từ CK, bộ chia tần số CK hoặc từ một chân bên ngồi. Ta cũng cĩ thể cho dừng Timer/counter0 như
bảng miêu tả chức năng của thanh ghiđiều khiển Timer/counter 0 – TCCR0. Cờ trạng thái tràn Timer/counter0 thì cĩ thể tìm thấy trong thanh ghi TIFR. Tín hiệu điều khiển Timer/counter0 ta cĩ thể thiết lập trong thanh ghi TCCR0. Để thiết lập ngắt trong Timer/counter0 ta cĩ thể thiết lập các bit trong thanh ghi TIMSK.
Khi Timer/counter 0 lấy nguồn clock từ bên ngồi, tín hiệu bên ngồi này sẽ được
đồng bộ với tần số của CPU. Để đảm bảo sự lấy mẫu chính xác tín hiệu bên ngồi, tần số xung clock tối đa bên ngồi là CK/2. Tín hiệu xung clock bên ngồiđược lấy mẫu ở cạnh lên của xung clock CPU.
Timer/counter 0 là Timer/counter đơn giản nhất trong ba Timer/counter bởi vì nĩ khơng cĩ chức năng nào khác ngồi việc định thời vàđếm xung.
Sơđồ khốí Timer/counter 0
a. Thanh ghiđiều khiển TIMER/COUNTER0 – TCCR0
Bit 7..3 :đây là những bit dự trữ trong AT90S8515 và nĩ luơnđược đọc là giá trị 0. Bit 2,1,0: là 3 bit lựa chọn xung cho C/T dựa vào bảngsau đây :
Bảng 2.7 Thiết lập thanh ghi điều khiển Timer/Counter0CS02 CS01 CS00 Description