Ch− ơng III: Giới thiệu về hụ vi điều khiển MCS-
3.1.2. CAÙC CHệÙC NAÍNG CHÍNH CỤA AT89S
a. Input/Output (I/O)
* Port0: laứ port coự 2 chửực naớng, trong caực thiẽt kẽ cụừ nhoỷ (khođng duứng boụ nhụự mụỷ roụng) coự hai chửực naớng nhử caực ủửụứng I/O. ẹõi vụựi caực thiẽt kẽ cụừ lụựn (vụựi boụ nhụự mụỷ roụng) noự ủửụùc kẽt hụùp keđnh giửừa caực bus.
* Port1: port1 laứ moụt port I/O, coự theơ duứng cho caực thiẽt bũ ngoaứi nẽu caăn. Port1 khođng coự chửực naớng khaực, vỡ vaụy chuựng ta chư ủửụùc duứng trong giao tiẽp vụựi caực thiẽt bũ ngoaứi.
caực ủửụứng xuãt nhaụp hoaịc laứ byte cao cụa bus ủũa chư ủõi vụựi caực thiẽt kẽ duứng boụ nhụự mụỷ roụng.
* Port3: port 3 laứ moụt port cođng dỳng keựp. Caực chađn cụa port naứy coự nhieău chửực naớng, caực cođng dỳng chuyeơn ủoơi coự lieđn heụ vụựi caực ủaịc tớn ủaịc bieụt nhử ụỷ bạng sau :
Bit Teđn Chửực naớng chuyeơn ủoơi
P3.0 RXD Dửừ lieụu nhaụn cho coơng nõi tiẽp
P3.1 TXD Dửừ lieụu phaựt cho coơng nõi tiẽp
P3.2 INT0 Ngaĩt 0 beđn ngoaứi P3.3 INT1 Ngaĩt 1 beđn ngoaứi
P3.4 T0 Ngoừ vaứo Timer/Counter 0 P3.5 T1 Ngoừ vaứo Timer/Counter 1 P3.6 WR Xung ghi boụ nhụự dửừ lieụu
ngoaứi
P3.7 RD Xung ủúc boụ nhụự dửừ lieụu ngoaứi
b, Timer (Timer 0, Timer 1, Timer 2)
Trong AT89S52 coự 3 timer 16 bit, Timer 0 vaứ Timer 1 moời timer coự bõn chẽ ủoụ laứm vieục. Timer 2 coự 3 chẽ ủoụ laứm vieục: 16 bit Auto-Reload, 16 bit capture, Baud Rate Generator. Ngửụứi ta sửỷ dỳng caực timer ủeơ: ủũnh khoạng thụứi gian, ủẽm sửù kieụn hoaịc tỏo tõc ủoụ baud cho port nõi tiẽp.
c. Interrups:
Trong AT89S52 coự toơng coụng 6 veực tụ ngaĩt: 2 veực tụ ngaĩt ngoaứi (INT0, INT1), 3 ngaĩt Timer (Timer 0, 1, 2) vaứ 1 ngaĩt
coơng nõi tiẽp. Caực ngaĩt bũ cãm sau khi reset heụ thõng vaứ seừ ủửụùc cho pheựp baỉng vieục ghi thanh ghi cho pheựp ngaĩt (IE) ụỷ ủũa chư 8AH.
d, Thanh ghi ủaịc bieụt
* Caực thanh ghi port xuãt nhaụp: Caực port cụa 8051 bao goăm Port 0 ụỷ ủũa chư 80H, Port 1 ụỷ ủũa chư 90H, Port 2 ụỷ ủũa chư A0H vaứ Port 3 ụỷ ủũa chư B0H. Tãt cạ caực Port ủeău ủửụùc ủũa chư hoựa tửứng bit. ẹieău ủoự cung cãp moụt khạ naớng giao tiẽp thuaụn lụùi.
* Caực thanh ghi timer: Timer 0 ụỷ ủũa chư 8AH (TL0: byte thãp) vaứ 8CH (TH0: byte cao). Timer 1 ụỷ ủũa chư 8BH (TL1:byte thãp) vaứ 8DH (TH1: byte cao). ẹeơ thiẽt laụp Timer 2 caăn thiẽt laụp caực bit trong thanh ghi T2CON vaứ T2MOD. Vieục vaụn haứnh timer ủửụùc thiẽt laụp bụỷi thanh ghi Timer Mode (TMOD) ụỷ ủũa chư 89H vaứ thanh ghi ủieău khieơn timer (TCON) ụỷ ủũa chư 88H. Chư coự TCON ủửụùc ủũa chư hoựa tửứng bit.
* Caực thanh ghi port nõi tiẽp: 8051 chửực moụt port nõi tiẽp tređn chip daứnh cho vieục trao ủoơi thođng tin vụựi caực thiẽt bũ nõi tiẽp nhử maựy tớnh, modem hoaịc cho vieục giao tiẽp vụựi caực IC khaực coự giao tiẽp nõi tiẽp (coự boụ chuyeơn ủoơi A/D, caực thanh ghi dũch..).
Moụt thanh ghi gúi laứ boụ ủeụm dửừ lieụu nõi tiẽp (SBUF) ụỷ ủũa chư 99H seừ giửừ cạ hai giửừ lieụu truyeăn vaứ nhaụn. Khi truyeăn dửừ lieụu thỡ ghi leđn SBUF, khi nhaụn dửừ lieụu thỡ ủúc SBUF. Caực mode vaụn haứnh khaực nhau ủửụùc laụp trỡnh qua thanh ghi ủieău khieơn port nõi tiẽp (SCON) (ủửụùc ủũa chư hoựa tửứng bit) ụỷ ủũa chư 98H.
* Caực thanh ghi ủieău khieơn cođng suãt: Thanh ghi ủieău khieơn cođng suãt (PCON) ụỷ ủũa chư 87H chửựa nhieău bit ủieău khieơn.