Obsah:
- Krok 1: Požadavky
- Krok 2: Sestavení programátoru
- Krok 3: Instalace softwaru programátoru
- Krok 4: Programování čipu
- Krok 5: Montáž
- Krok 6: Vysvětlení kódu
- Krok 7: Další zdroje
Video: Úvod do programování 8051 s AT89C2051 (hostující hvězda: Arduino): 7 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:24
8051 (také známý jako MCS-51) je design MCU z 80. let, který je dodnes populární. Moderní mikrokontroléry kompatibilní s 8051 jsou k dispozici od více dodavatelů, ve všech tvarech a velikostech a se širokou škálou periferií. V tomto pokynu se podíváme na MCU AT89C2051 od společnosti Atmel.
AT89C2051 je malý (2 kB Flash, 128 bajtů RAM), levný (~ 1,40 USD za čip) mikrokontrolér.
- Provoz 2,7-6V
- 15 I/O linek
- 2 časovače (16 bitů)
- Interní a externí přerušení
- UART
- Analogový komparátor na čipu
- Až 2MIPS s hodinami 24 MHz
Krok 1: Požadavky
Požadavky:
- Linux PC (požadovaný software: Arduino IDE, git, make, sdcc)
- Arduino UNO
- Čip AT89C2051 (balíček DIP20)
- 20kolíková zásuvka ZIF
- Optočlen (nejlépe výstup MOSFET)
- Prototypový štít Arduino
- Napájení 12V
- Napájení 5V
- 16MHz krystalový oscilátor
- 2x 30pF kondenzátor
- 100nF kondenzátor
- Dioda (např. 1N400X)
- Rezistory (1K, 3K3)
- Protoboard
- Svetry
- Měděný drát
Zkontrolujte požadovaný software:
který python3
které dělají které sdcc které git
Krok 2: Sestavení programátoru
Tato část bude krátká, protože jsem před časem postavil svůj programovací štít. Připojil jsem schéma a obrázky sestavené desky. PDF se schématem lze nalézt v úložišti.
Budete muset naprogramovat programátorskou desku:
1. Klonujte úložiště.
klon git
2. Otevřete soubor AT89C2051_programmer/AT89_prog/AT89_prog.ino v Arduino IDE.
3. Vytvořte a nahrajte skicu z Arduino IDE.
Krok 3: Instalace softwaru programátoru
1. Vytvořte virtuální prostředí pythonu.
python3 -m venv venv
. venv/bin/aktivovat
2. Nainstalujte at89overlord. at89overlord je Open Source programátor pro mnou napsaný čip AT89C2051. Jeho zdrojový kód najdete zde.
pip install at89overlord
3. Ověřte instalaci.
at89overlord -h
Krok 4: Programování čipu
1. Klonujte jednoduchý projekt mrknutí.
cd ~
klon git https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. Sestavte aplikaci.
udělat
3. Připojte Arduino k PC, připojte napájení 12V, umístěte čip AT89C2051 do zásuvky ZIF.
4. Vyhledejte sériový port Arduina.
ls /dev /tty*
5. Nahrajte vytvořený soubor IntelHex na čip. Pokud se port vašeho Arduina liší od /dev /ttyACM0, musíte předat správnou hodnotu pomocí parametru příkazového řádku -p.
at89overlord -f./hello.ihx
Krok 5: Montáž
Sestavte obvod podle schématu. Verzi PDF najdete v úložišti.
Měli byste vidět zelený LED blesk s frekvencí kolem 0,5 Hz.
Krok 6: Vysvětlení kódu
#zahrnout
#zahrnout
Začneme zahrnutím záhlaví AT89X051 ze sdcc. Obsahuje makra pro interakci s registry, jako by to byly proměnné. Také zahrneme stdint.h, který obsahuje definice celočíselných typů uint8_t a uint16_t.
// Za předpokladu, že oscilátor je 16 MHz
#define INTERRUPTS_PER_SECOND 5208
K přerušení dojde, když časový spínač 0 přetéká. Je nakonfigurován jako jediný 8bitový časovač, takže se to děje každých 2^8 cyklů procesoru. Jeden procesorový cyklus trvá 12 hodinových cyklů, a tak se dostaneme k 16000000/12/2^8 = 5208,33333.
volatile uint8_t led_state = 0;
volatile uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Deklarujeme proměnné stavu řízení LED a čítače přerušení.
void Timer0_ISR (void) _interrupt (1) {
časovač_počítadlo--; if (timer_counter == 0) {led_state =! led_state; čítač časovače = INTERRUPTS_PER_SECOND; }}
Pokaždé, když časovač 0 přetéká, počítadlo se sníží. Pokud se rovná nule, resetuje se a stav LED se změní. K tomu dochází přibližně jednou za sekundu, což má za následek ~ 0,5 Hz frekvenci blikání LED.
int main () {
TMOD = 0x3; // Režim časovače - 8 bitů, bez předřazeného měřiče. freq = OSCFREQ/12/2^8 TL0 = 0; // Vymazání počítadla TH0 = 0; // Vymazat registr TR0 = 1; // Nastavit spuštění časovače. ET0 = 1; // Nastavit přerušení. EA = 1; // Nastavit globální přerušení. while (1) {if (led_state) {P1 = 0xFF; } else {P1 = 0x00; }}}
Konfigurujeme modul časovače a čekáme na změny v proměnné stavu řízení LED. TMOD je řídicí registr režimu časovače. TL0 a TH0 jsou řídicí registry Timer0. ET0 je bit enable-timer0 v registru řízení časovače (TCON). TR0 a EA jsou bity v registru umožňujícího přerušení (IE).
Krok 7: Další zdroje
- Datový list AT89C2051:
- Kompilátor pro malé zařízení C (sdcc):
- Zdroje 8051:
- Úložiště programátoru AT89C2051:
- úložiště ahoj-8051:
Doporučuje:
Větší a vylepšená vánoční hvězda Neopixel Attiny85: 3 kroky (s obrázky)
Větší a vylepšená vánoční hvězda Neopixel Attiny85: V loňském roce jsem vytvořil malou 3D vytištěnou vánoční hvězdu, viz https://www.instructables.com/id/Christmas-Star-LE.. letos jsem vytvořil větší hvězdu z pramene 50 Neopixelů (5V WS2811). Tato větší hvězda měla více vzorů (stále přidávám a vylepšuji
Zajímavé pokyny pro programování programování pro návrháře-ovládání barev: 10 kroků
Zajímavé pokyny pro programování programování pro návrháře-ovládání barev: V předchozích kapitolách jsme si řekli více o tom, jak použít kód k tvarování namísto bodů znalostí o barvě. V této kapitole prozkoumáme tento aspekt znalostí hlouběji
LED hvězda: 7 kroků (s obrázky)
LED hvězda: 1. plstěná hvězda (vystřižená ze šablony) 2. LED3. držák baterie - " E " karta je kladná) 4. 3V knoflíková baterie CR2032 5. jehla (velikost výšivky 7) 6. vodivý závit Volitelné materiály: navlékač jehly, kleště, vyšívací nit, vycpávka
Vánoční hvězda s Arduino a RGB LED: 5 kroků (s obrázky)
Vánoční hvězda s Arduino a RGB LED: Ahoj! Jsme komunita Arduino Novosibirsk z hluboce zmrazené Sibiře. Abychom se trochu zahřáli, rozhodli jsme se vytvořit krásné zářící a blikající vánoční hvězdy. Určitě se podívejte na demo video
Blikající vícebarevná vánoční hvězda: 4 kroky (s obrázky)
Blikající hvězda vícebarevného vánočního stromku: Takže jsme se s novou manželkou přestěhovali do našeho nového domova, Vánoce jsou tady a postavili jsme strom, ale počkejte … ani jeden z nás neměl slušnou hvězdu, kterou by mohl postavit na strom. Tento návod vám ukáže, jak udělat opravdu skvělou, blikající změnu barvy