PİC 16f84A role sürme projesi

yakup_407

Üye
Katılım
16 Ocak 2012
Mesajlar
7
Puanları
1
Yaş
36
Selamın aleyküm.
Öncelikle herkese İyi günler dilerim ben bu pic işlerinde yeniyim 16f84a pic var 4 adet de role var devreyi yaptım fakat ben devreye enerji verdiğimde 1. role sürekli çekili kalsın 2. role de her 1 saniyede 2 defa çekip bıraksın bu işlem 3 saniye sürsün ve roleyi bıraksın 3. role 6 saniye çekili kalıp braksın 4. role 3 saniye çekili kalsın ve bıraksın role aralarındaki geçiş süresi 1 saniye olsun sırayla bunlar olsun istiyorum c kodunu yazıp gönderecek bir babayiğit aranıyor... ustalardan nacizane talebimdir yanlış anlaşılmasın ilgilenirseniz sevinirim... tabi üzerinde daha çok çalışacam bu kodların... hayırlı günler emeğini esirgemeyen herkeze teşekkür ederim....


DEVRE BU ŞEKİLDE





4 adet röleyi 5 saniye aralıkla enerjilendiren örnek PIC programı:

C kodu


// RB0 -> Role1// RB1 -> Role2// RB2 -> Role3// RB3 -> Role4#include <pic.h>#include <delay.c>//4MHz osilator__CONFIG(XT&WDTDIS&PWRTEN);// 5 saniye bekleme alt programivoid bekle(void){unsigned char a;for(a=0;a<50;a++)DelayMs(100);}main(void){unsigned char i;// PortB cikisTRISB=0;PORTB=0;// Resetten sonra 1 saniye beklefor(i=0;i<4;i++)DelayMs(250);// 5'er saniye aralikla roleleri enerjilendirfor(;{PORTB=1; bekle();PORTB=2; bekle();PORTB=4; bekle();PORTB=8; bekle();}}

Hex kodu


:0C000000830100308A0004288301E62BF5
:10079E008D0164308312D9238D0A32300D02031875
:1007AE000800D02B8E0004308F0053309000900B39
:1007BE00DE2B8F0BDC2B8E0BDA2B831208008316AD
:1007CE008601831286018C01FA308312D9238C0A9A
:1007DE0004300C02031CEB2B01308600CF230230B9
:1007EE008600CF2304308600CF2308308600CF2327
:0207FE00F32BDB
:02400E00F1FFC0
:00000001FF
 
#include <pic.h>
#include <delay.c>
4MHz osilator__CONFIG(XT&WDTDIS&PWRTEN);
unsigned char a;

void bekle(char d) // 10ms bekleme
{
do {(d--);
DelayMs(10);
}
while (d != 0);
}

main(void){
unsigned char i;
TRISB=0;
// PortB cikis
PORTB=0; // Resetten sonra 1 saniye bekle

for( ; ; )
{PORTB=1; // Röle 1 çekti

bekle(100); //1 Sn bekle

for(a=1;a<3;a++) {
bekle(25); // çeyrek saniye bekle
PORTB=3; // Röle 1 ve 2 çekili
bekle(25); // çeyrek saniye bekle
PORTB=1; // röle 1 çekili röle 2 bıraktı
}

bekle(100); //1sn bekle

PORTB=5; // Röle 1 ve 3 çekili
bekle(600); //6sn bekle
PORTB=1; // Röle 1 çekti röle 3 bıraktı

bekle(100); //1sn bekle

PORTB=9; // Röle 1 ve 4 çekili
bekle(300); //3sn bekle
PORTB=1; // Röle 1 çekti röle 3 bıraktı

bekle(100); //1sn bekle
}
}
 

teşekkür ediyorum Derhal deniyorum
 
CCS C de çalışan kod.


#include <16f84A.h>


#use delay(clock=4000000)


unsigned char a;


main(void){
unsigned char i;
set_tris_b(0x00); // RB0 portu tümüyle çıkış olarak yönlendiriliyor
output_b(0); // Resetten sonra 1 saniye bekle


for( ; ; )
{output_b(1); // Röle 1 çekti


Delay_ms(1000);//1sn bekle


for(a=1;a<6;a++) {
Delay_ms(250); // çeyrek saniye bekle
output_b(3); // Röle 1 ve 2 çekili
Delay_ms(250);// çeyrek saniye bekle
output_b(1); // röle 1 çekili röle 2 bıraktı
}


Delay_ms(1000);//1sn bekle


output_b(5); // Röle 1 ve 3 çekili
Delay_ms(600);//1sn bekle
output_b(1); // Röle 1 çekti röle 3 bıraktı


Delay_ms(1000);//1sn bekle


output_b(9); // Röle 1 ve 4 çekili
Delay_ms(3000);//1sn bekle
output_b(1); // Röle 1 çekti röle 3 bıraktı


Delay_ms(1000);//1sn bekle
output_b(0);
Delay_ms(1000);//1sn bekle
}
}
 
Son düzenleme:
hocam teşekkür ederim emeğin için ama ben bunları Hex koduna dönüştüremedim birde onları atsan zahmet olmazsa
 



SÜREKLİ HATA ALIYORUM HER İKİSİNDE DE BİRDE SEN DENESEN MPLAP 8.84 İLE .hex yapmaya çalıştım nerede hata yaptığımı anlayamadım saygılar...
 
DENEDİM FAKAT ŞU ŞEKİLDE HATA ALDIM


----------------------------------------------------------------------
Debug build of project `C:\new\test1.asm.mcp' started.
Language tool versions: MPASMWIN.exe v5.44, mplink.exe v4.42, mplib.exe v4.42
Preprocessor symbol `__DEBUG' is defined.
Tue Mar 20 19:24:45 2012
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\new\test1.asm.mcs".
Clean: Done.
Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F84A "TEST.asm" /l"TEST.lst" /e"TEST.err" /d__DEBUG=1
Error[105] C:\NEW\TEST.ASM 1 : Cannot open file (Include File "pic.h" not found)
Error[105] C:\NEW\TEST.ASM 2 : Cannot open file (Include File "delay.c" not found)
Error[108] C:\NEW\TEST.ASM 3 : Illegal character (4)
Error[122] C:\NEW\TEST.ASM 4 : Illegal opcode (char)
Error[122] C:\NEW\TEST.ASM 6 : Illegal opcode (bekle)
Error[108] C:\NEW\TEST.ASM 7 : Illegal character ({)
Error[108] C:\NEW\TEST.ASM 8 : Illegal character (()
Error[108] C:\NEW\TEST.ASM 9 : Illegal character (})
Warning[205] C:\NEW\TEST.ASM 10 : Found directive in column 1. (while)
Error[129] C:\NEW\TEST.ASM 46 : Expected (ENDW)
Error[129] C:\NEW\TEST.ASM 47 : Expected (END)
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `C:\new\test1.asm.mcp' failed.
Language tool versions: MPASMWIN.exe v5.44, mplink.exe v4.42, mplib.exe v4.42
Preprocessor symbol `__DEBUG' is defined.
Tue Mar 20 19:24:47 2012
----------------------------------------------------------------------
BUILD FAILED
 
Ne şanski bugün eve gidemedim.
Ancak yine de burdan yardımcı olmaya çalışacağım...
 
Sen HI-TECH kodu mu istiyorsun yoksa CCS mi?
CCS yazsam sorun olur mu?
Şuan evde olmadığım için, o yüzden...
Burda sadece CCS var.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…