Orodha ya maudhui:
- Hatua ya 1: Mahitaji
- Hatua ya 2: Kuunda Programu
- Hatua ya 3: Kufunga Programu ya Programu
- Hatua ya 4: Kupanga Chip
- Hatua ya 5: Mkutano
- Hatua ya 6: Ufafanuzi wa Kanuni
- Hatua ya 7: Rasilimali za Ziada
Video: Utangulizi wa Programu ya 8051 na AT89C2051 (Mgeni anayeigiza: Arduino): Hatua 7 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
8051 (pia inajulikana kama MCS-51) ni muundo wa MCU kutoka miaka ya 80 ambayo bado inajulikana leo. Udhibiti mdogo wa kisasa wa 8051 unapatikana kutoka kwa wauzaji wengi, kwa maumbo na saizi zote, na anuwai ya vifaa vya pembezoni. Katika hili tunaweza kufundisha AT89C2051 MCU kutoka Atmel.
AT89C2051 ni ndogo (2Kbyte Flash, 128byte RAM), nafuu (~ $ 1.40 kwa chip) microcontroller.
- Operesheni ya 2.7-6V
- Mistari 15 I / O
- Vipima muda 2 (16 bit)
- Usumbufu wa ndani na nje
- UART
- Mlinganisho wa Analog ya kwenye-chip
- Hadi 2MIPS na saa ya 24MHz
Hatua ya 1: Mahitaji
Mahitaji:
- PC ya Linux (programu inayohitajika: Arduino IDE, git, make, sdcc)
- Arduino UNO
- Chip ya AT89C2051 (kifurushi cha DIP20)
- Tundu la ZIF la pini 20
- Optocoupler (ikiwezekana pato la MOSFET)
- Ngao ya protoksi ya Arduino
- Usambazaji wa umeme wa 12V
- Usambazaji wa umeme wa 5V
- 16MHz kioo oscillator
- 2x 30pF capacitor
- 100nF capacitor
- Diode (mfano: 1N400X)
- Resistors (1K, 3K3)
- Kitabu cha ulinzi
- Wanarukaji
- Waya wa shaba
Angalia programu inayohitajika:
chatu3
ambayo hufanya sdcc ipi git
Hatua ya 2: Kuunda Programu
Sehemu hii itakuwa fupi, kama nilivyojenga ngao yangu ya programu muda uliopita. Nimeambatanisha picha na picha za bodi iliyokusanyika. PDF ya skimu inaweza kupatikana kwenye hazina.
Utalazimika kupanga bodi ya programu:
1. Clone hazina.
clone ya git
2. Fungua AT89C2051_programmer / AT89_prog / AT89_prog.ino faili katika Arduino IDE.
3. Jenga na upakie mchoro kutoka Arduino IDE.
Hatua ya 3: Kufunga Programu ya Programu
1. Unda mazingira dhahiri ya chatu.
chatu3 -m venv venv
. venv / bin / kuamsha
2. Sakinisha at89overlord. at89overlord ni programu ya Chanzo wazi kwa chip ya AT89C2051 iliyoandikwa na mimi. Nambari ya chanzo inaweza kupatikana hapa.
pip kufunga at89overlord
3. Thibitisha ufungaji.
at89overlord -h
Hatua ya 4: Kupanga Chip
1. Clone mradi rahisi blink.
cd ~
clone ya git https://github.com/piotrb5e3/hello-8051.git cd hello-8051 /
2. Jenga programu.
fanya
3. Unganisha Arduino kwenye PC, unganisha usambazaji wa 12V, weka chip ya AT89C2051 kwenye tundu la ZIF.
4. Pata bandari ya serial ya Arduino.
ls / dev / tty *
5. Pakia faili ya IntelHex iliyojengwa kwenye chip. Ikiwa bandari yako ya Arduino ni tofauti na / dev / ttyACM0 lazima upitishe thamani sahihi na -p amri ya mstari wa amri.
at89overlord -f./hello.ihx
Hatua ya 5: Mkutano
Kukusanya mzunguko kulingana na mpango. Toleo la PDF linaweza kupatikana kwenye hazina.
Unapaswa kuona taa ya kijani ya LED na masafa ya karibu 0.5Hz.
Hatua ya 6: Ufafanuzi wa Kanuni
# pamoja
# pamoja
Tunaanza kwa kujumuisha kichwa cha AT89X051 kutoka sdcc. Inayo macros ya kuingiliana na madaftari kana kwamba ni anuwai. Sisi pia ni pamoja na stdint.h ambayo ina ufafanuzi wa uint8_t na uint16_t aina kamili.
// Kudhani oscillator ni 16MHz
#fafanua INTERRUPTS_PER_SECOND 5208
Usumbufu hufanyika wakati Timer0 inapojaa. Imesanidiwa kama kipima muda kimoja cha 8bit, kwa hivyo hii hufanyika kila mizunguko ya processor 2 ^ 8. Mzunguko mmoja wa processor unachukua mizunguko ya saa 12, na kwa hivyo tunafika saa 16000000/12/2 ^ 8 = 5208.33333.
tete uint8_t led_state = 0;
tete uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Tunatangaza udhibiti wa hali iliyoongozwa na kukatiza vigeu vya kukabiliana.
timer timer0_ISR (batili) _katika (1) {
timer_counter--; ikiwa (timer_counter == 0) {led_state =! led_state; timer_counter = INTERRUPTS_PER_SECOND; }}
Kila wakati Timer0 inapofurika kaunta hupungua. Ikiwa ni sawa na sifuri imewekwa upya, na hali iliyoongozwa inabadilishwa. Hii hufanyika mara moja kwa sekunde, na kusababisha ~ 0.5Hz frequency ya blinking ya LED.
int kuu () {
TMOD = 0x3; // Njia ya Timer - 8bits, hakuna mchungaji. freq = OSCFREQ / 12/2 ^ 8 TL0 = 0; // Futa kaunta TH0 = 0; // Sajili wazi TR0 = 1; // Weka kipima muda ili kukimbia. ET0 = 1; // Weka usumbufu. EA = 1; // Weka usumbufu wa ulimwengu. wakati (1) {if (led_state) {P1 = 0xFF; } mwingine {P1 = 0x00; }}}
Tunasanidi moduli ya kipima muda na tunasubiri mabadiliko katika kutofautisha kwa udhibiti wa hali iliyoongozwa. TMOD ni sajili ya kudhibiti hali ya timer. TL0 na TH0 ni sajili za kudhibiti Timer0. ET0 ni wakati wa kuwezesha-timer0 katika rejista ya kudhibiti saa (TCON). TR0 na EA ni bits katika usumbufu kuwezesha rejista (IE).
Hatua ya 7: Rasilimali za Ziada
- Jedwali la data la AT89C2051:
- Kidhibiti C cha Kifaa Kidogo (sdcc):
- Rasilimali 8051:
- Hifadhi ya programu ya AT89C2051:
- hello-8051 hifadhi:
Ilipendekeza:
Kukabiliana na Mgeni Kutumia Sura ya 8051 na IR Pamoja na LCD: Hatua 3
Kaunta ya Wageni Kutumia 8051 na Sura ya IR Pamoja na LCD: Wapendwa Marafiki, nimeelezea jinsi ya kutengeneza kaunta ya wageni kwa kutumia sensorer ya 8051 na IR na kuionyesha kwenye LCD. 8051 ni moja wapo ya dhibiti ndogo inayotumiwa kutengeneza burudani, matumizi ya kibiashara kote ulimwenguni. Nimefanya ziara
Wallace Kiumbe Mgeni wa Animatronic: Hatua 9 (na Picha)
Wallace Kiumbe Mgeni wa Animatronic: Karibu! Leo nitakuonyesha jinsi ya kujenga Wallace, kiumbe mgeni aliye hai. Ili kuanza, utahitaji: x 1 Mbwa wa Marafiki wa kweli (kama hii: https://www.ebay.com/p/1903566719)x 5 MG996R Servos x 1 Pololu Maestro 6-Kituo cha Servo Contro
Mgeni wa Ziara ya BI - MAELEKEZO KUTUMIA 8051 (AT89S52): Hatua 4
BI - MFANYAKAZI WA WAKUU WA MIONGOZO ANATUMIA 8051 (AT89S52): Lengo la mradi huu ni kuhesabu idadi ya wageni wanaoingia na kutoka kwenye chumba na kusasisha maelezo kwenye onyesho la LCD. Mradi huu una mtawala mdogo wa AT89S52, sensorer mbili za IR na onyesho la LCD . Sensorer za IR hugundua nje
Utangulizi wa Programu ya Raspberry Pi Bila Uwekaji Sawa wa mikono: Hatua 3
Utangulizi wa Programu ya Raspberry Pi Bila Usajili wa mikono: Hi, hii inayoweza kufundishwa itakuonyesha jinsi ya kugeuza Raspberry yako Pi kuwa kifaa cha kupangilia kikamilifu kinachoweza kusanifiwa na lugha ya programu inayoelekezwa kwa picha kwa PLC zinazoitwa Function Block Mchoro (sehemu ya kiwango cha IEC 61131-3). Hii inaweza kuwa
Bodi ya Alfabeti inayodhibitiwa na Programu Iliyoongozwa na Mambo ya Mgeni: Hatua 7 (na Picha)
Bodi ya Alfabeti inayodhibitiwa na programu iliyoongozwa na Mambo ya Mgeni: Hii yote ilianza wiki chache zilizopita wakati wa kujaribu kujua ni nini cha kumpata mpwa wangu wa miaka tisa kwa Krismasi. Ndugu yangu mwishowe alinijulisha kuwa yeye ni shabiki mkubwa wa Mambo ya Mgeni. Nilijua papo hapo kile nilitaka kumpata, kitu ambacho