Tổng quan về vi điều khiển PIC
BàiviếtnàyviếtchoIRF. Grenoble,12/05/2005 Falleaf@irfvn.com Chàocácbạn, Cóthểnói,hiệnnayviđiềukhiểnđãrấtphổbiếnởViệtNam,vàđượcứng dụngrấtnhiều.NhữngsinhviênngànhĐiện,ĐiệnTử,CơĐiện Tử,TinHọc, ViễnThông hầunhưaicũngbiếtcáchđểlàmviệcvớiviđiềukhiển.Tuy nhiên,đểviếtmộtbàiviếttổngquátvềviđiềukhiểnvàviệclậptrình chovi điềukhiển,quảthậtlàquákhókhănđốivớitôi. Dovậy,tôiđặtngayvấnđềlàbàiviếtnàysẽhướngvàonhữngbạnsinhviên mớibắtđầutiếpcận vớiviđiềukhiển.Bàiviếtsẽđượcchiathành3nộidung chính.Nộidungthứnhất,tôitrìnhbàykháiquátvềviđiềukhiển.Nộidung nàyđượcđềcậptrongrấtnhi ềutàiliệ u,vàdườngnhưlàvấnđềcơbản,do vậy,tôichỉtrìnhbàynhữngýkiếncánhâncủatôisaochothậtphùhợpvới cácbạnsinhviênmớitiếpcậnvớivi điềukhiển.Nộidungthứhai,tôitrình bàyvềcáchtiếpcậnmộthọviđiềukhiển,haycụthểhơnlàcácbạncầngìđể bắtđầuhọcviđiềukhiển.Nội dungcuốicùng,tôisẽliệtkêcácbướchọcvi điềukhiểnmộtcáchtươngđốirõràng,màcánhântôichorằngnóhữuích cho các bạn. Bởi vì những bước này tôi cũng tham khảoởmột số tài liệu hướngdẫn,vàkhihọcthìtôicũngphảilầnmòvàđitheoconđườngđó. 1)Viđiềukhiển Trongrấtnhiềutàiliệucơbảnđềuđềcậpđếnkháiniệmviđiềukhiểnlàgì. Dovậy,tôilướtquacáckháiniệmcơbảnnày.Tôichỉđềcậpđếncáckhái niệm,mà cácbạncầnquantâmkhibắtđầuhọc,hoặclựachọnmộtviđiều khiểnchomộtứngdụngnàođócủacácbạn.Từnhữngkháiniệmtôiđềcập, cácbạ ncóthểthamkhảotừcáctàiliệuchitiếthơn,vàrồicácbạnsẽnắm đượctoànbộnhữngvấnđềcơbảncủamộthọviđiềukhiểnnàođó. a)Kiếntrúcviđiềukhiển Thựcraviđiềukhiểncũnglàmộtcấutrúcsiêunhỏ,gồmcáclinhkiệnđiểntử ởkíchthướcmicrohoặcnano,cáclinhkiệnnàyđượckếthợpvớinhauvà đượcnốivớicácthiếtbịbênngoàiquacácchânviđiềukhiển.Chínhvìvậy, hiểurõđượckiếntrúcviđiềukhiển,cácbạnsẽhiểurõđượcmìnhđanglàm việcvớicái gì,vàcáiđólàmviệcnhưthếnào. Kiếntrúcmáy tínhhaykiếntrúcviđiềukhiểncũngtươngtựnhau.Dođó, cácbạncóthểtìmhiểuvềkiếntrúcmáytính,đểhiểurõvềki ếntrúcviđiều khiển. Hai kiến trúc viđiều khiển phổ biến hiện nay, là kiến trúc Von NeumannvàkiếntrúcHarvard.Sựkhácbiệtchủyếugiữahaikiếntrúcnày, chínhlàviệ ctổchứcbộnhớdữliệuvàbộnhớchươngtrình.KiếntrúcVon Neumanntổchứcbộnhớdữliệuvàbộnhớchươngtrìnhchungvớinhau, chính vì vậy,đường truyền (bus) của kiến trúc Von Ne umann làđường truyềnchung.Trongkhiđó,kiếntrúcHarvardtá chrờibộnhớdữliệuvàbộ nhớchươngtrình. Mỗi kiến trúc này có m ột lợiđiểm riêng rẽ khác nhau. Kiến trúc Von Neumann tậndụngđượctàinguyênbộnhớ,trongkhiđókiếntrúcHarvard sẽđạttốcđộxửlýcaohơn,mặtkhácđườngtruyềndữliệuvàđườngtruyền lệnhđiềukhiển(chươngtrình)cóthể códunglượngkhácnhau. b)Tậplệnh Tậplệnhởđâyđượccoilàtậpmãlệnhnhịphân,vàchúngtachưanênvộiđề cậpđếnngônngữlậptrình.Bảnchấtcủatậplệnhlàmộttậphợpcácmã nhị phân,màtừđócácđơnvịxửlýtrungtâm(CPU)nhậnbiếtvàthựchiện.Dữ liệuđượcCPUxửlýlàcácsốnhịphân.Chínhvìvậy,tậplệnhdùthếnàođi nữacũng sẽthựchiệnmấyviệcchínhsauđây: ‐tínhtoáncácconsốnhịphân. ‐cáclệnhđểchuyểncácgiátrịrathànhtínhiệuđiệntửởchânlinhkiện ‐cáclệnhdichuyểncácgiátrịgi ữacácthanhghi ‐cáclệnhđiềukhiểncontrỏchươngtrình Nhữngđiềunàytưởngchừngđơngiản,nhưngthiếtnghĩnósẽgiúpíchcho cácbạnkhihọcvàhiểumộttậplệnh,cácbạncóthểphânloạichúngđúng cách. Tậpl ệnhhiệnnayđượcphânlàmhailoại,tậplệnhRISCvàtậplệnhCISC. Cácbạncóthểtìmhiểusâuhơnquacácbàiviếttrêncácdiễnđànđiệntử,tin học,hoặ cnhữngtàiliệutinhọckhác. Nhưvậy,từkiếnthứcnày,nhữngkhókhănmàrấtnhiềungườigặpphảikhi thựchiệnlệnhtácđộnglênnhữngthanhghilệnh (vìnócũngchỉlàdãysốnhị phân)sẽđượcgiảmbớtđikhánhiều. c)Chứcnăng Câu hỏi lớn nhấtđặt ra khi cầm một con viđiều khiển trên tay, chính là chúngtasẽlàm gìvớinó?Hiệnnayrấtnhiềuloạiviđiềukhiểnrađời,vàrấ t nhiềutínhnăngđượctíchhợpvàotrongviđiềukhiểndướidạngphầncứng. Tuynhiên,tựuchunglạithìmọiviệccũngđềunằmởviệcđiềukhiểnđộng cơvà đọccảmbiến.Mộtcánhcửatựđộnglàmộtcáicảmbiếnhồngngoạivà mộtcáiđộngcơ.Đạiđasốnhữnggìtựđộngđềucódínhđếnđộngcơtrong đó,vìnếu khôngcóđộngcơthìlàmsaonóbiếnđổiđiệnnăngthànhcơnăng được?Màcáigìcóđithìcũngcólại,đãcóđộngcơlàmviệc,thìphảicócảm biếnđểquansát. Cáilý luậnnàysâucũngkhôngsâu,mànôngcũngkhôngnông,nhưngnólại làcơsởđểnhữngnhàsảnxuấttungracácsảnphẩmviđiềukhiểncủamình. Vàcũngtừđó,các bạncũngdễphânloạiđểlựachọnviđiềukhiểnchomình dùng.Ngoạitrừhailoạinày,thìnhữngloạikhácchúngtacứxemlàloạithứ ba. Chúngtacầnnhómloạiđểlàmgì? Bởivìtínhnăngcủaviđiềukhiển,cóliên quantrựctiếpđếnsốchâncủaviđiềukhiển.Chonênviệcphânloạivàhình dungramộtbảnđồđầyđủcácloại,các chứcnăngcủaviđiềukhiển,sẽgiúp cácbạnlựachọnviđiềukhiểntốthơn.Mộtngườimớihọc,đểcómộttầm nhìnrộngvềviđiềukhiển màlựachọncũngthậtlàkhó,nhưngnếutìmtòi, hiểuvàphânloạiđượcmộtsốloạiviđiềukhiển,tựnhiênsẽhiểurõđượccái bảnđồtươngđốiphứctạpnày. Làmthếnàođểbiết?Đơngiảnthôi,trongtấtcảcácdatasheetđượ ccungcấp chotừngloạiviđiềukhiển,đềucómôtảrõtínhnăngcủatừngloại.Cácbạn tựmìnhtìmhiểuvàphânloạimộtsốviđiềukhiểnthôngdụng (màcácbạn cóthểmua)rồitựđánhgiáchúngvềmặttínhnăngquacácdatasheet.Vàđể đọchiểuđượccáctínhnăngnày,thìcácbạnphảicómộtkiếnthứcnền,vd nhưtimerlà gì?pwmlà gì?capturelà gì?i2clàgì?usartlàgì?giaotiếpCAN là gì? Những cáiđó, bạn không cần học từ nhiều con viđiều khiển, vì nhữngtínhnăngđóhoàntoàngiống nhau,chỉcócáchđểlàmchonóhoạt độnglàkhácnhauthôi.Vậy nên,cácbạncứlấymộtdatasheetcủamộtconvi điềukhiểnbấtkỳnàođó,đọcvàcốgắnghiểumục đích củacáctínhnăngđó, vàchúngtacóthểdùngkiếnthứcnàychobấtkỳconviđiềukhiểnnàokhác. 2)Tiếpcậnvớiviđiềukhiển Vềmặtkhoahọcmànói,chúngtacóhaihướngtiếpcậnchínhvớimộtđối tượng, một là nghiên cứuđểphát triểnđối tượngđó, hai là sử dụngđối tượngđó.Đốiv ớiviđiềukhiển,ởthờiđiểmhiệntạinăm2005,tôikhuyên rằngchúngtakhôngnênnghiêncứuđểpháttriểnviđiềukhiển,mànênhọc đểsửdụngnó. Vậychúngtacần nhữnggìđểtiếpcậnvàhọcviđiềukhiển? Trướctiên,nênhiểuquátrìnhthaotáctừđầuđếncuốiđểchomộtconviđiều khiểnbấtkỳhoạtđộngđólà: a)Chúng tacầnlàmcáigì? Khiđặtcâuhỏinày,chúngtanghĩngayđếntínhnăng,sốchân,vàkíchthước cầnthiếtcủaviđiềukhiển.Vàchúngtaphảilựachọnđượcconviđiềukhiển chúngtacầ ndùng,tấtnhiênkèmtheongaysauđólàchúngtacóthểmua đượcnónữa. Tôinóirằngchúngtaphảibiếtrằngchúngtacóthểmuađượcnó,chứđừng đimuanóvội,màhãyxemnhữngvấnđềtiếptheo. b)Lậptrình Tấtnhiêncôngviệccủa bạnlàcông việclập trình,đểlàmcho conviđiều khiểnđóhoạtđộngtheoýbạnmuốntronggiớihạncáctínhnăngcủanó.Ở đâycó mộtđiểmrấtvuiđólànếubạnxétlạitừthưởʺkhaisinhlậpđịaʺcủa conviđiềukhiển,chứcnăngvàtậplệnhcủanóthậtđơngiản,nhưngnh ững côngviệcnhưbâygiờnóvẫnhoàntoànlàmđược.Đólàvisao?Làvìbản chấtcủanóvẫnchỉlàthaotácvớinhữngconsốnhịphân.Dovậy,nếumột conviđ iềukhiểnkhông hỗtrợmộttínhnăngnàođó,thìchúngtacũngđều cóthểthựchiệntínhnăngđóbằngphầnmềmvàmộtvàiphầncứnghỗtrợ bênngoài. Nhưng tạmd ừngchuyệnđólại,cácbạnmuốnconviđiềukhiểnhiểuđược nhữngchữlàchữmàcácbạnsẽdùngđểlậptrình,thìcácbạnphảibiếnđổi cácchữđóthànhra cácconsốnhịphân,thểhiệndướidạngfile.HEX Muốnlàmđượcđiềunày,cácbạncầncómộtchươngtrìnhdịch. Việcsauđólàbạnphảibiếtngônngữlập trìnhnàođó,thôngthườngkhimới bắtđầu,ngườitadùngASM c)Nạpchươngtrình Bạnviếtchươngtrìnhtrênmáytính,bạnđãdịchrađượcfileHEXđểviđiều khiểnkhinhậnđượccóthểhiểuđượcbạnmuốnlàmgì.Vậylàmsaođểđưa nộidungđóvàocho viđiềukhiển? Cácbạncầncómộtmạchnạpvàmộtchươngtrìnhnạpphùhợpvớimạch nạpđó. Côngviệc nạpđượccụthểhoábằng việccắm mạchnạpvào máy tính,bậtchươngtrìnhnạp,loadfile.HEXvàochươngtrìnhnạp,lựachọnvi điềukhiểncầnnạp,càiđặtcácthôngsốnạp,nhấnnútProgramtrênchương trìnhnạp.Saukhinạpxong,chươngtrìnhnạpnàocũngthôngbáokếtquả nạpđượchaykhôngnạpđược.Nếukhôngcógìsai,nhấnOKlàxong. d)Mạchchạyviđiềukhiển Một mạch chạy viđiều khiểntốithiểu cần có nguồn cấpđiện cho viđiều khiểnhoạtđộng.Nguồnnàyphảicấpđiệnáptừ2.5Vđến5.5Vvàdòngt ừ 150mAđến300mAtuỳtheomỗiloạiviđiềukhiển.Nguồnnàychỉcungcấp choviđiềukhiểnhoạtđộng,khôngcungcấpchocácthiếtbịngoạivi.Mạch resetđểresethoạtđộngcủ aviđiềukhiển.Mạchdaođộng(cóhoặckhôngcó) cóthểđượctíchhợpsẵntrongviđiềukhiển,chếđộnàygọilàdaođộngnội. Nếukhôngcómạchdaođộngnội,phảidùng thạchanhđểtạođaođộngcho viđiềukhiển.Thạchanhthường dùngtừ 38KHzchođến40MHztuỳtheo từngloạiviđiềukhiển. Chínhvìnhữngđặcđiểmnày,nếuchúngtakhôngtínhđến tấtcảcácthiếtbị ngoạivicầnđiềukhiển,chúngtahãymạnhdạnthiếtkếmộtmạchchuẩncho viđiềukhiển, cungcấpđiệnáp5V,dòng300mA,mạch reset vàmạchdao động.Khidùngbấtkỳloạiviđiềukhiểnnào,cũngcóthểdùngmạchnày. Nguồnchothiếtbịngoạivi,tôikhuyênrằngnênthiếtkếriêngchotừngthiết b ịngoạivi,vàchorằngthiếtbịngoạivilàbấtkỳthiếtbịnàonốitrựctiếpvới mạchviđiềukhiểnnêutrên. Ngoàira,cầnlưuýrằng,viđiều khiểnnhậnvàxuấttínhiệuđiệntrêncác chântừ2.5Vđến5.5V(phụthuộcvàonguồn),vàtừ12mAđến20mA(tuỳ loại).Vìvậy,cácthiếtbịngoạiviphảiđượcthiếtkếsao chokhigiaotiếpvới viđiềukhiển,trựctiếpnốivàocácchânviđiềukhiển,vàcódòngxuấtnhập, cũngnhưđiệnáplogicnhưtrên. e)Kếtluận Trongtấtcảnhữngvấnđềcầncónày,chúngtathấyrằngcácmạchnguồn, resetvàdaođộnglàkháđơngiản,vàhầunhưđượccungcấpmộtcáchchi tiếtbởinhàsả nxuất.Chínhvìthế,chỉcầnlậtdatasheetravàthiếtkếgiống hệt. Đốivớithiếtbịngoạivi,thìtuỳtheoứngdụngmàchúngtathiếtkế.Tôichưa đềcậpđếnởđây. Đốivớichươngtrìnhnạpvàmạchnạp,chúngtahoàntoàncóthểlên cácdiễn đànđiệntửtrongvàngoàinước,hoặctìmcácnguồncungcấpmạchnạpcho từngloạiviđiềukhiển.Đasốcácloạiviđiềukhiểnđềucónhữngng ườithiết kếmạchnạplàmsẵn,chỉviệctìmvàsửdụng.Chúngtatuyệtđốikhôngnên quantâmđếnviệclàmsaođểlàmramạchnạp,hayviếtrađượcchươngtrình nạp,hoặ cgiảnguyênlýnạpnhưthếnào. Nhữngngườitìmhiểusâuvớimụcđíchgiảngdạythìcầnthiếtlàmviệcnày, đểgiúpsinhviênhiểurõhơnvấnđề,hoặcphòngkhi sinhviênđặtcâuhỏi. Nhưngnhữngngườidùng,khôngcầnquantâmđếnviệcnày.Chúngta chỉ cầntìmmạchnguyênlý,làmmạch,vàtừđóvềsaucứthếlàdùng.Thông thường,vàgần nhưlàmặcđịnh,bấtcứngườinàocungcấpmạchnạp,cũng đềucungcấptheođóchươngtrìnhnạp.Vậykểtừđây,chúngtacũngkhông cầnquantâmđếnmạchnạp vàchươngtrìnhnạpnữa. Chươngtrìnhdịch,hầuhếtcácnhàsảnxuấtcungcấpchươngtrìnhdịchcho ngônngữASMlàmiễnphí.Cómộtsốnhàsảnxuấtcungcấ pcảmôitrường soạnthảomiễnphíluôn(nhưMicrochipPICchẳnghạn).Cácchươngtrình dịchtừngônngữcấpcaoC,Pascal,Basic, thườngđượcbánvớigiákhácao. Tuynhiên,ởViệt Nam, th ựctế làchúng ta dùng rấtnhiều nhữngchương trìnhkhôngcóbảnquyền.Tôikhôngcổvũchoviệcdùngtrìnhdịchkhôngcó bảnquyền,nhưngthựctếlàthựctế,bâygiờ hầunhưcácchươngtrìnhdịch ngônngữcấpcaochohầuhếtcácloạiviđiềukhiểnđềuđượccungcấpđầy đủtrêncácdiễnđàncủa cảViệtNamlẫnnướcngoài.Vì vậy,vềphầnchương trìnhdịch,cácbạncũngchẳngphảilolắnggìnữa. Vậyđiềuquantrọngnhất,cácbạncầnphảihọc,đólàhọccáchviết chương trình. Tôiđã phân tích vấnđềnàyởdiễnđànđiện tử www.diendandientu.comvàsẽđănglạibàiviếtnàytạiwww.picvietnam.com (diễnđànmàtôisắpmởra).Đểviếtđượcchươngtrình,cácbạnphảihiểu rằng,bạnviếtchươngtrìnhchom ộtviđiềukhiển,tứclàsửdụngcáctính năngcủaviđiềukhiển.Vậycácbạnphảitheocácbướcsau: ‐tínhnăngđóhoạtđộngnhưthếnào?tạisaochúngtadùngtínhnăngđó? ‐làmsaođểkíchhoạtchoviđiềukhiểnhiểurằngchúngtacầndùngtính năngđó? ‐khilàmviệcvớ imộttínhnăngbấtkỳ,chúngtaphảitươngtácvớinhững thanhghiđặcbiệtnàotrongviđiềukhiển? ‐mộtsốthuậttoánđểthựchiệncôngviệc Nhưvậy,các bạnsẽnắmngay đượcrằng,đểđiềukhiểnmộtthiếtbịngoạivi nàođó,chúngtaphảixácđịnhcôngviệccầnphảilàm,xácđịnhxemdùng tínhnăngnàocủaviđiềukhi ểnđểgiảiquyếtcôngviệc,khiđãnắmrõhếtcác tínhnăngcủaviđiềukhiển,phầncònlạilàmộtchútlogicđểsắpxếpchương trìnhchạychocóhệthống. Chínhvìvậy,cácbạnsẽthấyrằngcórấtnhiềuthuậttoánkinhđiểnđãđược xây dựng,các thư viện code Bởivì thực tế, công việccũng chỉ quanhđi quẩn lạicóbaonhiêuđó.Đầuóclogicvàkhảnănglậptrìnhmộtphầnlàdo thiênphú,mộtphầnlàdosựrènluyệnvàtíchluỹmàcó. Chínhvìvậy,cùngmộtviệclàm,ngườ inàylàmtốthơnngườikia,chủyếulà sựlogicvàbiếtnhiềuthuậttoánxửlýcôngviệc. Tómlại,điềuquantrọngnhấtcácbạnph ảihọclàcáchthực hiệnmộtch ương trìnhsaochothậtlogic,hiệuquả,nhờsựhướngdẫncủamọingườiđểtìm đếncácthưviệncode,nhữngbàitậpmẫuđểđỡmấtcôngsuynghĩnhững vấ nđềbénhỏmàngườikhácđãgiảiquyếttốt. Rấtnhiềungườitựtinvàokhảnăngsángtạocủamình,màthiếusựrènluyện vàtíchluỹkinhnghiệmlậptrình,chonên chorằngbàiviếtcủatôicóphầndở hơi,vìkhôngcungcấpthêmcáckỹthuậtgìchohọ.Tuynhiêntôilạichorằng khihiểumìnhcầnphảilàmgì,họcgì,tích luỹgì,giảmbớtcáigì,nóquan trọnghơnrấtnhiềusovớiviệcbiếtthêmmộtthứkiếnthứcnhỏmọntừngười khác.Cánhântôikhuyêncácsinhviênmớib ắtđầulàmviệcvớiviđiềukhiển mộtlờikhuyênchânthànhlàcácbạnhãytheonhữngbướctôitrìnhbày,học tậpvàtựmìnhđánhgiácácvấnđề,hìnhthànhmộtbả nđồkiếnthức,rồitự thựchiệnmộtđềtàibấtkỳ.Saukhilàmxongmộtđềtàibấtkỳ,kểcảđềtàiđó chỉlàlàmnhấpnháymộtcáiđènled,cá cbạnsẽthấy rằng,cácđềtàikhácrồi cũngtươngtự.Nhưngvấnđềquantrọnglàphảixácđịnhđượcnhữngbước thựchiệnnhưtôiđềcậptrênkiavàtiếpsauđây. 3)Cácbướcthựchiệnmộtđềtàivớ iviđiềukhiển Tôiviếtrađâycácbướcđểmộtngườimớihọccóthểtheovàtiếpcậnngay đượcvớiviđiềukhiển a)Tìmhiểumộtsốkháiniệmcầnthiết: ‐Hiệnnaycó3họ viđiềukhiểnnổi tiếng là8051(baogồm AVR),PICvà Motorola.Nếubắtđầuhọc,chọnmộttrong3loạinàyđểbắtđầu. ‐Tìmhiểuvềkiến trúcmáytính,hiểucơbảnvềkiếntrúcHarvardvàkiến trúcVonNeumann ‐TìmhiểukháiniệmRISCvàCISC ‐Kháiniệmthanhghi ‐KháiniệmStack ‐Kháiniệmcontrỏ(pointer) ‐Kháiniệmđịachỉ vàđịachỉgiántiếpcủamộtthanhghi ‐Kháiniệmtimer ‐Kháiniệmngắt Vìsaocầnnhữngkháiniệmnày,bởivìnhữngkháiniệmnàysẽlànềntảng đềcácbạn hiểusâuhơnvềtínhnăngvàphươngthứclàmviệccủamộtvi điều khiển. Hơn nữa, những khái niệm nàyđều là những khái niệm tổng quát,vàđềubắt nguồntừkiếntrúcmáytínhmàra.Dovậy,việctìmkiếmtài liệucũngkhôngkhókhăngì. b)Hiểucáctínhnăngcủaviđiềukhiển: Cácbạndownloadngaymộtdatasheetbấtkỳloạiviđiềukhiểnnào,tôilấy thídụdownloaddatasheetcủaPIC16F877A,chodùlàcácbạnhọcAVRhay Motorolahay89C51 Cácbạncứdownloaddatasheetnàyv ề. Trongđó,cácbạnkhôngcầnchúýchitiếtđếnkiếntrúccủaviđiềukhiểnđó, màcácbạnchỉcầnxemphầnmôtảtínhnăng.Cácbạnsẽthấytrangđầutiên của datasheetluônliệtkêđầyđủcáctínhnăngcủaviđiềukhiển.Mộtsốtính năngnhư:timer8bit,timer16bit,cóbao nhiêungắt,tínhnăngADC,DAC, tính năng PWM, Comparator, Capture, giao tiếp USB, CAN, I2C, UASRT, Parallel, Đâylàcáctínhnăngphổbiếncủaviđiềukhiểnhiệnnay.Cácbạn lậtvàotrong,đọcđểhiểunhữngtínhnăngnàylàmnhữnggì. Vd: ChỉcầnhiểuADC(AnalogtoDigitalConverter)dùngđểbiếnđổimộttín hiệuđiệnápAnalogvàomộtchânnàođócủaviđiềukhiển,biếnđổinóqua giátrịsố(Digital)bằngcáchsosánh vớim ộtđiệnápthamchiếu(Reference Voltage).Điệnáp thamchiếu cóthể làđiệnápVDD(điện áp nguồn)hoặc điệnáp thamchiếuđượcđưa vàomộtchân khác.Nguyênlý biếnđổ inày đượcthựchiệnnhưthếnào?ThếnàolàADC10bit,12bit,8bit Chỉcầnnhưvậythôi,cácbạnkhôngcầnhiểunhiềuhơnnữa. Nóiđiềunàycũngthậtbu ồncườichocácbạnđãhọclâurồi,nhưngđâylà cácbạnmớihọc,thìviệcnàyvôcùngquantrọng.Vìrấtnhiềubạnlênmạng vàhỏirằngPWMlà cáigì?ThếnàolàDutycycle? Dovậy,nhữngkháiniệmnày,nếucácbạnnắmvàhiểuđượcrồi,thìvấnđề chỉcònlàứngdụngsửdụngnóthôngquaviệclậptrìnhtrên viđiềukhiển màbạnchọnnữathôi.Màcáctínhnăngnàythìviđiềukhiểnnàocũnggiống nhau,chonênchỉcầnđọcmộtdatasheetthìsẽbiếthết. c)Tìmdụng cụhọctập Tấtnhiên,đihọcphảicódụngcụhọctập.BạnmuốnhọcconviđiềukhiểnA, thời buổi này không phải là thời buổi bao cấp, phát phiếuđi l ĩnh viđiều khiểnvềxài.Chonên,tốtnhấtlàbạnlàmcáchnàođómuốnhọcthìphảitìm muabằngđượcnórồitínhchuyệnhọcgìrồihọc. Cầmcon viđ iềukhiểntrongtayrồimớitínhchuyệnhọc,lỡhọckhôngđược thìsao?Thìkiếmcáibúaphangmạnhmộtcáivàoconviđiềukhiển,mởruột nóraxemcoinócócáigì trongđó,thấynóđenthui,chẳngcógì.Mộtcáicục [...]... Cách thứ hai rườm ra hơn, đó là học vi t ASM. Học ASM khá công phu, phải hiểu chi tiết cấu trúc vi điều khiển, phải điều khiển từng thanh ghi Tuy nhiên, tôi khuyên khi mới học, các bạn nên bắt đầu bằng vi c học ASM. Khi nắm vững cách vi t ASM cho một con vi điều khiển nào đó, chuyển sang con vi điều khiển khác không mấy khó khăn, và các bạn sẽ giống như một chuyên gia về nó một khi các bạn đã hiểu tường tận mọi vấn đề. ... Tôi dành thời gian vi t bài vi t này, không mong muốn gì hơn là giúp các bạn sinh vi n mới học, mới bắt tay làm quen với vi điều khiển có một cái nhìn tổng quát ban đầu và có một định hướng rõ ràng cho vi c học tập của mình. Cá nhân tôi cũng từng là người mới học, và bất quá thì tôi chỉ học trước các bạn một vài năm. Đến bây giờ tôi không còn dùng vi điều khiển và lập trình cho vi điều khiển ... ngoại vi, cắm vào vi điều khiển để điều khiển nó, thì bạn chỉ vi c cắm nó vào các chân được đưa ra ngoài của mạch test (các socket, chân cắm ). Nhớ rằng Mass phải được nối chung trong tất cả các mạch điện tử. Một số mạch điện tử phức tạp dùng nhiều mass khác nhau, thì ít nhất cũng phải có một mass chung với mass của vi điều khiển. f) Các bước học tính năng vi điều khiển ... nghiệm của tôi khi bắt đầu học đến khi làm được một số vi c hữu ích bằng vi điều khiển, đến cho các bạn. Hy vọng các bạn bắt đầu học, và học tập mau tiến bộ. Nếu các bạn có những thắc mắc gì về vi điều khiển Microchip PIC, các bạn có thể email theo địa chỉ falleaf@irfvn.com hoặc tham dự vào diễn đàn www.picvietnam.com Chúc mọi điều tốt lành! FALLEAF – IRF Bài vi t này đã gửi cho IRF, và ... cho đến khi chúng ta học thành thạo một con vi điều khiển nào đó, thậm chi sau này dùng vào vi c thực hiện những dự án lớn với con vi điều khiển đó, mạch test này vẫn có giá trị của nó. Làm một mạch test là điều thứ tư phải làm. Quay lại chuyện cái đèn led. Cái đèn led và điện trở, thì vài trò của cái đèn led và điện trở là thiết bị ngoại vi, cái đèn led là thiết bị cần điều khiển, cái điện trở là ʺmạchʺ giao tiếp. Điều này có nghĩa là, không cần biết bạn làm cái gì, ... tập nhấp nháy đèn led là bài tập khá kinh điển. Thực ra đó là gì, các bạn thực hiện một mạch chạy cho vi điều khiển, và thiết bị ngoại vi là cái đèn led. Nhớ lại là thông thường vi điều khiển xuất tín hiệu 5V, 12mA. Nhưng cái đèn led chỉ dùng ở khoảng 2.5V 12mA, nên chúng ta nối một cái điện trở nối tiếp với cái đèn led. Như vậy, chúng ta xác định rõ, chúng ta phải làm một mạch chạy cho vi điều khiển, bao gồm nguồn, mạch reset, mạch dao động. Các chân còn lại được nối ... làm tốt mọi vi c từ đầu đến khi chính thức bắt đầu học vi điều khiển. Hãy tiến hành các bài tập sau: ‐ Học các thanh ghi đặc biệt, bản đồ bộ nhớ (memory map) (học lý thuyết) ‐ Học cách xuất trên từng chân vi điều khiển (bài tập tắt mở đèn led) ‐ Học vi t hàm delay (làm đèn nhấp nháy) ‐ Đèn nhấp nháy dùng timer ‐ Bấm một nút, đèn bật/tắt (nhập port, nhập trên từng chân, dùng ngắt ngoài) ‐ Điều khiển động cơ (PWM) ... điều khiển LCD, chẳng qua chỉ là vi c xuất nhập PORT, hoặc như bảng điện, quang báo, led 7 đoạn, nó cũng chỉ là vi c xuất nhập port. Trong các bài học này, đó là các bạn học các thiết bị ngoại vi thông thường khi dùng vi điều khiển, chứ không phải học các tính năng của vi điều khiển. Nhưng trái lại, nếu các bạn học một bài học đơn giản vô cùng đó là dùng tính năng PWM để làm bộ biến đổi DAC (Digital to Analog Converter) thì chính là ... các bạn lại học cách dùng tính năng PWM. Vi c định hướng các bài học, và mục tiêu giảng dạy phụ thuộc chủ yếu vào người hướng dẫn, tuy nhiên tôi phân tích ý này ở đây để các bạn sinh vi n hiểu vì sao có thể một số bạn đã thực hành rất nhiều đề tài, nhưng vẫn cảm thấy mình không đủ kiến thức để thực hiện một đề tài lớn với vi điều khiển. Đó là vì các bạn chưa thực sự dùng hết các tính năng của vi điều khiển, mà ... học này, vi c học tiếp các bài học khác sẽ không phải là vấn đề khó khăn với các bạn nữa, các bạn hoàn toàn có thể tham khảo datasheet để thực hiện một mình. Các bạn cần phải phân biệt thật rõ vấn đề học các chức năng của PIC, với vi c học để sử dụng một số thiết bị ngoại vi thông dụng. Ví dụ như vi c điều khiển LCD, chẳng qua chỉ là vi c xuất . u,phải hiểuchitiếtcấutrúcviđiều khi n,phảiđiều khi ntừngthanhghi Tuynhiên,tôikhuyên khi mớihọc,cácbạnnênbắtđầubằngviệchọcASM. Khi nắmvữngcáchviếtASMchomộtconviđiều khi nnàođó,chuyểnsang conviđiều khi ểnkháckhôngmấykhókhăn,vàcácbạnsẽgiốngnhưmột chuyêngiavềnómột khi cácbạnđãhiểutườngtậnmọivấnđề. Banđầucóvẻsẽhơikhóxơi vàmệtmỏi,nhưngsaunàythìcácbạnsẽthấy hoàntoàntựtinvàokiếnthứcmìnhthuthậpđược. e)Làmcácbàiứngdụng Sau khi cóchươngtrìnhnạpvàmạchnạp,cácbạnthườnghaylàmngaybài tậpnhấpnháyđènledlàbàitậpkhákinhđiển.Thựcrađólàgì,cácbạnthực hiện mộtmạchchạychoviđiều khi n,vàthiếtbịngoạivilàcáiđènled.Nhớ lạilàthôngthườngviđiều khi nxuấttínhiệu5V,12mA. Nhưngcái. ướccác bạn mộtvàinăm.Đếnbâygiờtôikhôngcòndùngviđiều khi nvàlậptrình cho viđiều khi n nhiều nữa, nhưng tôi cũng muốn chia sẻ những kinh nghiệmcủatôi khi bắt đầuhọcđến khi làmđượcmộtsốviệchữuíchbằngvi điều khi n,đếnchocácbạn.Hyvọngcácbạnbắtđầuhọc,vàhọctậpmau tiếnbộ. Nếu cácbạncónhữngthắcmắcgìvềviđiều khi nMicrochipPIC,cácbạncó thểemailtheođịachỉ falleaf@irfvn.com hoặcthamdựvàodiễnđàn www.picvietnam.com Chúcmọiđiềutốtlành! FALLEAF–IRF Bàiviếtnàyđãgửicho. liệu hướngdẫn,và khi họcthìtôicũngphảilầnmòvàđitheoconđườngđó. 1)Viđiều khi n Trongrấtnhiềutàiliệucơbảnđềuđềcậpđếnkháiniệmviđiều khi nlàgì. Dovậy,tôilướtquacáckháiniệmcơbảnnày.Tôichỉđềcậpđếncáckhái niệm,mà cácbạncần quan tâm khi bắtđầuhọc,hoặclựachọnmộtviđiều khi nchomộtứngdụngnàođócủacácbạn.Từnhữngkháiniệmtôiđềcập, cácbạ ncóthểthamkhảotừcáctàiliệuchitiếthơn,vàrồicácbạnsẽnắm đượctoànbộnhữngvấnđềcơbảncủamộthọviđiều khi nnàođó. a)Kiếntrúcviđiều khi n Thựcraviđiều khi ncũnglàmộtcấutrúcsiêunhỏ,gồmcáclinhkiệnđiểntử ởkíchthướcmicrohoặcnano,cáclinhkiệnnàyđượckếthợpvớinhauvà đượcnốivớicácthiếtbịbênngoàiquacácchânviđiều khi n.Chínhvìvậy, hiểurõđượckiếntrúcviđiều khi n,cácbạnsẽhiểurõđượcmìnhđanglàm việcvớicái gì,vàcáiđólàmviệcnhưthếnào. Kiếntrúcmáy