微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机环境的搭建-1.1 由点亮一个LED引入

51单片机环境的搭建-1.1 由点亮一个LED引入

时间:11-21 来源:互联网 点击:
第一章 51单片机环境的搭建

1.1 由点亮一个LED引入

单片机来点亮LED,这几乎是每个同学学习单片机的第一个实验。那么谁来点,怎么亮?注意这里面涉及到两个研究对象,单片机和LED。要想知道单片机如何来点,先要知道LED为什么亮。这种由分析被控制对象来研究控制对象的思路在本教程后面会反复用到,这里先提出来亮个相。我们先来看LED为什么会亮,也就是说先来了解LED的工作原理。当有电流通过时(达到一定值比如5mA), LED便会发光。至于进一步的工作原理我们不去追究,有兴趣的可以自己查查,不属于我们讨论的内容。根据这个原理,我们只需要给LED一端(右边)接在5V电源下,LED左边接地,如图1所示,产生电势差,正向导通,那么LED有电流通过,就发光了。


图1 点亮LED,由于电流过高,LED很快熄灭

但是LED会很快熄灭,为什么?LED正向导通时,电阻几乎为0,根据欧姆定律,电流无穷大,LED很快被烧掉。因此我们需要给这个电路加个限流电阻,这个限流电阻应该取多大,这里我们把LED的电阻当作0,电压为5V,电流设定为5mA(具体的数值需要看你购买的LED厂家提供的参数),根据欧姆定律就能算出限流电阻为1K。这样LED就能持续发光了,如图2所示。

?

图2 串联一个电阻,LED正常发光

那么LED怎么熄灭呢?没有电流通过就可以了。如何实现没有电流?LED两边等电势就行了。因此只需要在LED左边提供一个高电平5V,LED就熄灭了,如图3所示

?

图3 两边等电势,LED熄灭

以上我们完成了对LED的分析。前面说了,我们要通过分析被控制对象(LED)来操作控制对象(MCU).下面再来分析,如何操作控制对象。首先要知道MCU是什么?根据定义,MCU是具有一定可编程能力的数字电路集合体。那么什么叫做可编程呢?通俗的讲,就是根据人给单片机的不同指令去执行不同的任务。那这样就好办了,如下图所示,LED左边接在了MCU的P1.0引脚。根据前面的分析,只要跟MCU讲:”把你的P1.0引脚输出低电平“,(假设这里我们的单片机输出高电平是5V,低电平是0V。因为有的单片机高电平为3.3V)。这时候LED就点亮了,如果输出高电平,LED就熄灭了,这样就实现了单片机对LED的控制,如图4所示。

?

图4 单片机实现对LED的控制

你使用人类语言与单片机交流,单片机是听不懂的。因此你对单片机发送的指令无法传送给单片机。单片机只认识0和1.那么我们马上想到用0和1来和单片机对话,这当然可以。其实早期的程序就是直接写0和1的。可以这样做对程序员来说太痛苦了,单片机是认识了,程序员却晕倒了。不信的话,你自己在一张A4的纸上填满0和1,姑且不论什么含义,看着就晕倒了。这样就产生了一个问题,用人类语言,单片机听不懂,用单片机的语言,人类使用不方便。因此就各退一步,来个折中吧。用什么呢,C语言(早期是汇编,我们后面再谈)。把人类语言转成C语言,然后再按照一定的规则把C语言转成机器语言。前者叫开发环境,后者就是我们通常所说的编译。你完全可以理解为翻译。编译出来的结果就是单片机认识的机器指令。那么这个指令如何传送给单片机呢,这个过程就叫程序烧写,或者程序下载,烧写过程中用到的工具就是烧写器。把机器指令输送到单片机,但上电后,单片机就开始执行这个指令,从而到达我们控制器件的目的。

这个例子非常简单,但是给出了单片机开发的基本流程。首先我们要知道工作器件的原理。工作器件是我们最终的目的,比如控制led,用来照明;温度传感器测量温度;液晶显示内容等等。单片机只是达到最终目的的手段或者途径。因此用单片机来控制工作器件,一开始就要理解工作器件是如何工作的。然后在这个基础上,根据工作器件的需要对单片机传递不同的指令(人类语言)。单片机是看不懂人类指令的,因此需要翻译成单片机看得懂的语言。然后把翻译的结构传送给单片机。

前面罗嗦了这么多,主要是为初学者讲解了单片机开发的初步思想以及单片机开发环境的搭建。主要总结如下两点:1. 从被控制对象入手来研究如何操作控制对象。所谓被控制对象其实就是我们想要使用的外围工作器件,他可以是LED,也可以是温度传感器,步进电机等等,是我们的最终目的,比如让LED闪烁,测量温度,控制转速等等。如何了解他们的工作原理,最好的方式就是阅读厂家提供的说明资料。对于控制对象(单片机),这个也很多,51,MSP430,AVR,PIC等等,如何与他们对话,同样的道理,查看芯片手册(也是官方资料)。这里反复强调是因为看到很多初学者一碰到问题就去网上论坛发帖求助,殊不知最好的解决问题的方式是去查看官方资料。2. 了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top