如何用简单的电路来点亮led灯(教你点亮第一个LED灯)
大家好,上期和大家介绍了点亮一个LED灯来顺便说明了一下Keil编程软件和仿真软件Proteus的使用,今天给大家解释一下其中的一些小知识点,欢迎大家评论转发点赞关注!
下面是上一期的程序界面,在输入下面的程序时, Keil会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。若新建立的文件没有事先保存的话, Keil是不会自动识别关键字的,也不会有不同颜色出现。
知识点1: reg52.h头文件的作用在代码中引用头文件,其实际意义就是将这个头文件中的全部内容放到引用头文件的位置处,免去我们每次编写同类程序都要将头文件中的语句重复编写。在代码中加入头文件有两种书写方法,分别为#include <reg52.h>和#include"reg52.h", 包含头文件时都不需要在后面加分号。两种写法区别如下:当使用包含头文件时,编译器先进入到软件安装文件夹处开始搜索这个头文件,也就是KeiNC51INC这个文件夹下,如果这个文件夹下没有引用的头文件,编译器将会报错.当使用双撇号"“包含头文件时,编译器先进入到当前工程所在文件夹处开始搜索该头文件,如果当前工程所在文件夹下没有该头文件,编译器将继续回到软件安装文件夹处搜索这个头文件,若找不到该头文件,编译器将报错。reg52.h在软件安装文件夹处存在,所以我们一般写成#include <reg52.h>打开该头文件查看其内容,将鼠标移动到reg52.h上,单击右键,选择【Open document <reg52.h>】,即可打开该头文件,以后若需打开工程中的其他头文件,也可以采用这种方式。
从上面代码中可以看到,该头文件中定义了52系列单片机内部所有的功能寄存器,用到!了前面讲到的sfr和sbit这两个关键字, "sfr P0=0x80;"语句的意义是,把单片机内部地址0x80处的这个寄存器重新起名叫P0,以后我们在程序中可直接操作P0,就相当于直接对单片机内部的0x80地址处的寄存器进行操作。说通俗点,也就是说,通过sfr这个关键字,让Keil编译器在单片机与人之间搭建一条可以进行沟通的桥梁,我们操作的是P0口,而单片机本身并!不知道什么是P0口,但是它知道它的内部地址0x80是什么东西。说到这里我想大家应该已经明白了,以后凡是编写51内核单片机程序时,我们在源代码的第一行就可直接包含该头文件。
知识点2:C语言中注释的写法,在C语言中,注释有两种写法:(1) //.....个斜科扛后面跟着的为注释语句。这种写法只能注释一行,当换行时,又必须在新行上重新写两个斜扛。(2) /* ../,斜扛与星号结合使用,这种写法可以注释任意行,即斜扛星号与星号斜扛之间的所有文字都作为注释。所有注释都不参与程序编译,编译器在编译过程会自动删去注释,注释的目的是为了我们读程序方便,一般在编写较大的程序时,分段加入注释,这样当我们回过头来再次读程序时,因为有了注释,其代码的意义便一目了然了。若无注释,我们不得不特别费力地将程序重新阅读一遍方可知道代码含义。养成良好的书写代码格式的习惯,经常为自己编写的代码加入注释,以后定能方便许多。 程序中接着往下看, "sbit LED=P1^0,"语句的含义是,将单片机PO口的最低位定义为led1。在实验电路上发光二极管的阴极连接至单片机的P1.0口,若要控制发光二极管,也就是要控制单片机P1.0口,必定要声明这一位,否则单片机肯定不知道我们要操作的是什么东东。需要注意的是,这里的P1不可随意写, P是大写,若写成p,编译程序时将报错,因为编译器并不认识pl,而它只认识PI,这是因为我们在头文件中定义的是"sfr Pl- 0x90;",这也是大多初学者编写第一个程序爱出的错误。 知识点3:主函数的写法 main()函数。格式: void main()注意:后面没有分号。特点:无返回值,无参数,无返回值表示该函数执行完后不返回任何值,上面main前面的void表示“空”,即不返回值的意思,后面我们会讲到有返回值的函数,到时大家一对比便会更加明白无参数表示该函数不带任何参数,即main后面的括号中没有任何参数,我们只写"()"就可以了,也可以在括号里写上void,表示“空”的意思,如void main(void).任何一个单片机C程序有且仅有一个main函数,它是整个程序开始执行的入口。大家注意看,在写完main()之后,在下面有两个花括号,这是C语言中函数写法的基本要求之一,即在一个函数中,所有的代码都写在这个函数的两个大括号内,每条语句结束后都要加上分号。
程序中接下来我们看LED=0语句,也就是该程序中最核心的语句。在数字电路中,电平只有两种状态:高电平, 1;低电平, 0。显然,该语句的意思是,让P1口的最低位清0。由于没有操作其他口,所以其余口均保持原来状态不变。那么为什么P1口的最低位清0,板上的第一个发光二极管就会亮,结合上面的电路图我们知道P1.0如果是低电平,LED灯就会亮,这句语句就能完成这个操作。
今天的分享就到这里了,下期给大家分享任意点亮8个LED灯,做到流水灯的状态,欢迎大家评论点赞关注。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com