Haberler:

[move]Türkiye'nin Elektronik ve Metal Dedektörlerini Buluşturan İlk Sitesi Teknoloji Ekibi'ne Hoş Geldiniz.[/move]

Ana Menü

darbe üreteci

Başlatan YAK, 09 Kasım 2008, 22:59:38

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

YAK

pic ustalarından bir ricam var, Üzerinde çalıştığım bir devre için basit bir üreteç lazım.Pıc 16F84 veya 628 olabilir.İstediğim tam olarak şöyle:
300usn genişliğinde bir darbe sonra 300usn boşluk ve boşluğun bitiminde 70usn darbe bunun bitiminde 6000usn boşluk tekrar başa dön.
ilgilenen olursa sevinirim.
iyi çalışmalar.

asenkron

profesör tam olarak istediğin buysa  kolay zaman aralıklarında ayar istiyormusun .hex yeterlimi pıc programlayıp gönderelimmi

Uykusuz

Akşama yazmaya çalışırım buraya eklerim dökümanları

UNIQUE - TA5DF

buyur profesör kardeş istediğin yazılım. 16f628 ve 4 mhz kristal için yazdım. inşallah işini görür.

http://www.savefile.com/files/1879498

PORT B nin tamamını  kullanabilirsin.
TA5DF

remzi


#include <16F628.h>

#FUSES NOWDT                      // Watch Dog Timer
#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
#FUSES NOPUT                    //No Power Up Timer
#FUSES PROTECT                  //Code protected from reads
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOMCLR                   //Master Clear pin used for I/O
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection

#use delay(clock=4000000,RESTART_WDT)

#byte PORTA  =    GETENV("SFR:PORTA")
#bit  D2     =    GETENV("SFR:PORTA").0
#bit  D3     =    GETENV("SFR:PORTA").1
#bit  role1  =    GETENV("SFR:PORTA").2     
#bit  role2  =    GETENV("SFR:PORTA").3       
#bit  D0     =    GETENV("SFR:PORTA").6       
#bit  D1     =    GETENV("SFR:PORTA").7

#byte PORTB  =    GETENV("SFR:PORTB")
#bit  cikis  =    GETENV("SFR:PORTB").1
#bit  role4  =    GETENV("SFR:PORTB").2
#bit  sw1    =    GETENV("SFR:PORTB").4
#bit  sw2    =    GETENV("SFR:PORTB").5
#bit  sw3    =    GETENV("SFR:PORTB").6
#bit  sw4    =    GETENV("SFR:PORTB").7

void main()
{
   
   set_tris_a(0x00);
   set_tris_b(0x00);
   
   PORTA=0x00;
   PORTB=0x00;
   
   for(;;)
   {
   cikis=1;
   delay_us(300);
   cikis=0;
   delay_us(300);
   cikis=1;
   delay_us(70);
   cikis=0;
   delay_us(6000);
     
   }
}


CCS ile derlersen olur. 16F628 için yazıldı. Osilatör dahili.


:1000000000308A003028000021308400831300086B
:1000100003191B280130F800BF30F7006400F70B0C
:100020000E28F80B0C284A30F700F70B15280000B3
:100030006400800B0A2855281230A202031C2F28C6
:10004000223084008313FC3080050310800C800C68
:10005000000803192F282D286400800B2C285A280B
:10006000840183131F30830507309F000030650033
:10007000660085018601861464006330F700F70B83
:100080003F280000861064006330F700F70B462815
:100090000000861464001630F700F70B4D28502836
:1000A000861064000530A10004280930A1006C30DE
:0C00B000A2001C28A10B57283B2863006D
:02400E00180395
:00000001FF
;PIC16F628



Bu da hex dosyası bunuda pic e yükleyebilirsin.

Süreleri değiştirmek istersen delay_us lerin içindeki sayıları değiştirmen yeterli...

remzi


UNIQUE - TA5DF

TRISA=0
TRISB=0
define osc 4
@ DEVICE pic16F628                      'işlemci 16F628                               
@ DEVICE pic16F628, WDT_ON              'Watch Dog timer açık
@ DEVICE pic16F628, PWRT_ON             'Power on timer açık
@ DEVICE pic16F628, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic16F628, MCLR_ON             'MCLR pini kullanılıyor.

CMCON=7                    '16F628 de komparatör pinleri iptal hepsi giriş çıkış
OPTION_REG.7=1             'portB deki dahili PULL-UP lar iptal edildi.
portb=0
PORTA=0
ana:
    PORTB=255
    PAUSEUS 300
    PORTB=0
    PAUSEUS 300
    PORTB=255
    PAUSEUS 70
    PORTB=0
    PAUSE 6
    GOTO ANA


-----------bunlarda pic basic kodları. pauseus yanındaki değerler bekleme süresi,
------------hex i vermiştim zaten
TA5DF

YAK

Arkadaşlar hepinize teşekkür ederim.Yolda olduğum için bugün bakabildim.Deneyip sonucu yazacağım.
iyi çalışmalar.

Uykusuz

#8
Biraz geç oldu bir devre de benden

Kristal 4MHz, Tüm PORTB çıkışlarını kullanabilirsiniz.



:020000040000FA
:10000000860183168601FF30850083121D2801308A
:10001000A2000630A4000F30A600A60B0D28A40BEA
:100020000B28A20B092808000130A2001430A400FC
:10003000A40B1828A20B16280800FF3086040720FE
:10004000003086050720FF30860414200030860526
:100050000720072007200720072007200720072068
:100060000720072007200720072007200720072058
:0A00700007200720072007201D28A5
:00000001FF


İkişer pals arası dediğiniz gibi 6000uS:



İki pals arası 300uS, birinci pals 300uS, ikinci pals 70uS




YAK

ahmet merhaba yazdığın proğramı PIC 16F84 e yükledim fakat çalıştıramadım.sence hata nerede kolay gelsin.