新建工程教程:
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文件夹中
你可能会出现多次下不进去的程序,不要急,这是正常情况,要有耐心就好了
下面是效果:
不懂私信
下一期:延时函数