Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

ccs c buton kontrolu

Başlatan bbs2006, 09 Nisan 2015, 21:39:56

bbs2006

Merhaba
Devremde 6 adet butonum var. bu butonlardan birine bastıgım zaman ilgli case yapısı çalışacak. ancak devrede a,b, c portlarını set tris komtuyla tanımladıgımız zaman bütün b portunun tümü  çıkş 5 volt veriyor. ben sadece butona bsstıgımız zman istediğimiz pinleri çıkış vermesini istiyorum.
[/code]

# include <16f877.h>
# fuses xt,nowdt,noprotect
# use delay(clock=4m)
# use fast_io(a)
# use fast_io(b)
# use fast_io(c)
# use fast_io(d)
# byte portb=6 
# byte porta=5
# define buton0 input(pin_b0)
# define buton1 input(pin_b1)
# define buton2 input(pin_b2)
# define buton3 input(pin_b3)
# define buton4 input(pin_b4)
# define buton5 input(pin_b5)
int giris;


void main(){
set_tris_a(0x00);
set_tris_b(0xff);
set_tris_c(0x00);
set_tris_d(0xf0);

while(true){


giris=input_b();
giris=giris&&0x00111111;
porta=giris;
switch (portb){


case 3e :

output_c(0b00000001);
output_d(0x01);
/*
delay_ms(100);
output_d(0b00000010);
output_c(0xf5);
delay_ms(10);
output_d(0b00000100);
output_c(0xf6);
delay_ms(10);
output_d(0b00001000);
output_c(0xf5);
delay_ms(10);
output_d(0b00010000);
output_c(0x03);
delay_ms(10);
*/
break;


}}}

Recep METE

Buradaki kodlarla bu işleri yaptığına emin misin.Kodlarda çok fazla eksik olduğu görülüyor. İsis şemasını ve tam olarak ne istediğini yazarsan kodları yeniden düzenliyebilirim.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

bbs2006

b portuna 0b00111110   bilgisi geldiği zaman ortak anot displeyde A karakteei oluşacak. b0 pini 1 oldugunda karakter görünmeyecek. isi şeması  resim olarak yüklü
# include <16f877.h>
# fuses xt,nowdt,noprotect
# use delay(clock=4000000)
# use fast_io(a)
# use fast_io(b)
# use fast_io(c)
# use fast_io(d)
# byte portb=6
# byte porta=5
# define buton0 input(pin_b0)
# define buton1 input(pin_b1)
# define buton2 input(pin_b2)
# define buton3 input(pin_b3)
# define buton4 input(pin_b4)
# define buton5 input(pin_b5)
int giris,k;


void main(){
set_tris_a(0x00);
set_tris_b(0xff);
set_tris_c(0x00);
set_tris_d(0xf0);
output_c(0x00);
output_d(0x00);
while(true){


giris=input_b();
k=giris && 0b00111111;
switch (5){


case 5 :

output_c(0xfe);
output_d(0x01);
delay_ms(10);
output_c(0x01);
output_d(0x02);
delay_ms(10);
output_c(0x01);
output_d(0x04);
delay_ms(10);
output_c(0x01);
output_d(0x08);
delay_ms(10);
output_c(0xfe);
output_d(0x1e);
delay_ms(10);


break;


}}}




























Recep METE

#3
@bbs2006 arkadaşım,özelden attığın mesaja göre 6 buton  kullanılması mı gerekiyor. Benim kendi yaptığım çalışma var.Aşağıda videosu olan çalışma.İşine yararsa kod ve simülasyonu gönderebilirim.Ya da istediğin değişiklikleri söyle beraber ekleyebiliriz.

https://youtu.be/9ni9RLTV30E
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

bbs2006

Sizin yapmış oldugunuz kodları gönderebilrmsiniz. ben onların üzerinden gerekli ayarlamaları yapmaya çalışırım. teşekkür ederim.

Recep METE

printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

kuylus

Merhaba, bir konuda nacizane yardımlarınıza ihtiyacım var, ccs c ye yeni başladığımdan dolayı  çözmek de zorlanıyorum. Yardımlarınız için şimdiden çok teşekkür ediyorum

Yapmak istediğim konu ise

628 in a portunu  giriş yapıp ilk dört pinine buton bağlamak istedim fakat bu seferde ses çalışmadı

A0 pini low olduğu sürece,  B0 daki ses çalışacak, ve B1 e bağlanacak led yanıp sönecek
A1 pini low olduğu sürece,  B0 daki ses çalışacak, ve B2 ye bağlanacak led yanıp sönecek
A2 pini low olduğu sürece,  B0 daki ses çalışacak, ve B1 ve B2 ledleri yanıp sönecek.

Konuda en çok takıldığım yerler, bir butonu tanımlarken, butona basınca şu döngüdeki
(örneğin: void deneme(void) içerisindeki while deneme(1) döngüsüne git butonu bırakınca normal çalışmaya devam et gibi )
olayı yapmaya başla bırakınca  şu kısımdan deva et mantığını kavrayamadım,



#include <16F628A.h>
#FUSES NOWDT, INTRC_IO, NOPUT, NOPROTECT, NOBROWNOUT, NOMCLR, NOLVP, NOCPD
#use delay(clock=4000000)

#include <C:\Users\toshiba\Desktop\Ses Uygulaması\Ses Uygulaması\TONES.c>  // TONES.c dosyası programa ekleniyor

// Ses tonlarından oluşan dizi tanımlanıyor
const char muzik[2]={Gb_NOTE[1],Gb_NOTE[2]   };

int k;  // Tam sayı tipinde değişken tanımlanıyor

//******************* ANA PROGRAM FONKSİYONU *******************
void generate_tone (void)
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

   output_low(pin_b0); // RB0 çıkışı ilk anda lojik-0

   while(1) // Sonsuz döngü
   {
      for(k=0;k<2;k++)
      {
         generate_tone(muzik[k],100); delay_ms(500); // Sırayla muzık[] dizisindeki
      }                                             // tonlar oluşturuluyor
  }
}

Recep METE

İsis simülasyonu yuklersen uzerinde çalışırım.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

mehmet

Böyle bir şey işinize yaramaz mı?
Kendinize göre kodlarınızı düzenlersiniz...
https://www.picproje.org/index.php/topic,58766.msg453817.html#msg453817
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

kuylus