首页 热点专区 义务教育 高等教育 出国留学 考研考公

51单片机怎么只控制一颗LED灯闪烁

发布网友 发布时间:2022-04-25 20:00

我来回答

5个回答

热心网友 时间:2022-06-17 00:17

1、新建项目,如图所示。

2、添加头文件,创建延迟函数。

3、创建C主函数。

4、添加死循环效果。

5、点亮LED灯。P1=0x7e;二进制11111110。

6、添加延迟效果。

注意事项:

很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。

热心网友 时间:2022-06-17 00:18

首先你要知道既然是控制一个LED灯的话,那么就只需要一个IO口控制就可以了。那么在程序中你只需要改变一个IO口的状态。
你这个程序首先是,P10是什么东西,如果是一个IO口的话,为什么后面会是0X00,和0XFF,这是什么意思, 这是八位的表示方式,一位需要用这么多的数据来表示么。你只需要置1,和清零就可以了。就是说 P10 = 0;P10 = 1,这种方式的就可以了。而且你还需要在程序的最开始定义P10是什么东西的。单片机是不知道P10 是什么的。
如果是一个八位端口的话,这样定义是没有错的。但是控制的就是8个IO口了。

热心网友 时间:2022-06-17 00:18

因为P1^0是P1的第零位,只能赋值0或者1;而P1是一个8位寄存器
正确程序如下:
#include <reg51.h>
sbit led=P1^0; //P1^0这个端口接led
void delay(unsigned int i);
main()
{
while(1)
{
led=0;
delay(600);
led=1;
delay(600);
}
}
void delay(unsigned int ms)
{
unsigned int x,y;
for(x=ms;x>0;x--)
for(y=100;y>0;y--);
}

热心网友 时间:2022-06-17 00:19

void delay(unsigned int i); //声明延时函数

main()
{

P1 = 0x00; //置P0口为低电平

delay(600); // 延时

P1 = 0x01; //置P0口为高电平

delay(600); // 延时

热心网友 时间:2022-06-17 00:20

你先定义 sbit P10 = P1^0; 要想把P10设为0,就直接写 P10 = 0;设为1,就写P10 = 1;0x00和0xff是8位数据不能给一个位的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com