İçindekiler:
- Adım 1: Gereksinimler
- Adım 2: Programlayıcıyı Oluşturma
- Adım 3: Programcı Yazılımını Yükleme
- Adım 4: Çipin Programlanması
- Adım 5: Montaj
- Adım 6: Kod Açıklaması
- 7. Adım: Ek Kaynaklar
Video: AT89C2051 ile 8051 Programlamaya Giriş (Konuk Başrol: Arduino): 7 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
8051 (MCS-51 olarak da bilinir), 80'lerden günümüze popülerliğini koruyan bir MCU tasarımıdır. Modern 8051 uyumlu mikrodenetleyiciler, çok sayıda satıcıdan tüm şekil ve boyutlarda ve çok çeşitli çevre birimlerinde mevcuttur. Bu talimatta, Atmel'den AT89C2051 MCU'ya bakacağız.
AT89C2051, küçük (2Kbayt Flash, 128bayt RAM), ucuz (çip başına ~1,40$) bir mikrodenetleyicidir. Özellikler:
- 2.7-6V çalışma
- 15 G/Ç hattı
- 2 zamanlayıcı (16 bit)
- Dahili ve harici kesintiler
- UART
- Çipte analog karşılaştırıcı
- 24 MHz saat hızıyla 2MIPS'ye kadar
Adım 1: Gereksinimler
Gereksinimler:
- Linux PC (gerekli yazılım: Arduino IDE, git, make, sdcc)
- Arduino UNO'su
- AT89C2051 çipi (DIP20 paketi)
- 20 pinli ZIF soketi
- Optocoupler (tercihen MOSFET çıkışı)
- Arduino prototipleme kalkanı
- 12V güç kaynağı
- 5V güç kaynağı
- 16MHz kristal osilatör
- 2x 30pF kapasitör
- 100nF kapasitör
- Diyot (ör: 1N400X)
- Dirençler (1K, 3K3)
- protokol
- Süveterler
- Bakır kablo
Gerekli yazılımı kontrol edin:
hangi piton3
hangi sdcc'yi hangi git yap
Adım 2: Programlayıcıyı Oluşturma
Programlama kalkanımı bir süre önce oluşturduğum için bu bölüm kısa olacak. Monte edilen panonun şematik ve resimlerini ekledim. Şematik PDF dosyası depoda bulunabilir.
Programlayıcı panosunu programlamanız gerekecek:
1. Depoyu klonlayın.
git klonu
2. Arduino IDE'de AT89C2051_programmer/AT89_prog/AT89_prog.ino dosyasını açın.
3. Arduino IDE'den taslağı oluşturun ve yükleyin.
Adım 3: Programcı Yazılımını Yükleme
1. Bir piton sanal ortamı oluşturun.
python3 -m venv venv
. venv/bin/etkinleştir
2. 89overlord'u yükleyin. at89overlord, AT89C2051 yongası için yazdığım bir Açık Kaynak programcısıdır. Kaynak kodu burada bulunabilir.
89overlord'da pip kurulumu
3. Kurulumu doğrulayın.
at89overlord -h
Adım 4: Çipin Programlanması
1. Basit bir göz kırpma projesini klonlayın.
cd ~
git klon https://github.com/piotrb5e3/hello-8051.git cd merhaba-8051/
2. Uygulamayı oluşturun.
Yapmak
3. Arduino'yu PC'ye bağlayın, 12V beslemesini bağlayın, AT89C2051 çipini ZIF soketine yerleştirin.
4. Arduino'nun seri portunu bulun.
ls /dev/tty*
5. Yerleşik IntelHex dosyasını çipe yükleyin. Arduino'nuzun bağlantı noktası /dev/ttyACM0'dan farklıysa, -p komut satırı parametresiyle doğru değeri iletmeniz gerekir.
at89overlord -f./hello.ihx
Adım 5: Montaj
Devreyi şematik olarak kurunuz. Depoda bir PDF sürümü bulunabilir.
Yeşil LED'in yaklaşık 0,5 Hz'lik bir frekansla yanıp söndüğünü görmelisiniz.
Adım 6: Kod Açıklaması
#Dahil etmek
#Dahil etmek
AT89X051 başlığını sdcc'den ekleyerek başlıyoruz. Kayıtlarla değişkenlermiş gibi etkileşim kurmak için makrolar içerir. Ayrıca uint8_t ve uint16_t tamsayı türlerinin tanımlarını içeren stdint.h dosyasını da dahil ediyoruz.
// Osilatörün 16MHz olduğunu varsayarsak
#define INTERRUPTS_PER_SECOND 5208
Timer0 taştığında bir kesinti meydana gelir. Tek bir 8 bit zamanlayıcı olarak yapılandırılmıştır, bu nedenle bu her 2^8 işlemci döngüsünde gerçekleşir. Bir işlemci döngüsü 12 saat döngüsü alır ve böylece 16000000/12/2^8 = 5208.33333'e ulaşırız.
uçucu uint8_t led_state = 0;
uçucu uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Led durum kontrolünü ve kesme sayacı değişkenlerini bildiriyoruz.
void Timer0_ISR(void) _interrupt (1) {
timer_counter--; if(timer_counter == 0) { led_state = !led_state; timer_counter = INTERRUPTS_PER_SECOND; } }
Timer0 her taştığında sayaç azalır. Sıfıra eşitse resetlenir ve led durumu değişir. Bu, saniyede bir kez meydana gelir ve ~0.5Hz LED yanıp sönme frekansına neden olur.
int ana() {
TMOD = 0x3; // Zamanlayıcı modu - 8 bit, ön ölçekleyici yok. frekans = OSCFREQ/12/2^8 TL0 = 0; // Sayacın silinmesi TH0 = 0; // register TR0 = 1; // Zamanlayıcıyı çalışacak şekilde ayarla. ET0 = 1; // Kesintiyi ayarla. EA = 1; // Global kesmeyi ayarla. while(1) { if (led_state) { P1 = 0xFF; } başka { P1 = 0x00; } } }
Zamanlayıcı modülünü yapılandırıyoruz ve led durum kontrol değişkenindeki değişiklikleri bekliyoruz. TMOD, zamanlayıcı modu kontrol kaydıdır. TL0 ve TH0, Timer0 kontrol kayıtlarıdır. ET0, zamanlayıcı kontrol kaydındaki (TCON) etkinleştirme zamanlayıcı0 bitidir. TR0 ve EA, kesme etkinleştirme kaydındaki (IE) bitlerdir.
7. Adım: Ek Kaynaklar
- AT89C2051 veri sayfası:
- Küçük Aygıt C Derleyicisi (sdcc):
- 8051 kaynakları:
- AT89C2051 programcı deposu:
- merhaba-8051 deposu:
Önerilen:
Raspberry Pi'yi Elle Kodlamadan Programlamaya Giriş: 3 Adım
Raspberry Pi'yi El Kodlaması Olmadan Programlamaya Giriş: Merhaba, bu talimat size Raspberry Pi'nizi Fonksiyon Blok Şeması (IEC 61131-3 standardının bir parçası) olarak adlandırılan PLC'ler için grafik yönelimli programlama dili ile uyumlu tamamen programlanabilir bir otomasyon cihazına nasıl dönüştüreceğinizi gösterecektir. Bu olabilir
İletken Jelly Donuts - Makey Makey ile Dikiş Devrelerine Giriş: 4 Adım (Resimlerle)
İletken Jelly Donuts - Makey Makey ile Dikiş Devrelerine Giriş: Twitter'da Scratch ve Makey Makey fanatiklerimizin çoğunun dikiş devreleri hakkında daha fazla bilgi edinmek istediğini fark ettik, bu yüzden bu öğreticiyi size dikiş devreleri hakkında hızlı bir giriş yapmak için hazırladık. ve bazı modüler parçaları nasıl dikebileceğinizi. (Bu
Elechouse V3 ve Arduino ile Ses Tanımaya Giriş: 4 Adım (Resimlerle)
Elechouse V3 ve Arduino ile Ses Tanımaya Giriş.: Merhaba…!Ses tanıma teknolojisi son birkaç yıldır buradaydı. İlk Siri özellikli iphone ile konuşurken yaşadığımız büyük heyecanı hala hatırlıyoruz. O zamandan beri sesli komut cihazları çok ileri bir seviyeye geldi beyo
Asenkron Giriş Formu ile Ajax Web Sitesini Örümcek: 6 Adım (Resimlerle)
Bir Ajax Web Sitesini Eşzamansız Oturum Açma Formu ile Örümcek: Sorun: Örümcek araçları, AJAX oturum açma kimlik doğrulamasına izin vermiyor. Bu talimat, Python ve Mechanize adlı bir modül kullanarak bir AJAX formu aracılığıyla nasıl giriş yapacağınızı gösterecektir. Örümcekler, giderek daha popüler hale gelen web otomasyon programlarıdır
Bir Akış Şeması ile Programlamaya Başlama: 7 Adım
Programlamaya Bir Akış Şeması İle Başlamak: Projeleriniz için PIC mikro denetleyicileri kullanmaya mı başlıyorsunuz? bunlar çok kullanışlıdır ama programınız çalışmadığında çok sinir bozucudur. Bu, bir akış şeması çizerek fikirlerinizi sıralamanın bir yoludur. Profesyonel programcıların sıklıkla kullandığı yol budur