Điều khiển ON_OFF tốc độ động cơ DC

Chương I : Giới thiệu về đề tài I.Tóm tắt đề tài đồ án môn học I 1. Giới thiệu các module mạch của đề tài Đề tài đồ án môn học I của em là : “ Điều khiển ON_OFF tốc độ động cơ DC”. Với yêu cầu đề tài như trên, hướng thực hiện đề tài của em được tóm tắt như sau: - Sử dụng vi điều khiển PIC16F877A làm chip điều khiển trung tâm. - Xây dựng bàn phím gồm 13 phím. Trong đó: +1 phím để đồng thời reset vi điều khiển và dừng động cơ DC + 10 phím ứng với 10 số từ 0 đến 9 để người dùng nhập tốc độ đặt + 1 phím ra lệnh động cơ quay thuận (FORWARD) + 1 phím ra lệnh động cơ quay ngược (REVERSE) - Sử dụng 8 led 7 đoạn. Trong đó + 4 led dùng để người dùng nhập tốc độ đặt mong muốn + 4 led để người dùng quan sát tốc độ đo trực tiếp từ động cơ - Sử dụng driver cầu H L293D trực tiếp điều khiển chiều quay, đóng ngắt động cơ DC - Đối tượng điều khiển là động cơ DC có gắn encoder đồng trục. - Ngoài ra, trên mạch còn có các linh kiện khác để thực hiện truyền tín hiệu giữa vi điều khiển trung tâm với các thiết bị hiển thị nói trên. Tất cả các module mạch trên sẽ được em trình bày rõ trong các phần tiếp theo của đề tài. Mục lục Đề mục trang Lời cảm ơn 1 Chương I : Giới thiệu về đề tài 2 I. Tóm tắt đề tài đồ án môn học I . 2 1. Giới thiệu các module mạch của đề tài 2 2. Sơ đồ nguyên lý kết nối các module trong mạch 3 3. Cách vận hành mạch 3 II. Các yêu cầu của đề tài . 4 Chương II : Giới thiệu về các linh kiện, phần tử sử dụng trong mạch . 5 I. Vi điều khiển PIC16F877A . 5 1. Khái quát về vi điều khiển PIC16F877A . 5 1.1. Sơ đồ chân và sơ đồ nguyên lý của PIC16F877A 5 1.2. Nhận xét . 6 1.3. Khái quát về chức năng của các port trong vi điều khiển PIC16F877A . 7 1.4. Tại sao sử dụng PIC16F877A 8 2. Tìm hiểu về vi điều khiển PIC16F877A . 10 2.1. Cấu trúc phần cứng của PIC16F877A 10 2.2. Tổ chức bộ nhớ PIC16F877a 13 2.2.1.Bộ nhớ chương trình 13 2.2.2. Bộ nhớ dữ liệu . 14 2.2.3. Một vài thanh ghi chức năng đặc biệt SFR 16 2.3. Thanh ghi W(work) và tập lệnh của PIC16F877A . 18 2.3.1. Thanh ghi W 18 2.3.2. Tập lệnh của PIC16F877A 18 2.4. Các vấn đề về Timer . 18 II. Motor Driver L293D 22 III. Các IC khác 24 IV. Đối tượng điều khiển : Động cơ DC 27 Chương III :Nguyên lý hoạt động của một số module trong mạch 31 I.Mạch nguồn 5 V chuẩn cung cấp cho vi điều khiển và nguồn 24 cung cấp cho động cơ 31 II. Khối mạch reset vi điều khiển PIC16F877A 32 III. Khối mạch quét phím 33 IV. Giải thuật điều khiển ON_OFF động cơ DC 34 Chương IV:Chương trình viết bằng Assembly điều khiển ON_OFF động cơ DC 36 Phụ lục: Tập lệnh PIC16F877A 37

doc43 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3454 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Điều khiển ON_OFF tốc độ động cơ DC, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 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 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ä 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 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ô. 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…. 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 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. Ñaùnh giaù veà sai soá ,chaát löôïng heä thoáng ñieàu khieån 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 : 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ù 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 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öï 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 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 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. 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 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. 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 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, 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. 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. 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 Sô ñoà hoaït ñoâng cuûa L293D 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 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ù: 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ò 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 : 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ù 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ù 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ù 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. IV. Giaûi thuaät ñieàu khieån ON_OFF ñoäng cô DC 1.Sô ñoà nguyeân lyù 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 Taøi lieäu tham khaûo Hoà Trung Myõ. Vi xöû lyù. Nhaø xuaát baûn ñaïi hoïc Quoác Gia Microchip. Datasheet 16F877A 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 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. 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. 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 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 ñoäng cô DC………………………………………………………………………………………………………………………………… 36 Phuï luïc: Taäp leänh PIC16F877A………………………………………………………………………………………… 37

Các file đính kèm theo tài liệu này:

  • docĐiều khiển ON_OFF tốc độ động cơ DC.doc
Luận văn liên quan