Birkaç sorunum var ,
Forumda daha önce yazılanları okudum ama hala birkaç sıkıntı var ,
- 14 adet dijital çıkış almak istiyorum ,çıkışlara 14 tane led takılı gibi düşünebiliriz .
- RA5/MCLR giriş olarak tanımlı
- PORTB.3 CCP PIN girişi olarak set edilmiş durumda olmalı .
-internal Rc osilatörü kullanılmıştır .
problemlerim şunlar :
Basit bir program yaptım ,şimdilik sırası ile 14 tane led yanıyor .
1-PORTA.4 den çıkış alamadım ?
2-MCLR girişi aktif olunca nasıl bir interrupt tanımlaması yaparım ?
3-Normalde CCP girişindeki sinyale göre ledler yanacak ,bu giriş tanımlamasını doğru yapamadım galiba ve proteusta bu girişteki değeri nasıl ? debug ederim yani nasıl görürüm ?
device 16f628
xtal =4
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
CMCON=7 'COMPARATÖRLER KAPALI
ALL_DIGITAL = TRUE
TRISA =%00100000 ' RA5 giriş diğerleri çıkış
TRISB = %00000000 'hepsi çıkış
DECLARE CCP1_PIN PORTb.3
DIM WRD as WORD
SYMBOL giris = PORTb.3
Loop:
WRD = COUNTER giris , 100,
PORTA=%00000000
PORTB=%00000000
IF PORTA.5=1 THEN
PORTA=%11111111
PORTB=%11111111
ENDIF
DELAYMS 500
PORTB.7=1
DELAYMS 200
PORTB.6=1
DELAYMS 200
PORTB.5=1
DELAYMS 200
PORTB.4=1
DELAYMS 200
PORTB.2=1
DELAYMS 200
PORTB.1=1
DELAYMS 200
PORTB.0=1
DELAYMS 200
PORTA.4=1 '?????
DELAYMS 200
PORTA.3=1
DELAYMS 200
PORTA.2=1
DELAYMS 200
PORTA.1=1
DELAYMS 200
PORTA.0=1
DELAYMS 200
PORTA.7=1
DELAYMS 200
PORTA.6=1
DELAYMS 200
PORTA=%00000000
PORTB=%00000000
DELAYMS 250
PORTA=%11111111
PORTB=%11111111
DELAYMS 250
PORTA=%00000000
PORTB=%00000000
DELAYMS 250
PORTA=%11111111
PORTB=%11111111
DELAYMS 250
PORTA=%00000000
PORTB=%00000000
DELAYMS 250
PORTA=%11111111
PORTB=%11111111
DELAYMS 250
GOTO LOOP
PortA.4 open collector çalışır. Dolayısıyla bir pull-up direnci ile normal işlevini yerine getirir. Pin'e 1 adet 10K pull-up direnci bağlayın. Bu hemen hemen tüm pic modelleri için geçerlidir.
PortA.5 ucu aynı zamanda MCLR olduğu için yalnızca giriş olarak düzenlenebilir ve her hangi bir kesme'ye bağlanamaz.
Ete