Tải bản đầy đủ (.pdf) (42 trang)

Đo và hiển thị nhiệt độ dùng LCD, có báo cháy

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (882.61 KB, 42 trang )

- 1 -


LӠI NÓI ĐҪU

Ngày nay, sӵ bùng nә cӫa khoa hӑc kӻ thuұt đòi hӓi chúng ta phҧi ӭng dөng
nhӳng công nghӋ mӟi, hiӋn đҥi vào sҧn xuҩt và đӡi sӕng đӇ đҥt đưӧc hiӋu quҧ cao
nhҩt. Nhӳng thành tӵu cӫa khoa hӑc kӻ thuұt tiên tiӃn làm thӃ giӟi cӫa chúng ta đã
và đang ngày mӝt thay đәi, văn minh và hiӋn đҥi hơn. Sӵ phát triӇn cӫa kӻ thuұt
điӋn tӱ đã tҥo ra hàng loҥt nhӳng thiӃt bӏ vӟi các đһc điӇm nәi bұt như sӵ chính xác
cao, tӕc đӝ nhanh, gӑn nhҽ là nhӳng yӃu tӕ rҩt cҫn thiӃt góp phҫn cho hoҥt đӝng cӫa
con ngưӡi đҥt hiӋu quҧ cao.
Kӻ thuұt vi điӅu khiӇn hiӋn nay rҩt phát triӇn, nó đưӧc ӭng dөng vào rҩt nhiӅu
lĩnh vӵc sҧn xuҩt công nghiӋp, tӵ đӝng hóa, trong đӡi sӕng và còn nhiӅu lĩnh vӵc
khác nӳa. So vӟi kӻ thuұt sӕ thì kӻ thuұt vi điӇu khiӇn nhӓ gӑn hơn rҩt n hiӅu do nó
đưӧc tích hӧp lҥi và có khҧ năng lұp trình đưӧc đӇ điӅu khiӇn. Nên rҩt tiӋn dөng và
cơ đӝng. Các bӝ vi điӅu khiӇn theo thӡi gian cùng vӟi sӵ phát triӇn cӫa công nghӋ
bán dүn đã tiӃn triӇn rҩt nhanh, tӯ các bӝ vi điӅu khiӇn 4 bit đơn giҧn đӃn các bӝ vi
điӅu khiӇn 32 bit, rӗi sau này là 64 bit. ĐiӋn tӱ đang trӣ thành mӝt ngành khoa hӑc
đa nhiӋm vө. ĐiӋn tӱ đã đáp ӭng đưӧc nhӳng đòi hӓi không ngӯng nhӳng yêu cҫu
cҫn thiӃt trong hoҥt đӝng đӡi sӕng hҵng ngày.
Mӝt trong sӕ đó là ӭng dөng nhiӋt kӃ điӋn tӱ vào sҧn xuҩt và đӡi sӕng nhҵm
xác đӏnh đưӧc nhiӋt đӝ chính xác cӫa thiӃt bӏ cũng như hӋ thӕng đӇ có nhӳng điӅu
chӍnh phù hӧp. Chính vì thӃ, vӟi nhӳng kiӃn thӭc đã hӑc vӅ Vi điӅu khiӇn và mӝt sӕ
nghiên cӭu vӅ cҧm biӃn nhiӋt em quyӃt đӏnh làm đӗ án vӅ ³ Đo và hi͋n th͓ nhi͏t đ͡
dùng LCD, có báo cháy´
Mһc dù cӕ gҳng đӇ hoàn thành đӗ án nhưng do mӟi làm quen vӟi Vi điӅu
khiӇn nên không thӇ tránh khӓi nhӳng sai sót. Em mong thҫy cô có nhӳng nhұn xét
và góp ý đӇ đӗ án đưӧc hoàn thiӋn hơn.
Em xin chân thành cҧm ơn!


Sinh viên thӵc hiӋn: Phan Đӭc Yên

- 2 -


MӨC LӨC

Trang

LӠI NÓI ĐҪU: ........................................................................ 1
I. Giӟi thiӋu đӅ tài:
1. Mөc tiêu ............................................................................. 3
2. Ý nghĩa khoa hӑc ............................................................... 3
3. Phương pháp nghiên cӭu .................................................... 4
II. Phân tích
1. Vi điӅu khiӇn 8051 ............................................................. 5
a. Vi điӅu khiӇn hӑ MCS-51 ........................................ 5
b. Vi điӅu khiӇn AT89C51 .......................................... 5
2. Chíp ADC 0804................................................................. 14
a. Tәng quan ............................................................... 14
b. Đһc điӇm cҩu tҥo ..................................................... 14
c. KiӇm tra ADC ......................................................... 18
3. Cҧm biӃn nhiӋt LM35 ........................................................ 19
a. Nguyên lý đo cӫa cҧm biӃn ..................................... 19
b. Dҧi nhiӋt đӝ và sӵ thay đәi trӣ kháng ...................... 19
c. Giӟi thiӋu hӑ LM35 ................................................. 20
d. Phӕi hӧp tín hiӋu và sơ đӗ khӕi phӕi ghép
LM35 vӟi 8051 ........................................................... 22
e. Cҧm biӃn nhiӋt LM35DZ ........................................ 23
4. HiӇn thӏ LCD ..................................................................... 26

a. Mô tҧ các chân LCD ................................................ 27
b. Hoҥt đӝng LCD ....................................................... 29
5. Thuұt toán: ........................................................................ 32
a. Sơ đӗ thuұt toán....................................................... 32
b. Thuұt toán phҫn hiӇn thӏ và thông báo
nhiӋt đӝ ....................................................................... 33
6. Code chương trình ............................................................. 34
III. KӃt quҧ mô phӓng
1. Sơ đӗ mô phӓng Protues .................................................... 37
2. KӃt quҧ .............................................................................. 39
IV. KӃt luұn
1. Ưu điӇm ............................................................................. 40
2. Nhưӧc điӇm ....................................................................... 40
3. Hưӟng phát triӇn ................................................................ 40
NHҰN XÉT CӪA GIÁO VIÊN HƯӞNG DҮN 41
- 3 -


I. GIӞI THIӊU Đӄ TÀI:
1. Mөc tiêu:
- Sӱ dөng cҧm biӃn nhiӋt đӇ đo đưӧc sӵ thay đәi nhiӋt đӝ cӫa môi
trưӡng.
- Ghép nӕi cҧm biӃn nhiӋt vӟi bӝ chuyӇn đәi tương tӵ sӕ đӇ chuyӇn tín
hiӋu vào Vi điӅu khiӇn.
- Vұn dөng kiӃn thӭc vӅ Vi điӅu khiӇn đӇ lұp trình hiӇn thӏ giá trӏ nhiӋt đӝ
và nhӳng cҧnh báo vӅ nhiӋt đӝ ra màn hình LCD.
- Nghiên cӭu đӇ ӭng dөng vào thӵc tӃ.
2. Ý nghĩa khoa hoc:
- Ngày nay vӟi sӵ phát triӇn cӫa công nghiӋp vi điӋn tӱ, kӻ thuұt sӕ, các
hӋ thӕng điӅu khiӇn dҫn dҫn đưӧc tӵ đӝng hóa. Vӟi nhӳng kӻ thuұt tiên tiӃn như

vi xӱ lí, vi mҥch sӕ« đưӧc ӭng dөng vào lĩnh vӵc điӅu khiӇn , thì các hӋ thӕng
điӅu khiӇn cơ khí thô sơ, vӟi tӕc đӝ xӱ lí chұm chҥp ít chính xác đưӧc thay thӃ
bҵng các hӋ thӕng điӅu khiӇn tӵ đӝng vӟi các lӋnh chương trình đã đưӧc thiӃt
lұp trưӟc.
- Trong quá trình sҧn xuҩt ӣ các nhà máy, xí nghiӋp hiӋn nay, vҩn đӅ
nhiӋt đӝ đưӧc xem là quan trӑng và đưӧc đһt lên hàng đҫu. ĐӇ đҧm bҧo cho hӋ
thӕng làm viӋc chính xác và hiӋu quҧ thì viӋc đo và hiӇn thi nhiӋt đӝ là hӃt sӭc
quan trӑng. Chúng ta cҫn phҧi biӃt giá trӏ nhiӋt đӝ đӇ có nhӳng điӅu chӍnh phù
hơp, đӇ có thӇ tránh đưӧc nhӳng sӵ viӋc đáng tiӃc như hӓa hoҥn hay hư hӓng hӋ
thӕng. Và giúp cho hӋ thӕng kiӇm soát nhiӋt đӝ mӝt cách tӵ đӝng đӇ đҧm bҧo
duy trì nhiӋt đӝ thích hӧp và tiӃt kiӋm năng lưӧng.
- ĐӇ đáp ӭng nhӳng yêu cҫu đһt ra đòi chúng ta phҧi có nhӳng biӋn pháp
cө thӇ đӇ tiӃn hành đo và hiӇn thӏ giá trӏ nhiӋt đӝ cũng như nhӳng cҧnh báo mӝt
cách chính xác. Chính vì thӃ trong đӗ án này em đã ӭng dөng Vi điӅu khiӇn
AT89C51 vào viӋc đo và hiӇn thӏ nhiӋt đӝ, sӱ dөng LCD 8 bit đӇ hiӇn thӏ giá trӏ
cӫa nhiӋt đӝ và nhӳng cҧnh báo.


- 4 -



3. Phương pháp nghiên cӭu:
- Dӵa vào nhӳng kiӃn thӭc đã hӑc vӅ Vi điӅu khiӇn AT 89C51, ghép nӕi
vӟi các thiӃt bӏ ngoҥi vi đӇ mô phӓng mҥch đo và hiӇn thӏ nhiӋt đӝ.
- Sӱ dөng cҧm biӃn nhiӋt LM35 đӇ nhұn giá trӏ nhiӋt đӝ dưӟi dҥng tương
tӵ tӯ môi trưӡng và sӱ dөng bӝ chuyӇn đәi ADC 0804 đӇ chuyӇn giá trӏ nhұn
đưӧc tӯ LM35 thành tín hiӋu sӕ 8 bit gӱi vào Vi điӅu khiӇn 89C51.
- KӃt hơp vӟi ngôn ngӳ lұp trình mà ӣ đây em chӑn là C và phҫn mӅm
Keil C đӇ lұp trình cho Vi điӅu khiӇn AT 89C51.





- 5 -

II. PHÂN TÍCH
1. Vi điӅu khiӇn 8051(AT89C51)
a . Vi đi͙u khi͛n hͥ MCS -51
MCS-51 là hӑ vi điӅu khiӇn do hãng INTEL sҧn xuҩt vào đҫu nhӳng năm 80
và ngày nay đã trӣ thành mӝt chuҭn trong công nghiӋp. Bҳt đҫu tӯ IC tiêu biӇu là
8051 đã cho thҩy khҧ năng thích hӧp vӟi nhӳng ӭng dөng mang tính điӅu khiӇn.
ViӋc xӱ lí trên byte và các phép toán sӕ hӑc ӣ cҩu trúc dӳ liӋu nhӓ đưӧc thӵc hiӋn
bҵng nhiӅu chӃ đӝ truy xuҩt dӳ liӋu nhanh trên RAM nӝi. Tұp lӋnh cung cҩp mӝt
bҧn tiӋn dөng cӫa nhӳng lӋnh sӕ hӑc 8 bit gӗm cҧ lӋnh nhân và lӋnh chia. Nó cung
cҩp nhӳng hӛ trӧ mӣ rӝng on-chip dùng cho nhӳng biӃn 1 bit như là kiӇu dӳ liӋu
riêng cho phép quҧn lí và kiӇm tra bit trӵc tiӃp trong điӅu khiӇn và nhӳng hӋ thӕng
logic đòi hӓi xӱ lí luұn lí.
Bҧng so sánh các IC trong hӑ MCS-51 :

TÊN
LINH KIӊN
BӜ NHӞ
CHƯƠNG TRÌNH
ON CHIP
BӜ NHӞ DӲ
LIӊU ON CHIP
TIMER
8051 4 KB MROM 128 Bytes 2
8031 0 KB 128 Bytes 2

8751 4 KB EPROM 128 Bytes 2
8951 4 KB Flash ROM 128 bytes 2
8052 8 KB MROM 256 Bytes 3
8032 0 KB 256 Bytes 3
8752 8 KB EPROM 256 Bytes 3
8952 8 KB Flash ROM 256 Bytes 3

b. Vi đi͙u khi͛n AT89C51
Vi điӅu khiӇn 8051 thuӝc hӑ vi điӅu khiӇn MCS-51, là mӝt bӝ xӱ lý 8 bit, có
nghĩa là CPU chӍ có thӇ làm viӋc vӟi 8 bit dӳ liӋu tҥi mӝt thӡi điӇm. Dӳ liӋu lӟn
hơn 8 bit sӁ đưӧc chia thành dӳ liӋu 8 bit đӇ xӱ lý.
- 6 -

Mӝt sӕ đһc điӇm chính cӫa 8051:
- 4K bytes ROM trong
- 128 bytes RAM trong
- 4 cәng I/O 8-bit
- 2 bӝ đӏnh thӡi 16 bit
- Giao diӋn nӕi tiӃp
- Quҧn lý đưӧc 64K bӝ nhӟ code bên ngoài
- Quҧn lý đưӧc 64K bӝ nhӟ dӳ liӋu bên ngoài
Sơ đӗ khӕi


- 7 -



Cҩu tҥo chân
Ty theo khҧ năng (vӅ kinh tӃ, kӻ thuұt, «) m cc nh sҧn xuҩt cc sҧn phҭm ӭng

dөng cĩ thӇ chӑn mӝt trong 3 kiӇu chn do ATMEL đưa ra.



Mô tҧ chӭc năng cӫa các chân
+ Chân Vcc : áp nguӗn.
+ Chân GND : đҩt.
+ Port 0 : là mӝt port I/O 8-bit hai chiӅu, cӵc máng hӣ. Khi xuҩt ra, mӛi chân
port có thӇ lái 8 đҫu vào TTL. NӃu ghi các mӭc 1 ra các chân port thì các chân này
có thӇ dùng như các đҫu vào trӣ kháng cao.

- 8 -

Port 0 cũng có thӇ đưӧc cҩu hình thành mӝt bus multiplex giӳa đӏa chӍ thҩp và
dӳ liӋu khi truy cұp chương trình hay dӳ liӋu tӯ bên ngoài. Trong chӃ đӝ này, port 0
có điӋn trӣ pullup nӝi.
Port 0 cũng nhұn các byte mã chương trình khi lұp trình Flash và xuҩt ra mã
chương trình khi kiӇm tra, khi đó cҫn có điӋn trӣ pullup bên ngoài
+ Port 1 : là mӝt port I/O 8-bit hai chiӅu có pullup nӝi. Đҫu ra port 1 có thӇ lái
4 đҫu vào TTL. Khi viӃt các mӭc 1 ra các chân port thì chúng đưӧc kéo lên do có
điӋn trӣ nӝi và có thӇ dùng làm đҫu vào. Khi vai trò là cәng nhұp, nhӳng chân cӫa
port 1 bӏ kéo xuӕng thҩp sӁ đә dòng vì có nӝi trӣ kéo lên.

Hơn nӳa, P1.0 và P1.1 có thӇ đưӧc dùng như là đҫu vào bӝ đӃm timer/counter
2 bên ngoài (P1.0/T2) và xung kích (P1.1/T2EX).
Port 1 cũng nhұn nhӳng byte đӏa chӍ thҩp trong khi lұp trình Flash và trong khi
kiӇm tra Flash .
+ Port 2 : là mӝt port I/O 8-bit hai chiӅu có pullup nӝi. Đҫu ra port 2 có thӇ lái
4 đҫu vào TTL. Khi viӃt các mӭc 1 ra các chân port thì chúng đưӧc kéo lên do có
điӋn trӣ nӝi và có thӇ dùng làm đҫu vào. Khi vai trò là cәng nhұp, nhӳng chân cӫa

port 2 bӏ kéo xuӕng thҩp sӁ đә dòng vì có nӝi trӣ kéo lên.
- 9 -



Port 2 phát byte đӏa chӍ cao trong khi nhұn lӋnh tӯ bӝ nhӟ chương trình ngoài
và trong lúc truy xuҩt đӃn bӝ nhӟ dӳ liӋu ngoài mà có sӱ dөng đӏa chӍ 16 bit
(MOVX A, @DPTR). Trong ӭng dөng này nó dùng điӋn trӣ nӝi kéo lên mҥnh khi
xuҩt 1. Khi truy xuҩt bӝ nhӟ dӳ liӋu ngoài dùng đӏa chӍ 8 bit, port 2 sӁ phát nӝi dung
cӫa thanh ghi P2
Port 2 cũng nhұn byte đӏa chӍ cao trong lúc lұp trình Flash và trong lúc kiӇm
tra Flash.
+ Port 3 : là mӝt port I/O 8-bit hai chiӅu có pullup nӝi. Đҫu ra port 3 có thӇ lái
4 đҫu vào TTL. Khi viӃt các mӭc 1 ra các chân port thì chúng đưӧc kéo lên do có
điӋn trӣ nӝi và có thӇ dùng làm đҫu vào. Khi vai trò là cәng nhұp, nhӳng chân cӫa
port 3 bӏ kéo xuӕng thҩp sӁ đә dòng vì có nӝi trӣ kéo lên.
Port 3 cũng có nhӳng chӭc năng cӫa hӑ MSC-51 đưӧc liӋt kê ӣ bҧng sau:
BIT TÊN ĐӎA CHӌ BIT CHӬC NĂNG THAY THӂ
P3.0 RXD B0H Nhұn dӯ liӋu cho port nӕi tiӃp
P3.1 TXD B1H TruyӅn dӯ liӋu cho port nӕi tiӃp
P3.2 INT0 B2H Ngҳt ngoài 0
P3.3 INT1 B3H Ngҳt ngoài 1
P3.4 T0 B4H Ngõ vào tӯ bên ngoài cho
timer/counter 0
P3.5 T1 B5H Ngõ vào tӯ bên ngoài cho
- 10 -

timer/counter 1
P3.6 WR B6H Xung ghi bӝ nhӟ dӳ liӋu ngoà i
P3.7 RD B7H Xung đӑc bӝ nhӟ dӳ liӋu ngoài


Port 3 cũng nhұn vài tín hiӋu điӅu khiӇn trong lúc lұp trình Flash và trong lúc
kiӇm tra Flash.
+ RST : là ngõ vào Reset. Khi ngõ này đưӧc đưa lên cao (trong ít nhҩt hai chu
kì máy), các thanh ghi bên trong AT89C51 đưӧc tҧi nhӳng giá trӏ thích hӧp đӇ khӣi
đӝng hӋ thӕng.
+ ALE/PROG (Address Latch Enable) : ALE là xung xuҩt cho phép chӕt
byte đӏa chӍ thҩp khi truy cұp bӝ nhӟ ngoài. Chân này còn là ngõ vào cӫa xung lұp
trình (PROG) khi lұp trình Flash
Trong hoҥt đӝng bình thưӡng, ALE đưӧc phát xung vӟi tҫn sӕ 1/6 tҫn sӕ dao
đӝng on-chip và có thӇ đưӧc dùng như xung thӡi gian chuҭn bên ngoài. Tuy nhiên,
cҫn chú ý là mӝt xung ALE sӁ bӏ mҩt khi truy cұp bӝ nhӟ ngoài.
Có thӇ hӫy bӓ chӭc năng cӫa ALE bҵng cách set bit 0 cӫa thanh ghi ӣ vӏ trí
8EH. Mӝt khi bit này đưӧc set, ALE chӍ tích cӵc khi có lӋnh MOVX hoһc MOVC.
NӃu không có các lӋnh này thì ALE ӣ mӭc cao. ViӋc set bit 0 cӫa thanh ghi ӣ vӏ trí
8EH không làm ҧnh hưӣng đӃn vi điӅu khiӇn khi truy cұp bӝ nhӟ ngoài.
+ PSEN (Program Store Enable) : PSEN là xung strobe báo hiӋu viӋc đӑc bӝ
nhӟ chương trình ngoài, PSEN tích cӵc hai lҫn (mӭc thҩp) mӛi chu kì máy, ngoҥi
trӯ hai xung PSEN bӏ mҩt khi truy xuҩt dӳ liӋu ngoài. Khi thi hành chương trình
trong RAM nӝi, PSEN sӁ ӣ mӭc thө đӝng (mӭc cao).
+ EA/V
PP
(External Access) : EA là ngõ vào đӇ cho phép truy xuҩt bӝ nhӟ
chương trình tӯ bên ngoài khi đưӧc nӕi vӟi GND. Khi EA đưӧc treo lên nguӗn V
CC
,
chương trình sӁ đưӧc thӵc thi trong ROM nӝi. Chân này cũng nhұn điӋn áp 12v
(V
PP
) trong khi lұp trình Flash.

+ XTAL1 : Đҫu vào cӫa bӝ khuӃch đҥi dao đӝng đҧo và cũng là đҫu vào đӃn
mҥch tҥo xung clock nӝi.
+ XTAL2 : Đҫu ra cӫa bӝ khuӃch đҥi dao đӝng đҧo.
- 11 -

Các thanh ghi chӭc năng (SFR-Special Funtion Registers)
AT89C51 có 26 thanh ghi chӭc năng đưӧc thiӃt kӃ như là mӝt thành phҫn cӫa
RAM on-chip. Do đó mӛi thanh ghi có mӝt đӏa chӍ cӫa nó, nҵm trong vùng tӯ 80H
đӃn FFH. Tuy nhiên, vùng này cũng là vùng bӝ nhӟ nên viӋc truy cұp các thanh ghi
này thông qua các lӋnh dùng đӏnh vӏ trӵc tiӃp khác vӟi viӋc truy cұp vùng nhӟ dùng
đӏnh vӏ gián tiӃp.
Bҧng vӏ trí các thanh ghi chӭc năng :





- 12 -

Ngoài nhӳng thanh ghi tương tӵ 8051, AT89C51 có thêm :
Các thanh ghi Timer 2 các bit điӅu khiӇn và trҥng thái chӭa trong thanh ghi
T2CON và T2MOD cho Timer 2. Cһp thanh ghi RCAP2H và RCAP2L là nhӳng
thanh ghi Capture/Reload trong chӃ đӝ capture 16 bit hay chӃ đӝ auto -reload 16 bit.

Ký hiӋu Chӭc năng
TF2 Cӡ tràn Timer 2, set khi Timer 2 tràn và phҧi đưӧc clear bҵng phҫn
mӅm. TF2 sӁ không set khi RCLK = 1 hoһc TCLK = 1.
EXF2 Cӡ ngoài cӫa Timer 2, set khi xҧy ra capture hoһc reload do T2EX
xuӕng thҩp và EXEN2 = 1. NӃu ngҳt Timer 2 đưӧc kích hoҥt,
EXF2 = 1 sӁ làm CPU trӓ đӃn ISR cӫa Timer 2. EXF2 phҧi đưӧc

xóa bҵng phҫn mӅm. EXF2 không gây nên ngҳt trong chӃ đӝ đӃm
lên/xuӕng (DCEN = 1).
RCLK Kích hoҥt xung clock bӝ thu. Khi set, các xung tràn Timer 2 sӁ là
xung clock cho bӝ thu port nӕi tiӃp trong mode 1 và 3. RCLK = 0
thì bӝ thu port nӕi tiӃp sӁ dùng các xung tràn cӫa Timer 1.
TCLK Kích hoҥt xung clock bӝ phát. Khi set, các xung tràn Timer 2 sӁ là
xung clock cho bӝ phát port nӕi tiӃp trong mode 1 và 3. TCLK = 0
thì bӝ phát port nӕi tiӃp sӁ dùng các xung tràn cӫa Timer 1.
EXEN2 Kích hoҥt bên ngoài. Khi set, cho phép capture hay reload khi
T2EX xuӕng thҩp (nӃu Timer 2 không sӱ dөng cho port nӕi tiӃp).
EXEN2 = 0 làm cho Timer 2 bӓ qua các sӵ kiӋn trên T2EX.
TR2 Khӣi đӝng/Dӯng Timer 2. TR2 = 1 làm khӣi đӝng Timer 2.
C/T2 Bit lӵa chӑn timer hay counter. C/T2 = 0 : timer. C/T2 = 1 : counter
đӃm sӵ kiӋn bên ngoài (kích cҥnh xuӕng).
CP/RL2 Lӵa chӑn capture hay reload. CP/RL2 = 1: capture xҧy ra khi T2EX
xuӕng thҩp nӃu EXEN2 = 1. CP/RL2 = 0 : reload xҧy ra khi Timer
2 tràn hoһc khi T2EX xuӕng thҩp nӃu EXEN2 = 1. NӃu TCLK hay
RCLK = 1, bit này bӏ bӓ qua và timer bӏ ép vào chӃ đӝ reload khi
Timer 2 tràn.
- 13 -

Các thanh ghi ngҳt tұp các bit riêng lҿ cho phép ngҳt chӭa trong thanh ghi IE.
ThiӃt lұp hai mӭc ưu tiên cho 6 nguӗn ngҳt bҵng cách set các bit thanh ghi IP.
Bӝ nhӟ dӳ liӋu
AT89C51 có 256 byte bӝ nhӟ RAM on-chip. Trong đó, 128 byte trên có cùng
đӏa chӍ vӟi vùng thanh ghi chӭc năng nhưng có cҩu tҥo vұt lý riêng biӋt.
Khi mӝt lӋnh truy cұp mӝt vӏ trí nӝi có đӏa chӍ trên 7FH, chӃ đӝ đӏa chӍ nó sӱ
dөng sӁ báo cho CPU biӃt vùng đӏa chӍ nào nó cҫn truy cұp : RAM hay SFR. Các
lӋnh dùng đӏa chӍ trӵc tiӃp sӁ truy cұp vùng SFR. Ví dө như lӋnh sau đây (Asembly)
sӁ truy cұp SFR ӣ đӏa chӍ 0A0H (port 2)

MOV 0A0H,#data
LӋnh dùng đӏa chӍ gián tiӃp sӁ truy cұp 128 byte trên cӫa RAM. Ví dө như
cũng truy cұp đӏa chӍ 0A0H nhưng gián tiӃp thông qua R0.
MOV R0,#0A0H
MOV @R0,#data
Chú ý rҵng các tác vө cӫa stack vӕn đã sӱ dөng đӏa chӍ gián tiӃp nên vùng 128
byte trên cӫa RAM rҩt tiӋn dөng đӇ làm vùng stack
Đһc tính bӝ dao đӝng
XTAL1 là đҫu vào và đҫu ra tương ӭng cӫa bӝ khuӃch đҥi đҧo đưӧc dù ng làm
bӝ dao đӝng nӝi on-chip. Có thӇ dùng thҥch anh hay bӝ cӝng hưӣng ceramic đӅu
đưӧc.
ĐӇ lái vi điӅu khiӇn tӯ nguӗn xung clock bên ngoài, XTAL2 phҧi đưӧc đӇ
trӕng trong khi XTAL1 nӕi đӃn nguӗn lái. Không có yêu cҫu gì vӅ duty cycle
nhưng phҧi chú ý đӃn thӡi gian tӕi đa và tӕi thiӇu cӫa mӭc điӋn áp cao cũng như
mӭc điӋn áp thҩp.




- 14 -


2. Giӟi thiӋu chíp ADC 0804
a. Tͭng quan:
Các bӝ chuyӇn đәi ADC thuӝc trong nhӳng thiӃt bӏ đưӧc sӱ dөng
rӝng rãi nhҩt đӇ thu dӳ liӋu. Các máy tính sӕ sӱ dөng các giá trӏ nhӏ phân, nhưng
trong thӃ giӟi vұt lý thì mӑi đҥi lưӧng ӣ dҥng tương tӵ (liên tөc). NhiӋt đӝ, áp suҩt
(khí hoһc chҩt lӓng), đӝ ҭm và vұn tӕc và mӝt sӕ ít trӑng nhӳng đҥi l ưӧng vұt lý cӫa
thӃ giӟi thӵc mà ta gһp hàng ngày. Mӝt đҥi lưӧng vұt lý đưӧc chuyӇn vӅ dòng điӋn
hoһc điӋn áp qua mӝt thiӃt bӏ đưӧc gӑi là các bӝ biӃn đәi. Các bӝ biӃn đәi cũng có

thӇ đưӧc coi như các bӝ cҧm biӃn. Mһc dù chӍ có các bӝ cҧm biӃn nhiӋt, tӕc đӝ, áp
suҩt, ánh sáng và nhiӅu đҥi lưӧng tӵ nhiên khác nhưng chúng đӅu cho ra các
tín hiӋu dҥng dòng điӋn hoһc điӋn áp ӣ dҥng liên tөc. Do vұy, ta cҫn mӝt bӝ
chuyӇn đәi tương tӵ sӕ sao cho bӝ vi điӅu khiӇn có thӇ đӑc đưӧc chúng. Mӝt chíp
ADC đưӧc sӱ dөng rӝng rãi là ADC 0804.
b. Đ͏c đi͛m c̽u t̹o:
Chíp ADC 0804 là bӝ chuyӇn đәi tương tӵ sӕ trong hӑ các loҥt ADC 0800
tӯ hãng National Semiconductor. Nó cũng đӧc nhiӅu hãng khác sҧn xuҩt, nó làm
viӋc vӟi +5V và có đӝ phân giҧi là 8 bít. Ngoài đӝ phân giҧi thì thӡi gian chuyӇn đәi
cũng là mӝt yӃu tӕ quan trӑng khác khi đánh giá mӝt bӝ ADC. Thӡi gian chuyӇn
đәi đưӧc đӏnh nghĩa như là thӡi gian mà bӝ ADC cҫn đӇ chuyӇn mӝt đҫu vào tương
tӵ thành mӝt sӕ nhӏ phân. Trong ADC 0804 thӡi gian chuyӇn đәi thay đәi phө thuӝc
vào tҫn sӕ đӗng hӗ đưӧc cҩp tӟi chân CLK và CLK IN nhng không thӇ nhanh hơn
110 micro giây. Các chân cӫa ADC 0804 đưӧc mô tҧ như sau:
1. Chân CS - chӑn chíp: Là mӝt đҫu vào tích cӵc mӭc thҩp đưӧc sӱ dөng
đӇ kích hoҥt chíp ADC 0804. ĐӇ truy cұp ADC 0804 thì chân này phҧi ӣ mӭc thҩp.
2. Chân RD (đӑc): Đây là mӝt tín hiӋu đҫu vào đưӧc tích cӵc mӭc
thҩp. Các bӝ ADC chuyӇn đәi đҫu vào tương tӵ thành sӕ nhӏ phân tương đơng vӟi
nó và giӳ nó trong mӝt thanh ghi trong. RD đӧc sӱ dөng đӇ nhұn dӳ liӋu đưӧc
chuyӇn đәi ӣ đҫu ra cӫa ADC 0804. Khi CS = 0 nӃu mӝt xung cao - xuӕng - thҩp
đưӧc áp đӃn chân RD thì đҫu ra sӕ 8 bít đӧc hiӇn diӋn ӣ các chân dӳ liӋu D0 - D7.
Chân RD cũng đưӧc coi như cho phép đҫu ra.
- 15 -

3. Chân ghi WR (thӵc ra tên chính xác là ³Bҳt đҫu chuyӇn đәi´). Đây là chân
đҫu vào tích cӵc mӭc thҩp đưӧc dùng đӇ báo cho ADC 804 bҳt đҫu quá trình
chuyӇn đәi. NӃu CS = 0 khi WR tҥo ra xung cao - xuӕng - thҩp thì bӝ ADC 0804
bҳt đҫu chuyӇn đәi giá trӏ đҫu vào tương tӵ V
in
vӅ sӕ nhӏ phân 8 bít. Lưӧng thӡi

gian cҫn thiӃt đӇ chuyӇn đәi thay đәi phө thuӝc vào tҫn sӕ đa đӃn chân CLK IN và
CLK R. Khi viӋc chuyӇn đәi dӳ liӋu đưӧc hoàn tҩt thì chân INTR đưӧc ép xuӕng
thҩp bӣi ADC 0804.
4. Chân CLK IN và CLK R.
Chân CLK IN là mӝt chân đҫu vào đưӧc nӕi tӟi mӝt nguӗn đӗng hӗ ngoài khi
đӗng hӗ ngoài đưӧc sӱ dөng đӇ tҥo ra thӡi gian. Tuy nhiên 0804 cũng có mӝt máy
tҥo xung đӗng hӗ. ĐӇ sӱ dөng máy tҥo xung đӗng hӗ trong (cũng còn đưӧc gӑi là
máy tҥo đӗng hӗ riêng) cӫa 0804 thì các chân CLK IN và CLK R đưӧc nӕi tӟi mӝt
tө điӋn và mӝt điӋn trӣ. Trong trưӡng hӧp này tҫn sӕ đӗng hӗ đưӧc xác đӏnh bҵng
biӇu thӭc:



Giá trӏ tiêu biӇu cӫa các đҥi lưӧng trên là R = 10k; và C= 150pF và tҫn sӕ
nhұn đưӧc là f = 606kHz và thӡi gian chuyӇn đәi sӁ mҩt là 110 Qs
5. Chân ngҳt
INT
(ngҳt hay gӑi chính xác hơn là ³kӃt thúc chuyӇn đәi¶).
Đây là chân đҫu ra tích cӵc mӭc thҩp. Bình thưӡng nó ӣ trҥng thái cao và khi
viӋc chuyӇn đәi hoàn tҩt thì nó xuӕng thҩp đӇ báo cho CPU biӃt là dӳ liӋu đưӧc
chuyӇn đәi sҹn sàng đӇ lҩy đi. Sau khi INT xuӕng thҩp, ta đһt CS = 0 và gӱi mӝt
xung cao 0 xuӕng - thҩp tӟi chân
D
lҩy dӳ liӋu ra cӫa 0804.
6. Chân V
in
(+) và V
in
(-).
Đây là các đҫu vào tương tӵ vi sai mà V

in
= V
in
(+) - V
in
(-). Thông thưӡng V
in

(-) đưӧc nӕi xuӕng đҩt và V
in
(+) đưӧc dùng như đҫu vào tương tӵ đưӧc chuyӇn đәi
vӅ dҥng sӕ.
7. Chân V
CC
.
Đây là chân nguӗn nuôi +5v, nó cũng đưӧc dùng như điӋn áp tham chiӃu khi
đҫu vào V
ref/2
(chân 9) đӇ hӣ.
1,1
1
f !
- 16 -

8. Chân V
ref/2
.
Chân 9 là mӝt điӋn áp đҫu vào đưӧc dùng cho điӋn áp tham chiӃu. NӃu chân
này hӣ (không đưӧc nӕi) thì điӋn áp đҫu vào tương tӵ cho ADC 804 nҵm trong dҧi
0 đӃn +5v (giӕng như chân V

CC
). Tuy nhiên, có nhiӅu ӭng dөng mà đҫu vào tương
tӵ áp đӃn V
in
cҫn phҧi khác ngoài dҧi 0 đӃn 5v. Chân V
ref/2
đưӧcdùng đӇ thӵc thi các
điӋn áp đҫu vào khác ngoài dҧi 0 - 5v. Ví dө, nӃu dҧi đҫu vào tương tӵ cҫn phҧi là 0
đӃn 4v thì V
ref/2
đưӧc nӕi vӟi +2v.











Hình 2a: KiӇm tra ADC 0804 ӣ chӃ đӝ chҥy tӵ do.

Bҧng 2a: ĐiӋn áp V
ref/2
liên hӋ vӟi dҧi V
in
.
V

ref
/ 2(V) V
in
(V) Step Size (mV)
Hӣ * 0 đӃn 5 5/256 = 19.53
2.0 0 đӃn 4 4/255 = 15.62
1.5 0 đӃn 3 3/256 = 11.71
1.28 0 đӃn 2.56 2.56/256 = 10
1.0 0 đӃn 2 2/256 = 7.81
0.5 0 đӃn 1 1/256 = 3.90
Ghi chú: - V
CC
= 5V
- * Khi V
ref
/2 hӣ thì đo đưӧc ӣ đó khoҧng 2,5V

ADC080
+5V
1
1
1
4
1
2
10
9
19
10k
150p

11
12
13
14
15
16
17
18
3
5
to
LED
Nomal
ly
Open
D0
D1
D2
D3
D4
D5
D6
D7
WR
INTR
D
RD
CS
CLK
CLK

A
Vref/2
Vin(-)
Vin(+)
20
Vcc
10k
PO

×