单片机交流
直播中

李敏

8年用户 1426经验值
私信 关注
[问答]

如何利用C51单片机点亮小灯?

如何利用C51单片机点亮小灯?

回帖(1)

李淑嘉

2021-10-21 16:20:23
  


  • 51单片机初体验

  一、安装软件

这里选择的是:



  • Keil uvision5 C51版:

链接:https://pan.baidu.com/s/1LI7ucKVBFwpx2VMOoHFmMg
提取码:d8u6
安装步骤里有个激活步骤,我没有关防火墙,没有成功,但是不影响使用。



  • Proteus 8.6 SP2 Professional:

链接:https://pan.baidu.com/s/1RbKt1XuDLZITgbVDcsmwWQ
提取码:ynt7
二、keli的使用

1、创建一个项目

打开Keil软件,点击工具栏上面的project,选择new μVision Project…















2、新建文件,记得保存,用于编写代码






可以用快捷键Ctrl+S进行保存





注意这里文件的后缀名.c用于编写C的程序
3、配置、添加文档
















到此,完成了环境配置,可以进行编程了!
三、proteus的使用

1、创建项目

打开proteus软件,点击左上角的File,再点击New Project,即出现这个页面




















也可以不选80C51,根据自己的需要来





完成项目创建!
2、搭建虚拟电路






四、编写程序,运行程序

1、代码编写

#include ***it led = P1^0;  //这里就是给端口p1^0,赋一个名字void main(){        while(1){     //while的死循环,会一直执行while里的内容                led = 0;  //给端口p1^0赋一个低电平,从而使小灯形成回路,1代表高电平,0代表低电平        }}
























这样就完成了代码的编写!
2、程序运行











点击左下角的运行按钮即可完成运行





如果在代码运行成功成功的前提下,运行失败了,可以参考一下这里:解决方案传送门
3、运行结果






由图可见,当我点击运行按钮,小灯亮了,但我点击结束按钮,小灯熄灭
(害,蓝色的光,不太容易观察)
五、进阶一点:流水灯

1、虚拟电路






2、代码


#include
#define uint unsigned int
#define uchar unsigned char
       
uchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//每一个对应一个小灯
uchar p;
int x;


void main()
{
        x=50000;  //预准备一个变量,用于延时作用,否则小灯变化太快了
        while(1)
                {
                  for(p=0;p<8;p++)  //循环,使小灯轮流亮
                  {
                          P1=table[p];
                                while(x--);
                  }
                }
}
3、运行结果



举报

更多回帖

发帖
×
20
完善资料,
赚取积分