近来有俩朋友想入坑,介于他们条件不够,我再次做个笔记,以免他们忘记可以再看,是在最基础的stc52单片机开发板上写的程序。
这是一篇完全0基础的点灯笔记 = =!
首先,内容分为以下几个部分:
- 编辑程序的软件
- C语言
- 硬件电路
- 代码编写
一、编辑程序的软件
这里当然我不能告诉你就是一个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) { } }
好了,喜欢的朋友点波关注 = =,后续如果朋友没有放弃的话,会陆续更新
转载请注明出处