16f877A kullanılmayan pinlerin 1 olması

Başlatan transistor, 28 Haziran 2025, 14:09:42

transistor

TRISC=0 : PORTC=0
TRISD=0 : PORTD=0

16f877A'da portc ve portd'yi çıkış olarak ayarlamama rağmen çıkışlar 1 oluyor. Ondan sonra, ana programdan önce aşağıdaki gibi kod ekledim. Yine de 1 çıkışlar boş kullanmıyorum.

symbol OUT1=PORTC.4 : LOW OUT1
symbol OUT2=PORTC.5 : LOW OUT2
symbol OUT3=PORTC.6 : LOW OUT3
symbol OUT4=PORTC.7 : LOW OUT4
symbol OUT5=PORTD.4 : LOW OUT5
symbol OUT6=PORTD.5 : LOW OUT6
symbol OUT7=PORTD.6 : LOW OUT7
symbol OUT8=PORTD.7 : LOW OUT8

Bu demek oluyor ki kullanmadığımız çıkışları pull-down mu yapmamız gerekecek her defasında.


ete

İlk çalıştırmada işlemci pinleri çıkış yada giriş olduğuna bakılmaksızın rastgele değer alabilir.
Bu işi dert ediyorsanız tedbir alırsınız. Her programın bir açılış gecikmesi olmalıdır.
Genellikle değişken ve LCD tanımlamalarının ardından en az 200 ms lik bir gecikme verilmelidir.
Bu gecikme esnasında işlemci port ayarlarını ve diğer register ayarlarını yapar.
Bu gecikmeden sonra PORTD=0 yada PORTC=0 komutunu verirseniz port çıkışları düzelmiş olur.
Bence giriş çıkış ayarlamaya gerek yoktur.

Arada birde olsa programın en başına koyduğum PORTX=0 gibi komutların işe yaramadığını görüyorum.
Bunun sebebi olarak komutun işlendiği esanda açılışın yapılması nedeni ile komutun karambole kurban gittiğini düşünüyorum.
Bu nedenle komutun yeri açılış gecikmesinden sonra olmalı.

Ete

muyat

Bu problemin aynısını bende yaşadım hocam.Açılış gecikmesinden sonra dediğiniz gibi tekrar 0 ladıgımda ortadan kalktı problem.Çok önemli ve herkesin pek bilmediği ,farkedilmesi zor bir detay bu bana göre
Alıntı yapılan: ete - 28 Haziran 2025, 17:03:13İlk çalıştırmada işlemci pinleri çıkış yada giriş olduğuna bakılmaksızın rastgele değer alabilir.
Bu işi dert ediyorsanız tedbir alırsınız. Her programın bir açılış gecikmesi olmalıdır.
Genellikle değişken ve LCD tanımlamalarının ardından en az 200 ms lik bir gecikme verilmelidir.
Bu gecikme esnasında işlemci port ayarlarını ve diğer register ayarlarını yapar.
Bu gecikmeden sonra PORTD=0 yada PORTC=0 komutunu verirseniz port çıkışları düzelmiş olur.
Bence giriş çıkış ayarlamaya gerek yoktur.

Arada birde olsa programın en başına koyduğum PORTX=0 gibi komutların işe yaramadığını görüyorum.
Bunun sebebi olarak komutun işlendiği esanda açılışın yapılması nedeni ile komutun karambole kurban gittiğini düşünüyorum.
Bu nedenle komutun yeri açılış gecikmesinden sonra olmalı.

Ete

transistor


Powered by EzPortal
▲