Innehållsförteckning:
- Steg 1: Krav
- Steg 2: Bygga programmeraren
- Steg 3: Installera programmerarprogramvara
- Steg 4: Programmering av chippet
- Steg 5: Montering
- Steg 6: Förklaring av kod
- Steg 7: Ytterligare resurser
Video: Introduktion till 8051 -programmering med AT89C2051 (gästskådespelare: Arduino): 7 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
8051 (även känd som MCS-51) är en MCU-design från 80-talet som fortfarande är populär idag. Moderna 8051-kompatibla mikrokontroller finns tillgängliga från flera leverantörer, i alla former och storlekar, och med ett brett utbud av kringutrustning. I denna instruerbara tittar vi på AT89C2051 MCU från Atmel.
AT89C2051 är en liten (2Kbyte Flash, 128byte RAM), billig (~ $ 1,40 per chip) mikrokontroller.
- 2,7-6V drift
- 15 I/O -linjer
- 2 timers (16 bitar)
- Interna och externa avbrott
- UART
- On-chip analog komparator
- Upp till 2 MIPS med en 24 MHz klocka
Steg 1: Krav
Krav:
- Linux -dator (obligatorisk programvara: Arduino IDE, git, make, sdcc)
- Arduino UNO
- AT89C2051 -chip (DIP20 -paket)
- 20-stifts ZIF-uttag
- Optokopplare (helst MOSFET-utgång)
- Arduino prototypsköld
- 12V strömförsörjning
- 5V strömförsörjning
- 16MHz kristalloscillator
- 2x 30pF kondensator
- 100nF kondensator
- Diod (ex: 1N400X)
- Motstånd (1K, 3K3)
- Protoboard
- Tröjor
- Koppartråd
Sök efter nödvändig programvara:
vilken python3
som gör vilken sdcc vilken git
Steg 2: Bygga programmeraren
Det här avsnittet blir kort, eftersom jag byggde min programmeringssköld för en tid sedan. Jag har bifogat schemat och bilderna på det monterade kortet. PDF -filen för schemat finns i förvaret.
Du måste programmera programmeringskortet:
1. Klona förvaret.
git -klon
2. Öppna filen AT89C2051_programmer/AT89_prog/AT89_prog.ino i Arduino IDE.
3. Skapa och ladda upp skissen från Arduino IDE.
Steg 3: Installera programmerarprogramvara
1. Skapa en virtuell python -miljö.
python3 -m venv venv
. venv/bin/aktivera
2. Installera at89overlord. at89overlord är en Open Source -programmerare för AT89C2051 -chipet skrivet av mig, källkoden hittar du här.
pip installera at89overlord
3. Verifiera installationen.
at89overlord -h
Steg 4: Programmering av chippet
1. Klona ett enkelt blinkprojekt.
cd ~
git-klon https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. Skapa programmet.
göra
3. Anslut Arduino till datorn, anslut 12V -matningen, placera AT89C2051 -chipet i ZIF -uttaget.
4. Leta reda på Arduinos serieport.
ls /dev /tty*
5. Ladda upp den inbyggda IntelHex -filen till chipet. Om din Arduinos port skiljer sig från /dev /ttyACM0 måste du skicka rätt värde med kommandoradsparametern -p.
at89overlord -f./hello.ihx
Steg 5: Montering
Montera kretsen enligt schemat. En PDF -version finns i förvaret.
Du bör se den gröna lysdioden blinka med en frekvens på cirka 0,5 Hz.
Steg 6: Förklaring av kod
#omfatta
#omfatta
Vi börjar med att inkludera AT89X051 -rubriken från SDCC. Den innehåller makron för att interagera med register som om de vore variabler. Vi inkluderar också stdint.h som innehåller definitioner av uint8_t och uint16_t heltalstyper.
// Antar oscillatorn är 16MHz
#define INTERRUPTS_PER_SECOND 5208
Ett avbrott inträffar när timern0 flyter över. Den är konfigurerad som en enda 8 -bitars timer, så detta händer var 2^8 processorcykler. En processorcykel tar 12 klockcykler, och därmed kommer vi fram till 16000000/12/2^8 = 5208.33333.
flyktig uint8_t led_state = 0;
flyktig uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Vi deklarerar ledda tillståndskontrollen och avbryter motvariabler.
void Timer0_ISR (void) _interrupt (1) {
timer_counter--; if (timer_counter == 0) {led_state =! led_state; timer_counter = INTERRUPTS_PER_SECOND; }}
Varje gång timern0 rinner över minskar räknaren. Om det är lika med noll återställs det och LED -tillståndet ändras. Detta sker ungefär en gång per sekund, vilket resulterar i ~ 0,5 Hz LED blinkande frekvens.
int main () {
TMOD = 0x3; // Timer -läge - 8 bitar, ingen förkalkning. freq = OSCFREQ/12/2^8 TL0 = 0; // Rensa räknaren TH0 = 0; // Rensa register TR0 = 1; // Ställ in timern för att köra. ET0 = 1; // Ställ in avbrott. EA = 1; // Ställ in globalt avbrott. medan (1) {if (led_state) {P1 = 0xFF; } annat {P1 = 0x00; }}}
Vi konfigurerar timermodulen och väntar på ändringar i ledstatusstyrvariabeln. TMOD är timerregistreringsregistret. TL0 och TH0 är Timer0 -kontrollregister. ET0 är aktiverings-timer0-biten i timerkontrollregistret (TCON). TR0 och EA är bitar i avbrottsaktiveringsregistret (IE).
Steg 7: Ytterligare resurser
- AT89C2051 datablad:
- Liten enhet C -kompilator (sdcc):
- 8051 resurser:
- AT89C2051 programmerarförvar:
- hej-8051-förvaret:
Rekommenderad:
Covid -hjälm del 1: ett introduktion till Tinkercad -kretsar !: 20 steg (med bilder)
Covid -hjälm del 1: ett introduktion till Tinkercad -kretsar !: Hej, vän! I den här tvådelade serien lär vi oss hur du använder Tinkercads kretsar - ett roligt, kraftfullt och lärorikt verktyg för att lära dig hur kretsar fungerar! Ett av de bästa sätten att lära sig är att göra. Så vi ska först designa vårt eget projekt:
Introduktion till IR -kretsar: 8 steg (med bilder)
Introduktion till IR -kretsar: IR är en komplex teknik men ändå mycket enkel att arbeta med. Till skillnad från lysdioder eller LASER kan infraröd inte ses med det mänskliga ögat. I denna instruktionsbok kommer jag att demonstrera användningen av infraröd genom 3 olika kretsar. Kretsarna kommer inte att vara
Introduktion till Arduino: 15 steg (med bilder)
Introduktion till Arduino: En Arduino är ett utvecklingsbräde för mikrokontroller med öppen källkod. På vanlig engelska kan du använda Arduino för att läsa sensorer och styra saker som motorer och lampor. Detta låter dig ladda upp program till det här kortet som sedan kan interagera med saker
Conductive Jelly Donuts - en introduktion till sömnadskretsar med Makey Makey: 4 steg (med bilder)
Conductive Jelly Donuts - en introduktion till sömnadskretsar med Makey Makey: Vi märkte på Twitter att många av våra Scratch- och Makey Makey -fanatiker ville veta mer om sömnadskretsar, så vi skapade denna handledning för att ge dig en snabb introduktion om sömnadskretsar. och hur du kan sy några modulbitar. (Detta är
Introduktion till röstigenkänning med Elechouse V3 och Arduino. 4 steg (med bilder)
Introduktion till röstigenkänning med Elechouse V3 och Arduino .: Hej …! Röstigenkänningsteknologi har funnits här de senaste åren. Vi minns fortfarande den stora spänning vi hade när vi pratade med den första Siri -aktiverade iPhone. Sedan dess har röstkommandon utvecklats till en mycket avancerad nivå