Përmbajtje:
- Hapi 1: Kërkesat
- Hapi 2: Ndërtimi i Programuesit
- Hapi 3: Instalimi i Softuerit Programues
- Hapi 4: Programimi i çipit
- Hapi 5: Asambleja
- Hapi 6: Shpjegimi i kodit
- Hapi 7: Burime shtesë
Video: Hyrje në Programimin 8051 Me AT89C2051 (Guest Starring: Arduino): 7 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
8051 (i njohur gjithashtu si MCS-51) është një dizajn MCU nga vitet '80 që mbetet popullor sot. Mikrokontrolluesit modernë të pajtueshëm me 8051 janë në dispozicion nga shitës të shumtë, në të gjitha format dhe madhësitë, dhe me një gamë të gjerë të pajisjeve periferike. Në këtë udhëzues do të shikojmë MCU AT89C2051 nga Atmel.
AT89C2051 është një mikrokontrollues i vogël (Flash 2Kbyte, 128 bajt RAM), i lirë (1.40 dollarë për çip). Karakteristikat:
- Funksionimi 2.7-6V
- 15 rreshta I/O
- 2 kohëmatës (16 bit)
- Ndërprerjet e brendshme dhe të jashtme
- UART
- Krahasues analog në çip
- Deri në 2MIPS me një orë 24MHz
Hapi 1: Kërkesat
Kërkesat:
- PC PC Linux (softueri i kërkuar: Arduino IDE, git, make, sdcc)
- Arduino UNO
- Çip AT89C2051 (pako DIP20)
- Fole ZIF me 20 kunja
- Optokoupler (mundësisht MOSFET-output)
- Mburoja prototipuese Arduino
- Furnizimi me energji 12V
- Furnizimi me energji 5V
- Oshilator kristal 16MHz
- Kondensator 2x 30pF
- Kondensator 100nF
- Diodë (p.sh.: 1N400X)
- Rezistentët (1K, 3K3)
- Protoboard
- Kërcyesit
- Tel bakri
Kontrolloni për softuerin e kërkuar:
cili piton3
të cilat bëjnë cilat sdcc cilat git
Hapi 2: Ndërtimi i Programuesit
Ky seksion do të jetë i shkurtër, pasi kam ndërtuar mburojën time të programimit disa kohë më parë. Unë kam bashkangjitur skemën dhe fotografitë e bordit të mbledhur. PDF -ja e skemës mund të gjendet në depo.
Ju do të duhet të programoni bordin e programuesit:
1. Klononi depon.
git klon
2. Hapni skedarin AT89C2051_programmer/AT89_prog/AT89_prog.ino në Arduino IDE.
3. Ndërtoni dhe ngarkoni skicën nga Arduino IDE.
Hapi 3: Instalimi i Softuerit Programues
1. Krijoni një mjedis virtual python.
python3 -m venv venv
Me venv/bin/aktivizo
2. Instaloni at89overlord. at89overlord është një programues me burim të hapur për çipin AT89C2051 të shkruar nga unë. Kodi burimor mund të gjendet këtu.
pip instalo at89overlord
3. Verifikoni instalimin.
at89livelord -h
Hapi 4: Programimi i çipit
1. Klononi një projekt të thjeshtë pulsimi.
cd
git klon https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. Ndërtoni aplikacionin.
bëj
3. Lidheni Arduino me PC, lidhni furnizimin me 12V, vendosni çipin AT89C2051 në prizën ZIF.
4. Gjeni portin serik të Arduino.
ls /dev /tty*
5. Ngarko skedarin e ndërtuar IntelHex në çip. Nëse porti juaj Arduino është i ndryshëm nga /dev /ttyACM0 ju duhet të kaloni vlerën e saktë me parametrin e rreshtit -p të komandës.
at89livelli -f./hello.ihx
Hapi 5: Asambleja
Mblidhni qarkun sipas skemës. Një version PDF mund të gjendet në depo.
Ju duhet të shihni ndezjen e gjelbër LED me një frekuencë prej rreth 0.5Hz.
Hapi 6: Shpjegimi i kodit
#përfshi
#përfshi
Fillojmë duke përfshirë kokën AT89X051 nga sdcc. Ai përmban makro për ndërveprimin me regjistrat sikur të ishin ndryshore. Ne gjithashtu përfshijmë stdint.h e cila përmban përkufizimet e llojeve të numrave të plotë uint8_t dhe uint16_t.
// Duke supozuar se oshilatori është 16MHz
#përcaktoni INTERRUPTS_PER_SECOND 5208
Një ndërprerje ndodh kur Timer0 tejmbush. Shtë konfiguruar si një kohëmatës i vetëm 8bit, kështu që kjo ndodh çdo cikël procesori 2^8. Një cikël procesori merr 12 cikle sahati, dhe kështu ne arrijmë në 16000000/12/2^8 = 5208.33333.
i paqëndrueshëm uint8_t led_state = 0;
i paqëndrueshëm uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Ne deklarojmë kontrollin e shtetit të udhëhequr dhe ndërpresim ndryshoret e numëruesit.
void Timer0_ISR (i pavlefshëm) _ndërprer (1) {
timer_counter--; if (timer_counter == 0) {led_state =! led_state; timer_counter = INTERRUPTS_PER_SECOND; }}
Sa herë që Kohëmatësi 0 tejmbush, numëruesi zvogëlohet. Nëse është e barabartë me zero, rivendoset, dhe gjendja led ndryshon. Kjo ndodh rreth një herë në sekondë, duke rezultuar në frekuencë pulsimi LED ~ 0.5Hz.
int kryesore () {
TMOD = 0x3; // Modaliteti i kohëmatësit - 8 bit, pa parashkrues. freq = OSCFREQ/12/2^8 TL0 = 0; // Pastruesi i qartë TH0 = 0; // Pastro regjistrin TR0 = 1; // Vendosni kohëmatësin që të funksionojë. ET0 = 1; // Vendos ndërprerjen. EA = 1; // Vendosni ndërprerjen globale. ndërsa (1) {if (led_state) {P1 = 0xFF; } tjetër {P1 = 0x00; }}}
Ne konfigurojmë modulin e kohëmatësit dhe presim ndryshime në ndryshoren e kontrollit të gjendjes led. TMOD është regjistri i kontrollit të modalitetit të kohëmatësit. TL0 dhe TH0 janë regjistra kontrolli Timer0. ET0 është biti i aktivizimit të kohëmatësit0 në regjistrin e kontrollit të kohëmatësit (TCON). TR0 dhe EA janë bit në regjistrin e aktivizimit të ndërprerjeve (IE).
Hapi 7: Burime shtesë
- Fleta e të dhënave AT89C2051:
- Pajisja e vogël C Përpilues (sdcc):
- Burimet 8051:
- Depoja e programuesit AT89C2051:
- përshëndetje depoja-8051:
Recommended:
Vendosni programimin e NodeMCU me Arduino IDE: 3 hapa
Vendosni programimin NodeMCU Me Arduino IDE: Në këtë udhëzues do t'ju tregoj se si të programoni bordin NodeMCU duke përdorur Arduino IDE. Për ta bërë këtë ju duhet të instaloni drejtuesit dhe të shtoni bordin NodeMCU në listën e bordeve Arduino. Le të bëjmë hap pas hapi
Si të vendosni programimin në C/C ++ .: 5 hapa
Si të vendosni programimin në C/C ++ .: C dhe C ++ janë gjuhë programimi të njohura që sigurojnë shpejt qasje në krijimin e formulave dhe zgjidhjen e çështjeve komplekse me burime minimale të shpenzuara. Çështja është gjetja e një mënyre për të përpiluar dhe bërë programin të ekzekutueshëm. Një nga opsionet tuaja mund të jetë
Hacking EXtreme Burner për programimin e pajisjeve AVR Atmega: 7 hapa
Hacking EXtreme Burner për Programimin e Pajisjeve AVR Atmega: Ky është udhëzuesi im i parë në këtë faqe! Të gjithë ju njerëz të mirë postuat shumë gjëra në këtë faqe, shumë ide dhe interesa të çuditshme dhe të çuditshme gjithashtu! Shumë prej të cilave i lexoja herë pas here, dhe ju më frymëzuat t'i ktheja Komunitetit! Alth
Hyrje në Programimin e Raspberry Pi Pa Kodim Dorë: 3 Hapa
Hyrje në Programimin e Raspberry Pi Pa Kodim Dorë: Përshëndetje, ky udhëzues do t'ju tregojë se si ta ktheni Raspberry Pi tuaj në një pajisje automatizimi plotësisht të programueshme në përputhje me gjuhën e programimit të orientuar grafikisht për PLC të quajtur Diagrami i Funksionit (pjesë e standardit IEC 61131-3). Kjo mund të jetë
P USRDORIMI I Djegësit ekstrem për programimin e mikrokontrolluesit AVR: 8 hapa
P USRDORIMI I Burnerit Ekstrem për Programimin e Mikrokontrolluesve AVR: Të gjithë ju vëllazëri të përdoruesve AVR atje, dhe ata që sapo hynë në rrjedhë, Disa prej jush filluan me mikrokontrolluesit PIC dhe disa filluan me AVR ATMEL, kjo është shkruar për ju! Kështu që keni blerë një USBASP sepse është e lirë dhe efektive për të ndezur