This question already has an answer here:
C8051f312 microcontroller [closed]
(1个答案)
6年前关闭。
我有8051F312微控制器,并且必须打开LED(在P2端口的7.bit上)。我的代码不起作用,也许您有一些想法。
(对不起格式,但是文本编辑器有问题)
如果将LED的阴极连接到微控制器,则您的代码应为
(1个答案)
6年前关闭。
我有8051F312微控制器,并且必须打开LED(在P2端口的7.bit上)。我的代码不起作用,也许您有一些想法。
#include < C8051F310.H >
#include < stdio.h >
sbit LED_16 = P2^7; // P2^7-->green LED: 1 = ON; 0 = OFF
void init(void)
{
// XBRN registers_init
XBR1 = 0x40; // Enable the crossbar
PCA0MD &= 0X40; // Disable Watchdog
P2MDOUT |= 0xF0;
ADC0CN = 0x80;
ADC0CF = 0xFC;
REF0CN = 0x08;
}
void main(void)
{
init();
while (1)
{
LED_16 = 1; // LED continuously illuminated
}
}
(对不起格式,但是文本编辑器有问题)
最佳答案
首先,您需要设置GPIO的输入/输出。对于8051微控制器系列(据我所知)(我对8051F312不了解),将1分配给一个引脚将gpio设置为输入,将0设定为gpio设置为输出。因此,在您的情况下,首先需要将P2.7设置为输出。为此,您需要在LED_16 = 0;
函数中执行init
。之后,您需要考虑如何将LED连接到微控制器引脚。如果将LED的阳极连接到微控制器引脚,则需要将其设置为高电平才能使LED发光。如果LED的阴极连接到微控制器引脚,则需要将其拉低以使LED发光。
如果将LED的阳极连接到微控制器,则您的代码应为
void main(void)
{
init();
while (1)
{
LED_16 = 1; // LED continuously illuminated
}
}
如果将LED的阴极连接到微控制器,则您的代码应为
void main(void)
{
init();
while (1)
{
LED_16 = 0; // LED continuously illuminated
}
}
关于c - 8051F312微 Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20657107/