C8051f312 microcontroller [closed]

2019-03-07 01:16发布

问题:

I'm not very good at C language, but I have write a very simple code to a C8051F312 microcontroller. My code doesn't working. Please help me what did I wrong.

#include C8051F310.h
#include stdio.h

sbit LED_16 = P1^7; // green LED: 1 = ON; 0 = OFF

void init(void)
{   
    // XBRN registers_init
    XBR0 = 0x00; 
    XBR1 = 0x00; // Enable the crossbar
    PCA0MD  = 0X00;


    // port_init
    P0MDOUT = 0x00; // Output configuration for P0
    P1MDOUT = 0x40; // Output configuration for P1
    P2MDOUT = 0x00; // Output configuration for P2
    P3MDOUT = 0x00; // Output configuration for P3
}

void main(void)
{
    init();

    while (1)
    {
        LED_16 = 1; // LED continuously illuminated
    }
}

回答1:

1.First of all you should use one of 2 following options for #include directive

#include  "path-spec"
#include  <path-spec>

, not #include path-spec, as you did

2.To configuire 7th bit of P1 general I/O port to work in push-pull mode you should set

P1MDOUT = 0x80;

, not

P1MDOUT = 0x40;