![Sissejuhatus programmeerimisse 8051 AT89C2051 -ga (külalisesineja: Arduino): 7 sammu (piltidega) Sissejuhatus programmeerimisse 8051 AT89C2051 -ga (külalisesineja: Arduino): 7 sammu (piltidega)](https://i.howwhatproduce.com/images/003/image-8922-27-j.webp)
Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
![Sissejuhatus programmeerimisse 8051 AT89C2051 -ga (külalisesineja: Arduino) Sissejuhatus programmeerimisse 8051 AT89C2051 -ga (külalisesineja: Arduino)](https://i.howwhatproduce.com/images/003/image-8922-28-j.webp)
8051 (tuntud ka kui MCS-51) on 80-ndate aastate MCU disain, mis on endiselt populaarne. Kaasaegseid 8051-ga ühilduvaid mikrokontrollereid on saadaval mitmelt müüjalt, igas kujus ja suuruses ning laias valikus välisseadmeid. Selles juhendis vaatame Atmeli AT89C2051 MCU -d.
AT89C2051 on väike (2Kbyte Flash, 128byte RAM), odav (~ 1,40 $ kiibi kohta) mikrokontroller. Omadused:
- 2.7-6V töö
- 15 I/O liini
- 2 taimerit (16 bitti)
- Sisemised ja välised katkestused
- UART
- Kiibil olev analoogvõrdleja
- Kuni 2 MIPS 24MHz kellaga
Samm: nõuded
![Nõuded Nõuded](https://i.howwhatproduce.com/images/003/image-8922-29-j.webp)
Nõuded:
- Linuxi arvuti (vajalik tarkvara: Arduino IDE, git, make, sdcc)
- Arduino UNO
- Kiip AT89C2051 (DIP20 pakett)
- 20-kontaktiline ZIF-pesa
- Optoelement (eelistatavalt MOSFET-väljund)
- Arduino prototüüpimise kilp
- 12V toide
- 5V toide
- 16MHz kristallostsillaator
- 2x 30pF kondensaator
- 100 nF kondensaator
- Diood (nt: 1N400X)
- Takistid (1K, 3K3)
- Protoboard
- Džemprid
- Vasktraat
Kontrollige vajalikku tarkvara:
milline python3
mis teeb mis sdcc mis git
2. samm: programmeerija loomine
![Programmeerija ehitamine Programmeerija ehitamine](https://i.howwhatproduce.com/images/003/image-8922-30-j.webp)
![Programmeerija ehitamine Programmeerija ehitamine](https://i.howwhatproduce.com/images/003/image-8922-31-j.webp)
![Programmeerija ehitamine Programmeerija ehitamine](https://i.howwhatproduce.com/images/003/image-8922-32-j.webp)
See jaotis on lühike, kuna ehitasin oma programmeerimiskilbi mõni aeg tagasi. Lisasin kokkupandud plaadi skemaatika ja pildid. Skeemi PDF -faili leiate hoidlast.
Peate programmeerimisplaadi programmeerima:
1. Kloonige hoidla.
git kloon
2. Avage Arduino IDE fail AT89C2051_programmer/AT89_prog/AT89_prog.ino.
3. Koostage ja laadige üles eskiis Arduino IDE -st.
Samm: programmeerimistarkvara installimine
![Programmeerija tarkvara installimine Programmeerija tarkvara installimine](https://i.howwhatproduce.com/images/003/image-8922-33-j.webp)
![Programmeerija tarkvara installimine Programmeerija tarkvara installimine](https://i.howwhatproduce.com/images/003/image-8922-34-j.webp)
1. Looge python virtuaalne keskkond.
python3 -m venv venv
. venv/bin/aktiveeri
2. Installige at89overlord. at89overlord on minu kirjutatud kiibi AT89C2051 avatud lähtekoodiga programmeerija. Selle lähtekoodi leiate siit.
pip install at89overlord
3. Kontrollige installimist.
at89overlord -h
4. samm: kiibi programmeerimine
![Kiibi programmeerimine Kiibi programmeerimine](https://i.howwhatproduce.com/images/003/image-8922-35-j.webp)
![Kiibi programmeerimine Kiibi programmeerimine](https://i.howwhatproduce.com/images/003/image-8922-36-j.webp)
![Kiibi programmeerimine Kiibi programmeerimine](https://i.howwhatproduce.com/images/003/image-8922-37-j.webp)
![Kiibi programmeerimine Kiibi programmeerimine](https://i.howwhatproduce.com/images/003/image-8922-38-j.webp)
1. Kloonige lihtne vilkumisprojekt.
cd ~
git kloon https://github.com/piotrb5e3/hello-8051.git cd tere-8051/
2. Koostage rakendus.
tegema
3. Ühendage Arduino arvutiga, ühendage 12V toide, asetage kiip AT89C2051 ZIF -pistikupessa.
4. Leidke Arduino jadaport.
ls /dev /tty*
5. Laadige ehitatud IntelHex -fail kiibile üles. Kui teie Arduino port erineb failist /dev /ttyACM0, peate õige väärtuse edastama käsurea parameetriga -p.
at89overlord -f./hello.ihx
Samm: kokkupanek
![Kokkupanek Kokkupanek](https://i.howwhatproduce.com/images/003/image-8922-39-j.webp)
![Kokkupanek Kokkupanek](https://i.howwhatproduce.com/images/003/image-8922-40-j.webp)
![Kokkupanek Kokkupanek](https://i.howwhatproduce.com/images/003/image-8922-41-j.webp)
Pange skeem kokku vastavalt skeemile. PDF -versiooni leiate hoidlast.
Te peaksite nägema rohelist LED -välku sagedusega umbes 0,5 Hz.
6. samm: koodi selgitus
![Koodi selgitus Koodi selgitus](https://i.howwhatproduce.com/images/003/image-8922-42-j.webp)
#kaasake
#kaasake
Alustuseks lisame sdcc -st päise AT89X051. See sisaldab makroid registritega suhtlemiseks justkui muutujateks. Lisame ka stdint.h, mis sisaldab uint8_t ja uint16_t täisarvutüüpide määratlusi.
// Eeldades, et ostsillaator on 16MHz
#define INTERRUPTS_PER_SECOND 5208
Katkestus tekib siis, kui taimer0 ületab. See on konfigureeritud ühe 8 -bitise taimerina, nii et see juhtub iga 2^8 protsessoritsükli järel. Üks protsessoritsükkel võtab 12 taktsüklit ja seega jõuame 16000000/12/2^8 = 5208.33333.
lenduv uint8_t led_state = 0;
lenduv uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Deklareerime juhitud olekukontrolli ja katkestusloenduri muutujad.
tühine Taimer0_ISR (tühine) _interrupt (1) {
taimer_loendur--; if (timer_counter == 0) {led_state =! led_state; taimer_loendur = INTERRUPTS_PER_SECOND; }}
Iga kord, kui taimer0 ületab, väheneb loendur. Kui see on võrdne nulliga, lähtestatakse ja LED -i olek muutub. See juhtub umbes kord sekundis, mille tulemuseks on ~ 0,5 Hz LED -i vilkumissagedus.
int main () {
TMOD = 0x3; // Taimerirežiim - 8 bitti, eelseadistust pole. sagedus = OSCFREQ/12/2^8 TL0 = 0; // Kustuta loendur TH0 = 0; // Kustuta register TR0 = 1; // Seadista taimer tööle. ET0 = 1; // Määra katkestus. EA = 1; // Määra globaalne katkestus. samas (1) {if (led_state) {P1 = 0xFF; } muu {P1 = 0x00; }}}
Seadistame taimerimooduli ja ootame muudatusi led -oleku juhtmuutuja. TMOD on taimerirežiimi juhtregister. TL0 ja TH0 on Timer0 juhtregistrid. ET0 on taimerijuhtimisregistri (TCON) lubamis-taimer0-bit. TR0 ja EA on bitid katkestamise lubamise registris (IE).
Samm: täiendavad ressursid
- AT89C2051 andmeleht:
- Väikese seadme C kompilaator (sdcc):
- 8051 ressursid:
- AT89C2051 programmeerijate hoidla:
- tere-8051 hoidla:
Soovitan:
Covidi kaitsekiivri osa 1: Sissejuhatus Tinkercadi ahelatesse!: 20 sammu (koos piltidega)
![Covidi kaitsekiivri osa 1: Sissejuhatus Tinkercadi ahelatesse!: 20 sammu (koos piltidega) Covidi kaitsekiivri osa 1: Sissejuhatus Tinkercadi ahelatesse!: 20 sammu (koos piltidega)](https://i.howwhatproduce.com/images/001/image-31-j.webp)
Covidi ohutuskiiver 1. osa: Sissejuhatus Tinkercadi ahelatesse!: Tere, sõber! Selles kaheosalises sarjas õpime, kuidas kasutada Tinkercadi ahelaid - lõbusat, võimsat ja harivat tööriista vooluringide toimimise tundmaõppimiseks! Üks parimaid viise õppimiseks on teha. Seega kavandame kõigepealt oma projekti:
Arduino sissejuhatus: 15 sammu (piltidega)
![Arduino sissejuhatus: 15 sammu (piltidega) Arduino sissejuhatus: 15 sammu (piltidega)](https://i.howwhatproduce.com/images/003/image-6752-j.webp)
Arduino sissejuhatus: Arduino on avatud lähtekoodiga mikrokontrolleri arendusplaat. Lihtsas inglise keeles saate Arduino abil lugeda andureid ja juhtida selliseid asju nagu mootorid ja tuled. See võimaldab teil sellele tahvlile üles laadida programme, mis saavad seejärel asjadega suhelda
Sissejuhatus Raspberry Pi programmeerimisse ilma käsitsi kodeerimata: 3 sammu
![Sissejuhatus Raspberry Pi programmeerimisse ilma käsitsi kodeerimata: 3 sammu Sissejuhatus Raspberry Pi programmeerimisse ilma käsitsi kodeerimata: 3 sammu](https://i.howwhatproduce.com/images/001/image-1427-36-j.webp)
Sissejuhatus Raspberry Pi programmeerimisse ilma käsitsi kodeerimata: Tere, see juhend annab teile teada, kuidas muuta oma Raspberry Pi täielikult programmeeritavaks automatiseerimisseadmeks, mis ühildub graafiliselt orienteeritud programmeerimiskeelega PLC-de jaoks, mida nimetatakse funktsiooni plokkskeemiks (osa IEC 61131-3 standardist). See võib olla
Hääletuvastuse sissejuhatus Elechouse V3 ja Arduino abil: 4 sammu (piltidega)
![Hääletuvastuse sissejuhatus Elechouse V3 ja Arduino abil: 4 sammu (piltidega) Hääletuvastuse sissejuhatus Elechouse V3 ja Arduino abil: 4 sammu (piltidega)](https://i.howwhatproduce.com/images/003/image-7038-28-j.webp)
Hääletuvastuse sissejuhatus Elechouse V3 ja Arduino abil: Tere! Mäletame siiani seda suurt elevust, mis meil esimese Siri toega iphonega rääkides tekkis. Sellest ajast alates on häälkäskluse seadmed kasvanud väga kõrgele tasemele
Sõnumikastide lisamine partii programmeerimisse: 3 sammu
![Sõnumikastide lisamine partii programmeerimisse: 3 sammu Sõnumikastide lisamine partii programmeerimisse: 3 sammu](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10534126-how-to-add-message-boxes-in-batch-programming-3-steps-0.webp)
Sõnumikastide lisamine partii programmeerimisse: kas olete kunagi tahtnud lisada oma partiifailidele graafilist liidest, nagu saate VBScriptis? Mul on kindlasti. Kuid nüüd saate selle suurepärase programmiga MessageBox