C51入门-点亮你人生中第一个LED

新建工程教程:

https://zhuanlan.zhihu.com/p/1890858430027264184https://zhuanlan.zhihu.com/p/1890858430027264184

电路讲解:

单片机通过I/O口向LED灯发送高低电平信号,控制LED的亮灭。因为单片机供电为5.5V,而LED灯为3.0-3.3V

所以要加电阻将要。最后所有LED的正极连起来之后要通过一个电阻再连接单片机正极,这个电阻称之为上拉电阻

程序讲解:

首先因为大家都是初次接触C语言,所以要从整个框架开始学。首先要了解的就是C语言的头文件。

#include <STC89C52RC.H>           //单片机头文件
#include "intrins.h"             //intrins函数

include顾名思义就是包含的意思

<STC89C52RC.H> 是单片机所用的头文件,里面包含了对单片机引脚的定义以及对单片机内存地址的声明(现在只要知道就可以了

"intrins.h"是单片机所用的函数库,里面有单片机要用的函数。

头文件的作用就相当于一个仓库,编程时可以调取头文件中的内容

下面要知道的就是主程序

void main()  //主程序
{
//语句
}

void 代表是这个函数的数据类型为空,没有返回值,说人话就是在运行完这个程序时是不能返回一个数值的(现在知道就行了)

main是代表主要的意思,这就代表这是整个程序中最重的部分,必定是先执行这个主程序

()就是一个格式,应为刚刚说了void是没有返回值的,并且主函数里面也不能定义一个变量再到主程序里执行,所以里面不用填,里面也可以填void(也就是空),但没必要

下面就要讲到语句的格式

//语句;

c语言中的程序语句所有写到主程序中的到要加英文分号!!!

当你的程序编写好时就要在keil执行编译操作在菜单栏上找到build或者rebuild按钮

把以下空程序(没有任何效果就是一个框架)复制你的keil输入框中

#include <STC89C52RC.H>           //单片机头文件
#include "intrins.h"             //intrins函数

void main()  //主程序
{
//语句
}

然后就会在输出框输出以下内容(code部分每个人都不一样不用管)

Error是错误的意思,程序中是不允许错误的出现的!!!

Warning是警告的意思,程序中是允许警告的出现的!!!

现在回到如何让LED亮这个问题上

sbit LED1 = P2^0;

在c语言中,sbit是未定义的意思,=前为对应脚位你给他取的的名称,=后面是对应单片机的脚位,^在c语言中是.的意思 要写分号!!!

所以这个语句的意思为把P1.2这个脚位定义成LED,LED就代表P1.2这个脚

然后在主程序把P1.2拉低(发送低电平信号),这样一个LED就会亮了

LED1 = 0;

然后就可以把P2.0脚所对应的LED点亮

这个是while语句,括号里填1代表无限执行while括号的语句

while(1)
{
}

注:这个也是写在主程序里的

一下是把8个LED点亮的程序,大家可以试一下(单片机脚位需要根据自己的电路做改动)

#include <STC89C5xRC.H>
#include "intrins.h"

sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit LED4 = P2^3;
sbit LED5 = P2^4;
sbit LED6 = P2^5;
sbit LED7 = P2^6;
sbit LED8 = P2^7;

void main(void)
{
	while(1)
	{
		LED1=0;
		LED2=0;
		LED3=0;
		LED4=0;
		LED5=0;
		LED6=0;
		LED7=0;
		LED8=0;
	}
}

然后编译成功(0Error,0Warning就可以了),就可以把程序下到单片机里了

下程序参考我下面的视频:

https://zhuanlan.zhihu.com/p/1890858430027264184https://zhuanlan.zhihu.com/p/1890858430027264184

注意:你的hex文件会生成在你程序的文件夹-object文件夹

你可能会出现多次下不进去的程序,不要急,这是正常情况,要有耐心就好了

下面是效果:

不懂私信

下一期:延时函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值