LỜI NÓI ĐẦU 
Kỹ thuật vi sử lý hiện nay rất phát triển , nó được ứng dụng vào rất nhiều lĩnh 
vực như sản xuất công nghiệp ,tự động hoá và còn nhiều lĩnh vực khác nữa . So với kỹ 
thuậtsố thì kỹ thuật vi sử lý nhỏ gọn hơn rất nhiều do nó được tích hợp lại và được lập 
trình để điều khiển . 
Với tính ưu việt của vi xử lý thì trong phạm vi đồ án nhỏ này em chỉ tiến hành 
việc dùng vi xử lý để đo và điều khiển nhiệt độ , đây chỉ là một ứng dụng nhỏ của vi 
xử lý trong các ứng dụng của nó . 
Mục lục
PHẦN A : CƠ SỞ LÝ THUYẾT 
Chương 1: GIỚI THIỆU CHUNG VỀ BỘ VI ĐIỀU KHIỂN 
I.GIỚI THIỆU 
II.KHẢO SÁT BỘ VI ĐIỀU KHIỂN 8051 VÀ 8031
Chương 2: ĐO NHIỆT ĐỘ 
 I. Hệ Thống Đo Lường 
II. Các Phươg Pháp Đo Nhiệt Độ 
Chương 3 : CHUYỂN ĐỔI TƯƠNG TỰ – SỐ 
I KHÁI NIỆM CHUNG 
II GIỚI THIỆU VỀ IC ADC0809 
 .
PHẦN B : THIẾT KẾ PHẦN CỨNG
CHƯƠNG1 : THIẾT KẾ TỔNG QUÁT 
I . SƠ ĐỒ KHỐI 
II .SƠ LƯỢC CHỨC NĂNG CÁC BỘ PHẬN 
 .
III . THIẾT KẾ CHI TIẾT 
PHẦNC : THIẾT KẾ CHƯƠNG TRÌNH 
CHƯƠNG1 : GIẢI THUẬT CHƯƠNG TRÌNH 
CHƯƠNG TRÌNH CHÍNH
                
              
                                            
                                
            
 
            
                 45 trang
45 trang | 
Chia sẻ: lvcdongnoi | Lượt xem: 2921 | Lượt tải: 6 
              
            Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế và thi công mạch điều khiển nhiệt độ dùng 89C51, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
 nhò phaân cuûa 
chöông trình ñöôïc ñoïc töø EPROM qua bus vaø ñöôïc choát vaøo thanh ghi leänh cuûa 
8051 ñeå giaûi maõ leänh. Khi thi haønh chöông trình trong ROM noäi (8051) PSEN 
seõ ôû möùc thuï ñoäng (möùc cao). 
f.ALE (Address Latch Enable ) : 
tín hieäu ra ALE treân chaân 30 töông hôïp vôùi caùc thieát bò laøm vieäc vôùi caùc 
xöû lí 8585, 8088, 8086, 8051 duøng ALE moät caùch töông töï cho laøm vieäc giaûi caùc 
keânh caùc bus ñòa chæ vaø döõ lieäu khi port 0 ñöôïc duøng trong cheá ñoä chuyeån ñoåi 
cuûa noù : vöøa laø bus döõ lieäu vöøa laø buùyt thaáp cuûa ñòa chæ, ALE laø tín hieäu ñeå choát 
ñòa chæ vaøo moät thanh ghi beân ngoaøi trong nöõa ñaàu cuûa chu kyø boä nhôù. Sau ñoù, 
caùc ñöôøng port 0 duøng ñeå xuaát hoaëc nhaäp döõ lieäu trong nöõa sau chu kyø cuûa boä 
nhôù. 
Caùc xung tín hieäu ALE coù toác ñoä baèng 1/6 laàn taàn soá dao ñoäng treân chip 
vaø coù theå ñöôïc duøng laø nguoàn xung nhòp cho caùc heä thoáng. Neáu xung treân 8051 
laø 12MHz thì ALE coù taàn soá 2MHz. Chæ ngoaïi tröø khi thi haønh leänh MOVX, 
moät xung ALE seõ bò maát. Chaân naøy cuõng ñöôïc laøm ngoõ vaøo cho xung laäp trình 
cho EPROM trong 8051. 
g.EA (External Access) : 
Tín hieäu vaøo EA treân chaân 31 thöôøng ñöôïc maéc leân möùc cao (+5V) hoaëc 
möùc thaáp (GND). Neáu ôû möùc cao, 8051 thi haønh chöông trình töø ROM noäi trong 
khoaûng ñòa chæ thaáp (4K). Neáu ôû möùc thaáp, chöông trình chæ ñöôïc thi haønh töø 
boä nhôù môû roäng. Khi duøng 8031, EA luoân ñöôïc noái möùc thaáp vì khoâng coù boä 
nhôù chöông trình treân chip. Neáu EA ñöôïc noái möùc thaáp boä nhôù beân trong 
chöông trình 8051 seõ bò caám vaø chöông trình thi haønh töø EPROM môû roäng. 
Ngöôøi ta coøn duøng chaân EA laøm chaân caáp ñieän aùp 21V khi laäp trình cho 
EPROM trong 8051. 
h.SRT (Reset) : 
Ngoõ vaøo RST treân chaân 9 laø ngoõ reset cuûa 8051. Khi tín hieäu naøy ñöôïc 
ñöa leân muùc cao (trong ít nhaát 2 chu kyø maùy ), caùc thanh ghi trong 8051 ñöôïc 
taûi nhöõng giaù trò thích hôïp ñeå khôûi ñoäng heä thoáng. 
i.Caùc ngoõ vaøo boä dao ñoäng treân chip : 
Nhö ñaõ thaáy trong caùc hình treân , 8051 coù moät boä dao ñoäng treân chip. Noù 
thöôøng ñöôïc noái vôùi thaïch anh giöõa hai chaân 18 vaø 19. Caùc tuï giöõa cuõng caàn 
thieát nhö ñaõ veõ. Taàn soá thaïch anh thoâng thöôøng laø 12MHz. 
9 
j.Caùc chaân nguoàn : 
8051 vaän haønh vôùi nguoàn ñôn +5V. Vcc ñöôïc noái vaøo chaân 40 vaø Vss 
(GND) ñöôïc noái vaøo chaân 20. 
3_ Caùc thanh ghi ñaëc bieät : 
a. Caùc thanh ghi port xuaát nhaäp: 
Caùc port cuûa 8051/8031 bao goàm Port 0 ôû ñòa chæ 80H, Port 1 ôû ñòa chæ 90 
H, Port 2 ôû ñòa chæ A0H vaø Port 3 ôû ñòa chæ B0H. Taát caû caùc Port ñeàu ñöôïc ñòa 
chæ hoùa töøng bit. Ñieàu ñoù cung caáp moät khaû naêng giao tieáp thuaän lôïi. 
b. Caùc thanh ghi timer: 
8051/8031 chöùa 2 boä ñònh thôøi ñeám 16 bit ñöôïc duøng trong vieäc ñònh thôøi 
hoaëc ñeám söï kieän. Timer 0 ôû ñòa chæ 8AH (TL0:byte thaáp) vaø 8CH (TH0:byte 
cao).Timer 1 ôû ñòa chæ 8BH (TL1:byte thaáp) vaø 8DH (TH1: byte cao). vieäc vaän 
haønh timer ñöôïc set 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. 
c. Caùc thanh ghi port noái tieáp: 
8051/8031 chöùc moät port noái tieáp treân chip daønh cho vieäc trao ñoåi thoâng 
tin vôùi caùc thieát bò noái tieáp nhö maùy tính, modem hoaëc cho vieäc giao tieáp vôùi 
caùc IC khaùc coù giao tieáp noái tieáp (coù boä chuyeån ñoåi A/D, caùc thanh ghi dòch..). 
Moät thanh ghi goïi laø boä ñeäm döõ lieäu noái tieáp (SBUF) ôû ñòa chæ 99H sseõ giöõ caû 
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ì ñoï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 noái tieáp (SCON) (ñöôïc ñòa chæ hoùa töøng bit) ôû ñòa chæ 98H. 
d. Caùc thanh ghi ngaét: 
8051/8031 coù caáu truùc 5 nguoàn ngaét, 2 möùc öu tieân. Caùc ngaét bò caám sau 
khi reset heä thoáng vaø seõ ñöôïc cho pheùp baèng vieäc ghi thanh ghi cho pheùp ngaét 
(IE) ôû ñòa chæ 8AH. Caû hai thanh ghi ñöôïc ñòa chæ hoùa töøng bit. 
e. Caùc thanh ghi ñieàu khieån coâng suaát: 
Thanh ghi ñieàu khieån coâng suaát (PCON) ôû ñòa chæ 87H chöùa nhieàu bit ñieàu 
khieån. 
10
4/. Leänh reset. 
8051/8031 ñöôïc reset baèng caùch giöõ chaân RST ôû möùc cao ít nhaát trong 2 chu 
kyø maùy vaø traû noù veà muùc thaáp. RST coù theå ñöôïc kích khi caáp ñieän duøng moät 
maïch R-C. 
Hình 2.9: Maïch reset heä thoáng. 
Traïng thaùi cuûa taát caû caùc thanh ghi cuûa 8051/8031 sau khi reset heä thoáng 
ñöôïc toùm taét trong baûng sau: 
Thanh ghi Noäi dung 
Ñeám chöông trình 
Tích luõy 
B 
PSW 
SP 
DPTR 
Port 0-3 
IP 
IE 
Caùc thanh ghi ñònh thôøi 
SCON 
0000H 
00H 
00H 
00H 
07H 
0000H 
FFH 
XXX00000B 
0XX00000B 
00H 
00H 
+5V
+5V
100
8,2K
10UF
11
SBUF 
PCON(HMOS) 
PCON(CMOS) 
00H 
0XXXXXXB 
0XXX0000B 
Baûng 2.3: Traïng thaùi caùc thanh ghi sau khi reset 
Quan troïng nhaát trong caùc thanh ghi treân laø thanh ghi ñeám chöông trình, noù 
ñöôïc ñaët laïi 0000H. Khi RST trôû laïi möùc thaáp, vieäc thi haønh chöông trình luoân 
baét ñaàu ôû ñòa chæ ñaàu tieân trong boä nhôù trong chöông trình: ñòa chæ 0000H. Noäi 
dung cuûa RAM treân chip khoâng bò thay ñoåi bôûi leänh reset. 
5. Hoaït ñoäng cuûa boä ñònh thôøi (timer) 
5.1 Giôùi thieäu. 
Moät ñònh nghóa ñôn giaûn cuûa timer laø moät chuoãi caùc flip-flop chia ñoâi taàn soá 
noái tieáp vôùi nhau, chuùng nhaän tín hieäu vaøo laøm nguoàn xung nhòp. Ngoõ ra cuûa 
taàn soá cuoái laøm nguoàn xung nhòp cho flip-flop baùo traøn cuûa timer (flip-flop côø). 
Giaù trò nhò phaân trong caùc flip-flop cuûa timer coù theå xem nhö soá ñeám soá xung 
nhòp (hoaëc caùc söï kieän) töø khi khôûi ñoäng timer. Ví duï timer 16 bit seõ ñeám leân töø 
0000H ñeán FFFFH. Côø baùo traøn seõ leân 1 khi soá ñeám traøn töø FFFFH ñeán 0000H. 
8051/8031 coù 2 timer 16 bit, moãi timer coù boán caùch laøm vieäc. Ngöôøi ta söû duïng 
caùc timer ñeå : a) ñònh khoaûng thôøi gian, b) ñeám söï kieän hoaëc c) taïo toác ñoä baud 
cho port noái tieáp trong 8051/8031. 
Trong caùc öùng duïng ñònh khoaûng thôøi gian, ngöôøi ta laäp trình timer ôû moät 
khoaûng ñeàu ñaën vaø ñaët côø traøn timer. Côø ñöôïc duøng ñeå ñoàng boä hoùa chöông 
trình ñeå thöïc hieän moät taùc ñoäng nhö kieåm tra traïng thaùi cuûa caùc cöûa ngoõ vaøo 
hoaëc göûi caùc söï kieän ra caùc ngoõ ra. Caùc öùng duïng khaùc coù theå söû duïng vieäc taïo 
xung nhòp ñeàu ñaën cuûa timer ñeå ño thôøi gian troâi qua giöõa hai söï kieän (ví duï : 
ño ñoä roäng xung). 
Ñeám söï kieän duøng ñeå xaùc ñònh soá laàn xaåy ra cuûa moät söï kieän. Moät “söï kieän” 
laø baát cöù taùc ñoäng ngoaøi naøo coù theå cung caáp moät chuyeån traïng thaùi treân moät 
chaân cuûa 8051/8031. Caùc timer cuõng coù theå cung caáp xung nhòp toác ñoä baud cho 
port noái tieáp trong 8051/8031. 
12
Truy xuaát timer cuûa 8051/8031 duøng 6 thanh ghi chöùc naêng ñaëc bieät cho 
trong baûng sau: 
SFR MUÏC ÑÍCH ÑÒA 
CHÆ 
Ñòa chæ hoùa töøng bit 
TCON 
TMOD 
TL0 
TL1 
TH0 
TH1 
Ñieàu khieån timer 
Cheá ñoä timer 
Byte thaáp cuûa timer 0 
Byte thaáp cuûa timer 1 
Byte cao cuûa timer 0 
Byte cao cuûa timer 1 
88H 
89H 
8AH 
8BH 
8CH 
8DH 
Coù 
Khoâng 
Khoâng 
Khoâng 
Khoâng 
Khoâng 
Baûng 2.4: Thanh ghi chöùc naêng ñaëc bieät duøng timer. 
5.2 Thanh ghi cheá ñoä timer (TMOD) 
Thanh ghi TMOD chöùa hai nhoùm 4 bit duøng ñeå ñaët cheá ñoä laøm vieäc cho timer 
0 vaø timer 1. 
Bit Teân Timer Moâ taû 
 7 GATE 1 Bit (Môû) coång, khi leân 1 timer chæ chaïy khi INT1 
ôû möùc cao. 
 6 C/T 1 Bit choïn cheá ñoä counter/timer 
 1=boä ñeám söï kieän 
 0=boä ñònh khoaûng thôøi gian 
 5 M1 1 Bit 1 cuûa cheá ñoä(mode) 
 4 M0 1 Bit 0 cuûa cheá ñoä 
 00: cheá ñoä 0 : timer 13 bit 
13
 01: cheá ñoä 1 : timer 16 bit 
 10: cheá ñoä 2 : töï ñoäng naïp laïi 8255A bit 
 11: cheá ñoä 3 : taùch timer 
 3 GATE 0 Bit (môû) coång 
 2 C/T 0 Bit choïn counter/timer 
 1 M1 0 Bit 1 cuûa cheá ñoä 
 0 M0 0 Bit 0 cuûa cheá ñoä 
Baûng 2.5: Toùm taét thanh ghi TMOD 
5.3 Thanh ghi ñieàu khieån timer (TCON) 
 Thanh ghi TCON chöùa caùc bit traïng thaùi vaø caùc bit ñieàu khieån cho timer 0 vaø 
timer 1. 
Bit Kyù hieäu Ñòa chæ Moâ taû 
TCON.7 TF1 8FH Côø baùo traøn timer 1. Ñaët bôûi phaàn 
 cöùng khi traøn, ñöôïc xoùa bôûi phaàn 
 meàm hoaëc phaàn cöùng khi boä xöû lyù 
 chæ ñeán chöông trình phuïc vuï ngaét. 
TCON.6 TR1 8EH Bit ñieàu khieån timer 1 chaïy. Ñaët/xoùa 
 baèng phaàn meàm cho timer chaïy/ngöng. 
TCON.5 TF0 8DH Côø baùo traøn timer 0 
14
TCON.4 TR0 8CH Bit ñieàu khieån timer 0 chaïy 
TCON.3 IE1 8BH Côø caïnh ngaét 1 beân ngoaøi, ñaëc bôûi 
TCON.2 IT1 8AH Côø kieåu ngaét moät beân ngoaøi. 
 phaàn cöùng khi phaùt hieän moät caïnh 
 xuoáng ôû INT1, xoùa baèng phaàn meàm 
 hoaëc phaàn cöùng khi CPU chæ ñeán 
 chöông trình phuïc vuï ngaét. 
 Ñaët/xoùa baèng phaàn meàm ñeà ngaét 
 ngoaøi tích cöïc caïnh xuoáng/möùc thaáp 
TCON.1 IE0 89H Côø caïnh ngaét 0 beân ngoaøi 
TCON.0 IT0 88H Côø kieåu ngaét 0 beân ngoaøi 
Baûng 2.6: Toùm taét thanh ghi TCON 
5. 4 Caùc cheá ñoä timer. 
a) Cheá ñoä 0, cheá ñoä timer 13 bit. 
Ñeå töông thích vôùi 8048 (coù tröùôùc 8051) 
Ba bit cao cuûa TLX (TL0 vaø/hoaêc TL1) khoâng duøng 
Xung nhòp 
timer 
 Côø baùo traøn 
b) Cheá ñoä 1- cheá ñoä timer 16 bit. 
Hoaït ñoäng nhö timer 16 bit ñaày ñuû. 
Côø baùo traøn laø bit TFx trong TCON coù theå ñoïc hoaëc ghi baèng phaàm 
meàm. 
MSB cuûa giaù trò trong caùc thanh ghi timer laø bit 7 cuûa THx vaø LBS laø bit 
0 cuûa TLx. Caùc thanh ghi timer (Tlx/THx) coù theå ñöôïc ñoïc hoaëc ghi baát cöù luùc 
naøo baèng phaàm meàm. 
Xung nhòp 
timer 
 Côø baùo traøn 
 TLx THx 
 (5 bit) (8 bit) 
TFx 
 TLx THx 
 (5 bit) (8 bit) 
TFx 
15
c) Cheá ñoä 0- cheá ñoä töï ñoäng naïp laïi 8 bit. 
TLx hoaït ñoäng nhö moät timer 8 bit, trong khi ñoù THx vaãn giöõ nguyeân giaù 
trò ñöôïc naïp. Khi soá ñeám traøn töù FFH ñeán 00H, khoâng nhöõng côø timer ñöôïc set 
maø giaù trò trong THx ñoàng thôøi ñöôïc naïp vaøo TLx. Vieäc ñeám tieáp tuïc töø giaù trò 
naøy leân ñeán FFH xuoáng 00H vaø naïp laïi... cheá ñoä naøy raát thoâng duïng vì söï traøn 
timer xaûy ra trong nhöõng khoaûng thôøi gian nhaát ñònh vaø tuaàn hoaøn moät khi ñaõ 
khôûi ñoäng TMOD vaø THx. 
Xung nhòp 
timer 
 Côû baùo traøn 
 Naïp laïi 
d) Cheá ñoä 3- cheá ñoä taùch timer 
Timer 0 taùch thaønh hai timer 8 bit (TL0 vaø TH0), TL0 coù côø baùo traøn laø 
TF0 vaø TH0 coù côø baùo traøn laø TF1. 
Timer 1 ngöng ôû cheá ñoä 3, nhöng coù theå ñöôïc khôûi ñoäng baèng caùch 
chuyeån sang cheá ñoä khaùc. Giôùi haïn duy nhaát laø côø baùo traøn TF1 khoâng coøn bò 
taùc ñoäng khi timer 1 bò traøn vì noù ñaõ ñöôïc noái tôùi TH0. 
Khi timer 0 ôû cheá ñoä 3, coù theå cho timer 1 chaïy vaø ngöng baèng caùch chuyeån noù 
ra ngoaøi vaø vaøo cheá ñoä 3. Noù vaãn coù theå ñöôïc söû duïng bôûi port noái tieáp nhö boä 
taïo toác ñoä baund hoaëc noù coù theå ñöôïc söû duïng baèng baát cöù caùch naøo khoâng caàn 
ngaét (vì noù khoâng coøn ñöôïc noái vôùi TF1). 
Xung nhòp 
Timer 
Xung nhòp 
Timer 
TLx 
(8 bit) 
TFx 
THx 
(8 bit) 
 TL1 TH1
TL0 TF0 
TH0 TF1 
16
 Côø baùo traøn 
I/12 Fosc 
 Côø baùo traøn 
5.5 Nguoàn taïo xung nhòp. 
Coù hai nguoàn taïo xung nhòp coù theå coù, ñöôï choïn baèng caùch ghi vaøo bit 
C/T (counter/timer) trong TMOD khi khôûi ñoäng timer. Moät nguoàn taïo xung nhòp 
duøng cho ñònh khoaûng thôøi gian, caùi khaùc cho ñeám söï kieän. 
 Crytal 
 Timer 
 Clock 
 T0 or T1 
 pin 
 0=Up (Internal Timing) 
 1=Down (Event Counting) 
 Nguoàn xung taïo nhòp 
- Ñònh khoaûng thôøi gian (interval timing) 
Neáu C/T =0 hoaï t ñoäng timer lieân tuïc ñöôïc choïn vaø timer ñöôïc duøng cho 
vieäc ñònh khoaûng thôøi gian. Luùc ñoù, timer laáy xung nhòp töø boä dao ñoäng treân 
chip. Boä chia 12 ñöôïc theâm vaøo ñeå giaûm taàn soá xung nhòp ñeán giaù trò thích hôïp 
cho phaàn lôùn caùc öùng duïng. Nhö vaäy thaïch anh 12 MHz seõ cho toác ñoä xung 
nhòp timer 1 MHz. Boùa traøn timer xaûy ra sau moät soá (coá ñòng) xung nhòp, phuï 
thuoäc vaøo giaù trò ban ñaàu ñöôïc naïp vaøo caùc thanh ghi timer TLx/THx. 
- Ñeám söï kieän (Event counting) 
- Neáu C/T=1, timer laáy xung nhòp töø nguoàn beân ngoaøi. Trong haàu heát caùc 
öùng duïng nguoàn beân ngoaøi naøy cung caáp cho timer moät xung kh xaûy ra moät 
“söï kieän “, timer duøng ñeám söï kieän ñöôïc xaùc ñònh baèng phaàn meàm baèng 
caùch ñoïc caùc thanh ghi TLx/THx vì giaù trò 16 bit trong caùc thanh ghi naøy 
taêng theâm 1 cho moãi söï kieän. 
On chip 
Osillato
r ÷12
−
TC /
17
Nguoàn xung nhòp ngoaøi coù töø thay ñoåi chuù7c naêng cuûa caùc chaân port 3. Bit 
4 cuûa port 3 (P3.4) duøng laøm ngoõ vaøo taïo xung nhòp beân trong timer 0 vaø ñöôïc 
goïi laø “T0”. Vaø p3.5 hay “T1” laø ngoõ vaøo taïo xung nhòp cho timer 1. 
5.6 Baét ñaàu döøng vaø ñieàu khieån caùc timer. 
Phöông phaùp môùi ñôn giaûn nhaát ñeå baét ñaàu (cho chaïy) vaø döøng caùc timer 
laø duøng caùc bit ñieàu khieån chaïy :TRx trong TCON, TRx bò xoùa sau khi reset heä 
thoáng. Nhö vaäy, caùc timer theo maëc nhieân laø bò caám (bò döøng). TRx ñöôïc ñaët 
leân 1 baèng phaàn meàm ñeå cho caùc timer chaïy. 
Xung nhòp 
 Timer Caùc thanh ghi timer 
 0=leân : timer döøng 
 1=xuoáng : timer chaïy 
Cho chaïy vaø döøng timer 
Vì TRx ôû trong thanh ghi TCON coù ñòa chæ bit, neân deã daøng cho vieäc ñieàu 
khieån caùc timer trong chöông trình. Ví duï : cho timer 0 chaïy baèng leänh : SETB 
TR0 vaø döøng baèng leänh SETB TR0 
Trình bieân dòch seõ thöïc hieän vieäc chuyeån ñoåi kyù hieäu caàn thieát töø “TR0” sang 
ñòa chæ bit ñuùng. SETB TR0 chính xaùc gioáng nhö SETB 8CH. 
5.7 Khôûi ñoäng vaø truy xuaát caùc thanh ghi timer. 
Thoâng thöôøng caùc thanh ghi ñöôïc khôûi ñoäng moät laàn ôû ñaàu chöông trình 
ñeå ñaët cheá ñoä laøm vieäc cho ñuùng. Sau ñoù trong thaân chöông trình caùc timer 
ñöôïc cho chaïy, döøng , caùc bit côø ñöôïc kieåm tra vaø xoùa, caùc thanh ghi timer ñöôïc 
ñoïc vaø caïp nhaät... theo ñoøi hoûi cuûa caùc öùng duïng. 
TMOD laø thanh ghi thöù nhaát ñöôïc khôûi ñoäng vì noù ñaët cheá ñoä hoaït ñoäng. 
Ví duï caùc leänh sau khi khôûi ñoäng timer 1 nhö timer 16 bit (cheá ñoä 1) coù xung 
nhòp töø boä dao ñoäng treân chíp cho vieäc ñòng khoaûng thôøi gian. 
MOV TMOD,#00010000B 
Leänh naøyy seõ ñaët M1=0 vaû M0=1 cho cheá ñoä 1, C/T=0 vaø GATE=0 cho 
xung nhòp noäi vaø xoùa caùc bit cheá ñoä timer 0. Dó nhieân timer thaät söï khoâng baét 
ñaàu ñònh thôøi cho ñeán khi bit ñieàu khieån chaïyy TR1 ñöôïc ñaët leân 1. 
Neáu caàn soá ñeám ban ñaàu, caùc thanh ghi timer TL1/TH1 cuõng phaûi ñöôïc khôûi 
ñoäng. Nhôù laïi laø caùc timer ñeám leân vaø ñaët côø baùo traøn khi coù söï truyeån tieáp. 
FFFFH sang 0000H. 
- Ñoïc timer ñang chaïy. 
TRx 
18
Trong moät soá öùng duïng caàn ñoïc giaù trò trong caùc thanh ghi timer ñang 
chaïy. Vì phaûi ñoïc 2 thanh ghi timer “sai pha” coù theå xaåy ra neáu byte thaáp traøn 
vaøo byte cao giöõa hai laàn ñoïc. Giaù trò coù theå ñoïc ñöôïc khoâng ñuùng. Giaûi phaùp laø 
ñoïc byte cao tröôùc, keá ñoù ñoïc byte thaáp roài ñoïc byte cao laïi moät laàn nöõa. Neáu 
byte cao ñaõ thay ñoåi thì laäp laïi caùc hoaït ñoäng ñoïc. 
5.8 Caùc khoaûng ngaén vaø caùc khoaûng daøi. 
Daõy caùc khoaûng thôøi gian coù theå ñònh thôøi laø bao nhieâu ? vaán ñeà naøy 
ñöôïc khaûo saùt vôùi 8051/8031 hoaït ñoäng vôùi taàn soá 12MHz. nhö vaäy xung nhòp 
cuûa caùc timer coù taàn soá laù 1 MHz. 
Khoaûng thôøi gian ngaén nhaát coù theå coù bò giôùi haïn khoâng chæ bôûi taàn soá xung 
nhòp cuûa timer maø coøn bôûi phaàn meàm. Do aûnh höôûng cuûa thôøi khoaûng thöïc hieän 
moät leänh. Leäng ngaén nhaát 8051/8031 laø moät chu kyø maùy hay 1µs. Sau ñaây laø 
baûng toùm taét caùc kyõ thuaät ñeå taïo nhöõng khoaûng thôøi gian coù chieàu daøi khaùc 
nhau (vôùi giaû söû xung nhòp cho 8051/8031 coù taàn soá 12 MHz) 
Khoaûng thôøi gian toái ña Kyõ thuaät 
 ≈10 - Baèng phaàn meàm 
256 - Timer 8 bit vôùi töï ñoäng naïp laïi 
 65535 - Timer 16 bit 
 Khoâng giôùi haïn - Timer 16 bit coäng vôùi caùc voøng 
 laäp phaàn meàm 
Caùc kyõ thuaät ñeå laäp trình caùc khoaûng thôøi gian (FOSC=12 MHz) 
6. Hoaït ñoäng port noái tieáp. 
6.1. Giôùi thieäu. 
8051/8031 coù moät port noái tieáp trong chip coù theå hoaït ñoäng ôû nhieàu cheá 
ñoä khaùc treân moät daõy taàn soá roäng. Chöùc naêng chuû yeáu cuûa moät port noái tieáp laø 
thöïc hieän chuyeån ñoåi song song sang noái tieáp vôùi döõ lieäu xuaát vaø chuyeån ñoài 
noái tieáp sang song song vôùi döõ lieäu nhaäp. 
Truy xuaát phaàn cöùng ñeán port noái tieáp qua caùc chaân TXD vaø RXD. Caùc 
chaân naøy coù caùc chöùc naêng khaùc vôùi hai bit cuûa port 3. P3 ôû chaân 11 (TXD) vaø 
P3.0 ôû chaân 10 (RXD). 
Port noái tieáp cho hoaït ñoäng song coâng (full duplex : thu vaø phaùt ñoàng thôøi) 
vaø ñeäm luùc thu (receiver buffering) cho pheùp moät kyù töï seõ ñöôïc thu vaø ñöôïc giöõ 
trong khi kyù töï thöù hai ñöôïc nhaän. Neáu CPU ñoïc kyù töï thöù nhaát tröôùc khi kyù töï 
thöù hai ñöôïc thu ñaày ñuû thì döõ lieäu seõ khoâng bò maát. 
19
Hai thanh ghi chöùc naêng ñaëc bieät cho pheùp phaàn meàm truy xuaát ñeán port 
noái tieáp laø : SBUF vaø SCON. Boä ñeám port noái tieáp (SBUF) ôû ñaïi chæ 99H thaät 
söû laø hai boä ñeám. Vieát vaøo SBUF ñeå truy xuaát döõ lieäu thu ñöôïc. Ñaây laø hai 
thanh ghi rieâng bieät thanh ghi chæ ghi ñeå phaùt vaø thanh ghi ñeå thu. 
TXD (P3.1) RXD (P3.0) 
 CLK 
 Q D 
 CLK 
 Xung nhòp toác 
Ñoä baud (thu) 
Xung nhòp toác 
Ñoä baud (thu) 
Hình 2.9: Sô ñoà port noái tieáp. 
Thanh ghi ñieàu khieån port noái tieáp (SCON) ôû ñòa chæ 98H laø thanh ghi coù 
ñòa chæ bit chöùa caùc bit traïng thaùi vaø caùc bit ñieàu khieån. Caùc bit ñieàu khieån ñaët 
cheá ñoä hoaït ñoäng cho port noái tieáp, vaø caùc bit traïng thaùi baùo caùo keát thuùc vieäc 
phaùt hoaëc thu kyù töï. Caùc bit traïng thaùi coù theå ñöôïc kieåm tra baèng phaàn meàm 
hoaëc coù theå ñöôïc laäp trình ñeå taïo ngaét. 
Taàn soá laøm vieäc cuûa port noái tieáp coøn goïi laø toác ñoä baund coù theå coá ñònh 
(laáy töø boä giao ñoäng cuûa chip). Neáu söû duïng toác ñoä baud thay ñoåi, timer 1 seõ 
cung caáp xung nhòp toác ñoä baud vaø phaûi ñöôïc laäp trình. 
6.2 Thanh ghi ñieàu khieån port noái tieáp. 
Cheá ñoä hoaït ñoäng cuûa port noái tieáp ñöôïc ñaët baèng caùch ghi vaøo thanh ghi 
cheá ñoä port noái tieáp (SCON) ôû ñòa chæ 98H. Sau ñaây caùc baûng toùm taét thanh ghi 
SCON vaø caùc cheá ñoä cuûa port noái tieáp : 
SUBF 
(Chæ ghi) Thanh ghi dòch 
SBUF 
(chæ ñoïc) 
BUS noäi 8051/8031
SBUF 
(chæ ñoïc) 
20
 Bit Kyù hieäu Ñòa chæ Moâ taû 
 SCON.7 SM0 9FH Bit 0 cuûa cheá ñoä port noái tieáp 
 SCON.6 SM1 9EH Bit 1 cuûa cheá ñoä port noái tieáp 
 SCON.5 SM2 9DH Bit 2 cuûa cheá ñoä 2 noái tieáp. 
 cho pheùp trueàn thoâng ñaõ xöû lyù 
 trong caùc cheá ñoä 2 vaø 3 ;RI seõ 
 khoâng bò taùc ñoäng neáu bit thöù 
 9 thu ñöôïc laø 0 
 SCON.4 REN 9CH Cho pheùp boä thu phaûi ñaët leân 
 1 ñeå thu (nhaän) caùc kyù töï 
 SCON.3 TB8 9BH Bit 8 phaùt, bit thöù 9 ñöôïc phaùt 
 caùc cheá ñoä 2 vaø 3; ñöôïc ñaët 
 vaø xoùa baèng phaàn meàm 
 SCON.2 RB8 9AH Bit 8 thu, bit thöù 9 thu ñöôïc 
 SCON.1 TI 99H Côø ngaét phaùt. Ñaët leân 1 khi 
 keát thuùc phaùt kyù töï; ñöôïc xoùa 
 phaàn meàm 
 SCON.0 RI 98H Côø ngaét thu. Ñaët leân 1 khi 
 Keát thuùc thu kyù töï; ñöôïc xoùa 
 Baèng phaàn meàm 
 Baûng 2.7:Toùm taét thanh ghi cheá ñoä port noái tieáp SCON. 
 SM0 SM1 Cheá ñoä Moâ taû Toác ñoä baud 
 0 0 0 Thanh ghi dòch Coá ñònh (Fosc/12) 
 0 1 1 UART 8 bit Thay ñoåi (ñaët baèng timer) 
 1 0 2 UART 9 bit Coá ñònh (Fosc/12 hoaëc 
Fosc/64) 
 1 1 3 UART 9 bit Thay ñoåi (ñaët baèng timer) 
Baûng 2.8: Caùc cheá ñoä port noái tieáp. 
Tröôùc khi söû duïng port noái tieáp, phaûi khôûi ñoäng SCON cho ñuùng cheá ñoä. 
Ví duï ,leänh sau: 
21
MOV SCON,#01010010B 
Khôûi ñoäng port noái tieáp cho cheá ñoä 1 (SM0/SM1=0/1), cho pheùp boä thu 
(REN=1) vaø ñaët côø ngaét phaùt (TP=1) ñeå chæ boä phaùt saün saøng hoaït ñoäng. 
6.3 Khôûi ñoäng vaø truy xuaát caùc thanh ghi coång noái tieáp. 
a. Cho pheùp thu: 
Bit cho pheùp boä thu (REN = Receiver Enable) trong SCON phaûi ñöôïc ñaët 
leân 1 baèng phaàn meàm ñeå cho pheùp thu caùc kyù töï. Thoâng thöôøng thöïc hieän vieäc 
naøy ôû ñaàu chöông trình khi khôûi ñoäng coång noái tieáp, timer...Coù theå thöïc hieän 
vieäc naøy theo hai caùch. Leänh : 
SETB REN 
Seõ ñaët REN leân 1, hoaëc leänh : 
MOV SCON,#xxx1xxxxB 
Seõ ñaët REN 1 vaø ñaëc hoaëc xoùa ñi caùc bit khaùc treân SCON khi caàn (caùc x 
phaûi laø 0 hoaëc 2 ñeå ñaëc cheá ñoä laøm vieäc). 
b. Bit döõ lieäu thöù 9: 
Bit döõ lieäu thöù 9 caàn phaùt trong caùc cheá ñoä 2 vaø 3, phaûi ñöôïc naïp vaøo 
trong TB8 baèng phaàn meàm. Bit döõ lieäu thöù 9 thu ñöôïc ñaët ôû RBS. Phaàn meàm coù 
theå caàn hoaëc khoâng caàn bit döõ lieäu thöù 9, phuï thuoäc vaøo caùc ñaëc tính kyõ thuaät 
cuûa thieát bò noái tieáp söû duïng (bit döõ lieäu thöù 9 cuõng ñoùng vai moät troø quan troïng 
trong truyeàn thoâng ña xöû lyù). 
c. Theâm 1 bit parity: 
Thöôøng söû duïng bit döõ lieäu thöù 9 ñeå theâm parity vaøo kyù töï. Nhö ñaõ xeùt ôû 
caùc chöông tröôùc, pit P trong töø traïng thaùi chöông trình (PSW) ñöôïc ñaët leân 1 
hoaëc bò xoùa bôûi chu kyø maùy ñeå thieát laäp kieåm tra chaün vôùi 8 bit trong thanh tích 
luõy. 
d. Caùc côø ngaét: 
Hai côø ngaét thu vaø phaùt (RI vaø TI) trong SCON ñoùng moät vai troø quan 
troïng truyeàn thoâng noái tieáp duøng 8051/8031. Caû hai bit ñöôïc ñaët leân 1 baèng 
phaàn cöùng, nhöng phaûi ñöôïc xoùa baèng phaàn meàm. 
6.4 . Toác ñoä baud port noái tieáp. 
Nhö ñaõ noùi, toác ñoä baud coá ñònh ôû caùc cheá ñoä 0 vaø 2. Trong cheá ñoä 0 noù 
luoân luoân laø taàn soá dao ñoäng treân chip ñöôïc chia cho 12 . Thoâng thöôøng thaïch 
anh aán ñònh taàn soá dao ñoäng treân chip cuûa 8051/8031 nhöng cuõng coù theå söû 
duïng nguoàn xung nhòp khaùc. Giaû söû vôùi taàn soá dao ñoäng danh ñònh laø 12 MHz, 
tìm toác ñoä baud cheá ñoä 0 laø 1 MHz. 
22
Dao ñoäng Xung nhòp 
treân chip toác ñoä baud 
 a. Cheá ñoä 0 
 SMOD=0 
Dao ñoäng Xung nhòp 
treân chip toác ñoä baud 
 SMOD=1 
 b. Cheá ñoä 2 
 SMOD=0 
Dao ñoäng Xung nhòp 
treân chip toác ñoä baud 
 SMOD=1 
 c. Cheá ñoä 1 vaø 3. 
Hình 2.10. Caùc nguoàn taïo xung nhòp cho port noái tieáp. 
Maëc nhieân, sau khi reset heä thoáng, toác ñoä baud cheá ñoä laø 2 taàn soá boä dao 
ñoäng chia cho 64. Toác ñoä baud cuõng aûnh höôûng bôûi 1 bit trong thanh ghi ñieàu 
khieån nguoàn cung caáp (PCON). Bit 7 cuûa PCON laø bit SMOD. Ñaët bit sMOD 
leân moät laøm gaáp ñoâi toác ñoä baud trong cheá ñoä 1,2 vaø 3. Trong cheá ñoä 2, toác ñoä 
baud coù theå bò gaáp ñoâi töø giaù trò maëc nhieân cuûa 1/64 taàn soá dao ñoäng 
(SMOD=0) ñeán 1/32 taàn soá dao ñoäng (SMOD=1) 
Vì PCON khoâng ñöôïc ñònh ñòa chæ theo bit, neân ñeå ñaët bit SMOD leân 1 
caàn phaûi theo caùc leänh sau: 
MOV A,PCON laáy giaù trò hieän thôøi cuûa PCON 
SETB ACC.7 ñaët bit 7 (SMOD) leân 1 
MOV PCON,A ghi giaù trò ngöôïc veà PCON 
Caùc toác ñoä baud trong caùc cheá ñoä 1 vaø 3 ñöôïc xaùc ñònh baèng toác ñoä traøn 
cuûa timer 1. Vì timer hoaït ñoäng ôû taàn soá töông ñoái cao, traøn timer ñöôïc chia 
÷12
÷64 
÷32 
÷16 
÷32 
÷16 
23
theâm cho 32 (hay 16 neáu SMOD=1) tröôùc khi cung caáp xung nhòp toác ñoä baud 
cho port noái tieáp. 
7. Taäp leänh cuûa 8051/8031. 
Taäp leänh 8051/8031 coù 255 leänh goàm 139 leänh 1 byte, 92 leänh 2 byte vaø 
24 leänh 3 byte. 
7.1/ Caùc nhoùm leänh cuûa 8051/8031. 
Taäp leänh cuûa 8051/8031 ñöôïc chia thaønh 5 nhoùm: 
- Soá hoïc. 
- Luaän lyù. 
- Chuyeån döõ lieäu. 
- Chuyeån ñieàu khieån. 
Caùc chi tieát thieát laäp leänh: 
Rn :Thanh ghi R0 ñeán R7 cuûa bank thanh ghi ñöôïc choïn. 
Data : 8 bit ñòa chæ vuøng döõ lieäu beân trong. Noù coù theå laø vuøng RAM döõ 
lieäu trong (0-127) hoaëc caùc thanh ghi chöùc naêng ñaëc bieät. 
@Ri : 8 bit vuøng RAM döõ lieäu trong (0-125) ñöôïc ñaùnh giaù ñòa chæ giaùn 
tieáp qua thanh ghi R0 hoaëc R1. 
#data : Haèng 8 bit chöùc trong caâu leänh. 
#data 16 : Haèng 16 bit chöùa trong caâu leänh. 
Addr16 : 16 bit ñòa chæ ñích ñöôïc duøng trong leänh LCALL vaø LJMP. 
Addr11 : 11 bit ñòa chæ ñích ñöôïc duøng trong leänh LCALL vaø AJMP. 
Rel : Byte offset 8 bit coù daáu ñöôïc duøng trong leänh SJMP vaø nhöõng 
leänh nhaûy coù ñieàu kieän. 
Bit : Bit ñöôïc ñònh ñòa chæ tröïc tieáp trong RAM döõ lieäu noäi hoaëc caùc 
thanh ghi chöùc naêng ñaëc bieät. 
a. Nhoùm leänh xöû lyù soá hoïc: 
ADD A,Rn (1byte, 1 chu kyø maùy) : coäng noäi dung thanh ghi Rn vaøo thanh ghi 
A. 
ADD A,data (2,1): Coäng tröïc tieáp 1 byte vaøo thanh ghi A. 
ADD A,@Ri (1,1): Coäng giaùn tieáp noäi dung RAM chöùa taïi ñòa chæ ñöôïc 
khai baùo trong Ri vaøo thanh ghi A. 
ADD A,#data (2,1):Coäng döõ lieäu töùc thôøi vaøo A. 
ADD A,Rn (1,1): Coäng thanh ghi vaø côø nhôù vaøo A. 
ADD A,data (2,1): Coäng tröïc tieáp byte döõ lieäu vaø côø nhôù vaøo A. 
ADDC A,@Ri (1,1): Coäng giaùn tieáp noäi dung RAM vaø côø nhôù vaøo A. 
ADDC A,#data (2,1): Coäng döõ lieäu töùc thôøi vaø côø nhôù vaøo A. 
SUBB A,Rn (1,1): Tröø noäi dung thanh ghi A cho noäi dung thanh ghi Rn 
vaø côø nhôù. 
24
SUBB A,data (2,1): Tröø tröïc tieáp A cho moät soá vaø côø nhôù. 
SUBB A,@Ri (1,1): Tröø giaùn tieáp A cho moät soá vaø côø nhôù. 
SUBB A,#data (2,1): Tröø noäi dung A cho moät soá töùc thôøi vaø côø nhôù. 
INC A (1,1): Taêng noäi dung thanh ghi A leân 1. 
INC Rn (1,1): Taêng noäi dung thanh ghi Rn leân 1. 
INC data (2,1): Taêng döõ lieäu tröïc tieáp leân 1. 
INC @Ri (1,1): Taêng giaùn tieáp noäi dung vuøng RAM leân 1. 
DEC A (1,1): Giaûm noäi dung thanh ghi A xuoáng 1. 
DEC Rn (1,1): Giaûm noäi dung thanh ghi Rn xuoáng 1. 
DEC data (2,1): Giaûm döõ lieäu tröïc tieáp xuoáng 1 
DEC @Ri (1,1): Giaûm giaùn tieáp noäi dung vuøng RAM xuoáng 1. 
INC DPTR (1,2): Taêng noäi dng con troû döõ lieäu leân 1. 
MUL AB (1,4): Nhaân noäi dung thanh ghi A vôùi noäi dung thanh ghi B. 
DIV AB (1,4): Chia noäi dung thanh ghi A cho noäi dung thanh ghi B. 
DA A (1,1,): hieäu chænh thaäp phaân thanh ghi A. 
b. Nhoùm leänh luaän lyù: 
ANL A,Rn (1,1): AND noäi dung thanh ghi A vôùi noäi dung thanh ghi Rn. 
ANL A,data (2,1):AND noäi dung thanh ghi A vôùi döõ lieäu tröïc tieáp. 
ANL A,@Ri (1,1): AND noäi dung thanh ghi A vôùi döõ lieäu giaùn tieáp 
trong RAM. 
ANL A,#data (2,1): AND noäi dung thanh ghi vôùi döõ lieäu töùc thôøi. 
ANL data,A (2,1): AND moät döõ lieäu tröïc tieáp vôùi A. 
ANL data,#data (3,2): AND moät döõ lieäu tröïc tieáp vôùi A moät döõ lieäu töùc thôøi. 
ANL C,bit (2,2):AND côø nhôù vôùi 1 bit tröïc tieáp. 
ANL C,/bit (2,2): AND côø nhôù vôùi buø 1 bit tröïc tieáp. 
ORL A,Rn (1,1): OR thanh ghi A vôùi thanh ghi Rn. 
ORL A,data (2,1): OR thanh ghi A vôùi moät döõ lieäu tröïc tieáp. 
ORL A,@Ri (1,1): OR thanh ghi A vôùi moät döõ lieäu giaùn tieáp. 
ORL A,#data (2,1):OR thanh ghi A vôùi moät döõ lieäu töùc thôøi. 
ORL data,A (2,1): OR moät döõ lieäu tröïc tieáp vôùi thanh ghi A. 
ORL data,#data (3,1):OR moät döõ lieäu tröïc tieáp vôùi moät döõ lieäu töùc thôøi. 
ORL C,bit (2,2): OR côø nhôù vôùi moät bit tröïc tieáp. 
ORL C,/bit (2,2): OR côø nhôù vôùi buø cuûa moät bit tröïc tieáp. 
XRL A,Rn (1,1): XOR thanh ghi A vôùi thanh ghi Rn. 
XRL A,data (2,1): XOR thanh ghi A vôùi moä döõ lieäu tröïc tieáp. 
XRL A,@Ri (1,1): XOR thanh ghi A vôùi moät döõ lieäu giaùn tieáp. 
XRL A,#data (2,1): XOR thanh ghi A vôùi moä döõ lieäu töùc thôøi. 
25
XRL data,A (2,1): XOR moät döõ lieäu tröïc tieáp vôùi thanh ghi A. 
XRL dara,#data (3,1): XOR moät döõ lieäu tröïc tieáp vôùi moät döõ lieäu töùc thôøi. 
SETB C (1,1): Ñaët côø nhôù. 
SETB bit (2,1): Ñaët moät bit tröïc tieáp. 
CLR A (1,1): Xoùa thanh ghi A. 
CLR C (1,1): Xoùa côø nhôù. 
CPL A (1,1): Buø noäi dung thanh ghi A. 
CPL C (1,1): Buø côø nhôù. 
CPL bit (2,1): Buø moät bit tröïc tieáp. 
RL A (1,1): Quay traùi noäi dung thanh ghi A. 
RLC A (1,1): Quay traùi noäi dung thanh ghi A qua côø nhôù. 
RR A (1,1): Quay phaûi noäi dung thanh ghi A. 
RRC A (1,1): Quay phaûi noäi dung thanh ghi A qua côø nhôù. 
SWAP (1,1): Quay traùi noäi dung thanh ghi A 1 nibble (1/2byte). 
c. Nhoùm leänh chuyeån döõ lieäu: 
MOV A,Rn (1,1):Chuyeån noäi dung thanh ghi Rn vaøo thanh ghi A. 
MOV A,data (2,1): Chuyeån döõ lieäu tröïc tieáp vaøo thanh ghi A. 
MOV A,@Ri (1,1): Chuyeån döõ lieäu giaùn tieáp vaøo thanh ghi A. 
MOV A,#data (2,1): Chuyeån döõ lieäu töùc thôøi vaøo thanh ghi A. 
MOV Rn,data (2,2): Chuyeån döõ lieäu tröïc tieáp vaøo thanh ghi Rn. 
MOV Rn,#data (2,1): Chuyeån döõ lieäu töùc thôøi vaøo thanh ghi Rn. 
MOV data,A (2,1): Chuyeån noäi dung thanh ghi A vaøo moät döõ lieäu tröïc 
tieáp. 
MOV data,Rn (2,2): Chuyeån noäi dung thanh ghi Rn vaøo moät döõ lieäu tröïc 
tieáp. 
MOV data,data (3,2): Chuyeån moät döõ lieäu tröïc tieáp vaøo moät döõ lieäu tröïc 
tieáp. 
MOV data,@Ri (2,2): Chuyeån moät döõ lieäu giaùn tieáp vaøo moät döõ lieäu giaùn 
tieáp. 
MOV data,#data (3,2): Chuyeån moät döõ lieäu töùc thôøi vaøo moät döõ lieäu tröïc 
tieáp. 
MOV @Ri,A (1,1): Chuyeån noäi dung thanh ghi A vaøo moät döõ lieäu giaùn 
tieáp. 
MOV @Ri,data (2,2): Chuyeån moät döõ lieäu tröïc tieáp vaøo moät döõ lieäu giaùn 
tieáp. 
MOV @Ri,#data (2,1): Chuyeån döõ lieäu töùc thôøi vaøo döõ lieäu giaùn tieáp. 
MOV DPTR,#dataù6 (3,2): Chuyeån moät haèng 16 bit vaøo thanh ghi con troû döõ 
lieäu. 
26
MOV C,bit (2,1): Chuyeån moät bit tröïc tieáp vaøo côø nhôù. 
MOV bit,C (2,2): Chuyeån côø nhôù vaøo moät bit tröïc tieáp. 
MOV A,@A+DPTR (1,2): Chuyeån byte boä nhôù chöông trình coù ñòa chæ laø 
@A+DPRT vaøo thanh ghi A. 
MOVC A,@A+PC (1,2): Chuyeån byte boä nhôù chöông trình coù ñòa chæ laø 
@A+PC vaøo thanh ghi A. 
MOV A,@Ri (1,2): Chuyeån döõ lieäu ngoaøi (8 bit ñòa chæ) vaøo thanh ghi A. 
MOVX A,@DPTR (1,2): Chuyeån döõ lieäu ngoaøi (16 bit ñòa chæ) vaøo thanh ghi A. 
MOVX @Ri,A (1,2): Chuyeån noäi dung A ra döõ lieäu ngoaøi (8 bit ñòa chæ). 
MOVX @DPTR,A (1,2): Chuyeån noäi dung A ra döõ lieäu beân ngoaøi (16 bit ñòa 
chæ). 
PUSH data (2,2) : Chuyeån döõ lieäu tröïc tieáp vaøo ngaên xeáp vaø taêng SP. 
POP data (2,2) : Chuyeån döõ lieäu tröïc tieáp vaøo ngaên xeáp vaø giaûm SP. 
XCH A,Rn (1,1) : Trao ñoåi döõ lieäu giöõa thanh ghi Rn v2 thanh ghi A. 
XCH A,data (2,1) : Trao ñoåi giöõa thanh ghi A vaø moät döõ lieäu tröïc tieáp. 
XCH A,@Ri (1,1) : Trao ñoåi giöõa thanh ghi A vaø moät döõ lieäu giaùn tieáp. 
XCHD A,@R (1,1) : Trao ñoåi giöõa nibble thaáp (LSN) cuûa thanh ghi A vaø LSN 
cuûa döõ lieäu giaùn tieáp. 
d. Nhoùm leänh chuyeàn ñieàu khieån: 
ACALL addr11 (2,2): Goïi chöông trình con duøng ñòa chì tuyeät ñoái. 
LCALL addr16 (3,2): Goïi chöông trình con duøng ñòa chæ daøi. 
RET (1,2): Trôû veà töø leänh goïi chöông trình con. 
RET1 (1,2): Trôû veà töø leänh goïi ngaét. 
AJMP addr11 (2,2): Nhaûy tuyeät ñoái. 
LJMP addr16 (3,2): Nhaûy daøi. 
SJMP rel (2,2):Nhaûy ngaén. 
JMP @A+DPTR (1,2): Nhaûy giaùn tieáp töø con troû döõ lieäu. 
JZ rel (2,2): Nhaûy neáu A=0. 
JNZ rel (2,2): Nhaûy neáu A khoâng baèng 0. 
JC rel (2,2): Nhaûy neáu côø nhôù ñöôïc ñaët. 
JNC rel (2,2): Nhaûy neáu côø nhôù khoâng ñöôïc ñaët. 
JB bit,rel (3,2): Nhaûy töông ñoái neáu bit tröïc tieáp ñöôïc ñaët. 
JNB bit,rel (3,2):Nhaûy töông ñoái neáu bit tröïc tieáp khoâng ñöôïc ñaët. 
JBC bit,rel (3,2): Nhaûy töông ñoái neáu bit tröïc tieáp ñöôïc ñaët , roài xoùa 
bit. 
CJNE A,data,rel (3,2): So saùnh döõ lieäu tröïc tieáp vôùi A vaø nhaûy neáu khoâng 
baèng. 
27
CJNE A,#data,rel (3,2): So saùnh döõ lieäu töùc thôøi vôùi A vaø nhaûy neáu khoâng 
baèng. 
CJNE Rn,#data,rel (3,2): So saùnh döõ lieäu töùc thôøi vôùi noäi dung thanh ghi Rn vaø 
nhaûy neáu khoâng baèng. 
CJNE @Ri,#data,rel (3,2): So saùnh döõ lieäu töùc thôøi vôùi döõ lieäu giaùn tieáp vaø 
nhaûy neáu khoâng baèng. 
DJNZ Rn,rel (2,2): Giaûn thanh ghi Rn vaø nhaûy neáu khoâng baèng. 
DJNZ data,rel (3,2): Giaûm döõ lieäu tröïc tieáp vaø nhaûy neáu khoâng baèng. 
Chöông 2: ÑO NHIEÄT ÑOÄ 
 I. Heä Thoáng Ño Löôøng 
 1. Giôùi thieäu 
 Ñeå thöïc hieän pheùp ño cuûa moät ñaïi löôïng naøo ñoù thì tuyø thuoäc vaøo ñaëc 
tính cuûa ñaïi löôïng caàn ño,ñieàu kieän ño,cuõng nhö ñoä chính xaùc theo yeâu caàu cuûa 
moät pheùp ño maø ta coù theå thöïc hieän ño baèng nhieàu caùch khaùc nhau treân cô sôõ 
cuûa caùc heä thoáng ño löôøng khaùc nhau. 
Sô ñoà khoái cuûa moät heä thoáng ño löôøng toång quaùt 
 _ Khoái chuyeån ñoåi: laøm nhieäm vuï nhaän tröïc tieáp caùc ñaïi löôïng vaät lyù ñaëc tröng 
cho ñoái töôïng caàn ño bieán ñoåi caùc ñaïi löôïng thaønh caùc ñaïi löôïng vaät lyù thoáng 
nhaát(doøng ñieän hay ñieän aùp) ñeå thuaän lôïi cho vieäc tính toaùn. 
 _ Maïch ño: coù nhieäm vuï tính toaùn bieán ñoåi tín hieäu nhaän ñöôïc töø boä 
chuyeån ñoåi sao cho phuø hôïp vôùi yeâu caàu theå hieän keát quaû ño cuûa boä chæ thò. 
 _ Khoái chæ thò:laøm nhieäm vuï bieán ñoåi tín hieäu ñieän nhaän ñöôïc töø maïch ño 
ñeå theå hieän keát quaû ño. 
2. Heä thoáng ño löôøng soá 
 Heä thoáng ño löôøng soá ñöôïc nhoùm aùp duïng ñeå thöïc hieän luaän vaên naày vì 
coù caùc öu ñieåm:caùc tín hieäu töông töï qua bieán ñoåi thaønh caùc tín hieäu soá coù caùc 
xung roû raøng ôû traïng thaùi 0,1 seõ giôùi haïn ñöôïc nhieàu möùc tín hieäu gaây sai soá 
.Maët khaùc ,heä thoáng naøy töông thích vôùi döõ lieäu cuûa maùy tính,qua giao tieáp vôùi 
maùy tính öùng duïng roäng raõi trong kyõ thuaät. 
Chuyeån ñoåi Maïch 
ño Chæ thò 
28
a. Sô ñoà khoái 
Hình 5.1 Sô ñoà khoái cuûa heä thoáng ño löôøng soá 
b. Nguyeân lyù hoaït ñoäng 
 Ñoái töôïng caàn ño laø ñaïi löôïng vaät lyù,döïa vaøo caùc ñaëc tính cuûa ñoái töôïng 
caàn ño maø ta choïn moät loaïi caûm bieán phuø hôïp ñeå bieán ñoåi thoâng soá ñaïi löôïng 
vaät lyù caàn ño thaønh ñaïi löôïng ñieän ,ñöa vaøo maïch cheá bieán tín hieäu(goàm:boä 
caûm bieán,heä thoáng khueách ñaïi,xöû lyù tín hieäu). 
 Boä chuyeån ñoåi tín hieäu sang soá ADC(Analog Digital Converter) laøm nhieäm 
vuï chuyeån ñoåi tín hieäu töông töï sang tín hieäu soá vaø keát noái vôùi vi xöû lyù. 
Boä vi xöû lyù coù nhieäm vuï thöïc hieän nhöõng pheùp tính vaø xuaát ra nhöõng leänh 
treân cô sôû trình töï nhöõng leänh chaáp haønh ñaõ thöïc hieän tröôùc ñoù. 
Boä doàn keânh töông töï (multiplexers) vaø boä chuyeån ADC ñöôïc duøng chung taát 
caû caùc keânh . Döõ lieäu nhaäp vaøo vi xöû lyù seõ coù tín hieäu choïn ñuùng keânh caàn xöû 
lyù ñeâ ñöa vaøo boä chuyeån ñoåi ADC vaø ñoïc ñuùng giaù trò ñaëc tröng cuûa noù qua tính 
toaùn ñeå coù keát quaû cuûa ñaïi löôïng caàn ño. 
II. Caùc Phöôg Phaùp Ño Nhieät Ñoä 
Ño nhieät ñoä laø moät phöông thöùc ño löôøng khoâng ñieän,ño nhieät ñoä ñöôïc chia 
thaønh nhieàu daõi: 
+ Ño nhieät ñoä thaáp 
+ Ño nhieät ñoä trung bình 
+ Ño nhieät ñoä cao. 
Vieäc ño nhieät ñoä ñöôïc tieán haønh nhôø caùc duïng cuï hoå trôï chuyeân bieät nhö: 
 + Caëp nhieät ñieän 
+ Nhieät keá ñieän keá kim loaïi 
+ Nhieät ñieän trôû kim loaïi 
Ñaïi löôïng 
Ñaïi löôïng Ñieàu khieån choïn 
Hieånthò 
Söû 
dung
Caûm 
bieán 
Cheá 
bieán 
Tín 
hieäu ño
Doàn 
keânh 
töông 
töï 
ADC
Cheá 
bieán 
Tín 
hieäu ño
Caûm 
bieán 
Vi xöû 
lyù 
Chöông 
trình
29
 + Nhieät ñieän trôû baùn daãn 
 + Caûm bieán thaïch anh. 
Vieäc söû duïng caùc IC caûm bieán nhieät ñeå ño nhieät ñoä laø moät phöông phaùp 
thoâng duïng ñöôïc nhoùm söû duïng trong taäp luaän vaên naày,neân ôû ñaây chæ giôùi thieäu 
veà IC caûm bieán nhieät. 
 Nguyeân lyù hoaït ñoäng chung cuûa IC ño nhieät ñoä 
IC ño nhieät ñoä laø moät maïch tích hôïp nhaän tín hieäu nhieät ñoä chuyeån thaønh 
tín hieäu ñieän döôùi daïng doøng ñieän hay ñieän aùp.Döïa vaøo ñaëc tính raát nhaïy cuûa 
caùc baùn daãn vôùi nhieät ñoä,taïo ra ñieän aùp hoaëc doøng ñieän,tæ leä thuaän vôùi nhieät ñoä 
tuyeät ñoái.Ño tín hieäu ñieän ta bieát ñöôïc giaù trò cuûa nhieät ñoä caàn ño.Söï taùc ñoäng 
cuûa nhieät ñoä taïo ra ñieän tích töï do vaø caùc loå troáng trong chaát baùn daãn . Baèng söï 
phaù vôõ caùc phaân tö û, böùt caùc electron thaønh daïng töï do di chuyeån qua vuøng caáu 
truùc maïng tinh theå taïo söï xuaát hieän caùc loã troáng . Laøm cho tæ leä ñieän töû töï do vaø 
loå troáng taêng leân theo qui luaät haøm muõ vôùi nhieät ñoä . 
 Ñaëc tính cuûa moät soá IC ño nhieät ñoä thoâng duïng 
 +AÏD590 
 Ngoõ ra laø doøng ñieän. 
 Ñoä nhaïy 1A/0K. 
 Ñoä chính xaùc +40C. 
 Nguoàn cung caáp Vcc = 4 – 30V. 
 Phaïm vi söû duïng –55oc ñeán 150oc 
 + LX5700 
 Ngoõ ra laø ñieän aùp. 
 Ñoä nhaïy –10mv/0K. 
 Phaïm vi söû duïng –550C – 1500C. 
 + LM135,LM335 
 Ngoõ ra laø ñieän aùp. 
 Ñoä nhaïy 10mv/0C. 
 Sai soá cöïc ñaïi 1,50C khi nhieät ñoä lôùn hôn 1000C. 
 Phaïm vi söû duïng –550C – 1500C. 
Chöông 3 : CHUYEÅN ÑOÅI TÖÔNG TÖÏ – SOÁ 
I KHAÙI NIEÄM CHUNG 
Ngaøy nay vieäc truyeàn ñaït tín hieäy cuõng nhö quaù trình ñieàu khieån vaø chæ 
thò phaàn lôùn ñöôïc thöïc hieän theo phöông phaùp soá. Trong khi ñoù tín hieäu töï 
nhieân coù daïng töông töï nhö:nhieät ñoä,aùp suaát ,cöôøng ñoä aùnh saùng,toác ñoä quay,tín 
30
hieäu aâm thanh…Ñeå keát noái giöõa nguoàn tín hieäu töôïng töï vôùi caùc heä thoáng xöû lyù 
soá ngöôøi ta duøng caùc maïch chuyeån ñoåi töông töï sang soá(ADC) nhaèm bieán ñoåi 
tín hieäu töông töï sang soá hoaëc trong tröøông hôïp ngöôïc laïi caàn bieán ñoåi tín hieäu 
soá sang töông töï thi duøng caùc maïch DAC (Digital Analog Converter). 
II GIÔÙI THIEÄU VEÀ IC ADC0809 
 Boä ADC 0809 laø moät thieát bò CMOS tích hôïp vôùi moät boä chuyeån ñoåi töø 
töông töï sang soá 8 bit, boä choïn 8 keânh vaø moät boâ logic ñieàu khieån töông thích. 
Boä chuyeån ñoåi AD 8 bit naøy duøng phöông phaùp chuyeån ñoåi xaáp xæ tieáp. Boä 
choïn keânh coù theå truy xuaát baát keành naøo trong caùc ngoõ vaøo töông töï moät caùnh 
ñoäc laäp. 
 Thieát bò naøy loaïi tröø khaû naêng caàn thieát ñieàu chænh ñieåm 0 beân ngoaøi vaø 
khaû naêng ñieàu chænh tæ soá laøm troøn ADC 0809 deã daøng giao tieáp vôùi caùc boä vi 
xöû lyù. 
1/ Sô ñoà chaân ADC 0809: 
* YÙ nghóa caùc chaân: 
 . IN0 ñeán IN7 : 8 ngoõ vaøo töông töï. 
 . A, B, C : giaûi maõ choïn moät trong 8 ngoõ vaøo 
 . Z-1 ñeán Z-8 : ngoõ ra song song 8 bit 
 . ALE : cho pheùp choát ñòa chæ 
 . START : xung baét ñaàu chuyeån ñoåi 
 . CLK : xung ñoàng hoà 
 . REF (+) : ñieän theá tham chieáu (+) 
 . REF (-) : ñieän theá tham chieáu (-) 
 . VCC : nguoàn cung caáp 
2/ Caùc ñaëc ñieåm cuûaADC 0809: 
 . Ñoä phaân giaûi 8 bit 
ADC0809 
28 15 
1 14 
IN2 IN1 IN0 A B C ALE 2-1 2-2 2-3 2-4 2-8 REF 2-6 
STARTIN3 IN4 IN5 IN6 IN7 EOC 2
-5 OE CLK VCC REF GND 2-7 
31
 . Toång sai soá chöa chænh ñònh ± ½ LSB; ± 1 LSB 
 . Thôøi gian chuyeån ñoåi: 100µs ôû taàn soá 640 kHz 
 . Nguoàn cung caáp + 5V 
 . Ñieän aùp ngoõ vaøo 0 – 5V 
 . Taàn soá xung clock 10kHz – 1280 kHz 
 . Nhieät ñoä hoaït ñoäng - 40oC ñeán 85oC 
 . Deã daøng giao tieáp vôùi vi xöû lyù hoaëc duøng rieâng 
 . Khoâng caàn ñieàu chænh zero hoaëc ñaày thang 
3/ Nguyeân lyù hoaït ñoäng: 
 ADC 0809 coù 8 ngoõ vaøo töông töï, 8 ngoõ ra 8 bit coù theå choïn 1 trong 8 ngoõ 
vaøo töông töï ñeå chuyeån ñoåi sang soá 8 bit. 
 Caùc ngoõ vaøo ñöôïc choïn baèng caùch giaûi maõ. Choïn 1 trong 8 ngoõ vaøo töông 
töï ñöôïc thöïc hieän nhôø 3 chaân ADDA , ADDB , ADDC nhö baûng traïng thaùi sau: 
A B C Ngoõ vaøo ñöôïc choïn
0 
0 
0 
0 
1 
1 
1 
1 
0 
0 
1 
1 
0 
0 
1 
1 
0 
1 
0 
1 
0 
1 
0 
1 
IN0 
IN1 
IN2 
IN3 
IN4 
IN5 
IN6 
IN7 
 Sau khi kích xung start thì boä chuyeån ñoåi baét ñaàu hoaït ñoäng ôû caïnh xuoáng 
cuûa xung start, ngoõ ra EOC seõ xuoáng möùc thaáp sau khoaûng 8 xung clock (tính töø 
caïnh xuoáng cuûa xung start). Luùc naøy bit cô troïng soá lôùn nhaát (MSB) ñöôïc ñaët 
leân möùc 1, taát caû caùc bit coøn laïi ôû möùc 0, ñoàng thôøi taïo ra ñieän theá coù giaù trò 
Vref/2, ñieän theá naøy ñöôïc so saùnh vôùi ñieän theá vaøo in. 
+ Neáu Vin > Vref/2 thì bit MSB vaãn ôû möùc 1. 
+ Neáu Vin < Vref/2 thì bit MSB vaãn ôû möùc 0. 
Töông töï nhö vaäy bit keá tieáp MSB ñöôïc ñaët leân 1 vaø taïo ra ñieän theá coù giaù trò 
Vref/4 vaø cuõng so saùnh vôùi ñieän aùp ngoõ vaøo Vin. Quaù trình cöù tieáp tuïc nhö vaäy 
cho ñeán khi xaùc ñònh ñöôïc bit cuoái cuøng. Khi ñoù chaân EOC leân möùc 1 baùo cho 
bieát ñaõ keát thuùc chuyeån ñoåi. 
Trong suoát quaù trình chuyeån ñoåi chaân OE ñöôïc ñaët ôû möùc 1, muoán ñoïc döõ lieäu 
ra chaân OE xuoáng möùc 0. 
32
Trong suoát quaù trình chuyeån ñoåi neáu coù 1 xung start taùc ñoäng thì ADC seõ ngöng 
chuyeån ñoåi. 
Maõ ra N cho moät ngoõ vaøo tuøy yù laø moät soá nguyeân. 
)()(
)( ).(256
−+
−
−
−=
refref
refIN
VV
VV
N 
Trong ñoù Vin: ñieän aùp ngoõ vaøo heä so saùnh. 
 Vref(+): ñieän aùp taïi chaân REF(+). 
 Vref(-): ñieän aùp taïi chaân REF(-). 
Neáu choïn Vref(-) = 0 thì N = 256.
)(+ref
in
V
V 
 Vref(+) = Vcc = 5V thì ñaày thang laø 256. 
- Giaù trò böôùc nhoû nhaát 
1 LSB = 
12
5
8 − = 0,0196 V/byte 
Vaäy vôùi 256 böôùc Vin = 5V. 
Aùp vaøo lôùn nhaát cuûa ADC 0809 laø 5V. 
4/ Maïch taïo xung clock cho ADC 0809: 
Söû duïng maïch dao 
 ñoäng duøng caùc coång 
 not ñeå taïo dao ñoäng 
cho ADC nhö sau: 
Taàn soá dao ñoäng cuûa maïch laø f = 
RC3
1 
Taàn soá dao ñoäng chuaån laø 600 kHz 
Suy ra 640 = 
RC3
1 
Vôùi R töø 100Ω ñeán vaøi kΩ choïn R =1 kΩ ⇒ C = 500 PF. 
*****************************************************
***************************************************** 
PHAÀN B : THIEÁT KEÁ PHAÀN CÖÙNG 
CHÖÔNG1 THIEÁT KEÁ TOÅNG QUAÙT 
I . SÔ ÑOÀ KHOÁI : 
Vcc
560
10K
 IK IK
33
 
 
 
 
 
 
 
 
Heä hoaït ñoäng theo chöông trình ñaõ naïp treân ROM , qua söï ñieàu khieån cuaû MCU 
8051 phaàn caûm bieán nhieät ñaët ôû nôi ta muoán ño ,noù seõ ñoï tín hieäu cuûa nhieät ñoä qua 
möùc ñieän aùp tín hieäu analog ñöôïc chuyeån thaønh tín hieäu soá vaø giao tieáp vôùi heä thoáng 
qua data bus. 
Treân cô sôû chöông chình ñöôïc naïp treân ROM vaø tín hieäu nhaän ñöôïc , MCU cho 
pheùp thieát bò ngoaïi vi hoaït ñoäng nhö : hieån thò giaù trò nhieät ñoä töông öùng ñieàu khieån 
nhieät ñoä thích hôïp. 
II .SÔ LÖÔÏC CHÖÙC NAÊNG CAÙC BOÄ PHAÄN : 
_ Vi xöû lyù 8051 laø phaàn töû chính xöû caùc thoâng tin nhaäp vaøo vaø ñöa ra caùc quyeát 
ñònh ñieài khieån. 
_ Phím laø boä phaän giao tieáp ngoaïi vi , cho pheùp nhaäp caùc thoâng soá baèng tay. 
_ Maïch hieån thò , hieån thò caùc giaù trò ñaët vaø giaù trò ño. 
_ Maïch caûm bieán duøng ñeå khuyeách ñaò tín hieäu vaø buø nhieät. 
_ Maïch coâng suaát duøng ñeå ñoùng môû nguoàn coâng suaát. 
III . THIEÁT KEÁ CHI TIEÁT : 
1 . Thieát keá phím : 
Caùc phím thieát keá ñôn giaûn goàm coù 3 phím : 
• Phím taêng 
• Phím giaûm. 
• Phím chöùc naêng. 
KHOÁI HIEÅN THÒ BOÄ BIEÁN ÑOÅI ADC 
CMU 8051 KHOÁI CAÛM BIEÁN 
BAØN PHÍM MAÏCH COÂNG SUAÁT 
P1.0
P1.2
P1.1
4.7k 4.7k 4.7k
VCC_CIRCLE
+V
1
R3R2
R1
34
2 . Khoái maïch caûm bieán : 
1
3
2
-VCC
+VCC8
42
3
1
VCC
1
4
8
3
2
-VCC
3
1
-VCC
+VCC
8
42
3 1
2
R4+
U2A
LM358
LM335
1
VR1
1 5%
C2
1
+V
VCC1
1
IN0 
+
U3
LM358
+V
VCC
1
C1
1
VR
1 5%
+
U1
LM358
R6
R5R3
Tính toaùn vaø caân chænh : 
LM335 laø caûm bieán nhieät ñoä coù theå hoaït ñoäng ñeán 1500C töông öùng vôùi 
nhieät ñoä 00K , LM335 cho ra ñieän aùp 0V . Cöù taêng 10C ,ñieän aùp ra taêng 10mV.Nhö 
vaäy vôùi 00C thì ñieän aùp laø 2.73V. 
Xeùt maïch khuyeát ñaò tröø : 
Goïi Vf1 = VOUT laø aùp ngoõ vaøo ñaoû cuaû U3 , VI2 = VOUT2 aùp ngoõ vaoø khoâng 
ñaoûcuaû U3 . Aùp duïng phöông phaùp xeáp choàng cho töøng kích thích ngoõ vaoø ,ngaén 
maïch ngoõ vaøo coøn laïi ta ñöôïc : 
V01 = - 3
5
R
R Vi1 
V02 = ⎟⎠
⎞⎜⎝
⎛ +⎟⎠
⎞⎜⎝
⎛
+ 3
51
46
6
R
R
RR
R 
V0 = V02 + V01 = V02 = ⎟⎠
⎞⎜⎝
⎛ +⎟⎠
⎞⎜⎝
⎛
+ 3
51
46
6
R
R
RR
R Vi2 - 3
5
R
R Vi1 
Neáu R5 = R6 = R4 = R3 = 1 
V0 = Vi2 – Vi1 
Trong tröôøng hôïp naøy ta choïn R5 = R6 vaø R4 = R3 thì V0 ñöôïc vieát laïi nhö sau: 
35
V0 = ⎟⎠
⎞⎜⎝
⎛ +⎟⎠
⎞⎜⎝
⎛
+ 3
51
46
6
R
R
RR
R Vi2 - 
3
5
R
R Vi1 = (
3
5
R
R ) (Vi2 – Vi1 ) =Av(Vi2 – Vi1) 
Suy ra ñieän aùp ngoõ ra seõ thay ñoåi Av*10mV khi nhieät ñoä thay ñoåi 10C .ñoä 
phaân giaûi caàn laø 0.50C neân ñieän aùp thay ñoåi khi nhieät ñoä thay ñoåi 10C,phaûi baèng hai 
laàn ñoä phaân giaûi cuûa AD0804 : 
Av*10mV = 2*19.6mV 
Ö Av= 3.92 
Ö Choïn R5 = 39 K vaø R3 = 10K 
Caân chænh : 
Chænh VR1 sao cho VI cuûa U3 =2.73 + 0.01* t0C 
Nhöng trong thöïc teá ñeå chính xaùc ,nhuùng LM335 vaøo nöôùc daù ñang tan 
(00C) . Chænh VR2 sao cho V2 cuûa U2 = 2.73V. 
Thieát keá boä caûm bieán nhieät : 
Taàm laøm vieäc trong heä thoáng maïch töø 0z1000C. 
Ñeå ño nhieät ñoä chính xaùc phaûi coù caùc ñaàu ño ñaëc bieät. Ñaàu ño döôùi 
daïng vi maïch LM335 laø moät ñaàu ño ñöôn giaûn vaø chính xaùc vôùi giaù thaønh laïi reû . 
LM335 coù ñoä bieán thieân ñieän aùp theo nhieät ñoä laø 10mV/0K ,coù moät daõy ñoä chính xaùc 
khaù cao vaø caûm bieán nhieät toát ôû nhieät ñoä 250C coù ñoä sai soá nhoû hôn 10C.vôùi taàm ño töø 
nhieät ñoä 0z1000C, ngoõ ra cuûa caûm bieán naøy tuyeán tính. 
Caùc tính chaát cuûa caûm bieán LM335 : 
• Chia ñoä tröïc teáp theo 0K 
• Ñoä chính xaùc ban ñaàu laø 10C 
• Trôû khaùng ñoäng < 1Ω 
• Taàm nhieät ñoä roäng . 
• Khoaûng ño 2000C 
Taàm tuyeät ñoái lôùn nhaát : 
Doøng ngöôïc 15mA 
Doøng thuaän 10mA 
Ñieän aùp hoaït ñoäng ngoõ ra ôû ñieàu kieän Tc=250C,IR =1nAtöông öùng 
2.92z3.04V 
Sai soá nhieät ôû 250C ôû ñieàu kieän Tmin 1z20C 
Ñieän aùp ngoõ ra hoaït ñoäng ôû ñieàu kieän 400µA<IR<5mA thì töông öùng töø 
3z14mV. 
Theo thoâng soá cuûa nhaø saûn xuaát IC LM335 coù ñoä bieán thieân ñieän aùp nhö sau: 
00C (2730K ) aùp ra 2.73V V 
50C (2780K ) aùp ra 2.78V 
250C (2980K ) aùp ra 2.98V 3.73 VOUT 
36
500C (3230K ) aùp ra 3.23V 3.23 
1000C (3730K ) aùp ra 3.73V 
 2.98 
 2.78 
 2.73 
 273 278 298 323 373 
Nhö vaäy taàn bieán thieân ñieän aùp öùng vôùi nhieät ñoä töø 0z1000C laø 1V 
Ñieän aùp ra töø boä caûm bieán LM335 theo coâng thöùc 
VT (0K) = 2.73 =0.01T(0K) (mV) 
Ñieän aùp ngoõ ra hoaït ñoäng ôû ñieàu kieän Tc =250C ,IR = 1mA 
Maët khaùc : 400µA<IR<5mA 
 400µA< mA
R
VV 5
2
98.25 <− 
 1.8K <R2 < 22.5K 
maø R2 = KmA
VV 02.2
1
98.25 =− 
neân choïn R2 =2.2K vaø choïn moät bieán trôû VR2 =20K ñeå chænh tinh. 
 3 /Maïch hieån thò : 
Tính giaù trò ñòeân trôû haïn doøng Rhd noái vôùi 74LS47 : 
Moãi ñoaïn cuûa led caøn doøng khoaûng 10mA ñeå saùng , ñieän aùp rôi treân led khoaûng 
Vled=2V . Nguoàng cung caáp Vcc = 5V. Caùc thoâng soá ngoõ ra cuûa IC7447 laø : 
Vol = 0.4V, Iol = 40mA . 
Giaû söû , ta muoán caùc led saùng vôùi moät doøng Iled =10mA vaäy : 
Rhd= (Vcc – V LED – VOL)/ILED => RHD = (5V-1.8V –0.4V )/10mA Î RHD = 280Ω 
thöïc teá khi thieát keá thöôøng cho moãi LED saùng vôùi doøng ILED töông öùng vôùi giaù trò 
ñieän trôû haïn doøng laø: RHD =330Ω. 
Vout
VR
+5V 
LM335 
37
VCC
P0.
4P0.5 A101
5
A101
5
A101
5
VCC
P0.
0P0.
1P0.
2P0.
3
583
P0.
0P0.
1P0.
2P0.
3
583
P0.
6
3
8 5
P0.
0P0.
1P0.
2P0.
3
74LS47
A3A2
A1A0
testRBI
gf
edcba
RBO
U2
Q1
PNPRb
1
Rb
1 Q2
PNP
74LS47
A3A2
A1A0
testRBI
gf
edcba
RBO
U1
Rb
1 Q3
PNP
74LS47
A3
A2A1A0
testRBI
g
fedcba
RBO
U3
abcdefg.
Gnd
DISP1
abcdefg.
Gnd
DISP2
abcdefg.
Gnd
DISP3
Tính giaù trò ñieän trôû RB noái vôùi A1015: 
 Xeùt ñieàu kieän ñeå transistor boaõ hoaø laø ; 
I B >= βIC 
 Choïn β = 100 (A1015) taïi ngoõ ra cuûa IC8051 coù caùc thop6ng soá sau : 
Iol = 3.2mA 
Vol =0.45 V 
Vaäy doøng IB naèm trong giôùi haïn sau : 
IolIb
hfe
Ic ≤≤ hay Iol
Rb
Ub
hfe
Ic ≤≤ 
Töø ñoù ta suy ra R: 
 ( ) ( ) Ω=+−=+−=≤ KVV
Ib
VVohVcc
Rb
UbRb 203.1
0032.0
7.045.05γ 
 Choïn RB =1.2KΩ 
4 – Maïch coâng suaát : Ω
38
Duøng coâng taéc ñieän töû ñeå ñoùng ngaét nguoàn ñieän cung caùp cho maïch ñieàu khieån 
khi coù tín hieäu ngoõ vaøo P3.2 .Boä gheùp quang ñöôïc söû duïng vì söï caùch ly toát veà ñieän 
giöõa maïch ñieàu khieån vaø maïch coâng suaát . 
Nguyeân lyù laøm vieäc : 
 Tuyø theo ngoõ ra chaân P3.2 ôû möùc cao hay möùc thaáp maø transistor C828 ñoùng 
hay môû cho pheùp doøng ñieän qua thoâng qua OPTO – TRIAC. 
**********************************************************************
********************************************************************** 
TAÛI
39
PHAÀNC : THIEÁT KEÁ CHÖÔNG TRÌNH 
CHÖÔNG1 : GIAÛI THUAÄT CHÖÔNG TRÌNH 
CHÖÔNG TRÌNH CHÍNH 
 Y Y 
 N N 
 Y Y 
 N N 
Start
Naïp giaù tò ban ñaàu
P1.1= 0 ? 
Taêng t0 ñaët 
P1.2 =0 ? 
Giaûm t0
P1.0 = 0 ? 
Ktra t0 ñaët 
< t0 max 
Ktra t0 ñaët 
>= t0 min 
Ñoïc ADC 
Hieäu chænh 
Hieån thò nhieät ñoä ño Hieån thò nhieät ñoä ñaët
Giaûm t0
Taêng t0
40
 GIAÛI THUAÄT CHÖÔNG TRÌNH ÑOÅI SOÁ NHÒ PHAÂN RA BCD 
 
 
 
 
 
 
 
 
 
Baét ñaàu
Chia tieáp keát quaû cho 
10 ñöôc soá chuc vaø traêm.
Caát keát quaû vaøo boä nhôù.
Thoaùt
Chia soá caàn ñoåi cho 10 
ñöôïc soá dö laø haøng ñôn vò. 
41
GIAÛI THUAÄT XUAÁT LED 
 
 
 
 
 
 
 
Baét ñaàu
Choïn döõ lieäu caàn hieån thò
 Laáy maõ LED ñöa ra 
 LED choïn LED keá. 
Thoaùt
42
GIAÛI THUAÄT CHÖÔNG TRÌNH ÑOÏC A/D 
Baét ñaàu
Ñoïc döõ lieäu A/D
Chia soá ñoïc ñöôïc cho 2 ñeå 
ñöôïc nhieät ñoä töông öùng 
Ñoåi döõ lieäu ra soá BCD caát 
vaøo RAM ôû caùc ñòa chæ 
30H,31H,32H 
Thoaùt
43
GIAÛI THUAÄT CHÖÔNH TRÌNH SO SAÙNH VAØ ÑIEÀU KHIEÅN 
Baét ñaàu 
Laáy nhieät ñoä ño tröø 
nhieät ñoä ñaët 
Ño < Ñaët 
Caáp nguoàn cho phaàn 
coâng suaát 
Thoaùt
44
GIAÛI THUAÄT CHÖÔNG TRÌNH TAÊNG GIAÛM 
 NO 
 YES 
Vaøo
Phím MOD coù nhaán 
khoâng 
Phím taêng coù nhaán 
khoâng ? 
Phím giaûm coù nhaán 
khoâng ? 
Goïi chöông trình 
hieån thò 
Giaûm thoâng soá 
xuoáng moät ñôn vò 
Taêng thoâng soá leân moät 
ñôn vò 
45
            Các file đính kèm theo tài liệu này:
 Thiết kế & thi công mạch điều khiển nhiệt độ dùng 89c51.pdf Thiết kế & thi công mạch điều khiển nhiệt độ dùng 89c51.pdf