dijital saat sorunu

Başlatan paradox, 16 Aralık 2006, 19:12:36

paradox

arkadaşlar dijital saat yapıcami ilk önce bi 7 segmentliyi 0 dan 9 a kadar saydırıyım dedim 8 e gelince hata verdi hata şu :

Reading netlist...
Reading SPICE models...
Building circuit...
Instantiating SPICE models...
[U1] PIC16 model release 6.9 SP0 simulating PIC16628 device.
[U1] Loaded 128 bytes of persistent EEPROM data.
[U1] Loading HEX file 'SAAT.HEX'.
[U1] Read total of 278 bytes from file 'SAAT.HEX'.
[U1] Loaded 137 program words and 0 data bytes.
[SPICE] DELMIN increased to 1.77636e-15 due to lack of time precision
[SPICE] transient GMIN stepping at time=8.00021
[SPICE] Error 106 - TRAN:  Timestep too small; time = 8.00021, timestep = 2.22045e-16: trouble with node "#00006"
.
Totaliters=7027, Totalsteps=1270, Goodsteps=1238, Badsteps=32


Real Time Simulation FAILED.



program ise :

TRISA=0
TRISB=0

SAY0 VAR BYTE
SAY1 VAR BYTE
SAY2 VAR BYTE
SAY3 VAR BYTE
SAY4 VAR BYTE
SAY5 VAR BYTE
SAY6 VAR BYTE
SAY7 VAR BYTE
SAY8 VAR BYTE
SAY9 VAR BYTE

SAY0=%00111111
SAY1=%00110000
SAY2=%01011011
SAY3=%01111001
SAY4=%00000111
SAY5=%01101101
SAY6=%01101111
SAY7=%00111000
SAY8=%01111111
SAY9=%01111101


PORTA=%00001100
DONGU:
PORTB=SAY0
pause 1000
PORTB=SAY1
pause 1000
PORTB=SAY2
pause 1000
PORTB=SAY3
pause 1000
PORTB=SAY4
pause 1000
PORTB=SAY5
pause 1000
PORTB=SAY6
pause 1000
PORTB=SAY7
pause 1000
PORTB=SAY8
pause 1000
PORTB=SAY9
pause 1000
GOTO DONGU


displayin 7 pinini portb nin ilk 7 bitine ortak katotu ise porta nın 2 ci bitine bağladım...sorun nedir ?? sanırım zamanla ilgili bi sorun var.

ibrsel

TRISA=0   Bu komut ile A portunu çıkış tanımlamışsın..

PORTA=%00001100  Burada da A2 pinine lojik 1 vermişsin..Displeyin ortak katod ucunu A2 pinine bağlayıp buraya lojik 1 gönderirsen hata ile karşılaşman doğal..Ortak katod ucunu direk şaseye bağla..Yada tarama mantığı ile birden fazla displayi çalıştıracak isen, A portunu çıkış tanımlayıp displayin ortak ucunu bağladığın pine lojik 0  değerini ata..

paradox

dediğiniz doğru ortak katotu gnd ye bağladığımda sayıcı çalıştı.sağol un.fakat anamadığım şey birden fazla displayi nasıl tarama ile süreceğim.mecburen a portunu kullancam ve seçmek istemediğim displayin katotuna 1 yollıcam.acaba araya buffer falanmı koycam onunla alakalı olurmu

tebesir

paradox;

tarama işlemi için displayi 7447 ile sürersin. sonra displayleri kendi aralarında gruplayarak paralel bağlarsın. her bir displayi transistörle sırayla aktif edersin. tabi bunu çok hızlı bir şekilde yapıcaksın. bu şekilde göz yanılmasıyla her displayin aynı anda çalıştığı görülür.

inşallah faydalı olur. kolay gelsin. başarılar...

Pir-O

Ben de daha önce kendim saat tasarlamıştım. Yazdıgın programda hata yok gibi ama simulasyonda hata veriyorsa baglantı sekillerini kontrol et.

ben ilk tasarladıgımda 7 segmentli displayin bacaklarina direnç baglamadığım için hata veriyordu bunu duzeltince sorun ortadan kalktı.

eger istersen kendi tasarımımı yollayabilirim

paradox

bende diranç bağlamadım nihayetinde simulasyon olduğu için gerek yok demiştim.

Pir-0 hocam tasarımını gönderebilirsen sevinirim.program olarak kafamda tasarladım fakat pratiğe dökünce iş değişiyo işte.ne zamandır kolay bu iş deuip yapmamıştım evde ki saaatin pili bitince aklıma geldi.saat yapıyım dedim pratiğin önemini kavramış oldum :D

POWER

proğramı yaptım ama uygulamasını yapamadım henüz.Bir bak istersen
http://rapidshare.com/files/8151789/saat.rar.html
TB6BKG

paradox

@POWER

hocam gönderdiğin devre için teşekkürler.bayağı güzel olmuş.fakat 595 kullanmadan yapmayı denemiştim ben.tam olarak çalışma prensibini de bilmiyorum aslında.628 ile yapsak nasıl yapabiliriz.düşünceniz varmı.düşünüyorum demek ben yanlış biliyorum.çünkü benim tasarladığım devrede display ve picden başka eleman yok dirençler var bi tek.siz tarama yapmamışsınız.nasıl yazdınız programı anlatabilirmisiniz biraz mantığını.ğic asm mi kullanıyosunuz?ben pic basicle yaızyorum acaba zamanda sorun çıkarırmı gerçi 1 saniye çıkarmaması lazım

Pir-O

Asagıdaki dosyada kendi tasarımım var henüz bitmedi sana bilgi vermesi açısından yolluyorum bir de internetten buldugum hazır bir devre var o da içinde. Elimden geldigince yardım edebilirim. Kolay gelsin.


http://rapidshare.com/files/8180090/7_seg_saat.rar

POWER

kardeş 595 kullanmadanda yapılabilir tabiki.Hatta bendede olabilir.O zaman 9 ve 6 nın bazı segmentleri yanmıyor.İkincisi işlemcinin pin sayısından tasarruf etmek için 595 kullanmıştım.Esasında yaptığım devre başka bir devreydi taplam 40 adet dısplay kullanılacaktı.Devre otomatik namaz vakitlerini gösteren devreydi.Fakat namaz vakitlerinin hesaplama işini temellendiremedim.Diyanete mesj yazdım cevap gelmedi.Dolayısıyla 877 nin pin sayısı bile yetmiyordu.Sen nasıl bir şey istiyorsun birazdaha ayrıntılı yaz bakarız.Buarada ben kristali burda bulamadım.Aynı ilde olduğumuza göre seninde başka bir yerden bulman gerekiyor.
TB6BKG

paradox

ben kristali istanbuldan almıştım yazın.topluca 100 milyonluk malzeme aldım burda bulunmadığı için.istanbuldaki birçok elektronik malzeme satan yer kargoyla gönderiyo.eğer başka elemanlar da lazımsa isteyebilirsin.ama kazıkçı oluyo iyi bi araştırmak lazım.

tam olarak yapmak istedeim şey sadece display kullanarak tarama mantığı ile saniye dakika ve saati gösteren bi devre.displaylerin veri girişi b portundan.ortak katotları da a portundan kontrol edilecek.pin sayısında bi sorunum yok.yalnız proteusta kurduğum zaman timestep too small hatası veriyo onu anlayamadım.acaba breaddoardda kursam çalışırmı  :roll:

ilk başta direnç takmamıştım.sorun ondan olabilr diye sonra 50 ohm luk direnç bağladım yine çalışmadı.yanılmıyorsam bu sefer hiç yanmamıştı segmentler?

POWER

628 ile yapılmış bir uygulama.Bu devreleri aslında ete arkadaşımızın devresini modifiye ederek yaptım.
http://rapidshare.com/files/8883281/SAAT.rar.html
NOT:Link çalışıyor düzelttim bilginize arkadaşlar
TB6BKG