We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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