Hoạt động Timer của MCS 51 GV: Trần Nhựt Khải Hoàn... Thanh ghi TMOD Timer Mode... Thanh ghi TCON Timer control Thanh ghi điều khiển Timer Các bit tác động cao Tên bit TF1 TR1 TF0 TR0 I
Trang 1Hoạt động Timer của MCS 51
GV: Trần Nhựt Khải Hoàn
Trang 2Tổ chức bên trong MCS@51
INT0 INT1
Interrupt
Control
4KB Flash ROM
CPU
Port
RAM 128Byte thấp
Counter Inputs
TXD RXD
SFRs 128Byte cao
Bus Control
I/O Ports
P0 P2 P1 P3
Timer1 Timer0
256 Bytes RAM
ACC
B
PC
Trang 3Sơ đồ chân
Trang 4Nhắc lại tên gọi các thanh ghi
Trang 5Thanh ghi TMOD (Timer Mode)
Trang 604 chế độ hoạt động
Trang 7Thanh ghi TCON (Timer control)
Thanh ghi điều khiển Timer (Các bit tác động cao)
Tên bit TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF1, TF0 (Timer overflow flag)
Được SET là 1 khi Timer/counter tràn
TR1, TR0 (Timer run control bit): Cho phép Timer/counter chạy
IE1, IE0 (External interrupt edge flag)
Cờ ngắt, tự động bật lên = 1 khi có ngắt tác động
IT1, IT0 (Interrupt type control)
Nếu được SET sẽ cho phép các ngắt tác động cạnh
Trang 8Trạng thái các thanh ghi khi Reset
Trang 9Hoạt động Mode 0 và Mode 1
• Mode 0: Timer/ Counter 13 bits
• Mode 1: Timer/ Counter 16 bits
Trang 10Hoạt động Mode 2
• Mode 2: 8 bits Auto Reload
Trang 11Nguyên tắc cấp xung cho Timer
Trang 12Bài tập
1 Viết đoạn lệnh khởi tạo cho Timer0 hoạt động ở Mode 0,
Timer1 hoạt động ở Mode1 Điều khiển Run bằng phần
mềm?
2 Viết 1 đoạn lệnh khởi tạo cho Timer0 hoạt động ở Mode 1,
điều khiển bằng phần mềm; Timer 1 hoạt động như 1
counter 16 bits Điều khiển bằng phần cứng?
3 Viết chương trình khởi tạo Timer0 hoạt động như 2 bộ
Timer 8 bits, điều khiển bằng phần mềm?
Trang 13Bài tập
4 Viết chương trình sao cho các led của Port 3
chớp tắt với tần số đúng 1Hz?
5 Viết chương trình sao cho các led ở Port 3
sáng 500ms, tắt 300ms rồi lặp lại?
VCC
D1
R9 220
R9 220
VCC VCC
D3 D5
VCC
R9 220
D6 D2
VCC
D4
33pF
VCC VCC VCC
D7
R9 220 D8
R9 220 U7 AT89C51
9 18
30 31
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
39 38 37 36 35 34 33 32
RST XTAL2 XTAL1 PSEN
ALE/PROG EA/VPP
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
R9 220
12MHz
R9 220
33pF
R9 220