Tartalomjegyzék:
- 1. lépés: Követelmények
- 2. lépés: A programozó felépítése
- 3. lépés: Programozó szoftver telepítése
- 4. lépés: A chip programozása
- 5. lépés: Összeszerelés
- 6. lépés: A kód magyarázata
- 7. lépés: További források
Videó: Bevezetés a 8051 programozásba az AT89C2051 segítségével (vendégszereplő: Arduino): 7 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
A 8051 (más néven MCS-51) a 80-as évekbeli MCU-dizájn, amely ma is népszerű. A modern 8051-kompatibilis mikrokontrollerek több gyártótól kaphatók, minden formában és méretben, valamint perifériák széles választékával. Ebben az utasításban az Atmel AT89C2051 MCU -ját fogjuk nézni.
Az AT89C2051 egy kicsi (2Kbyte Flash, 128byte RAM), olcsó (~ 1,40 USD chipenként) mikrokontroller.
- 2,7-6V működés
- 15 I/O vonal
- 2 időzítő (16 bit)
- Belső és külső megszakítások
- UART
- Chipen belüli analóg összehasonlító
- Akár 2MIPS 24MHz -es órával
1. lépés: Követelmények
Követelmények:
- Linux PC (szükséges szoftver: Arduino IDE, git, make, sdcc)
- Arduino UNO
- AT89C2051 chip (DIP20 csomag)
- 20 tűs ZIF foglalat
- Optocsatoló (lehetőleg MOSFET kimenet)
- Arduino prototípus -pajzs
- 12V -os tápegység
- 5V -os tápegység
- 16 MHz -es kristály oszcillátor
- 2x 30pF kondenzátor
- 100nF kondenzátor
- Dióda (pl. 1N400X)
- Ellenállások (1K, 3K3)
- Protoboard
- Jumpers
- Rézdrót
Ellenőrizze a szükséges szoftvert:
melyik python3
amelyek melyik sdcc -t melyik git teszik
2. lépés: A programozó felépítése
Ez a rész rövid lesz, mivel a programozási pajzsot egy ideje építettem. Csatoltam az összeállított tábla rajzát és képeit. A vázlatos PDF -fájl megtalálható a lerakatban.
Be kell programoznia a programozó táblát:
1. Klónozza a tárolót.
git klón
2. Nyissa meg az AT89C2051_programmer/AT89_prog/AT89_prog.ino fájlt az Arduino IDE -ben.
3. Készítse el és töltse fel a vázlatot az Arduino IDE -ből.
3. lépés: Programozó szoftver telepítése
1. Hozzon létre egy python virtuális környezetet.
python3 -m venv venv
. venv/bin/aktiválni
2. Telepítse az at89overlord programot. Az at89overlord egy nyílt forráskódú programozó az általam írt AT89C2051 chiphez. Forráskódja itt található.
pip install at89overlord
3. Ellenőrizze a telepítést.
at89overlord -h
4. lépés: A chip programozása
1. Egy egyszerű villogó projekt klónozása.
cd ~
git klón https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. Készítse el az alkalmazást.
készítsen
3. Csatlakoztassa az Arduino -t a számítógéphez, csatlakoztassa a 12 V -os tápegységet, és helyezze az AT89C2051 chipet a ZIF aljzatba.
4. Keresse meg az Arduino soros portját.
ls /dev /tty*
5. Töltse fel a beépített IntelHex fájlt a chipre. Ha az Arduino portja eltér a /dev /ttyACM0 -tól, akkor a helyes értéket kell megadnia a -p parancssori paraméterrel.
at89overlord -f./hello.ihx
5. lépés: Összeszerelés
Szerelje össze az áramkört a vázlat szerint. A PDF -változat megtalálható a lerakatban.
Látnia kell a zöld LED -es villogást, amelynek frekvenciája körülbelül 0,5 Hz.
6. lépés: A kód magyarázata
#befoglalni
#befoglalni
Kezdjük azzal, hogy belefoglaljuk az AT89X051 fejlécet az sdcc -ből. Makrókat tartalmaz a regiszterekkel való interakcióhoz, mintha változók lennének. Ide tartozik az stdint.h is, amely az uint8_t és az uint16_t egész számok definícióit tartalmazza.
// Feltételezve, hogy az oszcillátor 16MHz
#define INTERRUPTS_PER_SECOND 5208
Megszakítás következik be, amikor az Timer0 túlcsordul. Egyetlen 8 bites időzítőként van konfigurálva, így ez 2^8 processzorciklusonként történik. Egy processzorciklus 12 óra ciklust vesz igénybe, így elérjük az 16000000/12/2^8 = 5208.33333 értéket.
illékony uint8_t led_state = 0;
illékony uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Kijelentjük a led állapotvezérlés és megszakítás számláló változókat.
void Timer0_ISR (void) _interrupt (1) {
timer_counter--; if (timer_counter == 0) {led_state =! led_state; időzítő_számláló = INTERRUPTS_PER_SECOND; }}
Minden alkalommal, amikor az Timer0 túlcsordul, a számláló csökken. Ha nulla, akkor visszaáll, és a led állapot megváltozik. Ez másodpercenként körülbelül egyszer fordul elő, ami ~ 0,5 Hz LED villogási frekvenciát eredményez.
int main () {
TMOD = 0x3; // Időzítő mód - 8 bit, nincs előskálázó. freq = OSCFREQ/12/2^8 TL0 = 0; // Számláló törlése TH0 = 0; // Regiszter törlése TR0 = 1; // Időzítő beállítása futásra. ET0 = 1; // Megszakítás beállítása. EA = 1; // Globális megszakítás beállítása. while (1) {if (led_state) {P1 = 0xFF; } else {P1 = 0x00; }}}
Konfiguráljuk az időzítő modult, és várjuk a változásokat a led állapotvezérlő változóban. A TMOD az időzítő mód vezérlő regisztere. A TL0 és a TH0 Timer0 vezérlőregiszterek. Az ET0 az engedélyezés-időzítő0 bit az időzítővezérlő regiszterben (TCON). A TR0 és az EA bitek a megszakítás engedélyezési regiszterben (IE).
7. lépés: További források
- AT89C2051 adatlap:
- Kis eszköz C fordító (sdcc):
- 8051 források:
- AT89C2051 programozó adattár:
- hello-8051 adattár:
Ajánlott:
Covid védősisak 1. rész: Bevezetés a Tinkercad áramkörökbe!: 20 lépés (képekkel)
Covid védősisak 1. rész: Bevezetés a Tinkercad áramkörökbe!: Helló, barátom! Ebben a kétrészes sorozatban megtanuljuk használni a Tinkercad áramköreit - ez egy szórakoztató, hatékony és oktató eszköz az áramkörök működésének megismerésére! A tanulás egyik legjobb módja, ha megteszed. Tehát először megtervezzük saját projektünket:
Bevezetés az IR áramkörökbe: 8 lépés (képekkel)
Bevezetés az IR áramkörökbe: Az IR egy összetett technológia, mégis nagyon egyszerű vele dolgozni. A LED -ekkel vagy a LASER -ekkel ellentétben az infravörös nem látható emberi szemmel. Ebben az utasításban 3 különböző áramkörön keresztül mutatom be az infravörös használatát. Az áramkörök nem lesznek
Micro: bit Zip Tile Bevezetés: 9 lépés (képekkel)
Micro: bit Zip Tile Bevezetés: Mielőtt folytatnám a Micro: bit MU látásérzékelő utasításainak sorozatát, ezt a Kitronik Zip Tile -hez kell tennem, mivel használni fogom. A Kitronik Zip Tile mostantól csak hívd Zip -nek, ez egy 8x8 -as neopixel szőnyeg
Első lépések az Esp 8266 Esp-01 használatával az Arduino IDE - -vel Esp táblák telepítése Arduino Ide programozásba és Esp programozása: 4 lépés
Első lépések az Esp 8266 Esp-01 használatával az Arduino IDE | -vel Esp táblák telepítése Arduino Ide programozásba és Esp programozása: Ebben az oktatóanyagban megtanuljuk, hogyan kell telepíteni az esp8266 táblákat az Arduino IDE programba, és hogyan kell programozni az esp-01 kódot, és feltölteni a kódot. ez és a legtöbb ember problémával szembesül
Bevezetés a hangfelismerésbe Elechouse V3 és Arduino segítségével: 4 lépés (képekkel)
Bevezetés a hangfelismerésbe az Elechouse V3 és az Arduino segítségével: Üdv …! A hangfelismerő technológia itt volt az elmúlt néhány évben. Még mindig emlékszünk arra a nagy izgalomra, amelyet az első Siri -kompatibilis iphone -nal folytatott beszélgetésünk során tapasztaltunk. Azóta a hangvezérlő eszközök nagyon magas szintre nőttek beyo