Pic16f877 (yardım)

DuFFyXX

Üye
Katılım
8 Şub 2008
Mesajlar
2
Puanları
1
Yaş
40
öncelikle S.A.

arkadaşlar PIC16F877'i programlamak istiyorum ancak PORTA'yı giriş olarak kullanamıyorum diğer portlar çalışıyor bir tek PORTA çalışmıyor.PIC16F628 de CMCON registeri vardı acaba burda nasıll yapıcaz..... adresi filan kaçtır

YARDIMLARINIZ İÇİN ŞİMDİDEN TEŞEKKÜRLER
 
CMCON = 0x07; // analog pinleri kapatır PortA Dijitale dönüşür.
ADCON1 = 0X06; // analog pinleri kapatır. PortA Dijitale dönüşür.
 
Normalde A portu 877 de analog gerilim ölçme 628 de analog gerilim karlaştırma özelliğine sahiptir. Bu port dijital giriş-çıkış olarak kullanılmak isteniyorsa şu komut yazılmalıdır. (Aşağıdaki komutlar CCS C içindir)

setup_comparator(NC_NC_NC_NC); // 16f628 için
setup_adc_ports(NO_ANALOGS);// 16f877 için
 
PICe enerji verdiğin anda PORTA ve PORTE analog giriş olarak ayarlanmıştır
Dijital giriş olarak ayarlamak istiyorsan aşağıdaki komutları programın başına kopyalayabilirsin

BSF STATUS,RP0
MOVLW 0x06
MOVWF ADCON1
MOVLW 0x0F
MOVWF TRISA
BCF STATUS,RP0
 
Arkadaşım sen direk adcon1 registerine 7 yükle geç çalışmassa da gel yüzüme tükür :D ben hep 7 yüklerim
picbasic komutu = adcon1=7
asm = movlw 0x07
movwf adcon1
yaz geç
c kodlarını da arkadaş vermiş yukarıda ama ben adcon1 e 7 yüklenince adc iptal oluyo diye biliyorum başarılar
 
pic 16f877 ile yangın alarm sistemi yapmak istiyorum.gerekli elemanlar ve yazılım konusunda yardım edebilir misiniz lütfen.acil
 
16f877 ile Lcd sorunu d portuna lcd bağladım programlar çalışıyor fakat deneme kartında lcd de görüntü alamıyorum
 
merhaba

proteus da port e yi kullanmaya kalktığım zaman pic16.dll hatası alıyorum.
bu hatayı alan ve sorunun sebebini bilen var mı

port e digital io modunda
ccs c
proteus 7.5 sp3



deneme için şunu yazdım. port a da bastığın tuşun karşılığı portb de , port e de bastığın tuşun karşılığı port c de görülsün.
kodlar:

#include <16F877A.h>
#device adc=8


#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected


#use delay(clock=4000000)




void main()
{


setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);


// TODO: USER CODE!!

set_tris_B(0b00000000);
Set_Tris_C(0b00000000);
Set_Tris_D(0b00000000);
Set_Tris_A(0b11111111);
// Set_Tris_E(0b00000111);

output_b(0);
output_c(0);
output_d(0);




while(1)
{
output_b(input_a());
delay_ms(10);

output_c(input_state(PIN_E0));
delay_ms(10);

}
}
 

Forum istatistikleri

Konular
129,903
Mesajlar
931,173
Kullanıcılar
452,789
Son üye
yigitt.m

Çevrimiçi üyeler

Geri
Üst