Daftar Isi:
- Langkah 1: Persyaratan
- Langkah 2: Membangun Programmer
- Langkah 3: Menginstal Perangkat Lunak Pemrogram
- Langkah 4: Memprogram Chip
- Langkah 5: Perakitan
- Langkah 6: Penjelasan Kode
- Langkah 7: Sumber Daya Tambahan
Video: Pengenalan Pemrograman 8051 Dengan AT89C2051 (Dibintangi Tamu: Arduino): 7 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
8051 (juga dikenal sebagai MCS-51) adalah desain MCU dari tahun 80-an yang tetap populer hingga saat ini. Mikrokontroler modern yang kompatibel dengan 8051 tersedia dari beberapa vendor, dalam segala bentuk dan ukuran, dan dengan berbagai periferal. Dalam instruksi ini kita akan melihat AT89C2051 MCU dari Atmel.
AT89C2051 adalah mikrokontroler kecil (2Kbyte Flash, 128byte RAM), murah (~$1,40 per chip). Fitur:
- 2.7-6V operasi
- 15 jalur I/O
- 2 timer (16 bit)
- Interupsi internal dan eksternal
- UART
- Komparator analog dalam chip
- Hingga 2MIPS dengan jam 24MHz
Langkah 1: Persyaratan
Persyaratan:
- PC Linux (perangkat lunak yang diperlukan: Arduino IDE, git, make, sdcc)
- Arduino UNO
- Chip AT89C2051 (paket DIP20)
- Soket ZIF 20-pin
- Optocoupler (lebih disukai keluaran MOSFET)
- Perisai prototipe Arduino
- catu daya 12V
- catu daya 5V
- Osilator kristal 16MHz
- 2x 30pF kapasitor
- kapasitor 100nF
- Dioda (misalnya: 1N400X)
- Resistor (1K, 3K3)
- Protoboard
- jumper
- Kawat tembaga
Periksa perangkat lunak yang diperlukan:
python3 yang mana
yang membuat sdcc yang mana git
Langkah 2: Membangun Programmer
Bagian ini akan singkat, karena saya membuat perisai pemrograman saya beberapa waktu lalu. Saya telah melampirkan skema dan gambar papan rakitan. PDF skema dapat ditemukan di repositori.
Anda harus memprogram papan pemrogram:
1. Mengkloning repositori.
git clone
2. Buka file AT89C2051_programmer/AT89_prog/AT89_prog.ino di Arduino IDE.
3. Bangun dan unggah sketsa dari Arduino IDE.
Langkah 3: Menginstal Perangkat Lunak Pemrogram
1. Buat lingkungan virtual python.
python3 -m venv venv
. venv/bin/aktifkan
2. Instal di89overlord. at89overlord adalah programmer Open Source untuk chip AT89C2051 yang ditulis oleh saya. Kode sumbernya dapat ditemukan di sini.
instal pip di89overlord
3. Verifikasi instalasi.
at89overlord -h
Langkah 4: Memprogram Chip
1. Mengkloning proyek kedipan sederhana.
cd ~
git clone https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. Membangun aplikasi.
membuat
3. Hubungkan Arduino ke PC, sambungkan supply 12V, tempatkan chip AT89C2051 pada soket ZIF.
4. Temukan port serial Arduino.
ls /dev/tty*
5. Unggah file IntelHex bawaan ke chip. Jika port Arduino Anda berbeda dari /dev/ttyACM0 Anda harus memberikan nilai yang benar dengan parameter baris perintah -p.
at89overlord -f./hello.ihx
Langkah 5: Perakitan
Merakit sirkuit sesuai dengan skema. Versi PDF dapat ditemukan di repositori.
Anda akan melihat lampu kilat LED hijau dengan frekuensi sekitar 0,5Hz.
Langkah 6: Penjelasan Kode
#termasuk
#termasuk
Kita mulai dengan memasukkan header AT89X051 dari sdcc. Ini berisi makro untuk berinteraksi dengan register seolah-olah mereka adalah variabel. Kami juga menyertakan stdint.h yang berisi definisi tipe integer uint8_t dan uint16_t.
// Dengan asumsi osilator adalah 16MHz
#define INTERRUPTS_PER_SECOND 5208
Interupsi terjadi ketika Timer0 meluap. Ini dikonfigurasi sebagai timer 8bit tunggal, jadi ini terjadi setiap 2^8 siklus prosesor. Satu siklus prosesor membutuhkan 12 siklus clock, dan dengan demikian kita sampai pada 16000000/12/2^8 = 5208.33333.
volatil uint8_t led_state = 0;
volatile uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Kami mendeklarasikan kontrol keadaan yang dipimpin dan variabel penghitung interupsi.
void Timer0_ISR(void) _interrupt (1) {
timer_counter--; if(timer_counter == 0) { led_state = !led_state; timer_counter = INTERRUPTS_PER_SECOND; } }
Setiap kali Timer0 meluap, penghitung berkurang. Jika sama dengan nol itu direset, dan status led berubah. Ini terjadi sekitar sekali per detik, menghasilkan frekuensi kedipan LED ~ 0,5Hz.
int utama() {
TMOD = 0x3; // Mode pengatur waktu - 8 bit, tanpa prescaler. freq = OSCFREQ/12/2^8 TL0 = 0; // Hapus penghitung TH0 = 0; // Hapus register TR0 = 1; // Atur timer untuk dijalankan. ET0 = 1; // Setel interupsi. EA = 1; // Setel interupsi global. while(1) { if (led_state) { P1 = 0xFF; } else { P1 = 0x00; } } }
Kami mengonfigurasi modul pengatur waktu dan menunggu perubahan dalam variabel kontrol status yang dipimpin. TMOD adalah register kontrol mode pengatur waktu. TL0 dan TH0 adalah register kontrol Timer0. ET0 adalah bit enable-timer0 dalam register kontrol timer (TCON). TR0 dan EA adalah bit dalam register pengaktifan interupsi (IE).
Langkah 7: Sumber Daya Tambahan
- Lembar data AT89C2051:
- Kompilator Perangkat C Kecil (sdcc):
- 8051 sumber daya:
- Repositori programmer AT89C2051:
- halo-8051 repositori:
Direkomendasikan:
Kontrol Ruang Tamu Dengan Alexa dan Raspberry Pi: 12 Langkah
Kontrol Ruang Tamu Dengan Alexa dan Raspberry Pi: Kontrol TV, lampu, dan Kipas ruang tamu Anda dengan Alexa (Amazon Echo atau Dot) dan Raspberry Pi GPIO
Pengenalan Gambar Dengan Papan K210 dan Arduino IDE/Micropython: 6 Langkah (dengan Gambar)
Pengenalan Gambar Dengan Papan K210 dan Arduino IDE/Micropython: Saya sudah menulis satu artikel tentang cara menjalankan demo OpenMV di Sipeed Maix Bit dan juga membuat video demo deteksi objek dengan papan ini. Salah satu dari banyak pertanyaan yang diajukan orang adalah - bagaimana saya bisa mengenali objek yang jaringan sarafnya tidak
Ruang Tamu untuk Film Dengan Shelly: 4 Langkah
Ruang Tamu untuk Film Dengan Shelly: Ringkasan Eksekutif ProyekCara membuat otomatisasi yang sangat sederhana menggunakan rutinitas rumah google untuk membuat ruang tamu kamar saya nyaman untuk menonton film
Arduino Termurah -- Arduino terkecil -- Arduino Pro Mini -- Pemrograman -- Arduino Neno: 6 Langkah (dengan Gambar)
Arduino Termurah || Arduino terkecil || Arduino Pro Mini || Pemrograman || Arduino Neno:…………………………. Silakan BERLANGGANAN ke saluran YouTube saya untuk lebih banyak video……. .Proyek ini adalah tentang bagaimana menghubungkan arduino terkecil dan termurah yang pernah ada. Arduino terkecil dan termurah adalah arduino pro mini. Mirip dengan arduino
Pengenalan Pengenalan Suara Dengan Elechouse V3 dan Arduino.: 4 Langkah (dengan Gambar)
Pengenalan Pengenalan Suara Dengan Elechouse V3 dan Arduino.: Hai…!Teknologi pengenalan suara telah ada di sini selama beberapa tahun terakhir. Kami masih ingat kegembiraan besar yang kami alami saat berbicara dengan iphone pertama yang mendukung Siri. Sejak itu, perangkat perintah suara telah berkembang ke tingkat yang sangat