Phaăn III.THIÊT KÊ PHAĂN CỨNG
II.3.Sơ đoă nguyeđn lý
7. Sự khởi đoơng và truy xuât các thanh ghi timer:
- Các Timer được khởi đoơng 1 laăn ở đaău chương trình đeơ đaịt mode hốt đoơng cho chúng. Sau đó trong chương trình các Timer được baĩt đaău, được xóa, các thanh ghi Timer được đĩc và caơp nhaơt . . . theo yeđu caău cụa từng ứng dúng cú theơ.
- Mode Timer TMOD là thanh ghi đaău tieđn được khởi gán, bởi vì đaịt mode
hốt đoơng cho các Timer. Ví dú khởi đoơng cho Timer 1 hốt đoơng ở mode 1 (mode Timer 16bit) và được ghi giờ baỉng dao đoơng tređn Chip ta dùng leơnh: MOV TMOD,# 00001000B.
- Trong leơnh này M1 = 0, M0 = 1 đeơ vào mode 1 và C/T = 0, GATE=0 đeơ
cho phép ghi giờ beđn trong đoăng thời xóa các bit mode cụa Timer 0. Sau leơnh tređn Timer văn chưa đêm giờ, nó chư baĩt đaău đêm giờ khi set bit đieăău khieơđn cháy TR1 cụa nó.
- Nêu ta khođng khởi gán giá trị đaău cho các thanh ghi TLx/THx thì Timer sẽ baĩt đaău đêm từ 0000H leđn và khi tràn từ FFFFH sang 0000H nó sẽ baĩt đaău tràn TFx roăi tiêp túc đêm từ 0000H leđn tiêp . . .
- Nêu ta khởi gán giá trị đaău cho TLx/THx, thì Timer sẽ baĩt đaău đêm từ giá trị khởi gán đó leđn nhưng khi tràn từ FFFFH sang 0000H lái đêm từ 0000H leđn.
INTO (P3.2) 16 Bit 0 = Up 0 = Up 1 = Down 1 = Down On Chip Osillator ÷ 12 TL0 TH TF0 C/T TR0 GATE 12 MHz T0 (P3.4)
- Chú ý raỉng cờ tràn TFx tự đoơng được set bởi phaăn cứng sau moêi sự tràn và sẽ được xóa bởi phaăn meăm. Chính vì vaơy ta có theơ laơp trình chờ sau moêi laăn tràn ta sẽ xóa cờ TFx và quay vòng laịp khởi gán cho TLx/THx đeơ Timer luođn luođn baĩt đaău đêm từ giá trị khởi gán leđn theo ý ta mong muôn.
- Đaịc bieơt những sự khởi gán nhỏ hơn 256 μs, ta sẽ gĩi mode Timer tự đoơng
náp 8 bit cụa mode 2. Sau khi khởi gán giá trị đaău vào THx, khi set bit TRx thì Timer sẽ baĩt đaău đêm giá trị khởi gán và khi tràn từ FFH sang 00H trong TLx, cờ TFx tự đoơng được set đoăng thời giá trị khởi gán mà ta khởi gán cho Thx được náp tự đoơng vào TLx và Timer lái được đêm từ giá trị khởi gán này leđn. Nói cách khác, sau moêi tràn ta khođng caăn khởi gán lái cho các thanh ghi Timer mà chúng văn đêm được lái từ giá trị ban đaău.
8. Sự đĩc thanh ghi timer tređn tuyên:
- Trong moơt sô ứng dúng caăn thiêt đĩc giá trị trong các thanh ghi Timer tređn
tuyên, có moơt vân đeă tieăm naíng đơn giạn đeơ bạo veơ lái phaăn meăm. Bởi vì 2 thanh ghi Timer phại được đĩc, neđn “loêi giai đốn” có theơ xuât hieơn nêu byte tràn và byte cao giữa 2 hốt đoơng đĩc. Moơt giại pháp đeơ khaĩc phúc là đĩc byte cao trước, sau đoù đĩc byte thâp, và đĩc lái byte cao: Nêu byte cao thay đoơi thì laịp lái các hốt đoơng đĩc.