
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47

Ez egy sorozat kezdete, amely megtanítja az AVR mikrovezérlő programozását a Bascom AVR segítségével.
Miért csinálom ezt.
A sorozat legtöbb programmintáját az Arduino segítségével készítheti el.
Néhány könnyebb és néhány nehezebb, de végül mindkettő ugyanazon a vezérlőn fog futni.
De a programozás módja minden fejlesztési környezetben más. Az Arduino mindenhez könyvtárra van szüksége, kivéve az alapvető funkciókat. A Bascom könyvtárakkal is dolgozik, de ritkán kell egyet felvennem. Az Arduino segítségével minden hardver-specifikus beállítás a könyvtárakon keresztül történik. nagyon kevés befolyása van a mikrokontroller tényleges teljesítményére. Kezdve a vezérlő által biztosított időzítőkkel. az arduino -val megint könyvtár kell. ha megvan az időzítő, amíg nem működik, akkor lehet, hogy egy másik könyvtár ütközik a beállításaival. A bascom -nál szabadon hozzáférhet a teljes hardverhez, beleértve az arduino által elfoglalt rendszerindítási szektort. a bascom egyes könyvtárai például megkérdezik, hogy melyik időzítőt szeretné használni. másrészt, mivel az arduino nagyon megkönnyíti a saját könyvtár létrehozását, természetesen olyan platformmá teszi, ahol az új hardverek és érzékelők általában közvetlenül rendelkeznek könyvtárral. amit gyakran társítanak a bascom sok kutatásához, és azokat a funkciókat, amelyeket egy könyvtár normál esetben elvállalna, akkor gondosan be kell építeni a programkódba. de jó hír, hogy a bascom közösség is nagyon nagy, ezért van megoldás minden ötletre.
Tehát részben a projekttől függ, hogy mit használnak a fejlesztési környezethez, részben pedig a programozó személy tudásától.
de miért csinálom ezt a sorozatot. egyrészt sok pénzt takarít meg. Nem kell minden projekthez arduino táblát vásárolnom. Például: Egy noname Arduino uno ára körülbelül 12 euró, a rajta lévő vezérlő mindössze 2,5 euróba kerül a stabil működéshez szükséges minimális áramkörrel, körülbelül 4 euróba kerül. másrészt a támogatott avr chipek teljes választéka elérhető. atmegas 8 -tól 256 -ig és attiny -tól 8 -ig 2313 -ig és sok olyan xmega -típustól, amelyekről nincs tapasztalatom. Ha csak egy szervót és egy ultrahangos érzékelőt szeretne használni, amely felismeri például a kezet, majd kinyitja a szemetes fedelét, akkor a lehető legkisebb chipet használhatja. Tehát sok oka van egy második nyelv tanulásának.
Tehát kezdjük
Kellékek
Ez a chip szükséges működéséhez és programozásához szükséges minimális alkatrészek listája.
Breadboard teszteléshez
Atmega 8-16PU (jobb, ha 2 vagy 3-at veszel, ha véletlenül megöli őket)
7805 5V feszültségszabályozó
10Kohm ellenállás
100nF film kondenzátor
10µF elektrolit kondenzátor
100µF elektrolit kondenzátor
néhány vezeték a kenyértáblához
Windows PC 7/8/8.1/10
ISP programozó (itt fogom használni az USB -s asp -t, amelyet Amazonon vásárolhat meg kevés pénzért)
Bascom AVR (itt letölthet egy DEMO -t. Minden funkció fel van oldva, de csak 4Kb méretű kódot írhat, ami sok kódhoz elegendő).
Opcionális alkatrészek:
LED -ek ellenállással
nyomókapcsolók
projekt-specifikus részek
1. lépés: A Bascom telepítése és beállítása



Töltse le a fájlt, és telepítse a Bascom AVR -t. Telepítse annak minden részét, beleértve a telepítés utáni utolsó jelölőnégyzetet is.
Ezután indítsa újra a számítógépet, különben a bascom nem indul el.
Az újraindítás után indítsa el a bascom -ot.
Lépjen az Opciók -> Programozó menüpontra, és válassza az USBasp lehetőséget a listából, mentse el a beállításokat, és zárja be a Bascom -ot.
Használja ezt a programot az usbasp telepítéséhez. Ezt követően indítsa újra a számítógépet. Most csatlakoztassa az USBasp -ot a számítógéphez, és indítsa el az eszközkezelőt. Az USBasp -nek meg kell jelennie a libusb eszközökön.
Stat Bascom újra, és hozzon létre egy új fájlt. Mentse el a számítógépére, és nyomja meg az F7 gombot a billentyűzeten.
A fordító elindítja és lefordítja az üres programot. Most tesztelheti a programozó működését.
Nyomja meg az F4 gombot a billentyűzeten a programozó ablak elindításához. Most lépjen a chip -> azonosításhoz az interakció elindításához. Az USBasp LED -jeinek rövid ideig villogniuk kell. Olyan üzenetet kell kapnia, mint a chip Id FFFFFF nem tudta olvasni az eszközt. Ez jó jel, hogy a Programozó dolgozik, de nem talált chipet.
Most elkezdhetjük az első áramkör építését.
2. lépés: Nézzük meg közelebbről a chipet

Ha megnézzük a chip pinoutját, úgy tűnik, hogy a chip nem hasonlít az arduino táblához. Persze, Atmega8 -at használunk, az Arduino uno -n pedig Atmega328 -at. De a Pinout majdnem ugyanaz, de az Arduino Uno kártya chipje több funkcióval rendelkezik. Itt vannak a csapok nevei. A VCC és a GND a tápellátás csapjai.
Az AREF és az AVCC az analóg -digitális átalakító referenciafeszültségének és tápellátásának csapjai.
A PB 0-7 PC 0-6 PD 0-7 általános célú bemeneti kimeneti tüskék többféle foglaltsággal.
a reset pin azt mondja a név. A chip újraindításához. A visszaállítás neve fölötti sor tagadást jelent. Ez azt jelenti, hogy a chip visszaállításához le kell húznia 0V -ra.
A következő csapokhoz külön utasításokat kell készíteni hamarosan.
Az RXD TXD az UART soros kommunikáció hardvercsapjai.
Az INT0 INT1 hardver megszakító csapok
XCK /T0 UART Óraforrás /Időzítő /Számláló0 Óraforrás
Az XTAL /TOSC érintkezők akár 16 MHz -es külső kristályokhoz (különböző modellek 20 MHz -ig) /Kristálytűk belső RTC -hez
A T1 hasonló a T0 -hoz
Az AIN csapok az analóg összehasonlítóhoz vannak
Az ICP1 hasonló a T0/T1 -hez
Az OC1A a pwm timer1 A csatorna hardver kimeneti csapja
SS / OC2 chip kiválasztó csap SPI / hasonló OC1B -hez, de B csatorna
A MOSI MISO SCK / OC2 a hardveres SPI és a programozási / PWM kimeneti időzítő2 csapjai
Az ADC0 – ADC5 analóg bemenetek
Az SDA SCL a hardver I2C csapjai
A normál chip 4, 5 V és 5, 5 V között működhet, az Atmega 8L sokkal alacsonyabb feszültséggel.
Látod, még ez a chip is többet tud, mint egy Arduino Uno, úgy tűnik, nem. De az Arduino is képes rá, csak programoznia kell.
3. lépés: Az első kör


Itt az ideje, hogy felépítse az első áramkört.
Általában mi az első áramkör? Jobb! Villogjunk egy LED -et.
A LED a PB0 -hoz van csatlakoztatva. A chip melletti ellenállás 10 k ohm.
A LED melletti ellenállás 470 Ohm.
Most csatlakoztathatja az USBasp -ot az Atmega -hoz, a képen látható módon.
De mielőtt bekapcsolná a készüléket, írjuk meg a programot.
4. lépés: Írja be az első programot

Hozzon létre egy új fájlt a Bascomban, és írja be a következő szöveget.
$ regfile "m8def.dat"
$ crystal = 1000000 konfigurációs portb.0 = kimenet portb.0 = 1 várakozás 1 portb.0 = 0 várakozás 1 hurok
ezt követően fordítsa le az F7 billentyű lenyomásával.
Most programozhatjuk a chipet az F4 megnyomásával. Megjelenik a programozó ablak. Itt az ideje, hogy bekapcsolja a tápellátást a kenyérpultról. 6 és 12 volt közötti feszültséget kell alkalmazni.
Most menjen a chiphez -> autoprogram. Ha a programozó ablak automatikusan bezárul, a programozás sikeres volt.
A LED -nek egy másodperc frekvencián kell villognia.
Most nézze meg közelebbről a programot a szintaxis megértéséhez.
$ regfile "m8def.dat"
$ kristály = 1000000
$ regfile segítségével megmondjuk a fordítónak a használt chip típusát, az Arduino chip neve "m328pdef.dat"
$ kristály segítségével megmondjuk neki a processzor sebességét 1MHz körül.
config portb.0 = Kimenet
ez azt jelenti, hogy a PB0 -nak kimenetként kell működnie.
Egyébként a PB0 rövidítés a B port 0. bitjét jelenti. A chip több portra van osztva. Minden port kap egy betűt az egyértelmű azonosítás érdekében. és mindegyik portpin egy kicsit 0 -tól 7 -ig. Például egy teljes bájtot írhatok a port kimeneti regiszterébe, amely az egyes porttűkön keresztül kerül ki.
tedd
hurok
Az Arduino -ban ezt jelenti a void loop utasítás. A két parancs között mindörökké megismétlődik. (néhány kivételtől eltekintve, de erről később)
Portb.0 = 1
várj 1 portb.0 = 0 várj 1
Itt csíráztatjuk a led villogását.
A Portb.0 = 1 utasítja a chipet, hogy kapcsolja ki a PB0 kimenetet 5 V -ra
a wait 1 parancs hagyja a chipet várni egy másodpercet. Ha gyorsabban szeretné váltani a ledet, akkor a wait parancsot wams -okra kell cserélnie, most megadhat egy kis időt ezredmásodpercben, pl. Waitms 500. (A waitus azt jelenti, hogy várakozni kell nanoszekundumokban)
A Portb.0 = 0 jelzi a chipnek, hogy kapcsolja ki a PB0 kimenetet 0V -ra.
5. lépés: Adjon hozzá egy gombot a bemenetek használatához

Most hozzáadunk egy gombot, hogy világítson a led, ha megnyomja a gombot.
Helyezze be a gombot a képen látható módon.
most írja be a következő programot.
$ regfile "m8def.dat"
$ crystal = 1000000 konfigurációs portb.0 = kimeneti konfigurációs port.7 = bemeneti port.7 = 1 tegye meg, ha pind.7 = 0, majd portb.0 = 1 más portb.0 = 0 hurok
Ha feltölti ezt a programot a chipre, a LED csak a gomb megnyomásakor világít. De miért?
a program ugyanúgy indul, mint az utolsó
config portd.7 = bemenet. Ez azt jelenti, hogy a gombhoz csatlakozó PD7 érintkező bemenetként működik.
Portd.7 = 1 nem kapcsolja a tűt magasra, de aktiválja az Atmega belső felhúzó ellenállását.
Az if statemend kicsit furcsának tűnik, ha megszokta az arduino -t.
ha az if utasítást használja, akkor az "akkor" utasítást kell használnia. Ebben a mintában az if utasítást egyetlen parancsműveletekhez használják. Ha több parancsot szeretne használni, akkor ezt így kell megírnia.
ha pind.7 = 0 akkor
portb.0 = 1 néhány kód valamilyen kód valamilyen kód más portb.0 = 0 vége, ha
ehhez az if utasítás használatához a végén lévő "end if" utasítást kell használnia.
ami még fontos. Talán már látta. a bemeneteket nem a portx.x, hanem a pinx.x lekérdezi. Erre könnyen emlékezhet. A kimenetek szóban "o" (port), a bemenetek "i" (pin).
Most rajtad a sor, hogy játssz egy kicsit.
Hamarosan megérkezik a következő utasításom (szabványos állítások, mint a while, kis- és nagybetűk, és változók.)
Ha tetszik az utasításom, és többet szeretnél, szólj hozzászólásban.
Ajánlott:
Kezdő lépések a Flipboard használatával: 9 lépés

A Flipboard használatának első lépései: Ez a rövid oktatóanyag a Flipboard mobilalkalmazás első lépéseit segíti elő. Ez csak bevezető, mivel sok testreszabható funkció van a Flipboardban. Miután befejezte ezt az oktatóanyagot, rendelkeznie kell a Flipboard alapvető ismereteivel
Raspberry Pi B+ Kezdeti útmutató: 6 lépés

Raspberry Pi B+ Kezdeti útmutató: Ez egy oktatóanyag a málna pi b+ modell használatának megkezdéséhez
Kezdeti lépések a Micro -val: bit: 6 lépés (képekkel)

A Micro: bit használata: A micro: bit egy mikrokontroller - egy kis számítógép, amely lehetővé teszi az elektronika vezérlését. Sok funkciót tartalmaz egy apró elektronikai táblán: gyorsulásmérő érzékelő a mozgás, a szög és a gyorsulás érzékelésére; egy magnetométer érzékelő a mágneses érzékeléshez
Kezdeti EMF érzékelő: 3 lépés

Rudimentív EMF -érzékelő: Ez egy olyan projekt, amely kevés tapasztalatot igényel az elektronikával és az arduinókkal kapcsolatban. A bemutatott eszköz egy egyszerű EMF -érzékelő, amely felveszi a kóbor töltéseket a környezetéből. Ha az arduino -ból kinyúló antenna egy vezeték hatótávolságán belül van, vagy
Speak & Spell: Kezdeti barkácsolás: 8 lépés

Speak & Spell: Kezdeti barkácsolás: Ezek az utasítások a Texas Instruments vintage tanulási segédeszközeire vonatkoznak: Speak & Matematika, Beszéd & Varázslat és beszéd & Olvas. Módosítások & Csere: hangszórórács hab Elemtartó rekesz: Hozzáférési kulcs Akkumulátor eltávolítása: Húzza ki a füleket