Thermo 7 segments - little problem


Closed Thread
Results 1 to 40 of 50

Hybrid View

  1. #1
    Join Date
    Dec 2008
    Location
    Ploiesti, ROMANIA
    Posts
    579

    Default Thermo 7 segments - little problem

    Hello !
    I intend to make one digital thermometer, this time using a 7 segments display. I use code from my previous thermometer and from this forum for interfacing PIC with display. Unfortunate on display I have only "0". I think I made some mistakes in variables statements, but I need little help....Thanks in advance for every reply.
    Attached Images Attached Images  
    Attached Files Attached Files

  2. #2
    Join Date
    Jul 2008
    Location
    TURKIYE-KONYA
    Posts
    51


    Did you find this post helpful? Yes | No

    Default

    if you are using isis for simulation , it is hard to scanning displays.

    it doesnt work properly when displays are scanning.

  3. #3
    Join Date
    Dec 2008
    Location
    Ploiesti, ROMANIA
    Posts
    579


    Did you find this post helpful? Yes | No

    Default ?!

    Yes, I use ISIS... It's this a problem ?! I wrote another code, with the same results : "000" on display. Both (wrong) results are because of simulation ? Thanks for reply !
    Attached Files Attached Files

  4. #4
    Join Date
    Jul 2008
    Location
    TURKIYE-KONYA
    Posts
    51


    Did you find this post helpful? Yes | No

    Default

    i wrote some codes below it worked on isis.

    Code:
        SEGMENT_A   VAR PORTB.3
        SEGMENT_B   VAR PORTB.7
        SEGMENT_C   VAR PORTB.0
        SEGMENT_D   VAR PORTA.3
        SEGMENT_E   VAR PORTA.2
        SEGMENT_F   VAR PORTB.2
        SEGMENT_G   VAR PORTB.1
        DP          VAR PORTB.6
        
        BASAMAK_0   VAR PORTA.1
        BASAMAK_1   VAR PORTA.7
        BASAMAK_2   VAR PORTA.0
        BASAMAK_3   VAR PORTA.6
        
        DQ          VAR PORTB.5
        
        
        
        TEMP        VAR BYTE
        I           VAR BYTE
        SIGN        VAR BIT
        
        
        
        
        ISI             VAR WORD ; TEMPERATURE REGISTER
        COUNT_REMAIN    VAR BYTE
        
        
       
        
        
        
        MASK_0      VAR BYTE
        MASK_1      VAR BYTE
        MASK_2      VAR BYTE
        MASK_3      VAR BYTE
        
        
        
    
        CMCON   = 7
        
        OUTPUT      SEGMENT_A
        OUTPUT      SEGMENT_B
        OUTPUT      SEGMENT_C
        OUTPUT      SEGMENT_D
        OUTPUT      SEGMENT_E
        OUTPUT      SEGMENT_F
        OUTPUT      SEGMENT_G
        OUTPUT      DP
        
        OUTPUT      BASAMAK_0
        OUTPUT      BASAMAK_1
        OUTPUT      BASAMAK_2
        OUTPUT      BASAMAK_3
        
        
        
        
        SEGMENT_A   = 0
        SEGMENT_B   = 0
        SEGMENT_C   = 0
        SEGMENT_D   = 0
        SEGMENT_E   = 0
        SEGMENT_F   = 0
        SEGMENT_G   = 0
        DP          = 0
        
        BASAMAK_0   = 1 ; DISPLAYS 1. DIGIT
        BASAMAK_1   = 1 ; DISPLAYS 2. DIGIT
        BASAMAK_2   = 1 ; DISPLAYS 3. DIGIT
        BASAMAK_3   = 1 ; DISPLAYS 4. DIGIT
        
        MAIN :
        
            OWOUT DQ ,1,[$CC,$44]
            
            BEKLE :
            
            
            GOSUB EKRAN_0
            
            FOR I = 0 TO 4
                GOSUB TARA
            NEXT I
            
            OWIN  DQ ,4,[COUNT_REMAIN]
            
            IF COUNT_REMAIN = 0 THEN
                GOTO BEKLE
            ENDIF
            
            OWOUT DQ ,1,[$CC,$BE]
            OWIN  DQ ,0,[ISI.LOWBYTE , ISI.HIGHBYTE]
            
            IF ISI.15 = 1 THEN
                ISI = (65535 - ISI) + 1
                SIGN = 1
            ELSE
                SIGN = 0
            ENDIF
                ISI = (ISI * 10)/16
        
            
        
    GOTO MAIN
    
    
        
        EKRAN_0 :  ; TRANSFER THE REGISTERS TO DIPLAY
        
        MASK_3 = ISI DIG 3
        MASK_2 = ISI DIG 2
        
        IF SIGN = 1 THEN 
            MASK_3 = " "
            MASK_2 = "-"
        ENDIF
        
        MASK_1 = ISI DIG 1
        MASK_0 = ISI DIG 0
    
    RETURN
    
        
    
        
        TARA : ; SCAN THE DISPLAYS
        
        TEMP = MASK_3 : GOSUB TABLO 
        BASAMAK_3 = 0 : PAUSE 1 : BASAMAK_3 = 1
        
    '****************************************************************
    '****************************************************************
        
        TEMP = MASK_2 : GOSUB TABLO
        BASAMAK_2 = 0 : PAUSE 1 : BASAMAK_2 = 1
    
    '****************************************************************
    '****************************************************************
        
        TEMP = MASK_1 : GOSUB TABLO
        BASAMAK_1 = 0 : DP = 1 : PAUSE 1 : BASAMAK_1 = 1 : DP = 0
    
    '****************************************************************
    '****************************************************************
        
        TEMP = MASK_0 : GOSUB TABLO
        BASAMAK_0 = 0 : PAUSE 1 : BASAMAK_0 = 1
        
        
        
    RETURN
        
        
        
        
        TABLO :  ; TABLE , CONVERTS THE DATAS TO 7 SEGMENT CODE
        
        SELECT CASE TEMP
            
            CASE 0
            SEGMENT_A = 1   
            SEGMENT_B = 1   
            SEGMENT_C = 1  
            SEGMENT_D = 1   
            SEGMENT_E = 1   
            SEGMENT_F = 1   
            SEGMENT_G = 0
            
            CASE 1
            SEGMENT_A = 0   
            SEGMENT_B = 1   
            SEGMENT_C = 1  
            SEGMENT_D = 0   
            SEGMENT_E = 0   
            SEGMENT_F = 0   
            SEGMENT_G = 0
            
            CASE 2
            SEGMENT_A = 1   
            SEGMENT_B = 1   
            SEGMENT_C = 0  
            SEGMENT_D = 1   
            SEGMENT_E = 1   
            SEGMENT_F = 0   
            SEGMENT_G = 1
            
            CASE 3
            SEGMENT_A = 1   
            SEGMENT_B = 1   
            SEGMENT_C = 1  
            SEGMENT_D = 1   
            SEGMENT_E = 0   
            SEGMENT_F = 0   
            SEGMENT_G = 1
            
            CASE 4
            SEGMENT_A = 0   
            SEGMENT_B = 1   
            SEGMENT_C = 1  
            SEGMENT_D = 0   
            SEGMENT_E = 0   
            SEGMENT_F = 1   
            SEGMENT_G = 1
            
            CASE 5
            SEGMENT_A = 1   
            SEGMENT_B = 0   
            SEGMENT_C = 1  
            SEGMENT_D = 1   
            SEGMENT_E = 0   
            SEGMENT_F = 1   
            SEGMENT_G = 1
            
            CASE 6
            SEGMENT_A = 1   
            SEGMENT_B = 0   
            SEGMENT_C = 1  
            SEGMENT_D = 1   
            SEGMENT_E = 1   
            SEGMENT_F = 1   
            SEGMENT_G = 1
            
            CASE 7
            SEGMENT_A = 1   
            SEGMENT_B = 1   
            SEGMENT_C = 1  
            SEGMENT_D = 0   
            SEGMENT_E = 0   
            SEGMENT_F = 0   
            SEGMENT_G = 0
            
            CASE 8
            SEGMENT_A = 1   
            SEGMENT_B = 1   
            SEGMENT_C = 1  
            SEGMENT_D = 1   
            SEGMENT_E = 1   
            SEGMENT_F = 1   
            SEGMENT_G = 1
            
            CASE 9
            SEGMENT_A = 1   
            SEGMENT_B = 1   
            SEGMENT_C = 1  
            SEGMENT_D = 1   
            SEGMENT_E = 0   
            SEGMENT_F = 1   
            SEGMENT_G = 1
            
            CASE "-"
            SEGMENT_A = 0   
            SEGMENT_B = 0   
            SEGMENT_C = 0  
            SEGMENT_D = 0   
            SEGMENT_E = 0   
            SEGMENT_F = 0   
            SEGMENT_G = 1
            
            CASE "h"
            SEGMENT_A = 0   
            SEGMENT_B = 0   
            SEGMENT_C = 1  
            SEGMENT_D = 0   
            SEGMENT_E = 1   
            SEGMENT_F = 1   
            SEGMENT_G = 1
            
            CASE "o"
            SEGMENT_A = 0   
            SEGMENT_B = 0   
            SEGMENT_C = 1  
            SEGMENT_D = 1   
            SEGMENT_E = 1   
            SEGMENT_F = 0   
            SEGMENT_G = 1
            
            CASE "b"
            SEGMENT_A = 0   
            SEGMENT_B = 0   
            SEGMENT_C = 1  
            SEGMENT_D = 1   
            SEGMENT_E = 1   
            SEGMENT_F = 1   
            SEGMENT_G = 1
            
            CASE " "
            SEGMENT_A = 0   
            SEGMENT_B = 0   
            SEGMENT_C = 0  
            SEGMENT_D = 0   
            SEGMENT_E = 0   
            SEGMENT_F = 0   
            SEGMENT_G = 0
            
        END SELECT
        
    RETURN
    some register names and label are written in turkish. i tried to comment them to english.

    there is no transistors to drive diplays.

    if your version is same with my isis , it will work.

    all files in attachment.
    Attached Images Attached Images  
    Attached Files Attached Files
    Last edited by mehmetOzdemir; - 22nd January 2010 at 18:07.

  5. #5
    Join Date
    Dec 2008
    Location
    Ploiesti, ROMANIA
    Posts
    579


    Did you find this post helpful? Yes | No

    Default

    Thank You verry much for support ! ...My ISIS is Release 7.4 SP3, and Your code (copy/paste/compiling, because the zip file is empty !) DON'T WORK !!!
    Verry strange ... PIC and statements are the same ?

  6. #6
    Join Date
    Jul 2008
    Location
    TURKIYE-KONYA
    Posts
    51


    Did you find this post helpful? Yes | No

    Default

    i refreshed the zip file download again.

  7. #7
    Join Date
    May 2010
    Posts
    4


    Did you find this post helpful? Yes | No

    Default doesnt compile

    To mehmetOzdemir

    Hi I have downloaded and ran isis.zip files and it worked fine for me but when I compile the pic basic file in the isis.zip file and re simulate it in isis it only displays as per the attatched image.
    Any ideas? is the pic basic file ok?
    I am only learning this system so I am confused as to why it works perfect with original files but yet I cant compile it from my picbasic system.
    This is what I get when I compile the files in the zip myself.
    Attached Images Attached Images  
    Last edited by zorbzz; - 10th May 2010 at 02:35.

  8. #8
    Join Date
    Jul 2008
    Location
    TURKIYE-KONYA
    Posts
    51


    Did you find this post helpful? Yes | No

    Default

    I used MPASM when i compiled it. Try to use MPASM or add your config settings to the top of your code.

Similar Threads

  1. Windows 7 64 bit problem..can anyone help???
    By ljc4141 in forum mel PIC BASIC Pro
    Replies: 16
    Last Post: - 18th July 2011, 15:29
  2. LED Machine Tach For Tired Eyes
    By Archangel in forum mel PIC BASIC Pro
    Replies: 33
    Last Post: - 27th January 2010, 14:55
  3. adding with 7 segments
    By ruijc in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 28th November 2007, 22:51
  4. 7 segments clock
    By the_apprentice in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 27th April 2006, 18:45
  5. 7 segment digit problem (using Mister E's code)
    By jmgelba in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 9th September 2005, 20:25

Members who have read this thread : 2

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts