1. Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.
    Dismiss Notice

PIC16f84 binary to bcd

Discussion in 'Microcontrollers' started by fraughton, Apr 19, 2003.

  1. fraughton

    fraughton New Member

    Joined:
    Feb 2, 2003
    Messages:
    3
    Likes:
    0
    Location:
    Halifax, Canada
    for a class project, I need to take a 12-bit digital signal and output it as a decimal number to 4 7-segment displays. I know that the pic16f84 can take up to a 12-bit input if you use both ports a and b, but I dont know how to work with a 12-bit number since I can only store in 8bit registers.

    Once I can work with my 12bit number i need to be able to convert it to bcd in order to use a lookup table for the output values. That is, unless there's a better way to do this.

    If anyone has any suggestions or links to helpful pic programming websites I would be grateful. Thanks.

    Oh ya, I'm programming in C.
     
  2. fraughton

    fraughton New Member

    Joined:
    Feb 2, 2003
    Messages:
    3
    Likes:
    0
    Location:
    Halifax, Canada
    Ignore the 12bit thing, I think I've got that covered.

    If I've got a decimal value saved in memory how can I take each individual digit separately?

    Here's the code i have so far:

    TRISA = 0xff; //Set Port A to input
    TRISB = 0xff; //Set Port B to input
    inputLow = PORTB; //Take Port B input and save it to memory
    lower = inputLow & 0x0f;
    upper = inputLow & 0xf0 >> 4;
    inputHigh = PORTA; //Take Port A input and save it to memory

    n = inputHigh * pow(16,2) + upper * 16 + lower; //decimal value of input
     

Share This Page