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
sbit can use either the bit address, as you show, or the bit number; eg,
sbit mybit0 = ibase ^ 0; /* bit 0 of ibase */ sbit mybit15 = ibase ^ 15; /* bit 15 of ibase */ sbit Ary07 = bary[0] ^ 7; /* bit 7 of bary[0] */ sbit Ary37 = bary[3] ^ 7; /* bit 7 of bary[3] */
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
sbit led_state = P5^1; // 0 = LED off 1 = LED on