This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to access bit addressable?

Here is one to help a mechanical engineering student trying to program a microcontroller.

P5 is a bit addressable register. In the header reg517.h is only the definiton of P5 as a sfr. How do I access a bit address of such a port in C? Do I have to define sbit P5_1=F8H?

By the way, Is there an easy way to write the assembly instruction CPL in C51 langauge?

Thanks a lot

Parents
  • There are a couple of slightly different ways of defining a bit variable with a fixed bit address. For example:

    sbit led_state = 0xF8;    // 0 = LED off 1 = LED on
    
    or
    sbit led_state = P5^1;    // 0 = LED off 1 = LED on
    
    The latter requires that P5 has already been defined as an SFR at a specified address.

    To complement the bits of a variable (or an SFR) use the ones-complement operator. For example:

    P5 = ~P5;

Reply
  • There are a couple of slightly different ways of defining a bit variable with a fixed bit address. For example:

    sbit led_state = 0xF8;    // 0 = LED off 1 = LED on
    
    or
    sbit led_state = P5^1;    // 0 = LED off 1 = LED on
    
    The latter requires that P5 has already been defined as an SFR at a specified address.

    To complement the bits of a variable (or an SFR) use the ones-complement operator. For example:

    P5 = ~P5;

Children
No data