16f676 buton kullanımı

Başlatan blueboard, 14 Temmuz 2023, 16:17:57

blueboard

Ete Hocam, elimde sayıca fazla miktarda 16f676 bulunuyor. Bunları değerlendireyim diye düşündüm. Kendimce bir şeyler yazdım. Simulasyonda çalışıyor. Ancak teredütlerim var. Örneğin pin tanımlama yaparken 16f628a'da b portunda 8 adet pin bulunduğundan TRISB=%11111111   şeklinde yazıyorduk. Oysa 16f676'da C portunda 6 pin bulunmakta. c portunun tamamını giriş olarak ayarlayacaksak yine
TRISC = %11111111 mi yazmamız gerekiyor. Bu gösterim şeklinde 8 pin gösteriliyor. Ama biraz önce belirttiğim gibi C portu bu mikrodenetleyicide 6 adet olduğundan TRISC = %111111 şeklinde mi yazılması doğru? Örnek programımı ve çizimi ekliyorum. Size zahmet yazdıklarımı kontrol edebilir misiniz. Sigorta ayarlarının doğruluğundan şüpheliyim.

ete

Byte=8bit olduğundan dolyaı siz siz olun hiç bir zaman byte bilgisini 8 den eksik bit olarak göstermeyin.Normal şartlarda TRISC = %111111 şeklindeki ifade işlemci tarafından mutlaka TRISC=%00111111 şeklinde algılanacaktır. Ancak başka durumlara alışkanlık getirmek üzere siz yinede tanımlama yaparken TRISC = %00111111 şeklinde yapın.

Sigorta ayarlarına gelince . bu işlemci için MPASM içinde yer alan P16F676.INC dosyasına bakılacak olursa aşağıdaki sigorta ayarlarını görebilirsin.
;----- CONFIG Options --------------------------------------------------
_FOSC_LP             EQU  H'3FF8'; LP oscillator: Low power crystal on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_LP_OSC              EQU  H'3FF8'; LP oscillator: Low power crystal on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_FOSC_XT             EQU  H'3FF9'; XT oscillator: Crystal/resonator on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_XT_OSC              EQU  H'3FF9'; XT oscillator: Crystal/resonator on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_FOSC_HS             EQU  H'3FFA'; HS oscillator: High speed crystal/resonator on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_HS_OSC              EQU  H'3FFA'; HS oscillator: High speed crystal/resonator on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_FOSC_EC             EQU  H'3FFB'; EC: I/O function on RA4/OSC2/CLKOUT pin, CLKIN on RA5/OSC1/CLKIN
_EC_OSC              EQU  H'3FFB'; EC: I/O function on RA4/OSC2/CLKOUT pin, CLKIN on RA5/OSC1/CLKIN
_FOSC_INTRCIO        EQU  H'3FFC'; INTOSC oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN
_INTRC_OSC_NOCLKOUT  EQU  H'3FFC'; INTOSC oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN
_FOSC_INTRCCLK       EQU  H'3FFD'; INTOSC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN
_INTRC_OSC_CLKOUT    EQU  H'3FFD'; INTOSC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN
_FOSC_EXTRCIO        EQU  H'3FFE'; RC oscillator: I/O function on RA4/OSC2/CLKOUT pin, RC on RA5/OSC1/CLKIN
_EXTRC_OSC_NOCLKOUT  EQU  H'3FFE'; RC oscillator: I/O function on RA4/OSC2/CLKOUT pin, RC on RA5/OSC1/CLKIN
_FOSC_EXTRCCLK       EQU  H'3FFF'; RC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, RC on RA5/OSC1/CLKIN
_EXTRC_OSC_CLKOUT    EQU  H'3FFF'; RC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, RC on RA5/OSC1/CLKIN

_WDTE_OFF            EQU  H'3FF7'; WDT disabled
_WDT_OFF             EQU  H'3FF7'; WDT disabled
_WDTE_ON             EQU  H'3FFF'; WDT enabled
_WDT_ON              EQU  H'3FFF'; WDT enabled

_PWRTE_ON            EQU  H'3FEF'; PWRT enabled
_PWRTE_OFF           EQU  H'3FFF'; PWRT disabled

_MCLRE_OFF           EQU  H'3FDF'; RA3/MCLR pin function is digital I/O, MCLR internally tied to VDD
_MCLRE_ON            EQU  H'3FFF'; RA3/MCLR pin function is MCLR

_BOREN_OFF           EQU  H'3FBF'; BOD disabled
_BODEN_OFF           EQU  H'3FBF'; BOD disabled
_BOREN_ON            EQU  H'3FFF'; BOD enabled
_BODEN               EQU  H'3FFF'; BOD enabled

_CP_ON               EQU  H'3F7F'; Program Memory code protection is enabled
_CP                  EQU  H'3F7F'; Program Memory code protection is enabled
_CP_OFF              EQU  H'3FFF'; Program Memory code protection is disabled

_CPD_ON              EQU  H'3EFF'; Data memory code protection is enabled
_CPD                 EQU  H'3EFF'; Data memory code protection is enabled
_CPD_OFF             EQU  H'3FFF'; Data memory code protection is disabled

Kod kısmına gelince ilk buton kontrolü aşağıdaki gibi olmalı;
if  PORTC.2=0 THEN      
porta.2=1             
WHILE portC.2=0:WEND
porta.2=0
pause 100
ENDIF
Araya yerleştirdiğim Pause tuş titremesini önler ve gereklidir.
Diğer tuş kontrolünüde benzer şekilde sen düzeltirsin artık.

Ayrıca aşağıdaki satırın bu işlemci ile bir alakası yok silebilirsin.

DEFINE OSCCAL_1K 1  'bu komut mutlaka olacak OSCCAL değerini yeniden pice yazdırıyor

ete

blueboard


Powered by EzPortal