Isi kandungan:
- Langkah 1: Keperluan
- Langkah 2: Membangunkan Programmer
- Langkah 3: Memasang Perisian Pengaturcara
- Langkah 4: Memprogram Chip
- Langkah 5: Perhimpunan
- Langkah 6: Penjelasan Kod
- Langkah 7: Sumber Tambahan
Video: Pengenalan 8051 Pengaturcaraan Dengan AT89C2051 (Tetamu Dibintangi: Arduino): 7 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
8051 (juga dikenali sebagai MCS-51) adalah reka bentuk MCU dari tahun 80-an yang tetap popular hingga kini. Mikrokontroler serasi 8051 moden boleh didapati dari pelbagai vendor, dalam semua bentuk dan saiz, dan dengan pelbagai periferal. Dalam arahan ini kita akan melihat MC89 AT89C2051 dari Atmel.
AT89C2051 adalah mikrokontroler kecil (2Kbyte Flash, 128byte RAM), murah (~ $ 1,40 per cip). Ciri-ciri:
- Operasi 2.7-6V
- 15 garisan I / O
- 2 pemasa (16 bit)
- Gangguan dalaman dan luaran
- UART
- Pembanding analog pada cip
- Hingga 2MIPS dengan jam 24MHz
Langkah 1: Keperluan
Keperluan:
- PC Linux (perisian yang diperlukan: Arduino IDE, git, make, sdcc)
- Arduino UNO
- Cip AT89C2051 (pakej DIP20)
- Soket ZIF 20-pin
- Optocoupler (lebih baik keluaran MOSFET)
- Perisai prototaip Arduino
- Bekalan kuasa 12V
- Bekalan kuasa 5V
- Pengayun kristal 16MHz
- Kapasitor 2x 30pF
- Kapasitor 100nF
- Diod (cth: 1N400X)
- Perintang (1K, 3K3)
- Papan Protob
- Pelompat
- Dawai tembaga
Periksa perisian yang diperlukan:
python3 yang mana
yang membuat sdcc mana yang git
Langkah 2: Membangunkan Programmer
Bahagian ini akan ringkas, kerana saya membina perisai pengaturcaraan saya beberapa waktu yang lalu. Saya telah melampirkan skema dan gambar papan yang dipasang. PDF skema boleh didapati di repositori.
Anda perlu memprogram papan pengaturcara:
1. Klon repositori.
git klon
2. Buka fail AT89C2051_programmer / AT89_prog / AT89_prog.ino di Arduino IDE.
3. Bina dan muat naik lakaran dari Arduino IDE.
Langkah 3: Memasang Perisian Pengaturcara
1. Buat persekitaran maya python.
python3 -m venv venv
. venv / bin / aktifkan
2. Pasang at89overlord. at89overlord adalah programmer Open Source untuk cip AT89C2051 yang ditulis oleh saya. Kod sumbernya boleh didapati di sini.
memasang pip at89overlord
3. Sahkan pemasangan.
at89overlord -h
Langkah 4: Memprogram Chip
1. Klon projek sekelip mata.
cd ~
git klon https://github.com/piotrb5e3/hello-8051.git cd hello-8051 /
2. Bina aplikasi.
membuat
3. Sambungkan Arduino ke PC, sambungkan bekalan 12V, letakkan cip AT89C2051 di soket ZIF.
4. Cari port bersiri Arduino.
ls / dev / tty *
5. Muat naik fail IntelHex yang dibina ke cip. Sekiranya port Arduino anda berbeza dari / dev / ttyACM0, anda harus memberikan nilai yang betul dengan parameter baris perintah -p.
at89overlord -f./hello.ihx
Langkah 5: Perhimpunan
Pasang litar mengikut skema. Versi PDF boleh didapati di repositori.
Anda harus melihat lampu kilat LED hijau dengan frekuensi sekitar 0.5Hz.
Langkah 6: Penjelasan Kod
#sertakan
#sertakan
Kita mulakan dengan memasukkan tajuk AT89X051 dari sdcc. Ini mengandungi makro untuk berinteraksi dengan register seolah-olah mereka pemboleh ubah. Kami juga menyertakan stdint.h yang mengandungi definisi jenis integer uint8_t dan uint16_t.
// Dengan andaian pengayun ialah 16MHz
#tentukan INTERRUPTS_PER_SECOND 5208
Gangguan berlaku apabila Pemasa0 meluap. Ia dikonfigurasikan sebagai pemasa 8bit tunggal, jadi ini berlaku setiap 2 ^ 8 kitaran pemproses. Satu kitaran pemproses memerlukan 12 pusingan jam, dan dengan demikian kami tiba pada jam 16000000/12/2 ^ 8 = 5208.33333.
uint8_t led_state yang tidak menentu = 0;
tidak stabil uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Kami menyatakan pemboleh ubah kawalan keadaan yang dipimpin dan mengganggu pemboleh ubah.
void Timer0_ISR (void) _terhenti (1) {
timer_counter--; jika (timer_counter == 0) {led_state =! led_state; timer_counter = INTERRUPTS_PER_SECOND; }}
Setiap kali Timer0 melimpah, kaunter berkurang. Sekiranya sama dengan sifar, ia diset semula, dan keadaan dipimpin berubah. Ini berlaku sekitar sekali sesaat, menghasilkan ~ 0.5Hz frekuensi berkelip LED.
int utama () {
TMOD = 0x3; // Mod pemasa - 8 bit, tanpa prescaler. freq = OSCFREQ / 12/2 ^ 8 TL0 = 0; // Kosongkan kaunter TH0 = 0; // Kosongkan daftar TR0 = 1; // Tetapkan pemasa untuk dijalankan. ET0 = 1; // Tetapkan gangguan. EA = 1; // Tetapkan gangguan global. sementara (1) {if (led_state) {P1 = 0xFF; } lain {P1 = 0x00; }}}
Kami mengkonfigurasi modul pemasa dan menunggu perubahan dalam pemboleh ubah kawalan keadaan yang dipimpin. TMOD adalah daftar kawalan mod pemasa. TL0 dan TH0 adalah daftar kawalan Timer0. ET0 adalah pengaktifkan pemasa0 bit dalam daftar kawalan pemasa (TCON). TR0 dan EA adalah bit dalam interrupt enabled register (IE).
Langkah 7: Sumber Tambahan
- Lembar data AT89C2051:
- Penyusun C Peranti Kecil (sdcc):
- 8051 sumber:
- Repositori pengaturcara AT89C2051:
- repositori hello-8051:
Disyorkan:
Jam Tangan Pengaturcaraan ATtiny85 Aktiviti Bergetar yang Boleh Dipakai & Pengaturcaraan ATtiny85 Dengan Arduino Uno: 4 Langkah (dengan Gambar)
Jam Tangan Pengaturcaraan & Pengaturcaraan Aktiviti Getaran ATtiny85 ATtiny85 Dengan Arduino Uno: Bagaimana membuat jam tangan aktiviti yang boleh dipakai? Ini adalah alat yang boleh dipakai yang direka untuk bergetar ketika mengesan genangan. Adakah anda menghabiskan sebahagian besar masa anda di komputer seperti saya? Adakah anda duduk berjam-jam tanpa menyedarinya? Maka peranti ini adalah
Kamera Buku Tetamu: 4 Langkah
Kamera Buku Tetamu: Seperti yang anda ketahui, perkahwinan memerlukan banyak usaha. Pengantin lelaki sedar bahawa tunangnya dan dia akan sangat sibuk, bahawa dia bahkan tidak dapat berterima kasih kepada tetamunya kerana telah bersama mereka pada hari istimewa. Banyak perkahwinan yang diadakan hari ini, pengantin perempuan
Pengenalan Pengaturcaraan Raspberry Pi Tanpa Pengekodan Tangan: 3 Langkah
Pengenalan kepada Pengaturcaraan Raspberry Pi Tanpa Pengekodan Tangan: Hai, arahan ini akan menunjukkan kepada anda bagaimana mengubah Raspberry Pi anda menjadi peranti automasi yang dapat diprogramkan sepenuhnya yang serasi dengan bahasa pengaturcaraan berorientasikan grafik untuk PLC yang disebut Function Block Diagram (sebahagian daripada standard IEC 61131-3). Ini boleh
Arduino Termurah -- Arduino terkecil -- Arduino Pro Mini -- Pengaturcaraan -- Arduino Neno: 6 Langkah (dengan Gambar)
Arduino Termurah || Arduino terkecil || Arduino Pro Mini || Pengaturcaraan || Arduino Neno: …………………………. Sila Langgan saluran YouTube saya untuk lebih banyak video ……. Projek ini adalah mengenai bagaimana untuk menghubungkan arduino terkecil dan termurah yang pernah ada. Arduino terkecil dan termurah adalah arduino pro mini. Ia serupa dengan arduino
Pengenalan Pengecaman Suara Dengan Elechouse V3 dan Arduino .: 4 Langkah (dengan Gambar)
Pengenalan Pengecaman Suara Dengan Elechouse V3 dan Arduino .: Hai! … Teknologi pengecaman suara telah wujud sejak beberapa tahun kebelakangan ini. Kami masih ingat kegembiraan yang luar biasa yang kami dapat semasa bercakap dengan iphone Siri yang pertama. Sejak itu, alat arahan suara telah berkembang ke tahap yang sangat maju