Indholdsfortegnelse:
- Trin 1: Krav
- Trin 2: Opbygning af programmereren
- Trin 3: Installation af programmeringssoftware
- Trin 4: Programmering af chippen
- Trin 5: Montering
- Trin 6: Forklaring af kode
- Trin 7: Yderligere ressourcer
Video: Introduktion til 8051 -programmering med AT89C2051 (gæstespil: Arduino): 7 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
8051 (også kendt som MCS-51) er et MCU-design fra 80'erne, der stadig er populært i dag. Moderne 8051-kompatible mikrokontroller fås fra flere leverandører i alle former og størrelser og med en lang række eksterne enheder. I denne instruktive vil vi se på AT89C2051 MCU fra Atmel.
AT89C2051 er en lille (2Kbyte Flash, 128byte RAM), billig (~ $ 1,40 pr. Chip) mikrokontroller.
- 2,7-6V drift
- 15 I/O -linjer
- 2 timere (16 bit)
- Interne og eksterne afbrydelser
- UART
- On-chip analog komparator
- Op til 2MIPS med et 24MHz ur
Trin 1: Krav
Krav:
- Linux PC (påkrævet software: Arduino IDE, git, make, sdcc)
- Arduino UNO
- AT89C2051 -chip (DIP20 -pakke)
- 20-benet ZIF-stik
- Optokobler (helst MOSFET-output)
- Arduino prototypeskjold
- 12V strømforsyning
- 5V strømforsyning
- 16MHz krystaloscillator
- 2x 30pF kondensator
- 100nF kondensator
- Diode (eks: 1N400X)
- Modstande (1K, 3K3)
- Protoboard
- Jumpere
- Kobbertråd
Kontroller den nødvendige software:
hvilken python3
som laver hvilken sdcc hvilken git
Trin 2: Opbygning af programmereren
Dette afsnit vil være kort, da jeg byggede mit programmeringsskjold for nogen tid siden. Jeg har vedhæftet skematikken og billederne af det samlede bord. PDF'en af skematikken kan findes i depotet.
Du bliver nødt til at programmere programmeringsbrættet:
1. Klon depotet.
git -klon
2. Åbn filen AT89C2051_programmer/AT89_prog/AT89_prog.ino i Arduino IDE.
3. Byg og upload skitsen fra Arduino IDE.
Trin 3: Installation af programmeringssoftware
1. Opret et virtuelt python -miljø.
python3 -m venv venv
. venv/bin/aktivere
2. Installer at89overlord. at89overlord er en Open Source -programmør til AT89C2051 -chippen skrevet af mig. Dens kildekode findes her.
pip install at89overlord
3. Kontroller installationen.
at89overlord -h
Trin 4: Programmering af chippen
1. Klon et simpelt blink -projekt.
cd ~
git-klon https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. Byg applikationen.
lave
3. Tilslut Arduino til pc'en, tilslut 12V -forsyningen, placer AT89C2051 -chippen i ZIF -stikket.
4. Find Arduinos serielle port.
ls /dev /tty*
5. Upload den byggede IntelHex -fil til chippen. Hvis din Arduinos port er forskellig fra /dev /ttyACM0, skal du sende den korrekte værdi med kommandolinjeparameteren -p.
at89overlord -f./hello.ihx
Trin 5: Montering
Saml kredsløbet i henhold til skematisk. En PDF -version kan findes i depotet.
Du skal se den grønne LED blinke med en frekvens på omkring 0,5 Hz.
Trin 6: Forklaring af kode
#omfatte
#omfatte
Vi starter med at inkludere AT89X051 header fra sdcc. Den indeholder makroer til interaktion med registre, som var de variabler. Vi inkluderer også stdint.h, som indeholder definitioner af uint8_t og uint16_t heltalstyper.
// Forudsat at oscillatoren er 16MHz
#define INTERRUPTS_PER_SECOND 5208
Et afbrydelse opstår, når timeren 0 flyder over. Det er konfigureret som en enkelt 8bit timer, så dette sker hver 2.^8 processor cyklus. Én processorcyklus tager 12 urcykler, og dermed når vi frem til 16000000/12/2^8 = 5208.33333.
flygtig uint8_t led_state = 0;
flygtig uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Vi erklærer led -tilstandskontrollen og afbryder tællervariabler.
void Timer0_ISR (void) _interrupt (1) {
timer_tæller--; hvis (timer_counter == 0) {led_state =! led_state; timer_counter = INTERRUPTS_PER_SECOND; }}
Hver gang timeren 0 flyder over, reduceres tælleren. Hvis det er lig med nul, nulstilles det, og LED -tilstanden ændres. Dette sker cirka en gang i sekundet, hvilket resulterer i ~ 0,5 Hz LED -blinkfrekvens.
int main () {
TMOD = 0x3; // Timer -tilstand - 8 bit, ingen forkalkning. freq = OSCFREQ/12/2^8 TL0 = 0; // Fjern tæller TH0 = 0; // Ryd register TR0 = 1; // Indstil timeren til at køre. ET0 = 1; // Indstil afbrydelse. EA = 1; // Indstil global afbrydelse. mens (1) {if (led_state) {P1 = 0xFF; } andet {P1 = 0x00; }}}
Vi konfigurerer timermodulet og afventer ændringer i LED -tilstandskontrollvariablen. TMOD er timerregistreringsregistret. TL0 og TH0 er Timer0 kontrolregistre. ET0 er aktiverings-timer0-bit i timerstyringsregistret (TCON). TR0 og EA er bits i interrupt enable register (IE).
Trin 7: Yderligere ressourcer
- AT89C2051 datablad:
- Lille enhed C -kompilator (sdcc):
- 8051 ressourcer:
- AT89C2051 programmeringslager:
- hello-8051 repository:
Anbefalede:
Covid -sikkerhedshjelm del 1: en introduktion til Tinkercad -kredsløb !: 20 trin (med billeder)
Covid -sikkerhedshjelm del 1: en introduktion til Tinkercad -kredsløb !: Hej, ven! I denne todelte serie lærer vi, hvordan du bruger Tinkercad's Circuits - et sjovt, kraftfuldt og lærerigt værktøj til at lære om, hvordan kredsløb fungerer! En af de bedste måder at lære på er at gøre. Så vi designer først vores helt eget projekt:
Introduktion til IR -kredsløb: 8 trin (med billeder)
Introduktion til IR -kredsløb: IR er et komplekst stykke teknologi, men alligevel meget let at arbejde med. I modsætning til LED'er eller LASER'er kan infrarød ikke ses med det menneskelige øje. I denne instruktionsbog vil jeg demonstrere brugen af infrarød gennem 3 forskellige kredsløb. Kredsløbene vil ikke være u
Conductive Jelly Donuts - en introduktion til sy -kredsløb med Makey Makey: 4 trin (med billeder)
Conductive Jelly Donuts - en introduktion til sy -kredsløb med Makey Makey: Vi bemærkede på Twitter, at mange af vores Scratch- og Makey Makey -fanatikere ønskede at vide mere om sy -kredsløb, så vi udarbejdede denne vejledning for at give dig en hurtig introduktion til sy -kredsløb. og hvordan du kan sy nogle modulære stykker. (Dette er
Introduktion til robotik til folkeskoleelever med kolibri -controllere: 18 trin
Introduktion til robotik til folkeskoleelever med kolibri -controllere: De fleste robotværktøjer på markedet i dag kræver, at brugeren downloader specifik software på deres harddisk. Skønheden ved Hummingbird Robotic Controller er, at den kan køres ved hjælp af en webbaseret computer, f.eks. En chromebook. Det har også været
Introduktion til stemmegenkendelse med Elechouse V3 og Arduino .: 4 trin (med billeder)
Introduktion til stemmegenkendelse med Elechouse V3 og Arduino .: Hej der …! Tekstgenkendelsesteknologi har været her de sidste par år. Vi husker stadig den store spænding, vi havde, da vi talte med den første Siri -aktiverede iphone. Siden da er stemmekommando -enheder vokset til et meget avanceret niveau