Professional Documents
Culture Documents
1805 Baocaodamh1
1805 Baocaodamh1
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
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ù.
Chöông II :
Giôùi thieäu veà caùc linh kieän, phaàn töû söû duïng trong maïch
1.3. Khaùi quaùt veà chöùc naêng cuûa caùc port trong vi ñieàu khieån
PIC16F877A
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.
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 :
- 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ø
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öï
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.
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.
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.
PIC16F877A coù taát caû 3 timer : timer0 (8 bit), timer1 (16 bit) vaø timer2 (8 bit).
Timer0
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
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.
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.
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 :
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
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ò
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.
ÔÛ 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
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.
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
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
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).
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
.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ô.
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.
Phuï luïc:
Taäp leänh PIC16F877A
Muïc luïc
ñoäng cô
DC…………………………………………………………………………………………
……………………………………… 36
Phuï luïc: Taäp leänh
PIC16F877A………………………………………………………………………………
………… 37