发新帖

[STC] 51单片机点亮第一个发光二极管LED

admin 2月前 171

点亮第一个发光二极管是大多数人单片机入门的第一个程序,当你面对一个复杂的电路板无从下手的时候,按照你的想象点亮一个发光二极管都是困难的事,今天的内容就是自己操作单片机的时候点亮发光二极管的经历。&&&

上一篇文章写过,单片机的操作原理主要就是控制引脚的高低电平,而发光二极管就是给它一端一个高电平或者低电平就可以导通,具体高低电平还要看在电路板上另一端接的是地还是Vcc。 

所以我们先分析一下电路原理图中led模块的连接方式,然后再分析一下需要单片机送入的是高电平还是低电平。

看一张图片我们先分析LED模块,LED有一端连在了Vcc上,所以点亮二极管我们只需要在另一端送入低电平即可。在每一个二极管左侧都有不同的标号,八个二极管分别标上了P20~P27的编号,这个编号表示二极管的另一侧与单片机MCU的P2组的I/O口有电气连接。在编程的时候通过单片机送入低电平即可点亮。比如要点亮D5这个二极管,即将P25这个电平拉低即可(最直接的方法)。 

编程时的核心语句:P2^5=0; 

点亮二极管的源程序:

#include<reg52.h>   //头文件
sbit led5=P2^5;   //声明P25这一个I/O口为led5
             //相当于为这个口取名,方便后面操作
void main()
{
    led5=0;    //点亮D5这个二极管
}


为什么有些程序写的P1^5或者P3^5呢? 

这是因为电路板连接不同,在操作每一个模块前都要仔细看原理图,确定自己要操作的接口。仔细看原理图是后面正常操作单片机的必要准备,毕竟要送电也要看清楚送到哪儿去不是? 

sbit 这个语句是位声明,相当于C语言中的define,取名字的指令,方便后面直观方便地操作。

点亮了第一个发光二极管后,还有更多的问题值得思考,比如我要同时点亮三个,四个,五个二极管怎么办?我要一个接一个点亮二极管不想同时让它们发光怎么办? 

解决第一个问题很简单,多做几个位声明,然后全部拉低电平不就行了么?那第二个问题怎么解决呢?下一篇文章将介绍两种不同的方式完成这个功能哦~


最新回复 (0)
返回