Çfarë është një çip memorie dhe si të programoni mikroqarqet. Programimi i mikrokontrolluesve për fillestarët: fishekë riprogramimi të lehtë dhe të përballueshëm


Tema e dizajnit elektronik po bëhet gjithnjë e më popullore. Ne sjellim në vëmendjen tuaj një artikull që do t'ju tregojë për mikrokontrolluesit për fillestarët.

Çfarë mikrokontrollues ka?

Para së gjithash, është e nevojshme të përvijohet situata me mikrokontrolluesit. Fakti është se ato prodhohen jo nga një kompani, por nga disa, kështu që ka mjaft mikrokontrollues të ndryshëm që kanë parametra të ndryshëm, veçori të ndryshme për përdorim dhe aftësi të ndryshme. Ato ndryshojnë në shpejtësinë, ndërfaqet shtesë dhe numrin e kunjave. Më të njohurit në të gjithë ish-BRSS janë përfaqësuesit e RIS dhe AVR. Programimi i mikrokontrolluesve AVR dhe PIC nuk është i vështirë, gjë që ka siguruar popullaritetin e tyre.

Si programohen mikrokontrolluesit?

Programimi i mikrokontrolluesve kryhet, si rregull, duke përdorur pajisje speciale të quajtura programues. Programuesit mund të blihen ose të bëhen vetë. Por kur ndezni një mikrokontrollues duke përdorur një programues të bërë në shtëpi, mundësia që ai të kthehet në një "tullë" është mjaft e lartë. Ekziston një opsion tjetër që mund të konsiderohet duke përdorur tabelën Arduino si shembull. Pllaka funksionon në një mikrokontrollues Atmel dhe përdoret për programimin e mikrokontrolluesve AVR. Pllaka tashmë ka një ngarkues të ndezur paraprakisht dhe një port USB, të cilat ju lejojnë të ndezni në mënyrë të sigurt mikrokontrolluesin në përdorim, pa i dhënë përdoruesit akses në të dhënat që mund të dëmtojnë të njëjtin mikrokontrollues. Programimi i mikrokontrolluesve për fillestarët nuk është aq i vështirë sa mund të duket, dhe me disa aftësi dhe inteligjencë do t'ju shpëtojë nga nevoja për të shkuar për një mekanizëm të ri.

Dallimet në harduer midis mikrokontrolluesve të ndryshëm

Kur zgjidhni mikrokontrolluesit, duhet t'i kushtoni vëmendje disa dallimeve harduerike, jo edhe nga kompani të ndryshme, por edhe në të njëjtin gamë modelesh. Së pari, duhet t'i kushtoni vëmendje mundësisë së rishkrimit të informacionit në mikrokontrollues. Ky funksion do t'ju lejojë të eksperimentoni me një MK për një kohë të gjatë. Kushtojini vëmendje edhe numrit të kunjave me qëllimin e tyre. Mos neglizhoni frekuencën e funksionimit të kristalit në të cilin funksionon qarku: numri i operacioneve në sekondë që mund të kryejë mikrokontrolluesi varet nga ai. Kur shqyrtoni këto karakteristika, si dhe kujtesën e MK, në fillim mund të duket se asgjë kuptimplotë nuk mund të bëhet në mikrokontrolluesit, por ky është një mendim i gabuar. Mos harroni se programimi i mikrokontrolluesve për fillestarët nuk kërkon pajisjet më të mira në fillim, por mund të keni diçka më të fuqishme në rezervë.

Gjuhët e programimit të mikrokontrolluesve

Dy gjuhë përdoren për programimin e mikrokontrolluesve: C/C++ dhe assembler. Secila prej tyre ka avantazhet dhe disavantazhet e veta. Pra, nëse flasim për montuesin, atëherë bën të mundur që të bëjmë gjithçka në mënyrë shumë delikate dhe efikase, kjo është veçanërisht e rëndësishme kur nuk ka RAM ose fuqi të mjaftueshme operative (gjë që, megjithatë, ndodh mjaft rrallë). Por studimi i tij dhe shkrimi i programeve në të kërkon mjaft përpjekje, përpikmëri dhe kohë. Prandaj, për zhvillimin e bazuar në mikrokontrollues, shpesh përdoren gjuhët e programimit C dhe C++. Ata janë më të kuptueshëm në pamjen dhe strukturën e tyre, ata janë afër të folurit njerëzor, megjithëse nuk e përfaqësojnë atë në një kuptim të plotë. Ata gjithashtu kanë funksionalitet shumë të zhvilluar që mund të ndërveprojnë lehtësisht me harduerin, duke imagjinuar se është thjesht një element programi. Me gjithë avantazhet e tyre të dukshme, programe më voluminoze krijohen në C dhe C++ sesa në asembler.

Gjithashtu, në disa raste, kur hapësira operative e përdorur është kritike, këto gjuhë mund të kombinohen. Pothuajse të gjitha mjediset e zhvillimit për C dhe C++ kanë aftësinë për të instaluar insertet e asemblerit në program. Prandaj, nëse lind një problem në një zonë kritike, mund të shkruani një insert montimi dhe ta integroni atë në firmuerin për mikrokontrolluesin, dhe vetë firmware, ose më mirë, shumica e tij, mund të shkruhet në C ose C++. Programimi i mikrokontrolluesve në SI është më i lehtë, prandaj shumë njerëz zgjedhin këto gjuhë. Por ata që nuk kanë frikë nga vështirësitë dhe duan të kuptojnë veçoritë e funksionimit të pajisjeve, mund të provojnë dorën e tyre në gjuhën e montimit.

Fjalë ndarëse

Nëse doni të eksperimentoni me të madhe. Ne mund t'ju këshillojmë vetëm të jeni të durueshëm dhe këmbëngulës, dhe më pas çdo synim i vendosur për shpikësit do të jetë i realizueshëm. Programimi i mikrokontrolluesve për fillestarët dhe për njerëzit me përvojë duket ndryshe: ajo që është e vështirë për fillestarët, është rutinë për njerëzit me përvojë. Gjëja kryesore është të mbani mend se gjithçka që nuk bie në kundërshtim me ligjet e fizikës është e realizueshme dhe e zgjidhshme.

Nevoja për të regjistruar një çelës në imobilizues mund të lindë për shkak të zëvendësimit të tij me një të ri. Për të përfunduar detyrën, do t'ju duhet të riprogramoni çelësin duke përdorur çipin origjinal.

[Fshih]

Në cilat raste kërkohet riprogramimi i çelësit?

Arsyet pse duhet të regjistroni një çelës mund të jenë të ndryshme:

  • çelësi është i konsumuar dhe i dëmtuar, si rezultat i të cilit funksionimi i makinës është i paqëndrueshëm;
  • ishte e nevojshme të bëhej një dublikatë për anëtarët e familjes;
  • njësia e kontrollit të motorit është dëmtuar;
  • Moduli i ndezjes së makinës është dëmtuar.

Me kë të kontaktoni për të regjistruar një çelës çipi të imobilizatorit

Kur ka një arsye për të regjistruar një çelës në imobilizues, mund të kontaktoni një qendër shërbimi ose ta kryeni vetë detyrën.

Nëse makina është nën shërbim garancie, çelësi duhet të regjistrohet në memorien immo vetëm në qendrën e shërbimit.

Si të regjistroni një çelës të ri vetë

Regjistrimi i një çelësi të ri kryhet duke përdorur një çelës çipi, i cili duhet të ruhet në një vend të sigurt dhe të sigurt. Përpara se të kryeni procedurën e riprogramimit, duhet të keni rreth 10 litra karburant në rezervuar.

Algoritmi i veprimeve

Ne e regjistrojmë çelësin në rendin e mëposhtëm:

  1. Së pari, duhet të mbyllni të gjitha dyert e makinës, pastaj ndizni ndezjen me çelësin e çipit dhe prisni të paktën 10 sekonda.
  2. Fikni ndezjen. Nëse ikonat në panelin e kontrollit pulsojnë çdo 5 sekonda, atëherë programimi po vazhdon siç duhet.
  3. Me ndezjen e fikur, hiqni çipin brenda 5 sekondave dhe futni një çelës të ri për programim të mëtejshëm. Në këtë moment, alarmi i sinjalit duhet të tingëllojë tre herë.
  4. Prisni 6 sekonda derisa sinjalizuesi të bie 2 herë të tjera, pas së cilës duhet të fikni çelësin e ndezjes dhe të tërhiqni një çelës të ri.
  5. Fusni çelësin e çipit dhe prisni së pari për tre sinjale dhe pas 6 sekondash për dy të tjera.
  6. Hiqni çelësin e çipit dhe prisni 10 sekonda, më pas futni një çelës të ri dhe ndizni motorin.
  7. Merrni një provë të makinës.

Videoja tregon riprogramimin e një çelësi të imobilizatorit për një makinë shtëpiake, filmuar nga kanali Door Doctor.

Karakteristikat e programimit dhe lidhjes së çelësit me imobilizuesin

Veçoritë e programimit të çelësave përfshijnë faktin se për një fob çelësi imobilizues me një buton, lidhja do të jetë e ndryshme.

Për të programuar duhet të ndiqni këto hapa:

  1. Mbyllni të gjitha dyert në makinë.
  2. Shtypni dhe mbani butonin e madh derisa dioda të ndalojë së pulsuari. Kur lëshoni çelësin, treguesi duhet të ndizet në mënyrë të barabartë.
  3. Shtypni përsëri butonin. Dioda duhet të fiket.
  4. Shoferi duhet të hapë dyert dhe të vendosë çelësin në ndezës.
  5. Shtypni butonin në folenë e çelësit në përputhje me udhëzimet për markën specifike të sistemit.
  6. Aktivizoni ndezjen, prisni të paktën 10 sekonda dhe fikeni.
  7. Pas 5 sekondash, çelësi duhet të jetë në gjendje pune dhe të ruajë të gjitha pozicionet në memorie.

Mikrokontrolluesit janë një lloj i veçantë çipi që përdoret për të kontrolluar pajisje të ndryshme elektronike.

Hyrje në mikrokontrolluesit

Këta janë kompjuterë në miniaturë, të gjithë komponentët e të cilëve (procesori, RAM, ROM) janë të vendosur në një çip. Ata dallohen nga mikroprocesorët nga prania e kohëmatësve, kontrolluesve, krahasuesve dhe pajisjeve të tjera periferike. Aktualisht, mikrokontrolluesit përdoren në prodhim:

  • sensorë për makina;
  • lodra;
  • tregues të tensionit, karikues;
  • panele kontrolli;
  • pajisje elektronike në miniaturë.

Menaxhimi kryhet duke përdorur programe speciale.

Rekomandohet që fillestarët të fillojnë të zotërojnë programimin e mikrokontrolluesve duke studiuar arkitekturën dhe varietetet. Industria prodhon llojet e mëposhtme të MK:

  • i integruar;
  • 8-, 16- dhe 32-bit;
  • procesorë dixhital të sinjalit.

Prodhuesit e mikrokontrolluesve duhet të balancojnë vazhdimisht madhësinë, fuqinë dhe çmimin e produkteve. Kjo është arsyeja pse modelet 8-bit janë ende në përdorim. Ata kanë produktivitet mjaft të ulët, por në shumë raste ky fakt është një avantazh, sepse ju lejon të kurseni burimet e energjisë. Procesorët dixhital të sinjalit janë të aftë të përpunojnë rrjedha të mëdha të të dhënave në kohë reale. Sidoqoftë, kostoja e tyre është shumë më e lartë.

Numri i opkodeve të përdorura mund të mos jetë i njëjtë. Prandaj, përdoren sistemet e udhëzimeve RISC dhe CISC. E para konsiderohet e reduktuar dhe ekzekutohet në një cikël orar të gjeneratorit. Kjo bën të mundur thjeshtimin e zbatimit të harduerit të CPU-së dhe rritjen e performancës së çipit. CISC është një sistem kompleks që mund të rrisë ndjeshëm efikasitetin e pajisjes.

Është e pamundur të mësosh programimin e mikrokontrolluesve për fillestarët pa kuptuar algoritmet. Komandat i dërgohen CPU-së së çipit në një mënyrë specifike. Për më tepër, struktura e tyre duhet të perceptohet pa mëdyshje nga procesori. Prandaj, së pari programuesi krijon një sekuencë të ekzekutimit të komandës. Ju mund ta detyroni CPU-në të ndalojë programin menjëherë duke thirrur një ndërprerje. Për këtë qëllim përdoren sinjale të jashtme ose pajisje periferike të integruara.

Familjet e mikrokontrolluesve

Familjet më të zakonshme të mikrokontrolluesve janë:

  • MSP430 (TI);
  • ARM (ARM Limited);
  • MCS 51 (INTEL);
  • STMB (STMikroelektronikë);
  • PIC (Mikroçip);
  • AVR (Atmel);
  • RL78 (Renesas Electronics).

Një nga produktet më të njohura në industrinë e elektronikës janë produktet e Atmel, të ndërtuara mbi një bërthamë RISC. Mikroqarqet e para, të zhvilluara në 1995, i përkasin grupit Classic. Këshillohet që fillestarët të studiojnë programimin e mikrokontrolluesve AVR në modele më moderne:

  • Mega është një familje çipash të fuqishëm me një arkitekturë të avancuar.
  • Produkte të vogla - të lira me tetë kunja.

Duhet mbajtur mend se përputhshmëria e sistemeve të komandës ruhet vetëm kur transferoni një program nga një mikrokontrollues me performancë të ulët në një më të fuqishëm.

Produktet Atmel janë të thjeshta dhe të kuptueshme. Sidoqoftë, për të përdorur të gjithë funksionalitetin, do t'ju duhet të zhvilloni softuer. Rekomandohet që fillestarët të fillojnë programimin e mikrokontrolluesve AVR duke shkarkuar mjedisin e specializuar të Atmel Studio. Versioni aktual ofrohet nga faqja zyrtare e prodhuesit pa pagesë. Asnjë komponent shtesë softueri nuk kërkohet për të zhvilluar softuer në këtë mjedis.

Kompleksi Atmel Studio përfshin një numër të madh shembujsh të projekteve të përfunduara. Kjo do të ndihmojë një fillestar të zotërojë shpejt aftësitë bazë dhe të fillojë të krijojë programet e veta. Ai gjithashtu ka module për përpilimin dhe korrigjimin përfundimtar të kodit. Paralelisht me zhvillimin e tij, ju duhet të studioni gjuhë programimi. Pa to, softueri nuk mund të zhvillohet.

Gjuhët e programimit

Në strukturën e tyre, gjuhët e programimit të mikrokontrolluesve ndryshojnë pak nga ato që përdoren për kompjuterët personalë. Midis tyre ka grupe të nivelit të ulët dhe të lartë. Programuesit modernë përdorin kryesisht C/C++ dhe Assembly. Ka debate të pafundme mes adhuruesve të këtyre gjuhëve se cila është më e mira.

Montuesi i nivelit të ulët ka humbur terren kohët e fundit. Ai përdor udhëzime të drejtpërdrejta drejtuar çipit. Prandaj, programuesi kërkohet të ketë njohuri të patëmetë të komandave të sistemit të procesorit. Shkrimi i softuerit në Asamble kërkon një kohë të konsiderueshme. Avantazhi kryesor i gjuhës është shpejtësia e lartë e ekzekutimit të programit të përfunduar.

Në fakt, pothuajse çdo gjuhë programimi mikrokontrollues mund të përdoret. Por më popullorja është C/C++. Kjo është një gjuhë e nivelit të lartë që ju lejon të punoni me rehati maksimale. Për më tepër, krijuesit e C morën pjesë në zhvillimin e arkitekturës AVR. Prandaj, çipat e prodhuar nga Atmel janë përshtatur posaçërisht për këtë gjuhë.

C/C++ është një kombinim harmonik i aftësive të nivelit të ulët dhe të lartë. Prandaj, është e mundur të futen futjet e gjuhës Asambleje në kod. Produkti i përfunduar i softuerit është i lehtë për t'u lexuar dhe modifikuar. Shpejtësia e zhvillimit është mjaft e lartë. Në këtë rast, nuk kërkohet një studim i plotë i arkitekturës MK dhe sistemit të komandës së CPU. Përpiluesit C janë të pajisur me biblioteka me përmasa mbresëlënëse, gjë që e bën më të lehtë punën e programuesit.

Duhet të theksohet se zgjedhja e gjuhës optimale të programimit varet edhe nga hardueri. Nëse keni një sasi të vogël RAM, nuk këshillohet të përdorni C të nivelit të lartë. Në këtë rast, Assembler është më i përshtatshëm. Ofron performancë maksimale për shkak të kodit të shkurtër të programit. Nuk ka mjedis programimi universal, por shumica e aplikacioneve falas dhe komerciale mund të përdorin si Asamblenë ashtu edhe C/C++.

Mikrokontrolluesit PIC

Mikrokontrolluesit e parë PIC u shfaqën në gjysmën e dytë të shekullit të kaluar. Çipat e shpejtë 8-bit të mikroçipit fituan menjëherë popullaritet. Arkitektura e Harvardit me dy autobusa jep shpejtësi të paparë. Ai u zhvillua në bazë të një grupi regjistrash, i cili karakterizohet nga ndarja e autobusëve.

Kur zgjidhni një gjuhë programimi për mikrokontrolluesit PIC, duhet të keni parasysh që familja e mikroqarqeve bazohet në një dizajn unik të procesorit RISC. Sistemi i komandës simetrike ju lejon të zgjidhni në mënyrë arbitrare metodën e adresimit dhe të kryeni veprime në çdo regjistër. Për momentin, kompania Microchip prodhon 5 lloje të MK-ve që janë të pajtueshme sipas kodit të softuerit:

  1. PIC18CXXX (75 komanda, grumbull i integruar i harduerit);
  2. PIC17CXXX (58 komanda 16-bit format);
  3. PIC16CXXX (35 komanda, grup i madh pajisjesh periferike);
  4. PIC16C5X (33 udhëzime, format 12-bit, paketa 18-28 pin);
  5. PIC12CXXX (versionet me 35 dhe 33 komanda, gjenerator i integruar).

Në shumicën e rasteve, PIC MCU kanë memorie të programueshme një herë. Ka modele më të shtrenjta me fshirje Flash ose ultravjollcë. Një shumëllojshmëri prej 500 artikujsh ju lejon të zgjidhni një produkt për çdo detyrë. Tani prodhuesi po përqendron përpjekjet e tij në zhvillimin e versioneve 32-bit me kapacitet të shtuar të memories.

Gjuhët e programimit për mikrokontrolluesit PIC janë Assembler dhe C. Çdo mjedis zhvillimi i integruar (IDE) është i përshtatshëm për kodim. Programimi me ta është shumë i përshtatshëm. Ata përkthejnë automatikisht tekstin e programit në kodin e makinës. Një karakteristikë e rëndësishme e IDE është aftësia për të simuluar hap pas hapi funksionimin e softuerit të përfunduar. Ne rekomandojmë përdorimin e mjedisit të zhvillimit MPLAB. Është krijuar nga Microchip.

Para se të filloni të punoni në MPLAB, ju rekomandojmë të krijoni një dosje të veçantë çdo herë. Kjo është e nevojshme për të mos u ngatërruar në skedarët e projektit. Ndërfaqja e programit është intuitive dhe nuk duhet të ketë vështirësi me të. Për korrigjimin e gabimeve, përdoren korrigjuesit e pronarit Pickit, ICD, REAL ICE, IC PROG. Ata kanë aftësinë për të parë përmbajtjen e kujtesës dhe për të vendosur pika kontrolli.



Duke bashkuar një çip tjetër në një tabelë tjetër ose duke prerë një udhë në tabelë për të dhjetën herë për të bërë ndryshimet e radhës (por jo të fundit) në një pajisje të re, filloni të mendoni: "A nuk duhet ta lë këtë detyrë të lodhshme?!" Pajisja juaj e re nuk rezulton ashtu siç dëshironi, por tashmë jeni lodhur duke ndryshuar qarkun dhe duke ribërë gjithçka në tabelë.
Duke shfletuar revistat elektronike, gjithnjë e më shumë ndeshni fjalët: procesor, mikrokontrollues, firmware, programim. Por këto fjalë nuk kanë asnjë kuptim specifik për ju. Keni dëgjuar diku dhe ndoshta keni mbajtur në duar diçka që madje e mendoni me frikë... mikrokontrolluesit! Diçka që zvogëlon përmasat e pajisjeve, duke u dhënë atyre aftësi të paarritshme për ju... Jo, ju si inxhinier elektronik i kuptoni idetë e përgjithshme se si funksionojnë këto pajisje, por përdorimi i tyre praktik në produktet tuaja nuk bëhet fjalë! Ju tashmë keni provuar disa herë të zotëroni mikrokontrolluesit, madje keni blerë disa libra nga seria "... për dummies" dhe keni shkarkuar disa mësime të njohura nga Interneti. Kaloi ca kohë dhe gjithçka u ndal në pikën më interesante: diagramet e treguara në libra ishin të qarta për ju, por metodat për krijimin e një programi mbetën një mister për ju. Shtypja e disa karaktereve në anglisht (ose ndonjë gjuhë tjetër) në programin e specifikuar në libër nuk është problem për ju. Por thelbi dhe METODAT e përdorimit të këtyre simboleve misterioze, sekuenca e të cilave në libër quhej program, nuk janë të qarta. Ju fajësuat veten për budallallëkun dhe lini mënjanë idenë e zotërimit të mikrokontrolluesve. Dhe pse? Ju tashmë bëni një punë të shkëlqyeshme: keni shumë e shumë çipa mbi të cilët zhvilloni pajisjet tuaja... Pajisjet në dërrasa të mëdha që i korrigjoni dhe i ripunoni për një kohë të gjatë, të gjatë...
Por takoni djalin nga fqinji: ai shkruan programe, i ngarkon ato në mikrokontrollues dhe atë që duhet të korrigjoni për muaj të tërë, ai e bën për disa ditë. Ju kapni paniku, filloni të kërkoni libra të braktisur dhe mbani mend gjithçka që keni lexuar më parë... Ai mundet, por ju nuk mundeni. Ju e njihni më mirë këtë djalë dhe nën maskën e një bisede anësore, filloni ta pyesni për mikrokontrolluesit dhe aftësitë e tyre. Dhe me qetësi thotë se kontrollorët janë një hobi për të. Ju i kërkoni atij t'ju tregojë për pajisjen e tyre. Përgjigjet e tij janë të thjeshta dhe jo modeste.

Mikrokontrolluesit. Çfarë është një mikrokontrollues?
Një mikrokontrollues është një kompjuter i vogël i specializuar, në rusisht mikro-kompjuter. Për më tepër, ky mikrokompjuter është bërë në një çip, në një kristal. Prandaj emri i plotë: "mikrokompjuter me një çip". Ashtu si një kompjuter, një mikrokontrollues është një pajisje elektronike, funksionimi i së cilës kontrollohet nga një program - një sekuencë komandash të para-ngarkuar në memorie. Këto komanda ekzekutohen nga procesori: një lloj "mega-truri" që përfshin një ALU - një njësi aritmetike-logjike. Kjo do të thotë, procesori "mund" të kryejë operacione matematikore dhe të kryejë operacione logjike mbi të dhënat.

Kapaciteti i procesorit. Metodat e paraqitjes së informacionit.
Si procesori ashtu edhe memoria janë pajisje dixhitale që "kuptojnë" sinjalet e vetëm dy niveleve: ka tension/rrymë dhe nuk ka tension/rrymë në linjë. Këto dy gjendje zakonisht shkruhen si më poshtë: një logjike - "1" dhe zero logjike - "0". Komandat dhe të dhënat janë një koleksion i njësheve dhe zerove. Një linjë (e quajtur shkarkim) në dy gjendjet e saj mund të përcjellë vetëm dy vlera. Por me rritjen e numrit të shifrave, rritet edhe numri i vlerave: dy shifra janë tashmë katër, dhe tetë shifra janë tashmë 256 vlera. Një shifër zakonisht quhet bit: një shifër është një bit. Dhe një grup prej tetë bitësh është një bajt: tetë bit është një bajt. Por një bajt ka vetëm 256 vlera. Për të transmetuar më shumë informacion, përdoren disa bajtë të vendosur në mënyrë sekuenciale në memorie. Dy bajt tashmë përcjellin 65536 vlera. Tre byte - 16777216 vlera! Dhe kështu me radhë. Procesorët më të zakonshëm janë ata që mund të përpunojnë tetë bit në një operacion, prandaj procesorët e tillë quhen tetë-bit.

Sistemi i komandës së procesorit.
Kur zhvillohet një procesor, ai ndërtohet në aftësinë për të ekzekutuar komanda të caktuara. Instruksionet që një procesor i caktuar është në gjendje të ekzekutojë quhen grup instruksionesh. Cilat janë këto komanda? Komandat më të zakonshme aritmetike dhe logjike, si dhe komandat për të punuar me portet - linjat e komunikimit midis procesorit dhe botës së jashtme. Procesori, pasi ka lexuar një vlerë nga një qelizë memorie ose gjendjen e një porti në memorien e vet - një regjistër, mund të kryejë operacione matematikore ose logjike mbi të. Matematikisht, veprimet janë të qarta për ne: mbledhja, zbritja dhe të tjera. Veprimet logjike nënkuptojnë veprimet e mëposhtme: krahasimi - më shumë, më pak, e barabartë; puna në bitet e një qelize ose regjistri memorie: zeroizimi ose vendosja e saj, si dhe operacionet e zhvendosjes së biteve majtas ose djathtas.

Kujtesa dhe llojet e saj.
Të dhënat mund të lexohen nga memoria. Memoria është një vend ku një program dhe/ose të dhëna mund të ruhen për ca kohë. Ato mund të ruhen për një kohë të shkurtër - derisa energjia të fiket, ose për një kohë të gjatë - pavarësisht nga prania e tensionit të furnizimit. Lloji i parë i memories përdoret për të ruajtur të dhënat e ndërmjetme të përdorura gjatë kryerjes së operacioneve të ndryshme. Kjo është arsyeja pse ajo quhet "memorie me akses të rastësishëm". Lloji i dytë i memories përdoret më shpesh për ruajtjen e programeve. Ka disa lloje të memories afatgjatë: memorie e programueshme një herë, memorie e fshirë elektrike dhe memorie e fshirë me rreze ultravjollcë ose me rreze x. Struktura fizike dhe parimi i funksionimit të memories mund të jenë të ndryshme, por thelbi është i njëjtë: ruajtja e të dhënave. Koncepti i "qelizës" përdoret për të përshkruar një ruajtje të të dhënave. Prandaj, sa më shumë qeliza, aq më shumë të dhëna mund të ruhen. Çdo qelizë ka një adresë individuale. Procesori i qaset vlerës së një qelize memorie pikërisht nga adresa e saj.

Portet. Mënyrat e funksionimit të portit.
Të dhënat mund të merren edhe nga pajisjet e jashtme përmes linjave të komunikimit - kunjat e mikrokontrolluesit. Këto linja komunikimi quhen porte, ose shkencërisht: pajisjet hyrëse dhe dalëse të të dhënave. Kunjat e portit mund të jenë hyrje, duke përdorur të cilat procesori merr informacion nga jashtë nga sensorë të ndryshëm, ose të jenë dalje, duke dërguar sinjale në të cilat mund të kontrollohen pajisjet e jashtme. Në mikrokontrolluesit modernë, kunjat e pothuajse të gjitha porteve janë me dy drejtime, d.m.th., ato mund të jenë si hyrje ashtu edhe dalje. Portat universale duhet të konfigurohen - vendosni mënyrën e funksionimit në hyrje ose dalje. Për këtë qëllim, ekziston një qelizë e veçantë në memorie - një regjistër i kontrollit të modalitetit të funksionimit të portit. Për shembull, për të bërë hyrjen (bitin) e kërkuar të portit, 1 ose 0 shkruhet në bitin e regjistrit të kontrollit, në varësi të modelit të mikrokontrolluesit.

Pajisjet periferike.
Por mikrokontrolluesi përmban jo vetëm një procesor dhe memorie. Rolin kryesor e luajnë të ashtuquajturat pajisje periferike: kohëmatës, numërues, krahasues analog, konvertues dixhital në analog dhe analog në dixhital, pajisjet e komunikimit serik (shpesh të quajtur porta serike). Shpesh mikrokontrolluesi ka gjithashtu një numër qelizash memorie jo të paqëndrueshme (më shpesh Flash), në të cilat mund të ruhen të dhëna të ndryshme.

Familjet e mikrokontrolluesve.
Prania e të gjitha pajisjeve të listuara në mikrokontrollues nuk është e nevojshme. Më shpesh, një prodhues prodhon disa modele produktesh që përmbajnë pajisje të ndryshme periferike. Mikrokontrolluesit me një lloj procesori (dhe një grup kodesh makinerish të ekzekutueshme), por pajisje të ndryshme periferike, i përkasin së njëjtës familje. Kështu thonë ata: mikrokontrolluesit e familjes ATtiny.

Multifunksionaliteti i kunjave të mikrokontrolluesit.
Mund të lindë pyetja: si "komunikojnë" të gjitha këto pajisje me botën e jashtme, nëse shumica e çipave në një paketë DIP nuk kanë më shumë se 40 kunja? Për të zgjidhur problemin e mungesës së pinit, përdoret një metodë për të kombinuar funksionet e disa pajisjeve duke përdorur një kunj të vetëm. Për shembull, kunjat e njërës prej portave (8 bit - 8 kunja) përdoren gjithashtu për të operuar një konvertues analog në dixhital, dhe kunjat e një porti tjetër përdoren si hyrje të krahasuesve analogë, një port serik ose për lidhja e nyjeve të tjera të integruara. Për të kontrolluar mënyrat e funksionimit të kunjave, përdoret një regjistër special i kontrollit të modalitetit të funksionimit të portit (u diskutua më herët kur u shpjeguan parimet e funksionimit të portit). Në shumicën e mikrokontrolluesve, kunjat kanë funksione të shumta. Nëse i referoheni dokumentacionit teknik për kontrolluesin, kur përshkruani funksionin e daljes, do të bëhet një shënim në lidhje me funksionet kryesore dhe alternative të këtij produkti. Për shembull: PD0/RX - biti zero i portës D është gjithashtu hyrja e portës serike, PB1/Ain0 - biti i parë i portës B është gjithashtu hyrja e krahasuesit analog.

Algoritmet. Programet.
Komandat për procesorin jepen në një rend të caktuar, në përputhje me një algoritëm të zhvilluar më parë. Një algoritëm është një sekuencë ekzekutimi nga një procesor. Për më tepër, komandat duhet të jenë të kuptueshme për procesorin, dhe në të njëjtën kohë të kenë një interpretim të qartë, pa asnjë pavarësi në ekzekutimin e tij. Algoritmi mund të shkruhet verbalisht. Për shembull: fillimi i programit; bëje bitin zero të portit një hyrje; bëje bitin e shtatë të portit një dalje; lexoni vlerën e bitit zero të portit; nëse është e barabartë me një logjik, atëherë kryeni veprimet e mëposhtme: ngarkoni një logjik në bitin e shtatë të portit; kthehuni në fillim të programit. Kështu përshkruam algoritmin e funksionimit të një qarku të përbërë nga një çelës, një llambë (ose ngarkesë tjetër) dhe një burim energjie. Rezultati i ekzekutimit do të jetë si më poshtë: kur shtypni butonin, voltazhi furnizohet në hyrjen e portit, procesori ekzekuton programin - ai furnizon tensionin në daljen e portit. Dhe ndërsa kontaktet janë të mbyllura, do të ketë tension në daljen e portit.
Por një shkrim i tillë është shumë i vështirë për t'u perceptuar. Prandaj, u zhvilluan metoda për përshkrimin grafik të algoritmit. Këtu është një shembull i një regjistrimi grafik të algoritmit të mësipërm.
Oriz. Algoritmi-1. Metoda grafike e përshkrimit të algoritmit

Komandat e degëve: degë të kushtëzuara dhe të pakushtëzuara.
Udhëzimet speciale të procesorit përfshijnë udhëzime të kërcimit të kushtëzuar dhe të pakushtëzuar. Për ta kuptuar këtë, është e nevojshme të shpjegohet koncepti i "treguesit të adresës së komandës që po ekzekutohet". Procesori ka një regjistër të posaçëm që ruan adresën e instruksionit aktualisht në ekzekutim. Kur aplikohet energjia, ky regjistër rivendoset dhe i shkruhet një zero. Më pas, procesori fillon të ekzekutojë komandat e ruajtura në memorie, duke filluar nga adresa zero - në fund të fundit, regjistri i treguesit të adresës së komandës së ekzekutuar përmban zero. Pas ekzekutimit të komandës, ky tregues inkriminohet, d.m.th., i rritet vlera. Procesori lexon instruksionin vijues nga memoria në adresën e specifikuar në tregues. Kjo do të thotë, komandat ekzekutohen në mënyrë sekuenciale. Ju mund të prishni sekuencën e ekzekutimit të programit duke përdorur komandat e kërcimit të kushtëzuar dhe të pakushtëzuar. Për ta bërë këtë, një komandë ruhet në një nga qelizat e memories, duke udhëzuar procesorin të ndryshojë vlerën e regjistrit të treguesit të adresës të instruksionit që po ekzekutohet. Një instruksion kërcimi i pakushtëzuar e udhëzon procesorin të ndryshojë rendin sekuencial të ekzekutimit të programit dhe të fillojë ekzekutimin e instruksioneve të ruajtura në memorie duke filluar nga adresa e specifikuar më parë.
Komanda e kërcimit të kushtëzuar është më komplekse: kur ekzekutohet, kontrollon nëse plotësohet ndonjë kusht. Për shembull, duhet të krahasoni vlerën e dy qelizave të kujtesës. Nëse vlera e qelizës së parë është më e madhe, atëherë vazhdoni të ekzekutoni programin në adresën A, përndryshe (d.m.th., vlera e qelizës së parë është më e vogël) - shkoni te adresa C.

Ndërprerjet dhe llojet e tyre. Ndërprisni prioritetet.
Ekziston një mënyrë tjetër për të "detyruar" procesorin të ndalojë ekzekutimin e njëpasnjëshëm të programit dhe të fillojë ekzekutimin e programit në një adresë specifike - thirrni një "ndërprerje". Koncepti i ndërprerjes u shfaq së bashku me përpunuesit e parë. Puna është se procesori kontrollon pajisjet që janë më të ngadalta se ai. Për shembull, procesori duhet të përpunojë të dhënat derisa të shfaqet një sinjal i caktuar. Le të japim një shembull të thjeshtë: procesori ekzekuton një program për të numëruar numrin e pulseve të marra në njërën prej porteve të tij. Kur shtypni butonin, procesori duhet të ndërpresë ekzekutimin e këtij programi dhe të ekzekutojë një program tjetër: aktivizoni një pajisje (d.m.th., aplikoni një logjik në një nga pjesët e portit - "1"). Si të zgjidhet ky problem? Në vetë programin, mund të anketoni vazhdimisht shifrën e kërkuar të portës me të cilën është lidhur butoni. Por në të njëjtën kohë, një pjesë e burimeve të procesorit (shpejtësia) praktikisht do të harxhohet në sondazhin e portit. Mënyra e dytë është përdorimi i ndërprerjeve. Procesori (dhe rrjedhimisht mikrokontrolluesi) ka një kunj të veçantë. Zakonisht quhet "Int" (anglisht: "Ndërprerje"). Kur një sinjal aplikohet në pinin "Int", ndodhin veprimet e mëposhtme:
- ndalimi i ekzekutimit të programit kryesor,
- vlera e regjistrit të treguesit të adresës së komandës së ekzekutuar ruhet në RAM (vendi ku ndërpritet ekzekutimi i programit),
- pas së cilës një adresë e re ngarkohet në të njëjtin regjistër (në varësi të dëshirave të prodhuesit të procesorit),
- në qelizën e kujtesës me adresën e specifikuar ka një komandë kërcimi të pakushtëzuar: "shkoni në adresën xx",
- në memorie, duke filluar nga qeliza me adresën xx, ekziston një program tjetër, le ta quajmë një program utility.

Në rastin tonë, programi i shërbimeve duhet të lëshojë një njësi logjike në port, duke ndezur kështu pajisjen e kërkuar. Dhe këtu fillon argëtimi: komanda e fundit e programit të shërbimeve është komanda "ndërprerja e daljes". Me marrjen e kësaj komande, procesori lexon vlerën e ruajtur më parë të regjistrit të treguesit të adresave të instruksionit nga memoria dhe e ngarkon atë në këtë regjistër. Rrjedhimisht, procesori vazhdon të ekzekutojë programin kryesor nga ku është ndërprerë.
Por një ndërprerje mund të shkaktohet jo vetëm nga sinjalet e jashtme, por edhe nga pajisjet e brendshme të vetë mikrokontrolluesit: kohëmatës, numërues, porte serike dhe madje edhe memorie jo të paqëndrueshme. Përsëri, kjo bëhet kryesisht për të zvogëluar numrin e komandave të ekzekutuara për të analizuar gjendjen e këtyre pajisjeve periferike. Le të japim një shembull: procesi i shkrimit të të dhënave në memorien jo të paqëndrueshme është shumë i gjatë, kohë gjatë së cilës procesori mund të ekzekutojë një numër shumë të madh komandash. Prandaj, procesori ekzekuton programin kryesor, lëshon një komandë për të fshirë kujtesën jo të paqëndrueshme dhe më pas vazhdon ekzekutimin e programit kryesor. Sapo të përfundojë pastrimi i memories jo të paqëndrueshme, qarqet e kontrollit gjenerojnë një sinjal ndërprerjeje nga kjo memorie. Procesori ndërpret ekzekutimin e programit kryesor dhe fillon procesi i shkrimit të të dhënave në memorie. Kjo metodë e kryerjes së një veprimi jashtë programit kryesor quhet modaliteti i sfondit. Gjithashtu thuhet shpesh: "kjo pjesë e programit funksionon në sfond".
Kur punoni me ndërprerje, duhet të keni kujdes: është e mundur një situatë në të cilën mund të ndërpritet ekzekutimi i programit dhe funksionimi i të gjithë pajisjes. Fakti është se mikrokontrolluesi ka disa ndërprerje. Për të kontrolluar mënyrat e funksionimit të ndërprerjeve, ekziston një regjistër i kontrollit të ndërprerjeve. Kur konfiguroni mënyrat e funksionimit të ndërprerjeve, keni lejuar të funksionojnë disa ndërprerje - kjo është një situatë normale. Por, pasi keni marrë një sinjal ndërprerjeje të jashtme ose të brendshme në programin kryesor dhe keni vazhduar të ekzekutoni programin e shërbimit të ndërprerjes, nuk i keni çaktivizuar ndërprerjet. Procesori është duke ekzekutuar një program utility dhe në këtë moment ai merr një sinjal tjetër ndërprerjeje. Procesori ndërpret ekzekutimin e programit të shërbimit dhe vazhdon me ekzekutimin e programit për përpunimin e një ndërprerjeje të re. Është e lehtë të imagjinohet se çfarë mund të çojë kjo.
Për të zgjidhur këtë problem, u zhvillua një metodë për t'i caktuar secilit ndërprerje një shkallë ashpërsie ose "përparësi të ndërprerjes". Në varësi të modelit të mikrokontrolluesit, përparësia e ndërprerjes mund të vendoset në mënyrë të ngurtë (dhe programuesi lejon ose çaktivizon vetëm përpunimin e një ndërprerjeje të caktuar), ose mund të zbatohet në mënyrë programore nga programuesit (d.m.th., përparësia e ndërprerjes varet nga preferencat e programuesit dhe algoritmi për zbatimin e një detyre specifike).

Ne kontrollojmë procesorin. Gjuhët e programimit. Përkthyesit.
Kodet e makinerive. montues.
Komandat për procesorin janë sekuenca njësh dhe zero. Shpesh komandat e procesorit quhen kode makinerie, duke theksuar se këto komanda fillimisht janë krijuar për një interpretues specifik - një makinë, por jo një person. Të kujtosh komandat nga numrat (kodet e makinerisë) është shumë e vështirë. Prandaj, për të thjeshtuar punën, u shpik një mënyrë për të zëvendësuar sekuencat dixhitale me shkurtesa simbolike që janë më të kuptueshme për njerëzit. Për shembull, për komandën "ngarkoni të dhënat" ata dolën me një shkurtim të qartë "ld" (anglisht "ngarkesë" - ngarkesë), për komandën "krahaso" - "cp" (anglisht "krahaso" - krahasim), dhe kështu në. Kjo metodë e regjistrimit simbolik të komandave të procesorit quhet "assembler". Nëse, kur punoni me kodet e makinës, programuesi fut drejtpërdrejt komandat e kontrollit të procesorit në memorien e pajisjes, atëherë kur punoni me assembler, ekziston një lloj ndërmjetësi midis programit dhe procesorit që konverton shënimet simbolike në kodet e makinës. Programi që vepron si ndërmjetës quhet përkthyes, d.m.th., përkthyes. Por ka një nuancë të vogël: assembler nuk i referohet vetëm metodës së përcaktimit simbolik të udhëzimeve dixhitale (kodet e makinerisë), por edhe një programi përkthyes që ndihmon programuesin të përkthejë emërtimet simbolike të komandave drejtpërdrejt në komanda të makinës. Prandaj, shpesh përdoret teknika e mëposhtme: kur flasin për një gjuhë, shkruajnë Assembler, kur flasin për një program, shkruajnë thjesht assembler.
Assembler ka një avantazh të madh: programet e shkruara në Asamble ekzekutohen shumë shpejt nga procesori. Fakti është se assembler është praktikisht një komandë makine. Por asembleri ka edhe disavantazhe: disavantazhi kryesor është vështirësia e shkrimit të programeve, e dyta është se edhe programet relativisht të thjeshta kanë një sasi të madhe teksti burimor, gjë që e bën të vështirë analizimin e programit.

Modulariteti i programeve. Detyrat e përsëritura shpesh.
Çdo programues ka grumbulluar një numër të caktuar programesh gjatë punës së tij. Por shumë programe përmbajnë të njëjtat veprime. Për shembull, shumë programe anketojnë tastierën dhe analizojnë butonin e shtypur. Kjo do të thotë se kjo pjesë e kodit të programit mund të transferohet nga një program në tjetrin. Bibliotekat e programeve u formuan gradualisht nga pjesë (module) të tilla. Programuesit filluan të "skalitin" një program nga modulet: domethënë, ata futën modulin e kërkuar në vendin e kërkuar në program. Kjo qasje përshpejtoi procesin e shkrimit të një programi dhe rriti besueshmërinë e programit në tërësi për shkak të përdorimit të moduleve tashmë të debuguara. Por që në ditët e para, u ngrit problemi i ndarjes së moduleve: në fund të fundit, secili programues shkroi module sipas "standardit" të tij - pasi ishte më i përshtatshëm për të në një kohë ose në një tjetër. Prandaj, gradualisht u zhvillua një standard (më saktë, disa fillime) për shkrimin e këtyre moduleve. Ata përshkruan strukturën e moduleve për "ngjitje" më të përshtatshme në një program.

Gjuhët e programimit dhe ndarja e tyre funksionale.
Gradualisht, këto standarde të ndryshme për përdorimin e moduleve formuan atë që më vonë do të quhej "gjuhë programimi". Ashtu si gjuhët njerëzore, një gjuhë programimi ka disa nënnivele që përcaktojnë si shkrimin e fjalëve individuale (module) dhe metodat e shkrimit të tyre, si dhe rregullat për përdorimin e tyre. Me kalimin e kohës, gjuhët e programimit kanë evoluar dhe ndryshuar. Gradualisht, të gjitha gjuhët e programimit u ndanë në disa grupe, në varësi të "orientimit të tyre profesional":
- gjuhë programimi të aplikuara (FORTRAN për matematikanët, FoxPro për punonjësit financiarë);
- universale (Pascal dhe Basic);
- sistemi (Assembler dhe C).

Fjalët e sistemit filluan të quheshin gjuhë të nivelit të ulët, d.m.th., programuesi punon në nivelin më të ulët, më afër procesorit. Dhe gjuhët, kur punonin me të cilat programuesi nuk duhet të kontrollojë drejtpërdrejt funksionimin e procesorit, filluan të quhen gjuhë të nivelit të lartë (shpesh të referuara si gjuhë Java). Mos e ngatërroni këtë shkurtim me emrin e gjuhës Java - "Java".

Transmetimi i programit. Metodat e transmetimit të një programi.
Ashtu si me asemblerin, një program i shkruar në çdo gjuhë të nivelit të lartë duhet të shndërrohet në udhëzime që procesori mund të kuptojë. Në fillim, kjo u bë me dorë: një komandë në asembler u gjet në një tabelë dhe u shkrua në kodin e makinës. Për të shpejtuar procesin e konvertimit (përkthimit) të një programi, u shkruan programe speciale - përkthyes. Ekzistojnë dy mënyra për përkthimin e një programi: interpretimi dhe përpilimi. Rrjedhimisht, një përkthyes quhet ose përkthyes ose përpilues. Kur përdorni një përkthyes, teksti burimor i programit analizohet dhe në mënyrë sekuenciale, komanda me komandë, ekzekutohet nga interpretuesi. Përkthyesi përmban module për të gjitha veprimet e përdorshme. Ky konvertim për udhëzim është shumë i ngadaltë. Por kjo metodë ka një avantazh të madh: ju mund të ndaloni programin, të ndryshoni kodin e tij dhe të vazhdoni ekzekutimin e tij. Kjo është e përshtatshme kur korrigjoni një program. Gjithashtu në këtë rast, ne kemi tekstin burimor të programit dhe mund ta modifikojmë atë shumë herë.
Kur përdorni një përpilues, teksti i programit analizohet dhe krijohet një skedar që përmban udhëzime të makinës, i quajtur skedar i ekzekutueshëm. Kjo siguron një shpejtësi shumë të lartë ekzekutimi të programit të kompiluar - sepse shndërrimi i tekstit të programit në kode makinerie ndodh vetëm një herë gjatë përpilimit të tij. Por nuk do të mund ta ndryshoni programin menjëherë: duhet të ndryshoni tekstin e programit dhe ta përpiloni përsëri. Nëse kodi burim mungon për ndonjë arsye, atëherë është e pamundur të ripërpiloni programin dhe ndryshimi i skedarit të ekzekutueshëm është jashtëzakonisht i vështirë.

Procesi i krijimit të një programi. Mjediset e zhvillimit të programit.
Me ardhjen e përkthyesve, procesi i krijimit të një programi filloi të dukej kështu:
- një algoritëm për programin e ardhshëm është duke u zhvilluar,
- algoritmi është i koduar (d.m.th., i përshkruar në formën e komandave të gjuhës programuese),
- kodi që rezulton është shkruar në një redaktues teksti,
- skedari me tekstin e programit i transferohet përkthyesit,
- përkthyesi konverton komandat simbolike në komanda të kuptueshme për procesorin dhe i ruan ato në një skedar,
- ky skedar ngarkohet në memorie.
Siç mund ta shihni, programuesi duhej të punonte në disa programe. Më shpesh, të gjitha këto programe janë shkruar nga prodhues të ndryshëm, kështu që përputhshmëria e këtyre programeve me njëri-tjetrin nuk ishte e garantuar. Përputhshmëria e tyre duhej të përcaktohej nga prova dhe gabimi.

Mjedisi i integruar i zhvillimit të softuerit.
Kohët e fundit, një qasje e re është shfaqur: "Mjedisi i Integruar i Zhvillimit" (IDE). Integrimi i referohet ekzekutimit në një program të të gjithë procesit të krijimit të një programi: pasi të ketë shkruar tekstin e programit, programuesi me një klikim të mausit fillon përkthimin e tekstit të programit në kodet e makinës, pas së cilës skedari i ekzekutueshëm që rezulton ngarkohet automatikisht në kujtesa e pajisjes së procesorit. Kjo do të thotë, gjithçka bëhet në një program. Kjo qasje shpejton punën e programuesit.

Vështirësitë e para.
Të gjithë kapitujt e mëparshëm ishin një kurs hyrës, duke ju përgatitur për të perceptuar informacione të reja. Kemi disa probleme gjatë rrugës.
1. Një sasi e madhe informacioni të larmishëm: elektronika, dizajni i mikrokontrolluesve, algoritmet, sintaksa e gjuhëve programuese, përshkrimet e punës me mjetet softuerike. Dhe si të shkruani? Një lexues është një inxhinier i mirë elektronik, por nuk ka shkruar kurrë një program, një tjetër është programues, por elektronika është në nivelin e një rrethi radioje, i treti është diçka në mes...

2. Zgjedhja MK: nëse të gjithë mikrokontrolluesit janë të mirë, atëherë në bazë të cilit produkti dhe cilit prodhues duhet ta bazojmë procesin e trajnimit të mëtejshëm dhe aplikimit praktik të mikrokontrolluesve?
Për të zgjedhur një mikrokontrollues për TRAJNIM, duhet të plotësojmë kushtet e mëposhtme:
A) mikrokontrolluesi i zgjedhur për trajnim duhet të jetë i aksesueshëm dhe i lirë.
B) duhet të jetë një produkt modern, por jo më i riu.

Tani në më shumë detaje për secilën pikë.
Me pikën A, gjithçka është e qartë: çfarë kuptimi ka të studiosh një produkt që është i vështirë për t'u blerë ose çmimi i tij është i tepruar për një fillestar.
Pika B kërkon sqarim. Fakti është se produktet e reja kanë gjithmonë disa të meta. Ato zbulohen vetëm pas njëfarë kohe, derisa dikush aksidentalisht ndeshet me këtë problem gjatë punës me këtë produkt. Por produktet e reja nuk e gjejnë menjëherë rrugën e tyre drejt modeleve të reja: kërkon kohë për të shkruar programe për modele të reja. Këtu ekziston një faktor njerëzor: zhvilluesit tashmë kanë zgjidhje të gatshme për modelet e mëparshme të mikrokontrolluesve, dhe kalimi në të reja është i vështirë.
Gjithashtu, të gjithë mikrokontrolluesit e rinj kanë vetëm një përshkrim të pronarit. Dhe është shkruar në anglisht dhe duke përdorur terma të shumtë profesionalë: në fund të fundit, është menduar për profesionistë! Dhe ne jemi studentë... Pas disa kohësh shfaqen shembuj dizajnesh, përshkrime më të detajuara me komente dhe këshilla të shumta. Pastaj dikush do të fillojë të përkthejë dokumentacionin në Rusisht (jo gjithçka, por të paktën më kompleksin ose më të përdorurin).
Mund të mos ketë mjete për një mikrokontrollues të ri: përpiluesit, korrigjuesit dhe programuesit "nuk e kuptojnë" këtë produkt. Përsëri, duke pritur derisa autorët e këtyre programeve të përditësojnë krijimet e tyre...

3. Ju duhet të zgjidhni një gjuhë programimi, mbi të cilin ne planifikojmë të shkruajmë programe për MK.
Zgjedhja e një gjuhe programimi është një detyrë shumë e ndjeshme. Për të mësuar programimin e mikrokontrolluesve, do të doja të përdorja një gjuhë programimi me një sintaksë të thjeshtë: programuesi duhet të merret me programin, por jo me dizajnin e tij!
Këtu është e nevojshme të bëhet një shpjegim paraprakisht: aktualisht, tre "familje" gjuhësh janë të njohura në mesin e zhvilluesve të programeve dhe pajisjeve në mikrokontrollues: C (shkruar si "C"), Pascal (Pascal) dhe BASIC (BASIC) . Pascal fillimisht u zhvillua si një mjet për të mësuar programimin. Vetë BASIC është i ngjashëm në strukturë me Pascal, por shkrimi i komandave është thjeshtuar dhe kërkesat për hartimin e programit janë shumë më pak. C konsiderohet të jetë një gjuhë për profesionistët. Xi është si filozofia kineze: jo vetëm simboli (urdhri) është i rëndësishëm, por edhe stili dhe ngjyra e tij. Shaka mënjanë, por mendimi im është ky: C është një makth. Përdorimi i tij justifikohet vetëm në disa detyra shumë të specializuara. Por detyra jonë është të provojmë forcat tona dhe t'i shpenzojmë sa më pak për detyra që nuk kanë lidhje të drejtpërdrejtë me qëllimin kryesor.

4. Ne kemi nevojë për një mjedis të zhvillimit të programit për mikrokontrolluesit. Zgjedhja e tij varet drejtpërdrejt nga lloji i MK i përdorur dhe gjuha e programimit.
Mjedisi i zhvillimit të programit është shumë i rëndësishëm për të zotëruar me sukses programimin e mikrokontrolluesve. Është e mundur të shkruash programe në një redaktues teksti si Notepad, por është i papërshtatshëm (e testuar!). Dhe thirrja e përpiluesit në linjën e komandës është një detyrë e pafalshme në epokën tonë të bazuar në dritare grafike.
Zgjedhja e mjedisit të zhvillimit varet drejtpërdrejt nga mikrokontrolluesi mbi të cilin do të ndërtojmë pjesën praktike të trajnimit. Mbi çdo gjë tjetër, ne duhet të kemi mjete falas. Por, siç ka treguar testimi i programeve të tilla, softueri i lirë më së shpeshti ka cilësi mesatare si nga pikëpamja e përdorimit ashtu edhe nga pikëpamja e mësimit të programimit MK: prania e gabimeve ose të metave në vetë përkthyesit krijon vështirësi shtesë. dhe ia privojnë dikujt besimin në vetvete.
Një version demo do të funksiononte gjithashtu, nëse do të kishte një minimum kufizimesh dhe do të funksiononte për të paktën gjysmë viti - kjo është pikërisht periudha e nevojshme për të fituar aftësi për të punuar me mikrokontrolluesit në shtëpi.

5. Një programues që do të përdoret për të ngarkuar programet e shkruara në kujtesën e MK. Zgjedhja e programuesit varet gjithashtu nga lloji i MK-së së përdorur. Ka, natyrisht, programues "universalë" që ju lejojnë të punoni me mikrokontrollues të ndryshëm dhe çipa memorie, por ato janë të shtrenjta. Po, dhe nuk nevojitet në shumicën e rasteve. Prandaj, është më e lehtë të prodhohet diçka shumë e specializuar për këtë familje të MK-ve.
Por çështja nuk është aq shumë kompleksiteti i qarqeve të programuesit, por metoda e lidhjes së këtij programuesi me PC. Këtu është e nevojshme të sqarohet: një programues është një përshtatës elektronik që konverton sinjalet nga ndërfaqet kompjuterike (portet COM, LPT dhe USB) në sinjale të furnizuara në daljet e MK për të ngarkuar programin në memorien e tij. Përshtatësi elektronik kontrollohet nga një program PC, i cili "e detyron" përshtatësin të lëshojë sekuencat e nevojshme të sinjaleve në kunjat MK.
Nëse një përshtatës programuesi i lidhur me një PC përmes portave COM dhe LPT mund të bëhet në shtëpi - "në gju", atëherë bërja e një përshtatësi të tillë, por i lidhur me një port USB, tashmë është disi problematike: zemra e një përshtatësi të tillë është shpesh... një mikrokontrollues. Këtu lind një paradoks: për të programuar MK-në duhet të programojmë MK-në.
Shtrohet një pyetje logjike: pse të bëni një përshtatës kompleks që lidhet me USB, kur mund të bëni një të thjeshtë dhe ta lidhni me një port LPT ose COM. Puna është se shumë (pothuajse të gjithë) kompjuterë modernë nuk i kanë këto porte. Prandaj, do t'ju duhet të bëni një përshtatës më kompleks për programimin e MK.

mars 2010

Këto pyetje ia bëra vetes në mars, dhe tani është fundi i nëntorit. Por kjo herë nuk ishte e kotë: gjeta një rrugëdalje nga situatat e përshkruara më sipër dhe gjeta përgjigje për të gjitha pyetjet që më munduan. Dhe tani gjërat e para së pari.

Përgjigja e pyetjes numër 1
Nëse materialet e kapitujve të mëparshëm do të mund të sistemoheshin disi logjikisht dhe të paraqiteshin hap pas hapi, atëherë materialet në kapitujt vijues jepen paralelisht: njëri nënkupton tjetrin. Ndoshta metoda ime e prezantimit të materialeve të reja do t'ju duket disi kaotike, por nuk mund të gjeja diçka më të bukur në dizajn.

Përgjigja e pyetjes numër 2
Mikrokontrollues i prodhuar nga ATMEL ATMEGA48. Është përshkruar mirë, është në prodhim prej disa vitesh, nuk planifikohet të ndërpritet për të paktën 3 vite të tjera dhe ka parametra teknikë optimalë.

Përgjigjet e pyetjeve 3 dhe 4
Mjedisi i programimit është BASCOM (prodhuar nga MCS Electronics, autor Mark Alberts). Gjuha e programimit është e ngjashme në stil dhe kërkesa për hartimin e tekstit të programit me Pascal, por sintaksa e komandës është marrë nga BASIC.
Arsyet e zgjedhjes:
- një version demo plotësisht funksional i përpiluesit (kufizimi i vetëm: kodi i krijuar nga përpiluesi është i kufizuar në madhësi 4 KB)
- dëshira e autorit të programit për të bashkëpunuar (përktheva mesazhet e ndërfaqes dhe sistemin e ndihmës në Rusisht, ai shtoi rusisht në këtë program)
- prania e një forumi në gjuhën ruse për përdoruesit e këtij përpiluesi

Përgjigja e pyetjes numër 5
Nuk ishte e mundur të kombinohej thjeshtësia e qarkut dhe USB. U vendos që të përshkruhen dy modele programuesish: njëri lidhet me portin LPT të kompjuterit, i dyti me portën COM. Nëse këto porte mungojnë, versioni i dytë i programuesit mund të lidhet me një kompjuter duke përdorur një konvertues USB-COM. Kështu marrim një kombinim USB-COM-programues-mikrokontrollues.
Modeli i parë i programuesit njihet si STK-200/300, përmban një çip tampon të gjendjes së tretë dhe disa rezistorë. Modeli i dytë është programuesi i mirënjohur USBasp.

Situata kur përdoruesit e pajisjeve të zyrës së printimit duhet të zgjidhin problemin se si të rivendosni një fishek është mjaft e zakonshme. Ju mund ta përballoni atë duke përdorur disa mënyra, dhe absolutisht në mënyrë të pavarur. Por, para se të fillojmë të zgjidhim problemin se si të rivendosni çipin e fishekut, duhet thënë se çipi në printer është krijuar për të regjistruar informacione në lidhje me burimin e materialeve harxhuese dhe faqet e printuara.

Kur pajisjet e zyrës sinjalizojnë nevojën për të zëvendësuar kutinë e bojës, mbani në mend se kjo nuk do të thotë që në të vërtetë nuk ka mbetur bojë në të. Thjesht, fisheku i copëtuar ka arritur një kufi të caktuar të faqeve të printuara. Dhe mbi to, nga ana tjetër, mund të kishte vetëm 5-6 rreshta teksti. Rezulton se niveli i bojës së printerit dhe MFP llogaritet në mënyrë programore dhe, si rregull, nuk ka asnjë informacion se sa bojë ka mbetur në të vërtetë në enë. Është për këtë arsye që shpesh lind pyetja se si të rivendosni çipin në fishek në mënyrë që të përdorni të gjithë bojën që ndodhet në kontejnerin e tij.

Natyrisht, në vend që të rivendosni fishekun dhe të rivendosni sportelin, thjesht mund të injoroni paralajmërimet nga pajisjet e zyrës suaj se kapaciteti i konsumit është pothuajse bosh. Por kjo është e rëndësishme vetëm nëse printeri juaj ose pajisja shumëfunksionale nuk e bllokon automatikisht procesin e printimit kur shfaqen mesazhe të tilla. Për të përballuar detyrën se si të rivendosni fishekun dhe kështu të zhbllokoni printerin, duhet të përdorni metodat e përshkruara më poshtë.

Si të përdorni programuesin?

Për t'iu përgjigjur pyetjes se si të rivendosni printerin, duhet të përdorni një programues të veçantë. Ju lutemi vini re se rivendosja e printerit do të kryhet sa më me sukses që të jetë e mundur nëse për këtë qëllim përdorni programuesin që është krijuar posaçërisht për modelin tuaj të printimit të pajisjeve të zyrës.

Programuesi i çipave mund të punojë me një numër të madh çipash nga printera të ndryshëm. Është i lehtë për t'u përdorur (shpesh një softuer i tillë ka një funksion programimi automatik), ka një ndërfaqe të plotë USB, kontroll manual dhe automatik të energjisë CRUM, si dhe ergonomi.

Kështu, për të rivendosur numëruesin, thjesht duhet të zgjidhni modelin e dëshiruar duke përdorur një softuer të tillë universal dhe të prisni që procedura të përfundojë. Shpesh, programuesit universalë kanë një funksion shumë të përshtatshëm skanimi. Me ndihmën e saj. Ju mund të zbuloni se cilës pajisje i përket ky apo ai çip. Duhet shtuar gjithashtu se një programues i tillë çipi nuk ka nevojë për internet.

Pra, nëse për të zgjidhur një problem si "si të rivendosni numëruesin" keni blerë një programues që përputhet me printerin tuaj, atëherë së pari lexoni me kujdes udhëzimet për përdorim. Aty mund të mësoni për të gjitha rekomandimet që kanë të bëjnë me funksionimin e pajisjes.

  • Përpara se të rivendosni numëruesin, sigurohuni që të çmontoni tonerin/fishekun e bojës dhe më pas hiqni çipin prej tij. Përkundër faktit se çdo model i pajisjeve të zyrës së printimit ka karakteristikat e veta të zerosjes së numëruesit, në përgjithësi procesi është pothuajse identik në shumicën e modeleve.
  • Për të rivendosur numëruesin, futni çipin në lidhësin e një programuesi të blerë më parë, i cili, nga ana tjetër, duhet të lidhet me portën e një kompjuteri personal.
  • Shkarkoni softuerin e çipit për të ndihmuar në zgjidhjen e problemit se si të ndezni fishekun.
  • Pasi të keni hapur softuerin e krijuar për çipat e materialeve harxhuese të pajisjeve të zyrës së printimit, rivendosni të gjitha informacionet në lidhje me përdorimin e materialeve harxhuese. Do të ishte një ide e mirë që fillimisht të shkarkoni skemën e rivendosjes së firmuerit nga burimet tematike të internetit.
  • Ruani të gjithë rezultatin e punës së bërë, më pas hiqni me kujdes çipin nga pajisja dhe mbushni përsëri kutinë e tonerit ose të bojës.
  • Në fund, gjithçka që duhet të bëni është të futni materialin harxhues me numëruesin e rivendosjes përsëri në pajisjen e printimit dhe të provoni funksionimin e tij duke printuar një faqe provë.

Por duhet të kuptoni se një programues i tillë kushton mjaft para - çmimi i tij është i krahasueshëm me koston e një pajisjeje të re printimi, kështu që për një printer shtëpiak, alternativa më e mirë është zëvendësimi i çipit. Çipat e printerit janë të lira dhe janë shumë të lehta për t'u ndryshuar.

Vetë-rivendosja

Një mënyrë tjetër për të rivendosur numëruesin e fishekut për të anashkaluar funksionin e bllokimit të printimit dhe rimbushjen e materialeve harxhuese është përdorimi i një qasjeje manuale. Për këtë qëllim, ndiqni këto hapa:

  • Para së gjithash, hiqni materialet harxhuese nga pajisjet e zyrës.
  • Klikoni në butonin "Anulo" në menynë e shërbimit të pajisjes printuese duke mbajtur shtypur "OK". Pas disa sekondash, mund të lëshoni të dy butonat.
  • Gjeni një artikull në meny të quajtur "Resets Menu", pastaj klikoni "OK".
  • Tani duhet të zgjidhni "Rivendosja e pjesshme". Pajisja juaj më pas do të fiket.
  • Aktivizoni printerin ose pajisjen tuaj shumëfunksionale, zgjidhni rajonin dhe gjuhën tuaj dhe më pas ndiqni të gjitha udhëzimet që ju ofron pajisja e printimit.
  • Kontrolloni nivelin e bojës nëse ky parametër nuk është 100 për qind, atëherë përsëritni hapat e listuar më parë; Sidoqoftë, në vend të artikullit "Rivendosja e pjesshme", duhet të klikoni në "Rivendosja gjysmë e plotë".
  • Përndryshe, mund të provoni të mbani të shtypur butonin Reset/Stop në vetë pajisjen e printimit për rreth dhjetë sekonda. Falë këtij veprimi, niveli i bojës në materialin harxhues thjesht nuk do të monitorohet më nga printeri. Por kjo qasje ka një pengesë. Fakti është se pas një operacioni të tillë do të duhet të monitoroni vetë nivelin e bojës në secilën fishek.

Ju lutemi vini re se hapat e përshkruar më sipër janë të përshtatshëm vetëm për disa modele printerësh. Shumica e pajisjeve kërkojnë firmware të fishekut. Për të zbuluar se si ta bëni atë posaçërisht për modelin e printerit tuaj, përdorni kërkimin sipas modelit të pajisjes në menynë anësore.

Çfarë duhet të bëni nëse nuk mund ta rivendosni çipin?

Por nëse nuk jeni në gjendje të zhbllokoni printerin ose materialet harxhuese MFP, atëherë ka vetëm një rrugëdalje nga kjo situatë, që është zëvendësimi i çipit. Por patjetër duhet të keni parasysh që çipi do të duhet të zëvendësohet sa herë që rimbushni një material harxhues. Në përgjithësi, gjetja e çipave të përshtatshëm për fishekë të modeleve të ndryshme të printerëve nuk është problem sot, sepse... Tregu modern i pajisjeve të zyrës dhe komponentëve të tij është i tejmbushur me një numër të madh ofertash.

Një mënyrë tjetër për të zgjidhur këtë problem është të rifreskoni vetë pajisjet e zyrës. Për ta bërë këtë, do t'ju duhet të njiheni me materialet përkatëse në faqen tonë të internetit ose të përdorni shërbimet e specialistëve nga çdo qendër shërbimi e besueshme.