hex to bcd decoder entegre

Başlatan x-tol, 27 Ekim 2006, 20:28:11

x-tol

merhaba

4*7 hex to decimal decoder

4 girişi 7 çıkışı olan olan bir decoder entegresi arıyorum.

7447 bildiğiniz gibi 0'dan 9'a kadar sayar ve 1010'ı çıkışında A olarak göstermeyip başka tip bilgiler gösterir.
İşte bana bu tür bir işlem yapan decoder lazım.(displayde gösterecek)


Bu tip bir entegre varmıdır?
yardımcı olursanız sevinirim.

OG

7 çıkışın ne anlama geldiğini anlayamadım.

Entegreyi bulamazsan PIC ile kolaylıkla yapabilirsin.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

x-tol

7 segment display süren decoderlerin 7 çıkışı vardır.
a,b,c,d,e,f,g
Örneğin 7447'yi biliyorsunuzdur.
Bu 0-9 arasında sayıları displayde gösterebilir
Bana f'e kadar göseren bir entegre lazım.
mikrodenetleyici değilde bu işi hazır yapan bir entegre arıyorum.

edit
pic veya lojik kapılarla tasarlanmayacak.Hazır bir entegre aranıyor   :!:  :)

ibrsel

Böyle bir entegre hiç duymadım..
Ama bu işi lojik kapılar ile tasarlayabilirsin,ki bu işlem bayağı zahmetli olacaktır.Çünkü karno haritalarını sadeleştirmek epey zamanını alır.
OG hocamın dediği gibi bunu PIC ile daha rahat yapabilirsin.16F84 veya 16F628 ile (7 çıkış uç, 4 giriş uç toplam 11 uç).

OG

http://eshop.engineering.uiowa.edu/NI/pdfs/00/97/DS009796.pdf

http://pdf1.alldatasheet.com/datasheet-pdf/view/134460/NSC/MM74C917.html

Adetli değilse PIC ile yapmayı tercih ederdim.

hex to decimal değil de hexadecimal seven segment driver gibi ararsanız daha kolay olur.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

ipek

motorola ve rca 'nin uretimi 9368 tam senin istedigin dekoder ustelik test ayagida mevcut fakat 75'li yillarin entegresi piyasada mevcutmu bilemiyorum
not elektor bu entegreyi bulamiyanlar icin phililps yada signetics uretimi 82s23 proma pin to pin yazarak calistiriyordu..

OG

Küçük Bir Çalışma Olsun. Denenmedi fakat gözden kaçan hata yoksa çalışmasına engel kritik yapısı yok.

Ortak Anod veya Ortak Katod için eeprom 0 nolu adres kullanılarak seçme yapılabileceği gibi gereksiz bölümler silinerek program hafızası azaltılabilir.

PORTB display çıkışıdır. Sırası ile (nokta dahil);
PORTB=nokta,g,f,e,d,c,b,a

PORTA data giriş ve çıkışlarıdır.
PORTA.0= BCD sayının 0. biti
PORTA.1= BCD sayının 1. biti
PORTA.2= BCD sayının 2. biti
PORTA.3= BCD sayının 3. biti
PORTA.4= Ondalık ayırımı (nokta varsa H girişi olmalı)
PORTA.5= Karartma Girişi (Bir önceki digit den gelecek karartma bilgisi)
PORTA.6= Karartma Çıkışı (Bir sonraki digite gidecek karartma bilgisi)
PORTA.7= Latch Girişi (Girişteki sayıyı yükleme, H olunca yükler)


; -----PIC İLE 7 SEGMENT LED DISPLAY SURME (LATCH İLE)------

@ device pic16F628A, intrc_osc_noclkout, wdt_on, pwrt_on, protect_off, mclr_off, lvp_off


TRISA=%10111111
TRISB=%00000000
CCP1CON=0
INTCON.7=0
PCON.3=1
CMCON=7                   
CCP1CON=%00000000          
OPTION_REG=%00000000

x var byte
k var byte
z var byte
pol var byte ' Ortak Anod-Katod degiskeni
hafiza var bit
nokta var PORTA.4
kar_in var PORTA.5  ' Karartma Girişi
kar_out var PORTA.6  ' Karartma Çıkışı
Latch var PORTA.7

'PORTA.0= BCD sayının 0. biti
'PORTA.1= BCD sayının 1. biti
'PORTA.2= BCD sayının 2. biti
'PORTA.3= BCD sayının 3. biti
'PORTA.4= Ondalık ayırımı
'PORTA.5= Karartma Girişi
'PORTA.6= Karartma Çıkışı
'PORTA.7= Latch Girişi

data @0,1   ' Ortak Anod=0, Katot=1

x=0

Goto Oku

;---7 SEGMENT DURUMUNU ALMA---------
segment:
if Latch=0 then hafiza=0
    if x=0 then k=%11000000
    if x=1 then k=%11111001
    if x=2 then k=%10100100
    if x=3 then k=%10110000
    if x=4 then k=%10011001
    if x=5 then k=%10010010
    if x=6 then k=%10000010
    if x=7 then k=%11111000
if Latch=0 then hafiza=0
    if x=8 then k=%10000000
    if x=9 then k=%10010000
    if x=10 then k=%10001000
    if x=11 then k=%10000011
    if x=12 then k=%11000110
    if x=13 then k=%10100001
    if x=14 then k=%10000110
    if x=15 then k=%10001110
if Latch=0 then hafiza=0    
    return
    

Oku:
' Ortak Anod-Katod EEpromdan Okunmayacaksa READ komut satırı silinebilir
READ 0,pol            ' Anod ise 0, Katod ise 1 olmalı

Basla:
z=PORTA & %00001111
if hafiza=0 then      ' Değer Daha Önceden Ön Hafızaya alınmamışsa
    if Latch=1 then   ' Ve Şu An Latch girişi varsa
    x=z               ' z değeri çıkışa hazırlanır
    hafiza=1          ' Hafızaya alındığı belirtilir
    endif
endif
if Latch=0 then hafiza=0 ' Latch girişi 0'a indi ise yeni değer için hazırlanır

if pol=0 then o_anod  ' Ortak Anod-Katod EEpromdan Okunmayacaksa silinebilir
if pol=1 then o_katod ' Ortak Anod-Katod EEpromdan Okunmayacaksa silinebilir


;------ORTAK ANOD KULLANIMI İÇİN-------
' Ortak Katod Kullanılmayacaksa bu bölüm silinebilir
o_anod:

if Latch=0 then hafiza=0  
gosub segment

if kar_in=1 and x=0 and nokta=0 then    ' Karartma girişi aktif ve sayı sıfır ise
PORTB=255                               ' Çıkışı karart
kar_out=1                               ' Diğer digite karartma çıkışı ver
goto Basla                              ' Başa Dön
endif

        if nokta=1 then
        k=k-128       ' Nokta İlavesi
        endif
    
    PORTB=k
    
GOTO Basla

;------ORTAK ANOD KULLANIMI İÇİN SONU-------

;------ORTAK KATOD KULLANIMI İÇİN-------
' Ortak Anod Kullanılmayacaksa bu bölüm silinebilir
o_katod:
if Latch=0 then hafiza=0   

gosub segment
    
if kar_in=1 and x=0 and nokta=0 then    ' Karartma girişi aktif ve sayı sıfır ise
PORTB=0                                 ' Çıkışı karart
kar_out=1                               ' Diğer digite karartma çıkışı ver
goto Basla                              ' Başa Dön
endif
    
    k=255-k                             ' Ortak Katod İçin Segmentler Tersleniyor
        if nokta=1 then
        k=k+128                         ' Nokta İlavesi
        endif
        
PORTB=k
        
GOTO Basla
;------ORTAK KATOD KULLANIMI İÇİN SONU-------
   
end
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

OG

; -----PIC İLE 7 SEGMENT LED DISPLAY SURME (LATCH YOK)------

@ device pic16F628A, intrc_osc_noclkout, wdt_on, pwrt_on, protect_off, mclr_off, lvp_off


TRISA=%10111111
TRISB=%00000000
CCP1CON=0
INTCON.7=0
PCON.3=1
CMCON=7                   
CCP1CON=%00000000          
OPTION_REG=%00000000

x var byte
k var byte
z var byte
pol var byte ' Ortak Anod-Katod degiskeni
nokta var PORTA.4
kar_in var PORTA.5  ' Karartma Girişi
kar_out var PORTA.6  ' Karartma Çıkışı


'Ortak Anod veya Ortak Katod için eeprom 0 nolu adres kullanılarak seçme yapılabileceği gibi gereksiz bölümler silinerek program hafızası azaltılabilir.

'PORTB display çıkışıdır. Sırası ile (nokta dahil);
'PORTB=nokta,g,f,e,d,c,b,a

'PORTA data giriş ve çıkışlarıdır.
'PORTA.0= BCD sayının 0. biti
'PORTA.1= BCD sayının 1. biti
'PORTA.2= BCD sayının 2. biti
'PORTA.3= BCD sayının 3. biti
'PORTA.4= Ondalık ayırımı (nokta varsa H girişi olmalı)
'PORTA.5= Karartma Girişi (Bir önceki digit den gelecek karartma bilgisi)
'PORTA.6= Karartma Çıkışı (Bir sonraki digite gidecek karartma bilgisi)


data @0,1   ' Ortak Anod=0, Katot=1

x=0

Goto Oku

;---7 SEGMENT DURUMUNU ALMA---------
segment:
    if x=0 then k=%11000000
    if x=1 then k=%11111001
    if x=2 then k=%10100100
    if x=3 then k=%10110000
    if x=4 then k=%10011001
    if x=5 then k=%10010010
    if x=6 then k=%10000010
    if x=7 then k=%11111000
    if x=8 then k=%10000000
    if x=9 then k=%10010000
    if x=10 then k=%10001000
    if x=11 then k=%10000011
    if x=12 then k=%11000110
    if x=13 then k=%10100001
    if x=14 then k=%10000110
    if x=15 then k=%10001110
    return
    

Oku:
' Ortak Anod-Katod EEpromdan Okunmayacaksa READ komut satırı silinebilir
READ 0,pol            ' Anod ise 0, Katod ise 1 olmalı

Basla:
x=PORTA & %00001111

if pol=0 then o_anod  ' Ortak Anod-Katod EEpromdan Okunmayacaksa silinebilir
if pol=1 then o_katod ' Ortak Anod-Katod EEpromdan Okunmayacaksa silinebilir


;------ORTAK ANOD KULLANIMI İÇİN-------
' Ortak Katod Kullanılmayacaksa bu bölüm silinebilir
o_anod:

gosub segment

if kar_in=1 and x=0 and nokta=0 then    ' Karartma girişi aktif ve sayı sıfır ise
PORTB=255                               ' Çıkışı karart
kar_out=1                               ' Diğer digite karartma çıkışı ver
goto Basla                              ' Başa Dön
endif

        if nokta=1 then
        k=k-128       ' Nokta İlavesi
        endif
    
    PORTB=k
    
GOTO Basla

;------ORTAK ANOD KULLANIMI İÇİN SONU-------

;------ORTAK KATOD KULLANIMI İÇİN-------
' Ortak Anod Kullanılmayacaksa bu bölüm silinebilir
o_katod:

gosub segment
    
if kar_in=1 and x=0 and nokta=0 then    ' Karartma girişi aktif ve sayı sıfır ise
PORTB=0                                 ' Çıkışı karart
kar_out=1                               ' Diğer digite karartma çıkışı ver
goto Basla                              ' Başa Dön
endif
    
    k=255-k                             ' Ortak Katod İçin Segmentler Tersleniyor
        if nokta=1 then
        k=k+128                         ' Nokta İlavesi
        endif
        
PORTB=k
        
GOTO Basla
;------ORTAK KATOD KULLANIMI İÇİN SONU-------
   
end
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

x-tol

DS009796 ve 9368 tam istediğim entegreler.


Bu kadar eski entegreler ise sanırım bulunması oldukça zordur.Bana bu tip entegreleri elinde bulunduran yerlerin adreslerini verirmisiniz(ist.içinde)

yalnayak

MC14495 var ama istanbulda varmi bilmiyorum.eger varsa kesin pahallidir.seri uretimde kullanilmaz kanaatindeyim

avrupa fiyati 12.57 euro.

burda 16f84a 2.4 usd orda 5 euro civari..kiyaslama yapabilirsin.abilerin dedigi gibi.bence pic kullan.hatta c54 0.90 usd
Kızımın iffeti batmakta rezîlin gözüne... Acırım tükürüğe billâhi, tükürsem yüzüne..! MEHMED AKİF ERSOY  Kardan Adaminla,GUNES'e calim mi satiyorsun?

OG

; -----DM9368 PROGRAMI------

@ device pic16F628A, intrc_osc_noclkout, wdt_on, pwrt_on, protect_off, mclr_off, lvp_off

TRISA=%10111111
TRISB=%00000000
CCP1CON=0
INTCON.7=0
PCON.3=1
CMCON=7                   
OPTION_REG=0

x var byte
k var byte
z var byte

RBI var PORTA.5  ' Karartma Girişi
RBO var PORTA.6  ' Karartma Çıkışı
LE var PORTA.7

'PORTB display çıkışıdır. Sırası ile 
'PORTB=BOŞ,g,f,e,d,c,b,a

'PORTA data giriş ve çıkışlarıdır.
'PORTA.0= BCD sayının 0. biti
'PORTA.1= BCD sayının 1. biti
'PORTA.2= BCD sayının 2. biti
'PORTA.3= BCD sayının 3. biti

'PORTA.5= Karartma Girişi (RBI)
'PORTA.6= Karartma Çıkışı (RBO)
'PORTA.7= Latch Girişi (LE) 



z=0
x=0
RBO=1
Goto Basla

;---7 SEGMENT DURUMUNU ALMA---------
segment:
    if x=0 then k=%11000000
    if x=1 then k=%11111001
    if x=2 then k=%10100100
    if x=3 then k=%10110000
    if x=4 then k=%10011001
    if x=5 then k=%10010010
    if x=6 then k=%10000010
    if x=7 then k=%11111000
    if x=8 then k=%10000000
    if x=9 then k=%10010000
    if x=10 then k=%10001000
    if x=11 then k=%10000011
    if x=12 then k=%11000110
    if x=13 then k=%10100001
    if x=14 then k=%10000110
    if x=15 then k=%10001110
 
    return
    

Basla:

if LE=0 then
x=PORTA & %00001111
endif

gosub segment
    
if RBI=0 and x=0 and LE=0 then    ' Karartma girişi aktif ve sayı sıfır ise
PORTB=0                           ' Çıkışı karart
RBO=0                             ' Diğer digite karartma çıkışı ver
goto Basla                        ' Başa Dön
endif
    
    k=255-k                        ' Ortak Katod İçin Segmentler Tersleniyor
    RBO=1
        
PORTB=k
        
GOTO Basla

   
end


:100000002228A101A301A20002300628A80023088B
:100010002102031D0D28220820020430031801309C
:10002000031902302805031DFF301D280038031D69
:10003000FF300405031DFF301D28831303138312B3
:10004000640008008316BF30850086018312970183
:100050008B1383168E15831207309F008316810140
:100060008312C001BF010517A62864003F08003CA9
:10007000031D3C28C030BE0064003F08013C031D46
:100080004328F930BE0064003F08023C031D4A28A3
:10009000A430BE0064003F08033C031D5128B0306B
:1000A000BE0064003F08043C031D58289930BE0080
:1000B00064003F08053C031D5F289230BE006400C9
:1000C0003F08063C031D66288230BE0064003F08DE
:1000D000073C031D6D28F830BE0064003F08083C53
:1000E000031D74288030BE0064003F08093C031DD6
:1000F0007B289030BE0064003F080A3C031D822824
:100100008830BE0064003F080B3C031D8928833003
:10011000BE0064003F080C3C031D9028C630BE00A2
:1001200064003F080D3C031D9728A130BE00640009
:100130003F080E3C031D9E288630BE0064003F0829
:100140000F3C031DA5288E30BE0008006400851BEF
:10015000AC280F300505BF0035200030851A01306E
:10016000A00000300120B2003F08A00000300120B4
:10017000B4003208840034081620B400B500003002
:10018000851B0130A00000300120B6003408350482
:10019000840036081620B600B7006400360837041D
:1001A0000319D52886010513A6283E08FF3CBE008A
:0C01B00005173E088600A6286300DC2826
:02400E00543F1D
:00000001FF
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

x-tol

merhaba

OG hocam programıız çalışıyor.

Entegreden sonuç çıkmazsa bu tür birşeyde yapabiliriz.

Alıntı YapMC14495 var ama istanbulda varmi bilmiyorum.eger varsa kesin pahallidir.seri uretimde kullanilmaz kanaatindeyim

avrupa fiyati 12.57 euro.

Fiyatlarının bu kadar yüksek olacağını tahmin etmiyordum.
DS009796 ve 9368 bu entegrelerein yurdışı fiyatlarınada bakabilirmisiniz?

CaFFeiNe

@x-tol

biraz daha bilgi verirsen daha değişik çözümlerde çıkabilir (adet, kullanım amacı gibi)
mesela PAL türü birşeyde olabilir

x-tol

Seri üretim için kullanmayacağım.
Bana 4-5 tane lazım.Onun için hazır yapılmış birşeyler arıyorum.