Menü English Ukrainian Rusça Ana Sayfa

Hobiler ve profesyoneller için ücretsiz teknik kütüphane Ücretsiz teknik kütüphane


RADYO ELEKTRONİK VE ELEKTRİK MÜHENDİSLİĞİ ANSİKLOPEDİSİ
Ücretsiz kütüphane / Radyo-elektronik ve elektrikli cihazların şemaları

Acemi PIC mikrodenetleyici programcıları. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi

Ücretsiz teknik kütüphane

Radyo elektroniği ve elektrik mühendisliği ansiklopedisi / Acemi radyo amatör

makale yorumları makale yorumları

[Bu yönerge işlenirken bir hata oluştu]

Mikrodenetleyici programlamayı incelemeye başlama konusundaki kendi deneyimime dayanarak, çeviricide program yazma konusunda bazı pratik tavsiyeler vermeye çalışacağım. Aşağıda verilen tüm programlama örnekleri, nispeten basit mimarileri ve karmaşık olmayan assembler komutları sistemi nedeniyle, master'a başlamak için en uygun olan orta seviye Microchip ailesinin Pic kontrolörleri ile ilgili olarak verilmiştir.

Önerilen programlar hazır makrolar (tam alt programlar) şeklinde kullanılabilir.Belirli bir denetleyiciye bağlı değildirler, bu nedenle başvururken veri sayfalarındaki verileri dikkate almalısınız.

1.TMR0 zamanlayıcı taşma kesintilerini (RTCC) kullanma

Saat frekansını alalım - Fclock. = 4,096 MHz (standart kuvars). O zaman çevrim süresi tc = 1 / Ftact olacaktır. * 4 = 0,97656 µs

INI_TMR; RTCC'den kesme modunun başlatılması
bsf DURUMU,RP0 ; banka 1'i seç
hareket b'00000100'
movwf SEÇENEK; RTCC 1:32 için ön ölçekleyici
bcf DURUM,RP0 ; banka 0
hareket b'10100000'
movwf INTCON; RTCC kesintisi etkin
movlw.96; 96 ön numarasını RTCC'ye yükleyin
movwf TMR0

Kesinti süresini alalım:
ti = tc * 32 * (256 - 96 = 160)
ti = 0,97656 * 32 * 160 = 5 µs = 000 ms

Şimdi, herhangi bir programınıza sonsuz bir döngü eklerseniz (kesme bekleme döngüsü olarak adlandırılır) ve programın sonu bu döngüye aktarılırsa, 5 ms'lik bir zaman referansı alırız ve kesintiden sonra program, kesme vektörü tarafından belirtilen adrese geri dönecektir (genellikle 04h). Bunun ne için kullanılabileceği - daha fazla bakın.

Yani:

;
kuruluş 0
BAŞLANGIÇ ; sonra program yürütmenin başlaması
; gücü aç
org 04h; ve bu kesme vektörünün adresidir, burada
ana ; ana program yürütülecek
;
BAŞLANGIÇ ; Zorunlu başlatmanın genellikle gerçekleştiği yer burasıdır.
INI_TMR; Bağlantı noktalarının, modların, kayıtların vb. merkezileştirilmesi.
INI_PORTS
döngü
döngüye git; ve bu sonsuz bir döngü
;------------------------------------------------ -

ana
; Daha sonra ana programın gövdesi gelir,
; RTCC'den bir kesme servis programı oluşturmanın gerekli olduğu,
; CALL komutuyla çağrılır:

ServTMR
btfsc INTCON,RTIF; RTCC'den kesme bayrağını kontrol edin ve
SET_TMR'yi arayın; "evet" ise TMR0'ı tekrar başlatın
geri dönmek ; "hayır" ise - ServTMR'nin çağrıldığı yere dönün
; ana program
;
SET_TMR hareket 96
movwf TMR0; 96 sayısını tekrar yükle
bcf INTCON,RTIF; tetikleme bayrağını sıfırla
retfie; ServTMR'de kesme etkinleştirme ile geri dönün ve
; daha sonra ana programa

Çıkışlardan birinde, örneğin B - RB0 bağlantı noktasında ikinci bir darbe almak için RTCC'den bir kesme kullanma örneği: Daha önce çalışma kayıtlarının adres alanında bildirilmesi gereken Rsec kaydını kullanırız.

Böylece RB0 portunun çıkışında sinyal seviyesi her saniye '0'dan '1'e değişecektir.

Denetleyici kayıtlarında bilgi genellikle ikili biçimdedir (ikili kodda). Ancak, örneğin yedi bölümlü bir göstergeyi kontrol etmek için genellikle ikili ondalık biçimde (BCD kodu) bilgi elde etmek gerekir.

İkili kod b2'yi ikili ondalık BCD'ye (veya tersi) dönüştürme örneklerine bakalım.

8 bitlik bir kayıtta, 0'dan 255'e kadar (b'00000000'den b'11111111'e kadar) bir sayıyı ikili kodla yazabilirsiniz. İkili sayıyı üç basamaklı ikili ondalık koda dönüştürelim - "yüzlerce", "onlarca" ve "birimler". Bunu yapmak için, çalışma kayıtlarının adres alanında önceden bildirilmesi gereken aşağıdaki kayıtları kullanacağız:

Rbin - bir sayıyı ikili kod b2'de saklayan kayıt
Rhan - yüzlerce BCD kodu kaydı
Rdec - BCD kodunun onlarca kaydı
Rsim - BCD kodu "bir" kaydı

Pozitif çıkarma sayısını sayarak 100 ve ardından 10 sayılarını çıkarma işlemlerini kullanarak dönüşümler gerçekleştiriyoruz.

FORM_1S; her döngüde ve RTCC kesintisi nedeniyle devam ediyor
incf Rsec,w ; 5 MS, Rsec kaydını 1 artırarak 200 sayısına yükseltin
xorlw .200; (5 ms * 200 = 1 sn)
btfsc DURUMU,z
OUT_PORT'a gidin; Rsec = 200'de flag z = '1' ve kontrole geçiş
; B bağlantı noktasının RB0 pini
geri dönmek ; ana programa dön
;
OUT_PORT btfss PORTB,0 ; RB0 pininin durumunu kontrol edin
OUT_ON'a gidin; RB0 ='0' ise '1'e ayarlayın
bcf PORTB,0 ; aksi takdirde '0' olarak ayarlayın
ana'ya git; ana programa dön
;
OUT_ON bsf PORTB,0 ; RB0 = '1' olarak ayarlayın
goto ana

CON_100 movlw .100 ; Rbin'den 100 çıkarın ve şunu kontrol edin
subwf Rbin,w ; sonuç olumsuz değil. İşaret 'c' = 1 olduğunda
btfss DURUMU,c ; sonuç > veya = 0 ve < 0 olduğunda 'c' = 0
CON_10'a git
incf Rhan,f ; "yüzlerce" sayısını saymak
movwf Rbin; çıkarma işleminin sonucu ilk olarak bir kayıt defterinde saklanır
CON_100'e gidin; pil ve ancak bundan sonra Rbin'e dönün
; Negatif olduğunda kalan kısmı kaybetmemek için
; çıkarma işleminin sonucu.
CON_10 movlw .10 ; “onlarca”yı da aynı şekilde tanımlıyoruz
subwf Rbin,w
btfss DURUMU,c
end_con'a git
incf Rdec,f
movwf Rbin
CON_10'a git;
end_con
movf Rbin,w
movwf Rsim; çıkarma işlemlerinden sonra kalanı "birimlere" girin
;programın yürütülmesine devam et

BCD kodunun b2'ye ters dönüşümü. Sayının BCD kodunda bulunduğu Rhan, Rdec, Rsim kayıtlarını kullanırız, b255 kodundaki sayılar (> 2) ve yardımcı kayıtlar RM1'deki sayılar için en önemli basamak olan RbinH'yi ve en az anlamlı basamak olan RbinL'yi kaydeder - " çarpın”, RM2 - “çarpan” .BCD'yi b2'ye dönüştürmek için “yüzlerce”yi 100 ile, “onlarca”yı 10 ile çarpmanız ve her şeyi “birimler” ile birlikte eklemeniz ve gerekirse en anlamlı basamağa aktarımı dikkate almanız gerekir. Çarpma için toplama işlemini kullanırız.

B2X_100 hareket 99 ; "yüzlerce"yi dönüştürme
movwf RM2; çarpan = ekleme sayısı (100) eksi bir
movf Rhan,w
movwf RM1; çarpım = "yüzlerce"
loopX100 addwf RM1,w btfsc DURUM,c ; en anlamlı basamağa aktarımın kontrol edilmesi
incf RbinH,f; eğer bir transfer varsa
decfsz RM2,f ; ekleme sayısını kontrol edin
loopX100'e git
movwf RbinL ; Toplamanın sonucu ml kaydına girilir. kategori
;
B2X_10 hareket .9; "onlarca" dönüşüm
movwf RM2; çarpan = ekleme sayısı (10) eksi bir
movf Rdec,w
movwf RM1; çarpım = "onlarca"
loopX10 addwf RM1,w ; burada transfer kontrol edilemiyor çünkü sonuç
decfsz RM2,f ; her zaman < 255
loopX10'e git
addwf RbinL,f ; "onlarca" dönüşümün sonucunu ekle
btfsc DURUM,c ; deşarjlarda olası bulaşma dikkate alınarak
dahil
RbinH,f
movf Rsim,w
addwf Rbin,f ; olası transferi dikkate alarak “birimler” eklemek
btfsc DURUMU,c
incf RbinH,f

Dönüşümlerin sonu ve programın daha fazla uygulanması. RbinL ve RbinH kayıtlarında b16 kodunda 2 bitlik bir sayı aldı.

Aritmetik bölme işlemini gerçekleştirmek için yukarıda tartışılan çarpma işlemine benzer şekilde çıkarma işlemi kullanılır. Diyelim ki RHsum (yüksek dereceli bitler) ve RLsum (düşük sıralı bitler) yazmaçlarında bulunan bir sayıyı, Rdel yazmacında bulunan bir bölene (> 255 olmayan bir bölen alalım) bölmemiz gerekiyor.

Sonucu RHrez ve RLrez kayıtlarına gireceğiz (sırasıyla yüksek ve düşük rakamlar):

OP_DEL
movf Rdel,w
subwf Rlsum,w
btfss DURUMU,c ; Sonucun negatif olup olmadığını kontrol edelim mi?
DEF_carry'ye git; eğer “evet” ise, o zaman Sanat'tan kredi alıyoruz. kategori
incf RLrez,f ; çıkarma sayısını dikkate alarak sayın
btfsc DURUM,c ; üst rütbeye olası transfer
incf RHrez,f
movwf RLsum; geri kalanını kaybetmemek için geri yüklüyoruz
OP_DEL'e gidin; çıkarma sonucu negatif ise
;
DEF_taşıma
hareket 0sa
xorwf RHtoplam,w ; herkes kıdemliden kıdemsiz rütbeye mi geçti?
btfsc DURUM,z ; "evet" ise, yani RHdel = 0 ve OP_DEL'de negatif
OUT_DEL'e gidin; tsat. sonuç - bölünmenin sonu ve çıkış
decf RHtoplam,f ; “hayır” ise - üst düzey kategoriden bir kredi ve pro-
incf RLrez,f ; devam edelim
btfsc DURUM,c ; standart haneye transfer ihtiyacının kontrol edilmesi
incf RHrez,f
OP_DEL'e git

Yazar: Vladimir D., degvv@mail.ru; Yayın: cxem.net

Diğer makalelere bakın bölüm Acemi radyo amatör.

Oku ve yaz yararlı bu makaleye yapılan yorumlar.

<< Geri

En son bilim ve teknoloji haberleri, yeni elektronikler:

Trafik gürültüsü civcivlerin büyümesini geciktiriyor 06.05.2024

Modern şehirlerde bizi çevreleyen sesler giderek daha keskin hale geliyor. Ancak çok az insan bu gürültünün hayvanlar dünyasını, özellikle de henüz yumurtalarından çıkmamış civcivler gibi hassas canlıları nasıl etkilediğini düşünüyor. Son araştırmalar bu konuya ışık tutuyor ve gelişimleri ve hayatta kalmaları açısından ciddi sonuçlara işaret ediyor. Bilim insanları, baklava sırtlı zebra yavrularının trafik gürültüsüne maruz kalmasının gelişimlerinde ciddi aksamalara yol açabileceğini buldu. Deneyler, gürültü kirliliğinin yumurtadan çıkmalarını önemli ölçüde geciktirebildiğini ve ortaya çıkan civcivlerin sağlığı geliştiren bir dizi sorunla karşı karşıya olduğunu göstermiştir. Araştırmacılar ayrıca gürültü kirliliğinin olumsuz etkilerinin yetişkin kuşlara da yayıldığını buldu. Üreme şansının azalması ve doğurganlığın azalması, trafik gürültüsünün yaban hayatı üzerindeki uzun vadeli etkilerini göstermektedir. Araştırma sonuçları ihtiyacı vurguluyor ... >>

Kablosuz hoparlör Samsung Müzik Çerçevesi HW-LS60D 06.05.2024

Modern ses teknolojisi dünyasında, üreticiler yalnızca kusursuz ses kalitesi için değil, aynı zamanda işlevselliği estetikle birleştirmek için de çabalıyorlar. Bu yöndeki en son yenilikçi adımlardan biri, 60 World of Samsung etkinliğinde tanıtılan yeni Samsung Music Frame HW-LS2024D kablosuz hoparlör sistemidir. Samsung HW-LS60D bir hoparlörden daha fazlasıdır; çerçeve tarzı ses sanatıdır. Dolby Atmos destekli 6 hoparlörlü sistem ve şık fotoğraf çerçevesi tasarımının birleşimi, bu ürünü her türlü iç mekana mükemmel bir katkı haline getiriyor. Yeni Samsung Müzik Çerçevesi, her ses seviyesinde net diyaloglar sunan Uyarlanabilir Ses ve zengin ses üretimi için otomatik oda optimizasyonu gibi gelişmiş teknolojilere sahiptir. Spotify, Tidal Hi-Fi ve Bluetooth 5.2 bağlantılarının yanı sıra akıllı asistan entegrasyonu desteğiyle bu hoparlör, beklentilerinizi karşılamaya hazır ... >>

Optik Sinyalleri Kontrol Etmenin ve Yönetmenin Yeni Bir Yolu 05.05.2024

Modern bilim ve teknoloji dünyası hızla gelişiyor ve her gün bize çeşitli alanlarda yeni ufuklar açan yeni yöntem ve teknolojiler ortaya çıkıyor. Bu tür yeniliklerden biri, Alman bilim adamlarının, fotonik alanında önemli ilerlemelere yol açabilecek optik sinyalleri kontrol etmenin yeni bir yolunu geliştirmesidir. Son araştırmalar, Alman bilim adamlarının erimiş silika dalga kılavuzunun içinde ayarlanabilir bir dalga plakası oluşturmasına olanak sağladı. Sıvı kristal katmanın kullanımına dayanan bu yöntem, bir dalga kılavuzundan geçen ışığın polarizasyonunu etkili bir şekilde değiştirmeye olanak tanır. Bu teknolojik atılım, büyük hacimli verileri işleyebilen kompakt ve verimli fotonik cihazların geliştirilmesi için yeni umutlar açıyor. Yeni yöntemle sağlanan elektro-optik polarizasyon kontrolü, yeni bir entegre fotonik cihaz sınıfının temelini oluşturabilir. Bu, büyük fırsatların önünü açıyor ... >>

Arşivden rastgele haberler

Ev yüzeyleri için antimikrobiyal film 08.11.2020

Veraco, insanların en çok dokunduğu yüzeylerdeki mikropları azaltmak için bir ürün serisini piyasaya sürüyor.

İngiliz üretici, kapı kolları, alışveriş arabaları, korkuluklar ve diğer "mikrobiyal" alanlarda kullanım için bir dizi antimikrobiyal yapışkan ped ve sargı tasarladı ve üretti.

Malzemeler, tehlikeli patojenlerin yayılmasını ve çoğalmasını durdurmak için mikroorganizmaların biyolojik bileşimini yok eden "gümüş iyon" teknolojisini kullanır. Ürünler yaygın bakterilerin %99,99'unu öldürür ve ayrıca COVID-19'a karşı etkilidir. Sargıların yaklaşık raf ömrü, yüzeylere uygulandıktan sonra iki yıla kadardır.

Antimikrobiyal gümüş teknolojisi yeni değildir ve hastaneler için boya ve kaplamalarda kullanılmıştır, ancak şimdiye kadar hiç kimse genel kullanım için jenerik bir ürün üretmemiştir.

Veraco şimdiden Toyota ve COS gibi markalarla sözleşme imzaladı. Şirket ayrıca Londra Metropolitan Üniversitesi ve Birleşik Krallık Ulusal Sağlık Servisi ile işbirliği yapmaktadır.

Diğer ilginç haberler:

▪ Ebeveynler sigara içiyor - çocuklar hastalanıyor

▪ Beyin kelimeleri resimlere dönüştürür

▪ Hızlı robot köpek

▪ Damar düzenine göre kilidini aç

▪ LED'ler ve Yarı İletkenler için Nanodiamonds

Bilim ve teknolojinin haber akışı, yeni elektronik

 

Ücretsiz Teknik Kitaplığın ilginç malzemeleri:

▪ Sitenin İş Güvenliği bölümü. Makale seçimi

▪ makale Kartuştaki yuva. Ev ustası için ipuçları

▪ makale Hangi savaş Roma'yı Kartaca'nın müttefiki yaptı? ayrıntılı cevap

▪ makale Bilgi Güvenliği Mühendisi. İş tanımı

▪ makale Elektronik Davul. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi

▪ makale Güç sigortasının açık devre olması durumunda üç fazlı bir elektrik motoru için açık faz modundan koruma cihazı. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi

Bu makaleye yorumunuzu bırakın:

Adı:


E-posta isteğe bağlı):


Yorum:





Bu sayfanın tüm dilleri

Ana sayfa | Kütüphane | Makaleler | Site haritası | Site incelemeleri

www.diagram.com.ua

www.diagram.com.ua
2000-2024