-yjx-

近来有俩朋友想入坑,介于他们条件不够,我再次做个笔记,以免他们忘记可以再看,是在最基础的stc52单片机开发板上写的程序。

这是一篇完全0基础的点灯笔记 = =!

 首先,内容分为以下几个部分:

  1. 编辑程序的软件
  2. C语言
  3. 硬件电路
  4. 代码编写

一、编辑程序的软件

这里当然我不能告诉你就是一个keil4的软件,这样可能会被打。

keil软件安装就不讲了,很多教程,网页一搜按照步骤操作即可。

以下分为两个部分,一个是工程创建,一个是软件介绍。

工程创建

找到keil4顶部的菜单栏,中的,这个英文的意思是工程

点击之后会有很多选项,我们选,这个英文意思是创建一个新的工程

点击之后会弹出一个选项框,然你选择你工程的路径,然后在文件名的空白处写上工程名字,点击保存即可

之后就是选择芯片了,在Device的选项中选择,然后按照自己开发板上的芯片选择即可

点击OK之后会弹出一个是否添加一个启动文件到工程,点击是,工程创建成功

软件介绍

 软件介绍不想重新造轮子,其他人有写的很详细的介绍

https://blog.csdn.net/zhengyanan815/article/details/70670007

二、C语言

 先要写软件肯定需要有C语言基础,介于小白肯定没有学过,所以这里只讲点灯需要的基础

我个人认为,新手学单片机,可以先不用讲太多太过复杂的东西,会打击自信心,基础肯定是需要的,但是可以一点点来

首先讲一下函数

void main(void)
{

}
主函数,每个 C 程序都至少有一个函数,即主函数 main()
函数由四个部分组成
返回值 函数名(参数)
{
  函数体
}
这既是一个函数
在之后是将while关键字怎么使用

这是流程图,简单来说,就是条件成立,执行循环体,条件不成立,退出循环

while(条件)
{
  循环体;  
}

写程序的固定模板

#include "reg52.h" //包含51单片机所需要的定义文件

void main(void)//主函数
{

    while(1) //死循环
    {
      ;
    }
}

程序从main函数开始执行,还有一点点到写程序部分讲解。

三、硬件电路

           

 

这是我们所需要的LED电路,第二个图是单片机的电路,其中红色标号的字相同的为两边电路连接在一起

首先讲讲这个点灯电路

这里我简化了(VCC为5V)

这里是怎么通过单片机控制D0这个灯亮灭的呢?首先我们讲一点点数字电路

数字电路只有0和1,0代表低电平,1代表高电平;0<低电平<(1/3VCC) ;(2/3VCC)<高电平<VCC;酱紫 = =(感觉有点心累)

 限流电阻1K,为什么叫限流电阻,因为LED的电流不可能无限制的大,过大会烧毁,所以需要通过电阻限制电流,感觉好啰嗦(喷血)

我们算一算流过LED的电流,因为电路为串联,通过电阻的电流等于流过LED的电流,所以我们只要算电阻电流就行了

VCC = 5V   电流 = 电压/电阻   I = 5V/1K = 0.005A=5mA;

当单片机输出1的时候是等于VCC的,当单片机输出0的时候是等于地的(通俗理解)

电流的产生必须有电位差(可以通过水流yy一下)

当单片机端为VCC时,两端没有电位差,所以D0灯不会亮

当单片机端为GND时,两端就产生了电位差,所以D0灯亮起

就是这么简单 = =,感觉讲的好细,一堆文字,也不知道有没有人耐心看

这里理解了硬件电路,就可以开始最后部分,写程序了,想想也没啥好激动的

三、代码编写

工程新建完成了,接下来需要写代码就要一个.c文件了,怎么新建呢?上面某个链接应该有讲

-》-》写上文件名(自己取一个),后面记得加上.c

右键点击目录,添加你刚刚创建的.c文件,英文解释为:添加已存在的文件到组织\'Source Group 1\'...

添加之后里面是空白的,你就复制我上面写的模板往里面一丢,就可以开始点灯了。

这里要先说一下sbit关键字

定义特殊功能寄存器的位变量。
典型应用是:sbit P0_0=P0^0;//即定义P0_0为P0口的第1位,以便进行位操作。

你想控制你想要得灯,就必须对照你的电路,我们看一下

你想控制D1这个灯,他的标号是连接的,我们再看看单片机的IO是是P20,我们就需要操作P2口的第0位

定义呢?

sbit D1 = P2^0;

ok,定义好了,D1就代表着单片机的P2.0口

当我们D1 = 0;时,单片机的P2.0口就输出低电平即GND;

当我们D1 = 1;时,单片机的P2.0口就输出高电平即VCC;

这样就能控制D1灯的量灭了,其他等也可以触类旁通;

我粘贴一下完整代码:

#include "reg52.h"

sbit D1 = P2^0;

void main(void)
{
    D1 = 0;//灯亮
//    D1 = 1;//灯灭
    while(1)
    {
    
    }
}

好了,喜欢的朋友点波关注 = =,后续如果朋友没有放弃的话,会陆续更新

 转载请注明出处

分类:

技术点:

相关文章:

  • 2021-12-29
  • 2021-12-15
  • 2021-11-07
  • 2021-11-11
  • 2021-12-15
猜你喜欢
  • 2021-11-30
  • 2021-11-19
  • 2021-10-28
  • 2021-12-15
  • 2021-12-05
相关资源
相似解决方案