INHOUDSOPGAWE:
- Stap 1: Vereistes
- Stap 2: Bou die programmeerder
- Stap 3: Installeer programmeersagteware
- Stap 4: Programmering van die chip
- Stap 5: Montering
- Stap 6: Kode Uitleg
- Stap 7: Bykomende hulpbronne
Video: Inleiding tot 8051 -programmering met AT89C2051 (gastrolle: Arduino): 7 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Die 8051 (ook bekend as MCS-51) is 'n MCU-ontwerp uit die 80's wat vandag nog steeds gewild bly. Moderne 8051-versoenbare mikrobeheerders is beskikbaar by verskeie verskaffers, in alle vorms en groottes, en met 'n wye verskeidenheid randapparatuur. In hierdie instruksies kyk ons na die AT89C2051 MCU van Atmel.
AT89C2051 is 'n klein (2Kbyte Flash, 128byte RAM), goedkoop (~ $ 1,40 per chip) mikrokontroleerder.
- 2.7-6V werking
- 15 I/O lyne
- 2 timers (16 bit)
- Interne en eksterne onderbrekings
- UART
- On-chip analoog vergelyker
- Tot 2MIPS met 'n 24MHz -horlosie
Stap 1: Vereistes
Vereistes:
- Linux -rekenaar (vereiste sagteware: Arduino IDE, git, make, sdcc)
- Arduino UNO
- AT89C2051 -chip (DIP20 -pakket)
- 20-pins ZIF-aansluiting
- Optokoppelaar (verkieslik MOSFET-uitvoer)
- Arduino prototipe skild
- 12V kragtoevoer
- 5V kragtoevoer
- 16MHz kristal ossillator
- 2x 30pF kapasitor
- 100nF kapasitor
- Diode (byvoorbeeld: 1N400X)
- Weerstande (1K, 3K3)
- Protobord
- Springers
- Koperdraad
Kyk vir die nodige sagteware:
watter luislang3
wat maak watter sdcc watter git
Stap 2: Bou die programmeerder
Hierdie afdeling sal kort wees, aangesien ek 'n tyd gelede my programmeerskild gebou het. Ek het die skets en foto's van die saamgestelde bord aangeheg. Die PDF van die skema kan in die bewaarplek gevind word.
U moet die programmeerderbord programmeer:
1. Kloon die bewaarplek.
git -kloon
2. Maak die AT89C2051_programmer/AT89_prog/AT89_prog.ino -lêer oop in Arduino IDE.
3. Bou en laai die skets op van die Arduino IDE.
Stap 3: Installeer programmeersagteware
1. Skep 'n virtuele python -omgewing.
python3 -m venv venv
. venv/bin/aktiveer
2. Installeer at89overlord. at89overlord is 'n Open Source -programmeerder vir die AT89C2051 -chip wat deur my geskryf is, en u kan die bronkode hier vind.
pip installeer at89overlord
3. Verifieer die installasie.
at89overlord -h
Stap 4: Programmering van die chip
1. Kloon 'n eenvoudige knipoogprojek.
cd ~
git-kloon https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. Bou die aansoek.
maak
3. Koppel Arduino aan op die rekenaar, koppel die 12V -voeding aan, plaas die AT89C2051 -chip in die ZIF -aansluiting.
4. Vind die seriële poort van Arduino.
ls /dev /tty*
5. Laai die geboude IntelHex -lêer op na die skyfie. As die poort van u Arduino verskil van /dev /ttyACM0, moet u die korrekte waarde deurgee met die -p -opdragreëlparameter.
at89overlord -f./hello.ihx
Stap 5: Montering
Monteer die stroombaan volgens skema. 'N PDF -weergawe kan in die bewaarplek gevind word.
U moet die groen LED -flits met 'n frekwensie van ongeveer 0,5 Hz sien.
Stap 6: Kode Uitleg
#insluit
#insluit
Ons begin deur die AT89X051 -opskrif van sdcc op te neem. Dit bevat makros vir interaksie met registers asof dit veranderlikes is. Ons bevat ook stdint.h wat definisies bevat van uint8_t en uint16_t heelgetal tipes.
// Gestel ossillator is 16MHz
#definieer INTERRUPTS_PER_SECOND 5208
'N Onderbreking vind plaas wanneer die Timer0 oorloop. Dit is opgestel as 'n enkele 8 -bits timer, so dit gebeur elke 2^8 verwerkersiklusse. Een verwerkersiklus neem 12 kloksiklusse, en dus kom ons by 16000000/12/2^8 = 5208.33333.
vlugtige uint8_t led_state = 0;
vlugtige uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Ons verklaar die geleide staatsbeheer en onderbreek teenveranderlikes.
void Timer0_ISR (void) _interrupt (1) {
timer_teller--; as (timer_counter == 0) {led_state =! led_state; timer_counter = INTERRUPTS_PER_SECOND; }}
Elke keer as die timer 0 oorloop, word die toonbank verminder. As dit gelyk is aan nul, word dit herstel en word die led -toestand verander. Dit gebeur ongeveer een keer per sekonde, wat lei tot ~ 0.5Hz LED knipperfrekwensie.
int main () {
TMOD = 0x3; // Timer -modus - 8 bits, geen voorverkoeler. freq = OSCFREQ/12/2^8 TL0 = 0; // Maak toonbank skoon TH0 = 0; // Verwyder register TR0 = 1; // Stel die timer in om uit te voer. ET0 = 1; // Stel onderbreking in. EA = 1; // Stel globale onderbreking in. terwyl (1) {if (led_state) {P1 = 0xFF; } anders {P1 = 0x00; }}}
Ons stel die tydmodule op en wag vir veranderinge in die veranderlike in die led -toestandbeheer. TMOD is die timer -modusregister. TL0 en TH0 is Timer0 -kontroleregisters. ET0 is die enable-timer0 bit in die timer control register (TCON). TR0 en EA is stukkies in die interrupt enable register (IE).
Stap 7: Bykomende hulpbronne
- Gegevensblad AT89C2051:
- Klein toestel C samesteller (sdcc):
- 8051 bronne:
- AT89C2051 programmeerder -bewaarplek:
- hello-8051-bewaarplek:
Aanbeveel:
Covid -veiligheidshelm Deel 1: 'n Inleiding tot Tinkercad -kringe !: 20 stappe (met foto's)
Covid -veiligheidshelm Deel 1: 'n inleiding tot Tinkercad -stroombane !: Hallo, vriend! In hierdie tweedelige reeks leer ons hoe u Tinkercad's Circuits kan gebruik - 'n prettige, kragtige en opvoedkundige hulpmiddel om te leer hoe stroombane werk! Een van die beste maniere om te leer, is om te doen. Dus, ons ontwerp eers ons eie projek: die
Inleiding tot IR -kringe: 8 stappe (met foto's)
Inleiding tot IR -stroombane: IR is 'n komplekse stuk tegnologie, maar tog baie eenvoudig om mee te werk. Anders as LED's of LASER's, kan infrarooi nie met die menslike oog gesien word nie. In hierdie instruksies sal ek die gebruik van infrarooi deur drie verskillende stroombane demonstreer. Die stroombane sal nie u
Inleiding tot Arduino: 15 stappe (met foto's)
Inleiding tot Arduino: 'n Arduino is 'n oopbron-ontwikkelingsbord vir mikrobeheerders. In eenvoudige Engels kan u die Arduino gebruik om sensors te lees en dinge soos motors en ligte te beheer. Hiermee kan u programme na hierdie bord oplaai wat dan met dinge kan omgaan
Geleidende Jelly Donuts - 'n inleiding tot naaikringe met Makey Makey: 4 stappe (met foto's)
Conductive Jelly Donuts - 'n inleiding tot naaikringe met Makey Makey: Ons het op Twitter opgemerk dat baie van ons Scratch- en Makey Makey -fanatici meer wil weet oor naaikringe, en daarom het ons hierdie tutoriaal saamgestel om u 'n vinnige inleiding te gee oor naaikringe. en hoe u 'n paar modulêre stukke kan naai. (Dit is
Inleiding tot spraakherkenning met Elechouse V3 en Arduino .: 4 stappe (met foto's)
Inleiding tot stemherkenning met Elechouse V3 en Arduino .: Hallo daar …! Stemherkenningstegnologie is die afgelope paar jaar hier. Ons onthou nog steeds die groot opgewondenheid wat ons gehad het toe ons met die eerste iPhone met Siri geaktiveer het. Sedertdien het spraakbeheertoestelle gegroei tot 'n baie gevorderde vlak