74165 ile giriş çoğullama

Başlatan icemanx, 16 Şubat 2011, 16:25:04

icemanx

Çok teşekkürler. Denememi 1-2 gün içinde yapacağım. Çok güzel bilgiler verdiniz bana.

mokan

Alıntı yapılan: eemkutay - 18 Şubat 2011, 11:37:19
Alıntı yapılan: icemanx - 18 Şubat 2011, 10:16:51
Merhabalar. Güvenli değilden kasıt nedir acaba? Dezavantajlı nedir 74165 in? Biraz açıklarsanız çok memnun olacağım.

Merhaba,

74hc165 gayet güvenli, istersen girişlere bir kaç malzeme ekleme ile sadece girişte değişme olduğunda veya tuş okuma işin kullanacaksan tuşa basıldığında(interrupt ile) okuma yapabilirsin, mesela tuş okuma için interruptlı olarak çok kullandım, toplamda 4 işlemci pini ile 8-16-24-32 tuş okuyabilirsin.

Güven konusuna gelince, bu elektronik donanım ve yazılım bilginizle alakalı birşey. Kimisi işlemci ile takla attırırken ve hiç sorun çıkmazken kimisi ise gürültü, kitlenme, reset vs gibi şeylerden başını kaldıramaz bu işlemcinin şuçu değildir.

Sanırım yeterince açık olmuştur.









ben bu entegre ile buton okuyacağım.yapmak istediğim şu;portb0 kesmesini kullanacağım.portb0'a kesme sinyali geldikten sonra alınan seri bilgiyi kontrol ederek hangi butona basıldığını tespit edeceğim.bu entegrenin çalışması sırasında, seri bilgi alınmadan önce herhangi bir sinyal gönderiliyor mu?yada bu işlemi nasıl yapabiliriz.sadece mantığı hakkında fikir verirseniniz benim için yetreli.kodlarımı assembly'de yazmayacağım.

Veli B.

74HC165 SOIC veya SOP olarak piyasada var mı? Var ise hangi firmalardan tedarik edebiliriz. Miktarlı olarak ihtiyacım var fakat tedarikçilerde bulamıyorum.


iceberg

Merhaba arkadaşlar;
3.3voltla çalışan giriş coğullayabileceğim bir malzeme biliyor musunuz? mesela 74165 in 3 volt'ta çalışanının adı sanı nedir?
şimdiden teşekkürler..

Kabil ATICI

Alıntı yapılan: iceberg - 25 Eylül 2013, 18:18:18
Merhaba arkadaşlar;
3.3voltla çalışan giriş coğullayabileceğim bir malzeme biliyor musunuz? mesela 74165 in 3 volt'ta çalışanının adı sanı nedir?
şimdiden teşekkürler..
74LV165
http://www.nxp.com/documents/data_sheet/74LV165.pdf
Normalde 74165 girişleri 3V3 için lojik seviye aralığı içinde yer alır.
ambar7

yldzelektronik

Selamlar.

Ccs nin 74165.c dosyasını kullanıyorum.

74165 input uçlarına bağlı butonlar pull up.

Ancak bir türlü 74165den veri okuyamadım.

7nolu ucundan veri okumak istediğimde bağlı butonlar basılı değilken (bütün butonlar lojik 1 de beklemede) 74165den 0xff okuyorum.

Yalnızca 74165 in 6 numaralı pinine bağlı butona bastığımda 0x00 okuyorum.Diğer butonların hiçbirisi etki etmiyor.Butonu bıraktığımda 0xff oluyor.

9 nolu pinden okuma yaptığımda bekleme durumda 0x00 okuyorum.Aynı butona bastığımda 0xff okuyorum.Başka hiçbir buton yine tepki vermiyor.




#include <main.h>
#include "74165.c"
#include "lcd.c"

char button[2];

void main()
{
   setup_timer_3(T3_DISABLED | T3_DIV_BY_1);
   
   lcd_init();
   delay_ms(200);

   while(TRUE)
   {
      //TODO: User Code
      read_expanded_inputs(button);
      lcd_gotoxy(1,1);
      printf(lcd_putc,"Buttons:%02X,%02X",Button[0],Button[1]);
   }

}


74165.c

///////////////////////////////////////////////////////////////////////////
////   Library for a 74165 Expanded Input Chip                         ////
////                                                                   ////
////   Any number of these chips may be connected in series to get     ////
////   8 additional inputs per chip.  The cost is 3 I/O pins for       ////
////   any number of chips.                                            ////
////                                                                   ////
////    read_expanded_inputs(ei);  Reads the array ei from the chips   ////
////                                                                   ////
///////////////////////////////////////////////////////////////////////////
////        (C) Copyright 1996,2003 Custom Computer Services           ////
//// This source code may only be used by licensed users of the CCS C  ////
//// compiler.  This source code may only be distributed to other      ////
//// licensed users of the CCS C compiler.  No other use, reproduction ////
//// or distribution is permitted without written permission.          ////
//// Derivative programs created using this software in object code    ////
//// form are not restricted in any way.                               ////
///////////////////////////////////////////////////////////////////////////

#IFNDEF EXP_IN_ENABLE

#define EXP_IN_ENABLE   PIN_A0
#define EXP_IN_CLOCK    PIN_A1
#define EXP_IN_DI       PIN_A2
#define NUMBER_OF_74165 1

#ENDIF


void read_expanded_inputs(BYTE *ei) {
  BYTE i;

  output_high(EXP_IN_CLOCK);
  output_low(EXP_IN_ENABLE);      // Latch all inputs
  output_high(EXP_IN_ENABLE);

  for(i=1;i<=NUMBER_OF_74165*8;++i) {      // Clock in bits to the ei structure
    shift_left(ei,NUMBER_OF_74165,input(EXP_IN_DI));
    output_low(EXP_IN_CLOCK);
    output_high(EXP_IN_CLOCK);
  }
  output_low(EXP_IN_ENABLE);
}


Nerede hata yapıyorum?Yada neyi atlıyorum?Sağlıklı bir okuma için ne yapmak gerekli?
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

camby

Proteus'ta MCU'dan bağımsız olarak entegreyi bir çalıştır , yani paralel inputlara birşeyler verip , clock ver manuel olarak , serial out değişim varmı onu gözle. Yani ilk önce entegrenin çalıştığından emin ol . Çalıştığından emin isen koda bak. Entegre hiç çıkış vermiyor ama kodda birşeyler yapmaya çalışıyor olabilirsin boş yere.