+ Post New Thread
Page 2 of 2 FirstFirst 1 2
Results 21 to 23 of 23
  1. #21
    Advanced Member level 4
    Points: 10,056, Level: 24
    ALERTLINKS's Avatar
    Join Date
    Dec 2003
    Location
    Pakistan
    Posts
    1,259
    Helped
    398 / 398
    Points
    10,056
    Level
    24

    Re: Help with writing Assembly to Display Temperature and converting Binary to Decima

    I only have the count code which is in hex for now...
    Here is disassembly of count2.hex,

    Code:
    	processor 16F676
    	Radix DEC
    #include "P16F676.INC"
    	__CONFIG 0x31F4
    	ERRORLEVEL -302
    
    	ORG 0
    	GOTO   L174
    L1:
    	MOVWF  52
    	CALL   L63
    	MOVF   32,0
    	IORWF  33,0
    	BTFSC  STATUS,Z
    	GOTO   L169
    	CALL   L163
    	BCF    FSR,7
    	MOVF   52,0
    	XORWF  INDF,1
    L11:
    	CLRWDT 
    	GOTO   L13
    L13:
    	GOTO   L14
    L14:
    	INCF   32,1
    	BTFSC  STATUS,Z
    	INCFSZ 33,1
    	GOTO   L11
    	XORWF  INDF,1
    	GOTO   L169
    	MOVLW  8
    L21:
    	MOVWF  38
    	MOVF   55,0
    	MOVWF  FSR
    	MOVF   53,0
    	BTFSC  51,2
    	CALL   L58
    	BTFSS  51,2
    	CALL   L60
    	MOVF   54,0
    	MOVWF  FSR
    	COMF   52,0
    	CALL   L64
    	MOVF   38,0
    	BTFSC  STATUS,Z
    	GOTO   L169
    	BTFSC  51,0
    	CALL   L126
    L38:
    	MOVF   54,0
    	MOVWF  FSR
    	RRF    33,1
    	RRF    32,1
    	MOVF   INDF,0
    	IORWF  52,0
    	BTFSS  STATUS,C
    	XORWF  52,0
    	MOVWF  INDF
    	CALL   L51
    	DECFSZ 38,1
    	GOTO   L38
    	GOTO   L169
    L51:
    	MOVF   55,0
    	MOVWF  FSR
    	MOVF   53,0
    	XORWF  INDF,1
    	NOP    
    	XORWF  INDF,1
    	RETURN 
    	
    L58:
    	IORWF  INDF,1
    	GOTO   L63
    L60:
    	XORLW  255
    	ANDWF  INDF,1
    	GOTO   L64
    L63:
    	XORLW  255
    L64:
    	BSF    FSR,7
    	ANDWF  INDF,1
    	GOTO   L169
    L67:
    	ANDLW  15
    	MOVWF  32
    	BCF    STATUS,C
    	RLF    32,1
    	RLF    32,1
    	MOVF   ADCON0,0
    	ANDLW  224
    	IORWF  32,0
    	IORLW  1
    	MOVWF  ADCON0
    	MOVLW  0
    	MOVWF  33
    	MOVLW  50
    	CALL   L106
    	BSF    ADCON0,GODONE
    L82:
    	BTFSC  ADCON0,GODONE
    	GOTO   L82
    	CLRF   33
    	MOVF   ADRESH,0
    	GOTO   L169
    L87:
    	BSF    STATUS,RP0
    	MOVWF  EEADR
    	BSF    EECON1,RD
    	MOVF   EEDAT,0
    	GOTO   L169
    	CLRF   163
    L93:
    	MOVWF  162
    L94:
    	MOVLW  255
    	ADDWF  162,1
    	BTFSS  STATUS,C
    	ADDWF  163,1
    	BTFSS  STATUS,C
    	GOTO   L169
    	MOVLW  3
    	MOVWF  161
    	MOVLW  223
    	CALL   L106
    	GOTO   L94
    	CLRF   161
    L106:
    	ADDLW  232
    	MOVWF  160
    	COMF   161,1
    	MOVLW  252
    	BTFSS  STATUS,C
    	GOTO   L115
    L112:
    	ADDWF  160,1
    	BTFSC  STATUS,C
    	GOTO   L112
    L115:
    	ADDWF  160,1
    	CLRWDT 
    	INCFSZ 161,1
    	GOTO   L112
    	BTFSC  160,0
    	GOTO   L121
    L121:
    	BTFSS  160,1
    	GOTO   L125
    	NOP    
    	GOTO   L125
    L125:
    	RETURN 
    	
    L126:
    	CLRF   162
    	CLRF   163
    	GOTO   L133
    L129:
    	RRF    161,1
    	RRF    160,1
    	RLF    162,1
    	RLF    163,1
    L133:
    	ADDLW  255
    	BTFSC  STATUS,C
    	GOTO   L129
    	MOVF   163,0
    	MOVWF  161
    	MOVF   162,0
    	MOVWF  160
    	GOTO   L169
    L141:
    	MOVLW  16
    	MOVWF  168
    	CLRF   161
    	CLRF   160
    L145:
    	RRF    167,1
    	RRF    166,1
    	BTFSS  STATUS,C
    	GOTO   L155
    	MOVF   162,0
    	ADDWF  160,1
    	MOVF   163,0
    	BTFSC  STATUS,C
    	INCFSZ 163,0
    	ADDWF  161,1
    L155:
    	RRF    161,1
    	RRF    160,1
    	RRF    165,1
    	RRF    164,1
    	DECFSZ 168,1
    	GOTO   L145
    	MOVF   164,0
    	GOTO   L169
    L163:
    	COMF   160,1
    	COMF   161,1
    	INCF   160,1
    	BTFSC  STATUS,Z
    	INCF   161,1
    	RETURN 
    	
    L169:
    	BCF    STATUS,IRP
    	BCF    STATUS,RP1
    	BCF    STATUS,RP0
    	CLRWDT 
    	RETURN 
    	
    L174:
    	BSF    STATUS,RP0
    	CLRF   ANSEL
    	BCF    STATUS,RP0
    	MOVLW  7
    	MOVWF  CMCON
    	BSF    STATUS,RP0
    	BSF    TRISA,3
    	BSF    TRISA,5
    	BCF    TRISA,2
    	BCF    TRISA,1
    	BCF    TRISA,0
    	BCF    STATUS,RP0
    L186:
    	CLRWDT 
    	BTFSS  PORTA,5
    	GOTO   L191
    	GOTO   L196
    	GOTO   L192
    L191:
    	GOTO   L281
    L192:
    	BCF    PORTA,2
    	BSF    STATUS,RP0
    	BCF    TRISA,2
    	BCF    STATUS,RP0
    L196:
    	CLRF   60
    L197:
    	CLRWDT 
    	MOVLW  10
    	SUBWF  60,0
    	BTFSC  STATUS,C
    	GOTO   L280
    	CLRF   59
    L203:
    	CLRWDT 
    	MOVLW  10
    	SUBWF  59,0
    	BTFSC  STATUS,C
    	GOTO   L278
    	MOVF   59,0
    	CALL   L87
    	MOVWF  61
    	MOVLW  3
    	CALL   L67
    	MOVWF  58
    	MOVLW  10
    	MOVWF  38
    	CLRF   39
    	MOVF   58,0
    	MOVWF  34
    	CLRF   35
    	CALL   L141
    	MOVWF  56
    	MOVF   37,0
    	MOVWF  57
    	MOVLW  30
    	ADDWF  56,1
    	BTFSC  STATUS,C
    	INCF   57,1
    	MOVF   60,0
    	CALL   L87
    	MOVWF  62
    	CLRWDT 
    	BTFSC  PORTA,5
    	GOTO   L235
    	GOTO   L281
    L235:
    	MOVLW  5
    	MOVWF  54
    	MOVLW  1
    	MOVWF  52
    	MOVLW  5
    	MOVWF  55
    	MOVLW  2
    	MOVWF  53
    	MOVLW  1
    	MOVWF  51
    	MOVF   61,0
    	MOVWF  32
    	CLRF   33
    	MOVLW  4
    	CALL   L21
    	MOVLW  5
    	MOVWF  54
    	MOVLW  1
    	MOVWF  52
    	MOVLW  5
    	MOVWF  55
    	MOVLW  2
    	MOVWF  53
    	MOVLW  1
    	MOVWF  51
    	MOVF   62,0
    	MOVWF  32
    	CLRF   33
    	MOVLW  4
    	CALL   L21
    	MOVLW  100
    	MOVWF  32
    	CLRF   33
    	MOVLW  5
    	MOVWF  FSR
    	MOVLW  4
    	CALL   L1
    	MOVF   57,0
    	MOVWF  35
    	MOVF   56,0
    	CALL   L93
    	INCFSZ 59,1
    	GOTO   L203
    L278:
    	INCFSZ 60,1
    	GOTO   L197
    L280:
    	GOTO   L186
    L281:
    	BCF    PORTA,2
    	BSF    STATUS,RP0
    	BCF    TRISA,2
    	BCF    STATUS,RP0
    	MOVLW  9
    	MOVWF  60
    L287:
    	MOVLW  9
    	MOVWF  59
    L289:
    	MOVF   59,0
    	CALL   L87
    	MOVWF  61
    	MOVLW  3
    	CALL   L67
    	MOVWF  58
    	MOVLW  10
    	MOVWF  38
    	CLRF   39
    	MOVF   58,0
    	MOVWF  34
    	CLRF   35
    	CALL   L141
    	MOVWF  56
    	MOVF   37,0
    	MOVWF  57
    	MOVLW  30
    	ADDWF  56,1
    	BTFSC  STATUS,C
    	INCF   57,1
    	MOVF   60,0
    	CALL   L87
    	MOVWF  62
    	CLRWDT 
    	BTFSS  PORTA,5
    	GOTO   L316
    	GOTO   L186
    L316:
    	MOVLW  5
    	MOVWF  54
    	MOVLW  1
    	MOVWF  52
    	MOVLW  5
    	MOVWF  55
    	MOVLW  2
    	MOVWF  53
    	MOVLW  1
    	MOVWF  51
    	MOVF   61,0
    	MOVWF  32
    	CLRF   33
    	MOVLW  4
    	CALL   L21
    	MOVLW  5
    	MOVWF  54
    	MOVLW  1
    	MOVWF  52
    	MOVLW  5
    	MOVWF  55
    	MOVLW  2
    	MOVWF  53
    	MOVLW  1
    	MOVWF  51
    	MOVF   62,0
    	MOVWF  32
    	CLRF   33
    	MOVLW  4
    	CALL   L21
    	MOVLW  100
    	MOVWF  32
    	CLRF   33
    	MOVLW  5
    	MOVWF  FSR
    	MOVLW  4
    	CALL   L1
    	MOVF   57,0
    	MOVWF  35
    	MOVF   56,0
    	CALL   L93
    	MOVLW  1
    	SUBWF  59,1
    	BTFSC  STATUS,C
    	GOTO   L289
    	MOVLW  1
    	SUBWF  60,1
    	BTFSC  STATUS,C
    	GOTO   L287
    	GOTO   L186
    	ORG 0x2100
    	DE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    
    	END

    and converted to asm file. Unzip and open with notepad or into Mplab.
    Last edited by ALERTLINKS; 29th April 2013 at 10:14.
    I know. I know. And once more - I don't know.
    I am too old and would not have enough knowledge to judge, and only have made some remarks in order not to be called ignorant.


    1 members found this post helpful.

    •   AltAdvertisement

        
       

  2. #22
    Super Moderator
    Points: 81,430, Level: 69
    Achievements:
    7 years registered
    Awards:
    2nd Helpful Member
    betwixt's Avatar
    Join Date
    Jul 2009
    Location
    Aberdyfi, West Wales, UK
    Posts
    13,348
    Helped
    4456 / 4456
    Points
    81,430
    Level
    69

    Re: Help with writing Assembly to Display Temperature and converting Binary to Decima

    You will have to show a schematic so we can see how you are connecting the display. It sounds like you are trying to drive the segments from the shift register which isn't the usual way of doing it, especially when there are only two digits.

    Basically though, what you need to do is clock out the bit pattern corresponding to the segments you want to illuminate then latch the output of the shiift register so it's pins hold the segment pattern. Something like this which is NOT actual code:

    Assume the pattern is in a variable called 'Segments'.
    1. set a counter = 0
    2. set a mask variable to 0x01
    3. AND the mask with 'Segments' (to isolate the single bit in Segments correspondig to the '1' in the mask)
    4. if the result is zero, set the data line to the shift register to zero, otherwise set it to '1'.
    5. toggle the clock to the shift register (so it moves the bit you just gave it along the register)
    6. double the mask value (eg. shift it right so 0x01 would become 0x02 and so on)
    7. add 1 to the counter
    8. if the counter has reached 8, all the bits are in the shift register so operate the latch signal, otherwise go back to step 3.

    Brian.
    PLEASE - no friends requests or private emails, I simply don't have time to reply to them all.
    It's better to share your questions and answers on Edaboard so we can all benefit from each others experiences.


    1 members found this post helpful.

    •   AltAdvertisement

        
       

  3. #23
    Newbie level 1
    Points: 13, Level: 1

    Join Date
    Apr 2013
    Posts
    1
    Helped
    0 / 0
    Points
    13
    Level
    1

    Re: Help with writing Assembly to Display Temperature and converting Binary to Decima

    Well,
    For one thing, this is THE assignment for our course. Rather than relying on others to GIVE you the code, you should sit down and do some math on the conversion. Plenty of samples out there and information on converting to BCD from binary. Plenty of algorithms out there as well.

    But just asking others to GIVE you the answer for an assignment....not really very cool.

    We'll talk in class.

    - - - Updated - - -

    Ya know,
    That's cheating....



--[[ ]]--