51单片机如何跳出wile循环_「单片机自学」2.如何用单片机点亮一个LED

发光二极管

发光二极管简称为LED。由镓、砷、磷的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。

发光二极管与普通二极管一样也具有单向导电性。当给发光二极管加上大于其导通电压的正向电压后,就会有电流产生,同时发出相应颜色的光,不同颜色的二极管的工作也是不一样的,一般发光二极管的工作电压是2V,其工作电流大多为5—20mA,因此如果用5V的电源进行供电则需要加入限流电阻,其阻值由下式计算:

R=U-Ue/I

利用单片机控制LED的工作原理

78d041f0bb739926a19e48961f2dac77.png

图3.1.1 LED工作原理图

单片机的I/O口有两种状态“1”和“0”,当为“1”时其管脚输出为高电平,即为5V,当为“0”时为低电平,即为0V。

由上图可以,当P0.0为高时发光二级管两端电压相同,即不会产生电流,发光二极管就不会发光,当P0.0为低时,5V和P0.0就会有5V的电压,就会有电流流过LED0,使发光二极管发光。这样我们通过控制单片机的I/O口的高低电平就能实现对LED 的亮灭控制。

3.1.1使LED间隔亮灭

7fb3cbcea74d0e1c8c97caa2232e3323.png

图3.1.2 实物连接图

dfc13e4f8189c19c93e9e2f7212ed683.png

图3.1.3 LED间隔亮灭程序

单片机IO口模块接口杜邦线数量功能P0.0         LED1         1         控制LED1P0.1         LED2         1         控制LED2P0.2         LED3         1         控制LED3P0.3         LED4         1         控制LED4P0.4         LED5         1         控制LED5P0.5         LED6         1         控制LED6P0.6         LED7         1         控制LED7P0.7         LED8         1         控制LED8

表3.1.1 LED间隔亮灭接线方式

实验现象:LED间隔亮灭,第一个LED不亮,第二个亮,第三个不亮……

0f6443fa0933026c056ec3bf00403c22.png

图3.1.4 LED间隔亮灭运行图

程序讲解:

1、#include在reg52.h中有为单片机中特殊寄存器定义的宏,例如P0对应的寄存器为0X90,直接用P0就代替了枯燥的数字,减轻程序员的记忆内容。

2、main()函数。C 程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程 序运行的入口。其余函数分为有参或无参两种,均由 main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。 一个程序有且只有一个 main 函数。

3、while()。计算机的一种基本循环模式。 当括号内表达式的值为“1”进入循环,不满足则跳出。因为本程序只是使一个I/O口拉低,因此在循环里不需要任何内容。

3.1.2 一个LED闪烁

a57468b65fd89a7dc0d24caea340d03d.png

图3.1.4 LED闪烁流程图

延时原理:单片机每执行一条指令都需要一定的时间(t),如果某条指令执行N次那么所耗费的时间将会是T=N*t;我们可以通过改变N的大小来改变延时的时间长短。

ead1e073ddf8ebad604eb9bc859cdbef.png

图3.1.5 实物连线图

杜邦线连接——单片机IO和模块接口

单片机IO口模块接口杜邦线数量功能P0.0LED11LED闪亮

表3.1.2 LED闪烁接线方式

18dfa693c7fb2718df552ed2a74cf9b4.png
74b7c99537e97e9e1d79f4483c36a4fd.png

图3.1.6 LED闪烁程序

程序讲解:

sbit 这个关键字是C51中特有的,用于定义 SFR(特殊功能寄存器)的位变量。 sbit LED=P0^0; 表示定义发光管连接的硬件端口, LED 定义在P1 (特殊功能寄存器的第0位,即P1.0,定义了这个端口以后,下面对P1.0的操作,我们就可以直接用 LED 代替,

LED=1; //将P1.0 口赋值 1,对外输出高电平

LED=0; //将P1.0 口赋值 0,对外输出低电平

由于sbit定义位变量,所以赋值结果只有 0和 1。

实验现象:开发板上的第一个LED闪亮

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值