You are on page 1of 44

Baùo caùo ñoà aùn moân hoïc I

Lôøi caûm ôn
Kính göûi Thaày TS. Nguyeãn Thieän Thaønh!
Em laø Nguyeãn Uy Danh, sinh vieân naêm 4, khoa Ñieän_Ñieän Töû, Ñaïi Hoïc Baùch
Khoa Tp.HCM.
Hoïc kyø naøy, em raát vinh döï ñöôïc thöïc hieän ñeà taøi cuûa ñoà aùn moân hoïc I
döôùi söï höôùng daãn taän tình cuûa Thaày. Chính söï nhieät tình chæ daãn cuûa Thaàyù
ñaõ giuùp em hoaøn thaønh ñoà aùn khaù toát, ñaït ñöôïc nhöõng yeâu caàu cô baûn maø
ñeà taøi ñaët ra. Vaø cuõng qua ñoù, em ñaõ hoïc hoûi, tieáp caän ñöôïc nhieàu vaán ñeà
thöïc teá hôn, boå sung nhöõng “khe hôû” kieán thöùc do vieäc hoïc thieân veà lyù
thuyeát ñeå laïi.
Em xin chaân thaønh caûm ôn Thaày.

Cuõng qua ñaây, em xin göûi lôøi caûm ôn chaân thaønh cuûa mình ñeán gia ñình, baïn
beø –nhöõng ngöôøi ñaõ ñoäng vieân, quan taâm heát möïc ñeán em trong suoát quaù
trình thöïc hieän ñoà aùn. Ñoù laø nhöõng ñoäng löïc thuùc ñaåy em coá gaéng hôn,
quyeát taâm hôn, ñeå cuoái cuøng em coù ñöôïc keát quaû nhö ngaøy hoâm nay.
Em xin göûi lôøi caûm ôn ñeán taát caû.
Sinh vieân thöïc hieän

Nguyeãn Uy Danh

Chöông I :
Giôùi thieäu veà ñeà taøi

GVHD : TS. Nguyeãn Thieän Thaønh 1 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

I.Toùm taét ñeà taøi ñoà aùn moân hoïc I


1. Giôùi thieäu caùc module maïch cuûa ñeà taøi
Ñeà taøi ñoà aùn moân hoïc I cuûa em laø : “ Ñieàu khieån ON_OFF toác ñoä ñoäng cô
DC”. Vôùi yeâu caàu ñeà taøi nhö treân, höôùng thöïc hieän ñeà taøi cuûa em ñöôïc toùm
taét nhö sau:
- Söû duïng vi ñieàu khieån PIC16F877A laøm chip ñieàu khieån trung taâm.
- Xaây döïng baøn phím goàm 13 phím. Trong ñoù:
+1 phím ñeå ñoàng thôøi reset vi ñieàu khieån vaø döøng ñoäng cô DC
+ 10 phím öùng vôùi 10 soá töø 0 ñeán 9 ñeå ngöôøi duøng nhaäp toác ñoä ñaët
+ 1 phím ra leänh ñoäng cô quay thuaän (FORWARD)
+ 1 phím ra leänh ñoäng cô quay ngöôïc (REVERSE)
- Söû duïng 8 led 7 ñoaïn. Trong ñoù
+ 4 led duøng ñeå ngöôøi duøng nhaäp toác ñoä ñaët mong muoán
+ 4 led ñeå ngöôøi duøng quan saùt toác ñoä ño tröïc tieáp töø ñoäng cô
- Söû duïng driver caàu H L293D tröïc tieáp ñieàu khieån chieàu quay, ñoùng
ngaét ñoäng cô DC
- Ñoái töôïng ñieàu khieån laø ñoäng cô DC coù gaén encoder ñoàng truïc.
- Ngoaøi ra, treân maïch coøn coù caùc linh kieän khaùc ñeå thöïc hieän truyeàn
tín hieäu giöõa vi ñieàu khieån trung taâm vôùi caùc thieát bò hieån thò noùi treân.
Taát caû caùc module maïch treân seõ ñöôïc em trình baøy roõ trong caùc phaàn tieáp
theo cuûa ñeà taøi.

2. Sô ñoà nguyeân lyù keát noái caùc module trong maïch

GVHD : TS. Nguyeãn Thieän Thaønh 2 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

3. Caùch vaän haønh maïch


+ Böôùc 1: ta seõ nhaäp toác ñoä ñaët töø baøn phím. Toác ñoä ñaët naøy goàm coù
4 chöõ soá, seõ hieän leân thoâng qua 4 led. Ta phaûi nhaán ñuû 4 con soá thì maïch môùi
hoaït ñoäng ñöôïc, neáu khoâng nhaán ñuû maïch seõ “treo ñoù”, chôø ngöôøi duøng
nhaán soá tieáp. Neáu nhaäp sai toác ñoä, ta coù theå nhaán phím reset ñeå nhaäp toác ñoä
laïi töø ñaàu. Neáu nhaán nhaàm sang caùc phím RESERVE hoaëc FORWARD tröôùc
khi nhaäp ñuû 4 soá ôû phaàn caøi ñaët toác ñoä thì ngöôøi duøng hoaøn toaøn coù theå
nhaán laïi maø khoâng aûnh höôûng ñeán keát quaû.
+ Böôùc 2: ta nhaán tieáp RESERVE hay FORWARD cho ñoäng cô chaïy theo yù
muoán. Trong quaù trình ñoäng cô quay, vi ñieàu khieån seõ nhaän lieân tuïc nhaän xung
phaùt ra töø encoder, tính toaùn ra toác ñoä vaø so saùnh vôùi toác ñoä ñaët ban ñaàu ñeå
ra quyeát ñònh ON_OFF ñoäng cô. Toác ñoä nhaän veà seõ ñöôïc so saùnh vôùi toác ñoä
ñaët cöù 1ms moät laàn. Ngoaøi ra cöù 1s thì vi ñieàu khieån seõ caäp nhaät toác ñoä

GVHD : TS. Nguyeãn Thieän Thaønh 3 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

thöïc cuûa ñoäng cô, theå hieän ra 4 led 7 ñoaïn ñeå ngöôøi duøng coù theå theo doõi vaø
ñaùnh giaù.

II. Caùc yeâu caàu cuûa ñeà taøi


1. Thoâng qua ñeà taøi, laøm quen vôùi caùch thöùc ñieàu khieån ñoái töôïng ñoäng
cô.
2. Tìm hieåu thöïc teá caùc linh kieän, caùc loaïi IC, hoaït ñoäng cuûa caùc loaïi
caûm bieán….
3. Thieát keá, thi coâng maïch ñieàu khieån vaø maïch ñoäng löïc ñieàu khieån ñoäng
cô DC
4. Vieát chöông trình cho vi ñieàu khieån PIC16F877A thöïc hieän thaønh coâng theo
yeâu caàu ñeà ra.
5. Ñaùnh giaù veà sai soá ,chaát löôïng heä thoáng ñieàu khieån
6. Tìm hieåu caùc höôùng phaùt trieån cuûa ñeà taøi, naâng cao chaát löôïng cuûa heä
thoáng

Chöông II :

GVHD : TS. Nguyeãn Thieän Thaønh 4 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Giôùi thieäu veà caùc linh kieän, phaàn töû söû duïng trong maïch

I. Vi ñieàu khieån PIC16F877A


1. Khaùi quaùt veà vi ñieàu khieån PIC16F877A
1.1.Sô ñoà chaân vaø sô ñoà nguyeân lyù cuûa PIC16F877A
Sô ñoà chaân

Sô ñoà nguyeân lyù

GVHD : TS. Nguyeãn Thieän Thaønh 5 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

1.2. Nhaän xeùt


Töø sô ñoà chaân vaø sô ñoà nguyeân lyù ôû treân, ta ruùt ra caùc nhaän xeùt ban
ñaàu nhö sau :
- PIC16F877A coù taát caû 40 chaân
- 40 chaân treân ñöôïc chia thaønh 5 PORT, 2 chaân caáp nguoàn, 2 chaân GND,
2 chan thaïch anh vaø moät chaân duøng ñeå RESET vi ñieàu khieån.
- 5 port cuûa PIC16F877A bao goàm :
+ PORTB : 8 chaân
+ PORTD : 8 chaân
+ PORTC : 8 chaân
+ PORTA : 6 chaân
+ PORT E : 3 chaân

1.3. Khaùi quaùt veà chöùc naêng cuûa caùc port trong vi ñieàu khieån
PIC16F877A

GVHD : TS. Nguyeãn Thieän Thaønh 6 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

PORTA
PORTA goàm coù 6 chaân. Caùc chaân cuûa PortA, ta laäp trình ñeå coù theå thöïc
hieän ñöôïc chöùc naêng “hai chieàu” : xuaát döõ lieäu töø vi ñieàu khieån ra ngoaïi vi
vaø nhaäp döõ lieäu töø ngoaïi vi vaøo vi ñieàu khieån.
Vieäc xuaát nhaäp döõ lieäu ôû PIC16F877A khaùc vôùi hoï 8051. ÔÛ taát caû caùc
PORT cuûa PIC16F877A, ôû moãi thôøi ñieåm chæ thöïc hieän ñöôïc moät chöùc
naêng :xuaát hoaëc nhaäp. Ñeå chuyeån töø chöùc naêng naøy nhaäp qua chöùc naêng
xuaát hay ngöôïc laïi, ta phaûi xöû lyù baèng phaàn meàm, khoâng nhö 8051 töï hieåu
luùc naøo laø chöùc naêng nhaäp, luùc naøo laø chöùc naêng xuaát.
Trong kieán truùc phaàn cöùng cuûa PIC16F877A, ngöôøi ta söû duïng thanh ghi
TRISA ôû ñòa chæ 85H ñeå ñieàu khieån chöùc naêng I/O treân. Muoán xaùc laäp caùc
chaân naøo cuûa PORTA laø nhaäp (input) thì ta set bit töông öùng chaân ñoù trong thanh
ghi TRISA. Ngöôïc laïi, muoán chaân naøo laø output thì ta clear bit töông öùng chaân
ñoù trong thanh ghi TRISA. Ñieàu naøy hoaøn toaøn töông töï ñoái vôùi caùc PORT coøn
laïi
Ngoaøi ra, PORTA coøn coù caùc chöùc naêng quan troïng sau :
- Ngoõ vaøo Analog cuûa boä ADC : thöïc hieän chöùc naêng chuyeån töø Analog
sang Digital
- Ngoõ vaøo ñieän theá so saùnh
- Ngoõ vaøo xung Clock cuûa Timer0 trong kieán truùc phaàn cöùng : thöïc hieän
caùc nhieäm vuï ñeám xung thoâng qua Timer0…
- Ngoõ vaøo cuûa boä giao tieáp MSSP (Master Synchronous Serial Port)
PORTB
PORTB coù 8 chaân. Cuõng nhö PORTA, caùc chaân PORTB cuõng thöïc hieän
ñöôïc 2 chöùc naêng : input vaø output. Hai chöùc naêng treân ñöôïc ñieàu khieån bôùi
thanh ghi TRISB. Khi muoán chaân naøo cuûa PORTB laø input thì ta set bit töông öùng
trong thanh ghi TRISB, ngöôïc laïi muoán chaân naøo laø output thì ta clear bit töông
öùng trong TRISB.

GVHD : TS. Nguyeãn Thieän Thaønh 7 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Thanh ghi TRISB coøn ñöôïc tích hôïp boä ñieän trôû keùo leân coù theå ñieàu khieån
ñöôïc baèng chöông trình.
PORTC
PORTC coù 8 chaân vaø cuõng thöïc hieän ñöôïc 2 chöùc naêng input vaø output
döôùi söï ñieàu khieån cuûa thanh ghi TRISC töông töï nhö hai thanh ghi treân.
Ngoaøi ra PORTC coøn coù caùc chöùc naêng quan troïng sau :
- Ngoõ vaøo xung clock cho Timer1 trong kieán truùc phaàn cöùng
- Boä PWM thöïc hieän chöùc naêng ñieàu xung laäp trình ñöôïc taàn soá, duty
cycle: söû duïng trong ñieàu khieån toác ñoä vaø vò trí cuûa ñoäng cô v.v….
- Tích hôïp caùc boä giao tieáp noái tieáp I2C, SPI, SSP, USART
PORTD
PORTD coù 8 chaân. Thanh ghi TRISD ñieàu khieån 2 chöùc naêng input vaø output
cuûa PORTD töông töï nhö treân. PORTD cuõng laø coång xuaát döõ lieäu cuûa chuaån
giao tieáp song song PSP (Parallel Slave Port).
PORTE
PORTE coù 3 chaân. Thanh ghi ñieàu khieån xuaát nhaäp töông öùng laø TRISE.
Caùc chaân cuûa PORTE coù ngoõ vaøo analog. Beân caïnh ñoù PORTE coøn laø caùc
chaân ñieàu khieån cuûa chuaån giao tieáp PSP.

1.4. Taïi sao söû duïng PIC16F877A maø khoâng duøng 8051 cho ñeà taøi
Trong chöông trình ñaøo taïo cuûa Tröôøng Ñaïi Hoïc Baùch Khoa, em ñöôïc hoïc
vaø thí nghieäm treân kit cuûa vi ñieàu khieån 8051. Hoï vi ñieàu khieån 8051 laø moät
hoï vi ñieàu khieån ñieån hình, phoå bieán, deã söû duïng vaø laäp trình, raát phuø hôïp
vôùi sinh vieân môùi baét ñaàu laøm quen ñeán laäp trình cho vi ñieàu khieån. Tuy
nhieân, cuõng trong quaù trình nghieân cöùu vaø thí nghieäm vôùi caùc chip ñieàu khieån
thuoäc hoï 8051 ( ñieån hình laø 89C51, 89052…), em nhaän thaáy noù coù nhöõng
nhöôïc ñieåm cô baûn sau ñaây :

GVHD : TS. Nguyeãn Thieän Thaønh 8 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

- Boä nhôù Ram noäi coù dung löôïng thaáp , chæ coù 128 bytes. Ñieàu naøyù gaây
trôû ngaïi lôùn khi thöïc hieän caùc döï aùn lôùn vôùi vi ñieàu khieån 8051. Ñeå khaéc
phuïc ta phaûi môû roäng theâm laøm haïn cheá soá chaân daønh cho caùc öùng duïng
cuûa vi ñieàu khieån.
- Soá löôïng caùc boä giao tieáp vôùi ngoaïi vi ñöôïc tích hôïp saün trong 8051 ít,
khoâng coù caùc boä ADC, PWM, truyeàn döõ lieäu song song…. Khi muoán söû duïng
caùc chöùc naêng naøy, ta phaûi söû duïng theâm caùc IC beân ngoaøi, gaây toán keùm
vaø khoù thöïc hieän vì deã bò nhieãu neáu khoâng bieát caùch choáng nhieãu toát.
- Ngoaøi ra coøn moät soá haïn cheá khaùc nhö soá löôïng Timer cuûa 8051 ít, chæ
coù 2 Timer. Chính ñieàu naøy laøm cho giaûi thuaät khi vieát chöông trình gaëp khoù
khaên.
Nhöõng nhöôïc ñieåm caên baûn treân cuûa 8051, em ñaõ quyeát ñònh khoâng duøng vi
ñieàu khieån naøy cho ñeà taøi “ñieàu khieån toác ñoä ñoäng cô” cuûa mình.
Vôùi kyø voïng döïa treân neàn taûn kieán thöùc tieáp thu ñöôïc khi hoïc vi ñieàu
khieån 8051, em raát muoán töï baûn thaân tìm hieåu moät hoï vi ñieàu khieån môùi
maïnh hôn, ñaày ñuû tính naêng hôn ñeå tröôùc maét laø phucï vuï toát cho ñoà aùn ,
luaän vaên, sau nöõa laø cho caùc döï aùn trong töông lai neáu em coù dòp söû duïng vi
ñieàu khieån trong döï aùn cuûa mình.
Trong quaù trình tím kieám moät hoï vi ñieàu khieån môùi thoõa yeâu caàu nhö em
ñaõ trình baøy treân. Em nhaän thaáy PIC cuûa haõng Microchip laø moät löïa choïn lyù
töôûng. Chæ caàn xem xeùt qua caùc port vaø chöùc naêng cuûa caùc port maø em ñaõ
trình baøy ôû muïc 1.3, ta cuõng deã daøng nhaän ra nhöõng öu ñieåm vöôït troäi cuûa vi
ñieàu khieån naøy so vôùi 8051.
Giaù cuûa PIC16F877A maø em mua treân thò hieän tröôøng laø 50000 ñoàng, maéc
hôn 2 laàn giaù moät con chip hoï 8051. Vieäc söû duïng PIC16F877A trong moät ñeà
taøi khoâng lôùn nhö ñeà taøi “ñieàu khieån toác ñoä ñoäng cô” coù theå laø moät laõng
phí. Tuy nhieân vôùi muïc ñích naâng cao kieán thöùc, naâng cao khaû naêng töï tìm
toøi ,hoïc hoûi qua caùc keânh thoâng tin giaùo duïc khaùc nhau, nhaèm phuïc vuï muïc
ñích laâu daøi sau naøy, thì ñaây laø moät söï löïa choïn hoaøn toaøn xaùc ñaùng. Vaø

GVHD : TS. Nguyeãn Thieän Thaønh 9 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

treân thöïc teá, trong moät thôøi gian töông ñoái ngaén, em ñaõ naém vöõng ñöôïc
nhöõng maõng kieán thöùc cô baûn nhaát ñeå söû duïng noù toát trong ñeà taøi cuûa
mình.
Treân laø toaøn boä nguyeân do taïi sao em choïn vi ñieàu khieån PIC16F877A cho
ñeà taøi ñoà aùn moân hoïc I cuûa mình.
ÔÛ phaàn tieáp theo cuûa baùo caùo ñoà aùn moân hoïc I em seõ ñi saâu giôùi thieäu
nhöõng phaàn maø em ñaõ nghieân cöùu ñöôïc ñeå phuïc vuï cho vieäc thöïc hieän ñoà
aùn cuûa mình.
2. Tìm hieåu veà vi ñieàu khieån PIC16F877A
2.1. Caáu truùc phaàn cöùng cuûa PIC16F877A
PIC laø teân vieát taét cuûa “ Programmable Intelligent computer” do haõng General
Instrument ñaët teân cho con vi ñieàu khieån ñaàu tieân cuûa hoï. Haõng Micrchip tieáp
tuïc phaùt trieån saûn phaàm naøy vaø cho ñeán haøng ñaõ taïo ra gaàn 100 loaïi saûn
phaåm khaùc nhau.
PIC16F887A laø doøng PIC khaù phoå bieán, khaù ñaày ñuû tính naêng phuïc vuï cho
haàu heát taát caû caùc öùng duïng thöïc teá. Ñaây laø doøng PIC khaù deã cho ngöôøi
môùi laøm quen vôùi PIC coù theå hoïc taäp vaø taïo neàn taûn veà hoï vi ñieàu khieån
PIC cuûa mình.
Caáu truùc toång quaùt cuûa PIC16F877A nhö sau :
- 8K Flash Rom
- 368 bytes Ram
- 256 bytes EFPROM
- 5 port vaøo ra vôùi tín hieäu ñieàu khieån ñoäc laäp
- 2 boä ñònh thôøi Timer0 vaø Timer2 8 bit
- 1 boä ñònh thôøi Timer1 16 bit coù theå hoaït ñoäng ôû caû cheá ñoä tieát
kieäm naêng löôïng vôùi nguoàn xung clock ngoaøi
- 2 boä Capture/ Compare/ PWM
- 1 boä bieán ñoåi Analog -> Digital 10 bit, 8 ngoõ vaøo
- 2 boä so saùnh töông töï

GVHD : TS. Nguyeãn Thieän Thaønh 10 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

- 1 boä ñònh thôøi giaùm saùt (Watch Dog Timer)


- 1 coång song song 8 bit vôùi caùc tín hieäu ñieàu khieån
- 1 coång noái tieáp
- 15 nguoàn ngaét

GVHD : TS. Nguyeãn Thieän Thaønh 11 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Sô ñoà khoái vi ñieàu khieån 16F877A

2.2. Toå chöùc boä nhôù PIC16F877a


2.2.1. Boä nhôù chöông trình

Boä nhôù chöông trình PIC16F877A

GVHD : TS. Nguyeãn Thieän Thaønh 12 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Boä nhôù chöông trình cuûa vi ñieàu khieån PIC16F877A laø boä nhôù Flash, dung
löôïng 8K word (1 word chöùa 14bit) vaø ñöôïc phaân thaønh nhieàu trang nhö hình
treân.
Ñeå maõ hoùa ñöôïc ñòa chæ 8K word boä nhôù chöông trình, thanh ghi ñeám chöông
trình PC coù dung löôïng 13 bit.
Khi vi ñieàu khieån reset, boä ñeám chöông trình seõ troû veà ñòa chæ 0000h. Khi
coù ngaét xaûy ra thì thanh ghi PC seõ troû ñeán ñòa chæ 0004h.
Boä nhôù chöông trình khoâng bao goàm boä nhôù Stack vaø khoâng ñöôïc ñòa chæ
hoùa bôûi boä ñeùm chöông trình.
2.2.2. Boä nhôù döõ lieäu
Boä nhôù döõ lieäu cuûa PIC16F877A ñöôïc chia thaønh 4 bank. Moãi bank coù
duïng löôïng 128 byte.
Neáu nhö 2 bank boä nhôù döõ lieäu cuûa 8051 phaân chia rieâng bieät : 128 byte
ñaàu tieân thuoäc bank1 laø vuøng Ram noäi chæ ñeå chöùa döõ lieäu, 128 byte coøn laïi
thuoäc bank 2 laø cuøng caùc thanh ghi coù chöùc naêng ñaëc bieät SFR maø ngöôøi
duøng khoâng ñöôïc chöùa döõ lieäu khaùc trong ñaây thì 4 bank boä nhôù döõ lieäu cuûa
PIC16F877A ñöôïc toå chöùc theo caùch khaùc.
Moãi bank cuûa boä nhôù döõ lieäu PIC16F877A bao goàm caû caùc thanh ghi coù
chöùc naêng ñaëc bieät SFR naèm ôû caùc caùc oâ nhôù ñòa chæ thaáp vaø caùc thanh
ghi muïc ñích duøng chung GPR naèm ôû vuøng ñòa chæ coøn laïi cuûa moãi bank thanh
ghi. Vuøng oâ nhôù caùc thanh ghi muïc ñích duøng chung naøy chính laø nôi ngöôøi
duøng seõ löu döõ lieäu trong quaù trình vieát chöông trình. Taát caû caùc bieán döõ lieäu
neân ñöôïc khai baùo chöùa trong vuøng ñòa chæ naøy.
Trong caáu truùc boä nhôù döõ lieäu cuûa PIC16F877A, caùc thanh ghi SFR naøo
maø thöôøng xuyeân ñöôïc söû duïng (nhö thanh ghi STATUS) seõ ñöôïc ñaët ôû taát caû
caùc bank ñeå thuaän tieän trong vieäc truy xuaát. Sôû dó nhö vaäy laø vì, ñeå truy xuaát
moät thanh ghi naøo ñoù trong boä nhôù cuûa 16F877A ta caàn phaûi khai baùo ñuùng
bank chöùa thanh ghi ñoù, vieäc ñaët caùc thanh ghi söû duïng thöôøng xuyeân giuùp ta
thuaän tieân hôn raát nhieàu trong quaù trình truy xuaát, laøm giaûm leänh chöông trình.

GVHD : TS. Nguyeãn Thieän Thaønh 13 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Sô ñoà boä nhôù döõ lieäu cuûa PIC16F877A


Döïa treân sô ñoà 4 bank boä nhôù döõ lieäu PIC16F877A ta ruùt ra caùc nhaän xeùt
nhö sau :
-Bank0 goàm caùc oâ nhôù coù ñòa chæ töø 00h ñeán 77h, trong ñoù caùc thanh ghi
duøng chung ñeå chöùa döõ lieäu cuûa ngöôøi duøng ñòa chæ töø 20h ñeán 7Fh. Caùc

GVHD : TS. Nguyeãn Thieän Thaønh 14 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

thanh ghi PORTA, PORTB, PORTC, PORTD, PORTE ñeàu chöùa ôû bank0, do ñoù ñeå
truy xuaát döõ lieäu caùc thanh ghi naøy ta phaûi chuyeån ñeán bank0. Ngoaøi ra moät
vaøi caùc thanh ghi thoâng duïng khaùc ( seõ giôùi thieäu sau) cuõng chöùa ôû bank0
- Bank1 goàm caùc oâ nhôù coù ñòa chæ töø 80h ñeán FFh. Caùc thanh ghi duøng
chung coù ñòa chæ töø A0h ñeán Efh. Caùc thanh ghi TRISA, TRISB, TRISC, TRISD,
TRISE cuõng ñöôïc chöùa ôû bank1
- Töông töï ta coù theå suy ra caùc nhaän xeùt cho bank2 vaø bank3 döïa treân sô ñoà
treân.
Cuõng quan saùt treân sô ñoà, ta nhaän thaáy thanh ghi STATUS, FSR… coù maët treân
caû 4 bank. Moät ñieàu quan troïng caàn nhaéc laïi trong vieäc truy xuaát döõ lieäu cuûa
PIC16F877A laø : phaûi khai baùo ñuùng bank chöùa thanh ghi ñoù. Neáu thanh ghi naøo
maø 4 bank ñeàu chöùa thì khoâng caàn phaûi chuyeån bank.
2.2.3. Moät vaøi thanh ghi chöùc naêng ñaëc bieät SFR
Thanh ghi STATUS: thanh ghi naøy coù maët ôû caû 4 bank thanh ghi ôû caùc ñòa
chæ 03h, 83h, 103h vaø 183h : chöùa keát quaû thöïc hieän pheùp toaùn cuûa khoái ALU,
traïng thaùi reset vaø caùc bit choïn bank caàn truy xuaát trong boä nhôù döõ lieäu.

Thanh ghi OPTION_REG : coù maët ôû bank2 vaø bank3 coù ñòa chæ 81h vaø 181h.
Thanh ghi naøy cho pheùp ñoïc vaø ghi, cho pheùp ñieàu khieån chöùc naêng pull_up
cuûa caùc chaân trong PORTB, xaùc laäp caùc tham soá veà xung taùc ñoäng, caïnh taùc
ñoäng cuûa ngaét ngoaïi vi vaø boä ñeám Timer0

Thanh ghi INTCON : coù maët ôû caû 4 bank ôû ñòa chæ 0Bh,8Bh,10Bh,18Bh. Thanh
ghi cho pheùp ñoïc vaø ghi, chöùa caùc bit ñieàu khieån vaø caùc bit baùo traøn timer0,
ngaét ngoaïi vi RB0/INT vaø ngaét khi thay ñoåi traïng thaùi taïi caùc chaân cuûa
PORTB.

GVHD : TS. Nguyeãn Thieän Thaønh 15 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Thanh ghi PIE1 :ñòa chæ 8Ch, chöùa caùc bit ñieàu khieån chi tieát caùc ngaét cuûa
caùc khoái chöùc naêng ngoaïi vi.

Thanh ghi PIR1 : ñòa chæ 0Ch, chöùa côø ngaét cuûa caùc khoái chöùc naêng ngoaïi
vi, caùc ngaét naøy ñöôïc cho pheùp bôûi caùc bit ñieàu khieån chöùa trong thanh ghi
PIE1.

Thanh ghi PIE2 : ñòa chæ 8Dh, chöùa caùc bit ñieàu khieån caùc ngaét cuûa caùc
khoái chöùc naêng CCP, SSP buù, ngaét cuûa boä so saùnh vaø ngaét ghi vaøo boä nhôù
EEPROM.

Thanh ghi PIR2: ñòa chæ 0Dh, chöùa côø ngaét cuûa caùc khoái chöùc naêng ngoaïi
vi, caùc ngaét naøy ñöôïc cho pheùp bôûi caùc bit ñieàu khieån chöùa trong thanh ghi
PIE2

Thanh ghi PCON : ñòa chæ 8Eh, chöùa caùc côø hieäu cho bieát traïng thaùi caùc
cheá ñoä reset cuûa vi ñieàu khieån.

GVHD : TS. Nguyeãn Thieän Thaønh 16 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

2.3. Thanh ghi W(work) vaø taäp leänh cuûa PIC16F877A


2.3.1. Thanh ghi W
Ñaây laø thanh ghi raát ñaëc bieät trong PIC16F877A. Noù coù vai troø töông töï nhö
thanh ghi Accummulator cuûa 8051, tuy nhieân taàm aûnh höôûng cuûa noù roäng hôn
raát nhieàu.
Taäp leänh cuûa PIC16F877A coù taát caû 35 leänh thì soá leänh coù söï “goùp maët”
cuûa thanh ghi W laø 23 leänh. Haàu heát caùc leänh cuûa PIC16F877A ñeàu lieân quan
ñeán thanh ghi W. Ví duï nhö, trong PIC chuùng ta khoâng ñöôïc pheùp chuyeån tröïc
tieáp giaù trò cuûa moät thanh ghi naøy qua thanh ghi khaùc maø phaûi chuyeån thoâng
qua thanh ghi W.
Thanh ghi W coù 8 bit vaø khoâng xuaát hieän trong baát kyø bank thanh ghi naøo
cuûa boä nhôù döõ lieäu cuûa 16F877A. Moãi doøng leänh trong PIC16F877a ñöôïc moâ
taû trong 14 bit. Khi ta thöïc hieän moät leänh naøo ñoù, noù phaûi löu ñòa chæ cuûa
thanh ghi bò taùc ñoäng (chieám 8 bit) vaø giaù trò moät haèng soá k naøo ñoù (theâm 8
bit nöõa) laø 16 bit, vöôït quaù giôùi haïn 14 bit. Do vaäy ta khoâng theå naøo tieán
haønh moät pheùp tính toaøn tröïc tieáp naøo giöõa 2 thanh ghi vôùi nhau hoaëc giöõa
moät thanh ghi vôùi moät haèng soá k. Haàu heát caùc leänh cuûa PIC16F877A ñeàu
phaûi lieân quan ñeán thanh ghi W cuõng vì lyù do ñoù. Khi thöïc hieän moät doøng
leänh naøo ñoù, thì PIC seõ khoâng phaûi toán 8 bit ñeå löu ñòa chæ cuûa thanh ghi W
trong maõ leänh ( vì ñöôïc hieåu ngaàm). Coù theå xem thanh ghi W laø thanh ghi trung
gian trong quaù trình vieát chöông trình cho PIC16F877A.
2.3.2. Taäp leänh cuûa PIC16F877A
PIC16F877A coù taát caû 35 leänh vaø ñöôïc trình baøy khaù roõ trong datasheet. Em
seõ ñính keøm taäp leänh ôû phaàn cuoái cuøng cuûa baøi baùo caùo.
Trong chöông trình, em söû duïng ngoân ngöõ asembly ñeå vieát. Trình bieân dòch
laø Mplab ñöôïc Microchip cung caáp mieãn phí cho ngöôøi duøng.
2.4. Caùc vaán ñeà veà Timer

GVHD : TS. Nguyeãn Thieän Thaønh 17 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

PIC16F877A coù taát caû 3 timer : timer0 (8 bit), timer1 (16 bit) vaø timer2 (8 bit).

Timer0

Sô ñoà khoái cuûa Timer0


Cuõng gioáng nhö 8051, Timer0 cuûa 16F877A cuõng coù 2 chöùc naêng : ñònh thôøi
vaø ñeám xung. 2 chöùc naêng treân coù theå ñöôïc löïa choïn thoâng qua bit soá 5 TOCS
cuûa thanh ghi OPTION.
Ngoaøi ra, ta cuõng coù theå löïa choïn caïnh tích cöïc cuûa xung clock, caïnh taùc
ñoäng ngaét…thoâng qua thanh ghi treân.
Timer0 ñöôïc tích hôïp theâm boä tieàn ñònh 8 bit (prescaler), coù taùc duïng môû
roäng “dung löôïng” cuûa Timer0. Boä prescaler naøy coù theå ñöôïc ñieàu chænh bôûi
caùc 3 bit PS2:PS0 trong thanh ghi OPTION. Noù coù theå coù giaù trò 1:2, 1:4, 1:8,

GVHD : TS. Nguyeãn Thieän Thaønh 18 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

1:16, 1:32, 1:64, 1:128, 1:256 tuøy thuoäc vaøo vieäc thieát laäp caùc giaù trò 0 ,1 cho 3
bit treân.
Boä tieàn ñònh coù giaù trò 1:2 chaúng haïn ,coù nghóa laø : bình thöôøng khoâng söû
duïng boä tieàn ñònh cuûa Timer0 (ñoàng nghóa vôùi tieàn ñònh tæ leä 1:1) thì cöù khi
coù taùc ñoäng cuûa 1 xung clock thì timer0 seõ taêng theâm moät ñôn vò. Neáu söû
duïng boä tieàn ñònh 1:4 thì phaûi maát 4 xung clock thì timer0 môùi taêng theâm moät
ñôn vò. Voâ hình chung, giaù trò cuûa timer0 (8 bit) luùc naøy khoâng coøn laø 255 nöõa
maø laø 255*4=1020.
Caùc thanh ghi lieân quan ñeán Timer0 bao goàm :
- TMR0 : chöùa giaù trò ñeám cuûa Timer0
- INTCON : cho pheùp ngaét hoaït ñoäng
- OPTION_REG : ñieàu khieån prescaler
Timer1

Sô ñoà khoái cuûa Timer1

Timer1 laø boä ñònh thôøi 16 bit, giaù trò cuûa Timer1 seõ ñöôïc löu trong hai thanh
ghi 8 bit TMR1H:TMR1L. Côø ngaét cuûa Timer1 laø bit TMR1IF, bit ñieàu khieån cuûa
Timer1 laø TRM1IE.

GVHD : TS. Nguyeãn Thieän Thaønh 19 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Caëp thanh ghi cuûa TMR1 seõ taêng töø 0000h leân ñeán FFFFh roài sau ñoù traøn
veà 0000h. Neáu ngaét ñöôïc cho pheùp, noù seõ xaûy ra khi khi giaù trò cuûa TMR1
traøn töø FFFFh roài veà 0000h, luùc naøy TMR1IF seõ baät leân.
Timer1 coù 3 cheá ñoä hoaït ñoäng :
- Cheá ñoä hoaït ñoäng ñònh thôøi ñoàng boä : Cheá ñoä ñöôïc löïa choïn bôûi bit
TMR1CS. Trong cheá ñoä naøy xung caáp cho Timer1 laø Fosc/4, bit T1SYNC khoâng
coù taùc duïng.
- Cheá ñoä ñeám ñoàng boä : trong cheá ñoä naøy, giaù trò cuûa timer1 seõ taêng
khi coù xung caïnh leânh vaøo chaân T1OSI/RC1. Xung clock ngoaïi seõ ñöôïc ñoàng
boä vôùi xung clock noäi, hoaït ñoäng ñoàng boä ñöôïc thöïc hieän ngay sau boä tieàn
ñònh tæ leä xung (prescaler).
- Cheá ñoä ñeám baát ñoàng boä :cheá ñoä naøy xaûy ra khi bit T1SYNC ñöôïc
set. Boä ñònh thôøi seõ tieáp tuïc ñeám trong suoát quaù trình nguû cuûa vi ñieàu khieån
vaø coù khaû naêng taïo moät ngaét khi boä ñònh thôøi traøng vaø laøm cho Vi ñieàu
khieån thoaùt khoûi traïng thaùi nguû.
Timer2 : laø boä ñònh thôøi 8 bit bao goàm moät boä tieàn ñònh (prescaler), moät boä
haäu ñònh Postscaler vaø moät thanh ghi chu kyø vieát taét laø PR2. Vieäc keát hôïp
timer2 vôùi 2 boä ñònh tæ leä cho pheùp noù hoaït ñoäng nhö moät boä ñinh thôøi 16 bit.
Module timer2 cung caáp thôøi gian hoaït ñoäng cho cheá ñoä ñieàu bieán xung PWM
neáu module CCP ñöôïc choïn.

GVHD : TS. Nguyeãn Thieän Thaønh 20 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Sô ñoà khoái cuûa Timer2


II. Motor Driver L293D :
L293D laø IC duøng ñeå ñieàu khieån cuøng 1 luùc 2 ñoäng cô nhoû. Trong ñeà taøi
cuûa mình, em chæ duøng noù ñeå ñieàu khieån moät ñoäng cô.
Doøng giôùi haïn cuûa L293 laø 600mA.
Sô ñoà chaân cuûa L293

GVHD : TS. Nguyeãn Thieän Thaønh 21 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Sô ñoà hoaït ñoâng cuûa L293D

GVHD : TS. Nguyeãn Thieän Thaønh 22 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Baûng ñieàu khieån caùc chaân chöùc naêng cuûa L293D


ENABLE DIRA DIRB Function
High High low Quay phaûi
High low high Quay traùi

GVHD : TS. Nguyeãn Thieän Thaønh 23 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

High Low/high Low/high Döøng nhanh


Low Döøng chaäm

Trong ñoà aùn , em söû duïng 3 chaân cuûa PortC ñeå ñieàu khieån 3 chaân DIR1A,
DIR1B vaø EN1 vaø laøm quay ñoäng cô M1. Keát quaû thu ñöôïc khaù toát.
III. Caùc IC khaùc
IC74LS138
Em söû duïng IC naøy ñeå choïn led ñöôïc hieån thò. Ñaây laø IC coù chöùc naêng
phaân keânh, töø tín hieäu maõ hoùa ñaàu vaøo coù theå choïn ñöôïc moät trong 8 keânh
ñaàu ra khaùc nhau (chaân ñöôïc choïn tích cöïc möùc 0).
Sô ñoà chaân :

Sô ñoà nguyeân lyù:

GVHD : TS. Nguyeãn Thieän Thaønh 24 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

3 chaân A, B, C ñöôïc maõ hoùa ñeå choïn keânh ñaàu ra. Caùc chaân G2A, G2B (tích
cöïc thaáp) vaø G1 (tích cöïc cao) laø caùc chaân cho pheùp. Y0:Y7 laø caùc ngoõ ra.
Baûng chaân trò

IC74LS47: coù chöùc naêng chuyeån töø BCD sang maõ ñeå hieån thò ra led 7 ñoaïn.
Sô ñoà keát noái

GVHD : TS. Nguyeãn Thieän Thaønh 25 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Caùc chaân A3:A0 laø ñeå ñöa tín hieäu maõ BCD. Caùc chaân a,b,c,d,e,f,d laø tín
hieäu output maõ led 7 ñoaïn (tích cöïc möùc thaáp).
Baûng chaân trò

IV. Ñoái töôïng ñieàu khieån : Ñoäng cô DC


Ñaây caø ñoäng cô em söû duïng trong ñeà taøi :

GVHD : TS. Nguyeãn Thieän Thaønh 26 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Beân trong ñoäng cô coù gaén moät encoder ñoàng truïc vôùi noù duøng ñeå xaùc
ñònh toác ñoä vaø vò trí cuûa ñoäng cô.
Caùc thoâng soá cuûa ñoäng cô nhö sau:
+ Ñieän aùp DC caáp cho ñoäng cô : 24VDC
+ Toác ñoä toái ña 4000 voøng/phuùt
+ Soá xung cuûa encoder 108xung/voøng
+ Ñieän caûm L=102mH
Ñoäng cô coù taát caû 6 daây ra :
+ 2 daây cung caáp nguoàn 24 V cho ñoâng cô
+ 2 daây nguoàn 5V cung caáp aùp cho encoder
+ 1 daây tín hieäu keânh A vaø 1 daây keânh A buø ñöa xung encoder ra ngoaøi
Phöông phaùp ñieàu khieån : Thay ñoåi toác ñoä ñoäng cô baèng caùch thay ñoåi aùp
caáp vaøo cho ñoäng cô.
Nguyeân lyù hoaït ñoäng cuûa caûm bieán encoder : coù nhieàu loaïi encoder khaùc
nhau. Moãi loaïi laïi coù moät nguyeân lyù hoaït ñoäng khaùc nhau, trong khuoân khoå
baùo caùo ñoà aùn I em xin trình baøy phaàn nguyeân lyù loaïi encoder trong ñeà taøi
maø em söû duïng : incremental encoder.
Moâ hình thöù 1

Incremental encoder veà cô baûn laø moät ñóa troøn quay quanh moät truïc ñöôïc ñuïc
loã nhö hình treân.

GVHD : TS. Nguyeãn Thieän Thaønh 27 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

ÔÛ 2 beân maët cuûa caùi ñóa troøn ñoù, seõ coù moät boä thu phaùt quang. Trong
quaù trình encoder quay quanh truïc, neáu gaëp loã roáng thì aùnh saùng chieáu qua
ñöôïc, neáu gaëp maõnh chaén thì tia saùng khoâng chieáu quaù ñöôïc. Do ñoù tín hieäu
nhaän ñöôïc töø sensor quang laø moät chuoåi xung. Moãi encoder ñöôïc cheá taïo seõ
bieát saün soá xung treân moät voøng. Do ñoù ta coù theå duøng vi ñieàu khieån ñeám
soá xung ñoù trong moät ñôn vò thôøi gian vaø tính ra toác ñoä ñoäng cô.
Caùi encoder maø em söû duïng trong ñoà aùn cuûa mình, hoaøn toaøn gioáng vôùi
moâ hình ôû treân. Tuy nhieân, moâ hình treân coù nhöôïc ñieåm lôùn laø : ta khoâng
theå xaùc ñònh ñöôïc ñoäng cô quay traùi hay quay phaûi, vì coù quay theo chieàu naøo
ñi nöõa thì chæ coù moät daïng xung ñöa ra. Ngoaøi ra ñieåm baét ñaàu cuûa ñoäng cô, ta
cuõng khoâng theå naøo bieát ñöôïc.
Caûi tieán moâ hình 1 baèng moâ hình 2 nhö sau:
Moâ hình thöù 2

GVHD : TS. Nguyeãn Thieän Thaønh 28 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Trong moâ hình naøy, ngöôøi ta ñuïc taát caû laø 2 voøng loã. Voøng ngoaøi
cuøng gioáng nhö moâ hình 1, voøng giöõa pha so vôùi voøng ngoaøi laø 90 ñoä. Khi
ñoù, daïng xung ra töø 2 voøng treân nhö sau :

Hai xung ñöa ra töø 2 voøng leäch nhau 90 ñoä, neáu voøng ngoaøi nhanh pha hôn
voøng trong thì chaéc chaén ñoäng cô quay töø traùi sang phaûi vaø ngöôïc laïi.
Moät loã ôû voøng trong cuøng duøng ñeå phaùt hieän ñieåm baét ñaàu cuûa ñoäng
cô. Coù theå vieát chöông trình cho vi ñieàu khieån nhaän bieát : neáu coù moät xung
phaùt ra töø voøng trong cuøng naøy, töùc laø ñoäng cô ñaõ quay ñuùng moät voøng.

GVHD : TS. Nguyeãn Thieän Thaønh 29 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Vôùi nhöõng ñaëc tính treân, encoder duøng raát phoå bieán trong vieäc xaùc ñònh vò
trí goùc cuûa ñoäng cô…..
Vaán ñeà quan troïng trong vieäc tìm mua nhöõng loaïi ñoäng cô coù gaén encoder
nhö theá naøy ñeå laøm ñoà aùn ñoái vôùi sinh vieân laø : caëp maét quang 2 beân
encoder ñeå taïo xung thöôøng bò cheát vaø khoâng coù ñoà thay theá.
Moät loaïi encoder thöù 2 cuõng phoå bieán hieän nay, ñoù laø :absolute encoder.
Moâ hình ñóa quang cuûa loaïi naøy nhö sau:

Chöông III :
Nguyeân lyù hoaït ñoäng cuûa moät soá module trong maïch

I.Maïch nguoàn 5 V chuaån cung caáp cho vi ñieàu khieån vaø nguoàn 24 cung
caáp cho ñoäng cô.
1. Sô ñoà nguyeân lyù
J9
1
O U T_24 2
24V

Q 2 Q 2SA1302 Q 3 Q 2SA 1302 0


J8
O U T_12
D 10 D 13 1
D 9 2
12V
D 1 D 1N 4007 D 1N 4007
D 1N 4007
1

J6 B R ID G E 0
U 3 U 4 U 5 O U T_5
F1 R 7 LM 7824 R 6 LM 7812 LM 7805 J7
1 4 - + 2 1 2 1 2 1 2
2 V IN VO U T V IN VO U T V IN VO U T 1
FU SE 4 .7 -2 W 4 .7 -2 W 2
G N D
G N D

G N D

2 4 V A C /5 A 5V
C 10 C 9
C 11 C 12
0
3

D 8 D 12 2 2 0 0 u F /3 5 V
3

D 1N 4007 D 1N 4007 8 2 0 0 u F /5 0 V 2 2 0 0 u F /3 5 V 0 .1 u F
0 C 8 0
R 4 2 2 0 0 u F /3 5 V
560

Q 1 0 0 0 0 0 0
Q 2SA1015
R 5
0
R 3 100K
2 .2 K
O U T_24 O U T_12 O U T_5

D 3 0 R 9 R 10 R 11
2 .2 K 1k 470
LED

D 14 D 15 D 16
LED LED LED

GVHD : TS. Nguyeãn Thieän Thaønh 30 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

2. Giaûi thích nguyeân lyù hoaït ñoäng


Töø traùi sang :
- Duøng bieán aùp ñeå chuyeån töø nguoàn 220VAC sang 24VAC cung caáp vaøo
module maïch nguoàn treân.
- Caàu diode D1 BRIDGE duøng ñeå naén doøng xoay chieàu thaønh moät chieàu.
Khoái maïch goàm caùc linh kieän D14007 D8, D14007 D12, Q1 C1815, R3 2.2k, R5
100k, Led D3 duøng ñeå baùo hieäu coù nguoàn cung caáp ôû ñaàu vaøo.
- Caùc tuï trong maïch naøy ñeàu coù taùc duïng loïc nhieãu nguoàn vaøo , cuõng nhö
loïc nhieãu nguoàn ñaàu ra. Laøm cho nguoàn töông ñoái oån ñònh, khoâng bò aûnh
höôûng nhieàu bôûi taûi (taûi nhoû).
- Transitor coâng suaát Q2SA1302 duøng ñeå keùo doøng cho 2 nguoàn 24 V vaø
12V traùnh hieän töôïng suït aùp treân taûi do doøng yeáu.
- Caùc IC 7824, 7812, 7805 laø 3 IC oån aùp, laàn löôït oån aùp 24V, 12V vaø 5V ôû
ñaàu ra.
- 3 led D14, D15, D16 ñeå hieån thò coù aùp ôû ñaàu ra.
II. Khoái maïch reset vi ñieàu khieån PIC16F877A
1.Sô ñoà nguyeân lyù

GVHD : TS. Nguyeãn Thieän Thaønh 31 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

H I
10k

1 33
M C L R */V P P R B 0 /IN T 34
2 R B1 35
3 R A 0 /A N 0 R B2 36
4 R A 1 /A N 1 R B 3 /P G M 37
5 R A 2 /A N 2 /V R E F -/C V R E F R B4 38
6 R A 3 /A N 3 /V R E F + R B5 39
7 R A 4 /T 0 C K I/C 1 O U T R B 6 /P G C 40
R A 5 /A N 4 /S S * /C 2 O U T R B 7 /P G D
15
0 16 R C 0 /T 1 O S O /T 1 C K I 19
17 R C 1 /T 1 O S I/C C P 2 R D 0 /P S P 0 20
18 R C 2 /C C P 1 R D 1 /P S P 1 21
23 R C 3 /S C K /S C L R D 2 /P S P 2 22
24 R C 4 /S D I/S D A R D 3 /P S P 3 27
25 R C 5 /S D O R D 4 /P S P 4 28
26 R C 6 /T X/C K R D 5 /P S P 5 29
R C 7 /R X/D T R D 6 /P S P 6 30
13 R D 7 /P S P 7
O S C 1 /C L K IN 8
R E 0 /R D * /A N 5 9
R E 1 /W R * /A N 6 10
14 R E 2 /C S * /A N 7
O S C 2 /C L K O U T
12 11
31 VSS P IC 1 6 F 8 7 7 A VD D 32
VSS VD D

2. Giải thích
Vi ñieàu khieån 16F877A hoaït ñoäng khi chaân soá 1 MCLR ôû möùc 1 vaø bò reset khi
bò clear veà möùc 0.
Vôùi maïch reset ôû treân, bình thöôøng phím nhaán hôû ra, chaân reset möùc 1 , vi ñieàu
khieån hoaït ñoäng. Khi nhaán phím xuoáng, chaân 1 chaïm ñaát bò clear veà 0, vi ñieàu
khieån ñöôïc reset trôû laïi traïng thaùi ban ñaàu. ( thanh ghi PC troû ñòa chæ 0000h trong
boä nhôù chöông trình).

III. Khoái maïch queùt phím


1.Sô ñoà nguyeân lyù

GVHD : TS. Nguyeãn Thieän Thaønh 32 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

H I
10k

H I
1 3 3
M C L R * /V P P R B 0 /IN T 3 4
2 R B1 3 5
3 R A 0 /A N 0 R B2 3 6
4 R A 1 /A N 1 R B 3 /P G M 3 7
5 R A 2 /A N 2 /V R E F -/C V R E F R B4 3 8 10k 10k 10k 10k
6 R A 3 /A N 3 /V R E F + R B5 3 9
7 R A 4 /T 0 C K I/C 1 O U T R B 6 /P G C 4 0
R A 5 /A N 4 /S S * /C 2 O U T R B 7 /P G D
15
0 16 R C 0 /T 1 O S O /T 1 C K I 1 9
17 R C 1 /T 1 O S I/C C P 2 R D 0 /P S P 0 2 0
18 R C 2 /C C P 1 R D 1 /P S P 1 2 1
23 R C 3 /S C K /S C L R D 2 /P S P 2 2 2 HANG 3
24 R C 4 /S D I/S D A R D 3 /P S P 3 2 7
25 R C 5 /S D O R D 4 /P S P 4 2 8
26 R C 6 /T X /C K R D 5 /P S P 5 2 9
C 5 30p R C 7 /R X /D T R D 6 /P S P 6 3 0 HANG 2
13 R D 7 /P S P 7
O S C 1 /C L K IN 8
4Mhz R E 0 /R D * /A N 5 9
R E 1 /W R */A N 6 10 HANG 1
14 R E 2 /C S * /A N 7
O S C 2 /C L K O U T
12 11
VSS VD D
H I
C 6 30p 31 P IC 1 6 F 8 7 7 A 32
0 VSS VD D
H I

HANG 0

2. Giaûi thích keát noái


Söû duïng PORTD cuûa vi ñieàu khieån ñeå thöïc hieån queùt phím. Caùc chaân 6,5,4
keát noái thaønh 3 coät (colums), caùc chaân 3,2,1,0 keát noái thaønh 4 haøng (rows),
chaân 7 boû troáng.
Thieát laäp caùc chaân rows laø chaân input, chaân cols laø chaân output. Keùo caùc
ñieän trôû leân nguoàn ôû rows ñeå xaùc ñònh ñuùng möùc logic beân ngoaøi ñöa vaøo vi
ñieàu khieån.
3. Giaûi thuaät queùt phím
b1: Kieåm tra coù keït phím naøo khoâng. Neáu khoâng bò keït phím thì qua böôùc 2.
b2: Tieán haønh queùt phím, xem thöû phím naøo nhaán, laáy maõ phím ñoù veà löu
trong bieán key.
b3: Moãi giaù trò bieán key ñaïi dieän cho moät phím treân baøn phím. ÖÙng vôùi moãi
bieán key, ta ñaët ra moät phím hieån thò treân led mong muoán.
b4: Tra baûng ñeå ñoåi giaù trò bieán key sang maõ BCD chuaån bò ñöa vaøo 7447 ñeå
ñoåi dang maõ led 7 ñoaïn.
b5 : Laëp laïi böôùc 1 ñeå nhaán ñuùng phím tieáp theo.

GVHD : TS. Nguyeãn Thieän Thaønh 33 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

IV. Giaûi thuaät ñieàu khieån ON_OFF ñoäng cô DC


1.Sô ñoà nguyeân lyù

Encoder :108 xung, 4000vong/phut

.A -
N D
cc

H I
.A
G
C
C
V
Encoder

1
2
3
4
H I
10k
Nguon 24V

+
-
0
1 3 3
M C L R * /V P P R B 0 /IN T 3 4
2 R B1 3 5
3 R A 0 /A N 0 R B2 3 6
4 R A 1 /A N 1 R B 3 /P G M 3 7
5 R A 2 /A N 2 /V R E F -/C V R E F R B4 3 8
13
12

6 R A 3 /A N 3 /V R E F + R B5 3 9
5
4

8 7 R A 4 /T 0 C K I/C 1 O U T R B 6 /P G C 4 0
VC C 2 R A 5 /A N 4 /S S * /C 2 O U T R B 7 /P G D
D
D
D
D

16
N
N

VC C 1
N
N

H I
1 5
G
G
G
G

9 0 1 6 R C 0 /T 1 O S O /T 1 C K I 1 9
3 /4 E N 1 1 7 R C 1 /T 1 O S I/C C P 2 R D 0 /P S P 0 2 0
1 /2 E N 1 8 R C 2 /C C P 1 R D 1 /P S P 1 2 1
14 15 2 3 R C 3 /S C K /S C L R D 2 /P S P 2 2 2
2

-
M G 1 11 4 Y 4 A 10 2 4 R C 4 /S D I/S D A R D 3 /P S P 3 2 7
6 3 Y 3 A 7 2 5 R C 5 /S D O R D 4 /P S P 4 2 8
A 3 2 Y 2 A 2 2 6 R C 6 /T X /C K R D 5 /P S P 5 2 9
1 Y 1 A C 5 30p R C 7 /R X/D T R D 6 /P S P 6 3 0
13 R D 7 /P S P 7
+ U 14 O S C 1 /C L K IN 8
4M hz R E 0 /R D * /A N 5 9
L293 R E 1 /W R */A N 6 10
R E 2 /C S * /A N 7
1

14
O S C 2 /C L K O U T
0 12 11
C 6 30p 31 VSS P IC 1 6 F 8 7 7 A VD D 32
VSS VD D

Noái 2 chaân 3 vaø 6 cuûa L293D vaøo 2 daây nguoàn cuûa ñoäng cô. Söû duïng 2 bit
RC6 vaø RC7 cuûa PORTC vi ñieàu khieån noái vaøo 2 chaân 2 vaø 7 cuûa L293D ñeå
ñieàu khieån chieàu quay. Bit RC5 laø bit cho pheùp ñoäng cô hoaït ñoäng. Chaân RA4
ñöôïc ñònh ôû cheá ñoä input ñeå nhaän xung töø encoder truyeàn veà.
2. Giaûi thuaät ñieàu khieån
b1: Ñaët 2 bit RC6 vaø RC7 laø 0, 1 hoaëc ngöôïc laïi ñeå xaùc ñònh chieàu quay
cuûa ñoäng cô. Baät bit RC5 leân 1 cho pheùp ñoäng cô quay.
b2: Duøng Timer1 ñònh thôøi gian 1ms, Timer0 ôû cheá ñoä ñeám xung töø encoder.
Cöù sau moãi 1ms ( thôøi gian laáy maãu) ngaét timer1 xaûy ra, trong chöông trình phuïc
vuï ngaét cuûa timer1, tieán haønh ñoïc xung cuûa encoder chöùa trong thanh ghi TMR0
cuûa timer0.
b3 : Töø soá xung cuûa Timer0 trong 1ms, ta tính toaùn ñöôïc toác ñoä hieän taïi cuûa
ñoäng cô.

GVHD : TS. Nguyeãn Thieän Thaønh 34 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

b4 : Thöïc hieän pheùp tröø giöõa toác ñoä ñaët vaø toác ñoä ño ñöôïc. Neáu hieäu soá
lôùn hôn 0 ( khoâng coù nhôù) thì cho ñoäng cô tieáp tuïc chaïy, neáu hieäu soá nhoû hôn
0 (côø nhôù leân 1) thì tieán haønh taét ñoäng cô baèng caùch cho bit EN=0.
b5: Cöù sau 1s thì hieän toác ñoä cuûa ñoäng cô ra led 7 ñoaïn moät laàn.
b6: Laëp laïi lieân tuïc quaù trình treân, ta coù toác ñoä ño dao ñoäng xung quanh toác
ñoä ñaët.

Chöông IV
Chöông trình vieát baèng Assembly ñieàu khieån ON_OFF ñoäng cô DC

Phaàn chöông trình seõ ñöôïc em trình baøy trong buoåi baûo veä ñoà aùn moân hoïc.
Caùc phaàn ñaùnh giaù chaát löôïng ñieàu khieån , nhaän xeùt v.v… seõ ñöôïc em trình
baøy trong baøi baùo caùo chính thöùc vaø trong buoåi baûo veä ñoà aùn moân hoïc.

GVHD : TS. Nguyeãn Thieän Thaønh 35 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Phuï luïc:
Taäp leänh PIC16F877A

GVHD : TS. Nguyeãn Thieän Thaønh 36 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

GVHD : TS. Nguyeãn Thieän Thaønh 37 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

GVHD : TS. Nguyeãn Thieän Thaønh 38 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

GVHD : TS. Nguyeãn Thieän Thaønh 39 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Taøi lieäu tham khaûo


1. Hoà Trung Myõ. Vi xöû lyù. Nhaø xuaát baûn ñaïi hoïc Quoác Gia

GVHD : TS. Nguyeãn Thieän Thaønh 40 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

2. Microchip. Datasheet 16F877A


3. Tröông Sa Sanh (chuû bieân). Kyõ Thuaät ñieän Ñaïi Cöông. Nhaø xuaát baûn ñaïi
hoïc Quoác Gia
4. Nguyeãn Thò Phöông Haø. Lyù Thuyeát ñieàu khieån Töï Ñoäng. Nhaø xuaát baûn
ñaïi hoïc quoác gia.
5. Caùc taøi lieäu töø internet, töø dieãn ñaøn www.picvietnam.com vaø caùc luaän
vaên cuûa caùc anh chò khoùa treân.

GVHD : TS. Nguyeãn Thieän Thaønh 41 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

Muïc luïc

Ñeà muïc trang


Lôøi caûm
ôn……………………………………………………………………………………………
…………………………………….. 1
Chöông I : Giôùi thieäu veà ñeà
taøi…………………………………………………………………………… …………..
2
I. Toùm taét ñeà taøi ñoà aùn moân hoïc I
……………………………………………………………………. 2
1. Giôùi thieäu caùc module maïch cuûa ñeà
taøi……………………………………….. 2
2. Sô ñoà nguyeân lyù keát noái caùc module trong maïch
…………………… 3
3. Caùch vaän haønh maïch
…………………………………………………………………………….. 3
II. Caùc yeâu caàu cuûa ñeà taøi
………………………………………………………………………… …………. 4
Chöông II : Giôùi thieäu veà caùc linh kieän, phaàn töû söû duïng trong
maïch……………. 5
I. Vi ñieàu khieån PIC16F877A
………………………………………………………………………………. 5
1. Khaùi quaùt veà vi ñieàu khieån
PIC16F877A………………………………………. 5
1.1. Sô ñoà chaân vaø sô ñoà nguyeân lyù cuûa
PIC16F877A……………… 5
1.2. Nhaän xeùt
…………………………………………………………………………………………….
6
1.3. Khaùi quaùt veà chöùc naêng cuûa caùc port trong vi ñieàu
khieån
PIC16F877A…………………………………………………………………
…………………………………. 7
1.4. Taïi sao söû duïng PIC16F877A
………………………………………………….. 8

GVHD : TS. Nguyeãn Thieän Thaønh 42 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

2. Tìm hieåu veà vi ñieàu khieån PIC16F877A


………………………………………... 10
2.1. Caáu truùc phaàn cöùng cuûa
PIC16F877A………………………………….. 10
2.2. Toå chöùc boä nhôù
PIC16F877a……………………………………………………… 13
2.2.1.Boä nhôù chöông
trình…………………………………………………………….. 13
2.2.2. Boä nhôù döõ lieäu
………………………………………………………………………. 14
2.2.3. Moät vaøi thanh ghi chöùc naêng ñaëc bieät
SFR……………… 16
2.3. Thanh ghi W(work) vaø taäp leänh cuûa PIC16F877A………….
18
2.3.1. Thanh ghi
W…………………………………………………………………………..
18
2.3.2. Taäp leänh cuûa
PIC16F877A……………………………………………… 18
2.4. Caùc vaán ñeà veà Timer
…………………………………………………………………. 18
II. Motor Driver L293D
………………………………………………………………………………………… 22
III. Caùc IC khaùc
………………………………………………………………………………………………
………… 24
IV. Ñoái töôïng ñieàu khieån : Ñoäng cô DC
………………………………………………………….. 27
Chöông III :Nguyeân lyù hoaït ñoäng cuûa moät soá module trong maïch
…………… …… 31
I.Maïch nguoàn 5 V chuaån cung caáp cho vi ñieàu khieån vaø nguoàn 24
cung caáp cho ñoäng
cô……………………………………………………………………………………………
……………… 31
II. Khoái maïch reset vi ñieàu khieån
PIC16F877A………………………………………….. 32
III. Khoái maïch queùt
phím………………………………………………………………………………………
… 33
IV. Giaûi thuaät ñieàu khieån ON_OFF ñoäng cô
DC…………………………………….. …… 34
Chöông IV:Chöông trình vieát baèng Assembly ñieàu khieån ON_OFF

GVHD : TS. Nguyeãn Thieän Thaønh 43 SVTH: Nguyeãn Uy Danh


Baùo caùo ñoà aùn moân hoïc I

ñoäng cô
DC…………………………………………………………………………………………
……………………………………… 36
Phuï luïc: Taäp leänh
PIC16F877A………………………………………………………………………………
………… 37

GVHD : TS. Nguyeãn Thieän Thaønh 44 SVTH: Nguyeãn Uy Danh

You might also like