avatar_Hattuşa

7SEG sürme sorunu

Başlatan Hattuşa, 11 Mayıs 2014, 12:47:47

Hattuşa

selam arkadaşlar boş boş otururken elimdeki 3 haneli 7segmentten bir devre kurayım dedim, yazdığım kod bir türlü sağlıklı çalışmadı,
acaba vakti olan arakadaşlardan koda bir bakmalarını rica ediyorum. nerde hata var bulamadım, sorunum ise 3 haneninde aynı değeri basması...
protonda yazılmıştır..

BAS,HEX,ISIS şema ektedir.


Device = 16F88
@CONFIG_REQ
@__CONFIG _CONFIG1, CP_OFF & CCP1_RB0 & DEBUG_OFF & WRT_PROTECT_OFF & CPD_OFF & LVP_OFF & BODEN_ON & MCLR_ON & PWRTE_OFF & WDT_OFF & HS_OSC
@__CONFIG _CONFIG2, IESO_OFF & FCMEN_OFF


Xtal 8
CMCON =7
Declare All_Digital False
TRISA =%00000011
TRISB =%00000000
PORTA =0
PORTB =0
OPTION_REG.7=1
ANSEL =%00000011
ADCON0 =%00000101
ADCON1 =%10000000
Declare Adin_Res 10       
Declare Adin_Tad FRC     
Declare Adin_Stime 50

Symbol Sa0 =PORTA.2
Symbol Sa1 =PORTA.3
Symbol Sa2 =PORTA.4
Output Sa0
Output Sa1
Output Sa2
Dim A0 As Word
Dim A_AdC As Word
Dim B_aDc As Word
Dim VeR As Byte
Dim VeR0 As Byte
Dim VeR1 As Byte
Dim VeR2 As Byte
Dim bAk0 As Byte
Dim BaK1 As Byte
Dim BaK2 As Byte



Clear
DelayMS 100
High Sa0
High Sa1
High Sa2
DelayMS 250
bAk0 =0
BaK1 =0
BaK2 =0


MaIn:
A0 =ADIn 0
DelayMS 1
A_AdC =A0 /4
If A_AdC <1 Then A_AdC =1
If A_AdC >255 Then A_AdC =255
VeR0 =Dig A_AdC,0
VeR1 =Dig A_AdC,1
VeR2 =Dig A_AdC,2

If bAk0 <>VeR0 Then GoTo YaZ0     '0 digitte  değişiklik olmuş mu?
If BaK1 <>VeR1 Then GoTo YaZ1     '1 digitte  değişiklik olmuş mu?
If BaK2 <>VeR2 Then GoTo yAz2     '2 digitte  değişiklik olmuş mu?
GoTo MaIn

YaZ0:
bAk0 =VeR0       
'1 hane basılıyor
           VeR =VeR0
           GoSub TaBLo
           Low Sa0
           DelayMS 5
           High Sa0
GoTo MaIn

YaZ1:
BaK1 =VeR1
'2 hane basılıyor
           VeR =VeR1
           GoSub TaBLo
           Low Sa1
           DelayMS 5
           High Sa1
GoTo MaIn

yAz2:
BaK2 =VeR2
'3 hane basılıyor
           VeR =VeR2
           GoSub TaBLo
           Low Sa2
           DelayMS 5
           High Sa2
GoTo MaIn


   
TaBLo:
    PORTB =LookUpL VeR,[192,249,164,176,153,146,130,248,128,144]
'    '                 [0 ,  1,  2 , 3 , 4 , 5 , 6 , 7,  8 , 9 ]
    Return   
    End

F®T

protonda bende geçenlerde bu tür bir sorunla karşılaşmıştım.fakat proteuse ile simüle ederken.bende kartı deneme aşamasındayım.sanırım ortak ayakları süren portlar düzgün çalışmıyor.ortak ayaklara bağlı portları direk port ismi ile denediğimde düzelme olduğunu gördüm.ama bu proteusetanmı pc hızındanmı bende anlayamadım.sanırım gerçek kartta deneme yapınca anlaşılacak.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Hattuşa

ustam aynı mantıkta16f886  ile benzerlik gösteren kod çalışıyor bu çalışmadı ve hala sorun devam ediyor. belki gözümden kaçan bişeyler varsa diye yardım istiyordum

F®T

hocam proteusetamı deniyorsun.kulanılan 7 segler farklı tepki sürelerine sahip.displayin edit kısmında tepki süresini yazıyor bazıları.ekranda kaması gereken süreyi biraz uzatın belki farkeder.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

#4

Device = 16F88
@CONFIG_REQ
@__CONFIG _CONFIG1, CP_OFF & CCP1_RB0 & DEBUG_OFF & WRT_PROTECT_OFF & CPD_OFF & LVP_OFF & BODEN_ON & MCLR_ON & PWRTE_OFF & WDT_OFF & HS_OSC
@__CONFIG _CONFIG2, IESO_OFF & FCMEN_OFF


Xtal 8
CMCON =7
Declare All_Digital False
TRISA =%00000011
TRISB =%00000000
PORTA =0
PORTB =0
OPTION_REG.7=1
ANSEL =%00000011
ADCON0 =%00000101
ADCON1 =%10000000
Declare Adin_Res 10       
Declare Adin_Tad FRC     
Declare Adin_Stime 50

Symbol Sa0 =PORTA.2
Symbol Sa1 =PORTA.3
Symbol Sa2 =PORTA.4
Output Sa0
Output Sa1
Output Sa2
Dim A0 As Word
Dim A_AdC As Word
Dim B_aDc As Word
Dim VeR As Byte
Dim VeR0 As Byte
Dim VeR1 As Byte
Dim VeR2 As Byte
Dim bAk0 As Byte
Dim BaK1 As Byte
Dim BaK2 As Byte



Clear
DelayMS 250

MaIn:

A0 =ADIn 0
If A_AdC <1 Then A_AdC =1
If A_AdC >255 Then A_AdC =255

A_AdC =A0 /4

VeR =Dig A_AdC,0:Low Sa0:DelayMS 5:High Sa0:GoSub TaBLo
VeR =Dig A_AdC,1:Low Sa1:DelayMS 5:High Sa1:GoSub TaBLo
VeR =Dig A_AdC,2:Low Sa2:DelayMS 5:High Sa2:GoSub TaBLo

GoTo MaIn
               
TaBLo:
    PORTB =LookUpL VeR,[192,249,164,176,153,146,130,248,128,144]
'    '                 [0 ,  1,  2 , 3 , 4 , 5 , 6 , 7,  8 , 9 ]
    Return   
    End


hocam biraz sadeleşti ama şablon oturdu heralde.isistede direnç ekledim.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Hattuşa

ft hocam isisde deniyorum ve vermiş olduğunuz kodda da aynı şekilde bütün digitler aynı yani birler hanesini basıyor.
bas dosyasını isisde çalıştırdığımda digitleri aktif eden ortak katot değerlerinde 60 yazıyor bundan kaynaklanabilir mi? belki gerçek uygulamada sorun çıkarmayabilir ama neden isis böyle bir azizlik yaptı yada nerde hata yapılıyor anlamış değilim.
acaba sizde digitteki değerler doğru mu?

F®T

#6
hocam ekte isis dosyası verdim verdiğim kodu orda denersen sorun yok.ortak uçları 10 k ile şaseye çektim.bende gayet güzel çalışıyor.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Hattuşa

ok FT ustam anlaşıldı isis bana bunda güzellik yaptı, artık reelde denemek lazım zira bende hala isis azizlik yapıyor  >:(   >:(   >:(

Powered by EzPortal