点亮一个发光二极管LED--51的第一个程序

发布者:火星最新更新时间:2022-05-18 来源: eefocus关键字:光二极管  LED 手机看文章 扫描二维码
随时随地手机看文章

一、发光二极管LED的参数


要点亮LED,首先要清楚LED的参数,这样才能将它点亮。LED的压降一般为1.5~2.0 V,其工作电流一般取10~20 mA为宜。换句话说,只要我们给LED加上1.5~2.0V的正向电压,10~20mA的电流,那么就可以使LED正常发光了。


二、单片机与LED电路图如下所示:

由于51单片机的驱动能力有限,所以外接74HC245总线驱动器,加强驱动能力。当OE接地,AB/BA接Vcc时,数据流向为A到B,即当P2.0输出“1”时,B0也为“1”,这时,LED的压降为0,故LED不亮;当P2.0输出“0”时,B0也为“0”,这时,LED的压降不为为0,但为多少呢?这个取决与R1,为了LED正常发光,及给LED加上1.5~2.0V的正向电压,10~20mA的电流,则此时R1两端电压为3.2V左右,电流为20mA(Vcc=5V,LED额定电压为1.8V,电流为20mA)。R1=3.2/0.02=160欧姆。此时硬件电路已经接好。


三、程序设计


由上面的分析可知,只要使P2.0输出为“0”,即可点亮LED


1、汇编语言设计


ORG    0000H   ;程序开始


MOV    P2,,#0FEH   ;使P2.0输出“0”


END


2、C51语言设计


#include   //此文件包含了,51特殊功能寄存器的定义,必须包含进来


Void main()


{


   P2=0xfe;  //使P2.0输出“0”


}


点亮LED后,那么流水灯就简单得多了。


流水灯的汇编语言程序设计:


ORG    0000H


AJMP   MAIN


ORG    0030H


MAIN:


MOV     A,#0FEH    


LOOP:  


MOV     P2,A       ;点亮第一个LED


RL      A           ;A向左移移一位,第一次执行是A变为FD


LCALL  DELAY      ;调用延时子程序


AJMP    LOOP       ;跳到LOOP处,此时A=FDH,赋给P2点亮第二个LED,依次类推


 


DELAY:              ;延时子程序


MOV     R7,#250


L1:          MOV   R6,#250


L2:      DJNZ  R6,L2


DJNZ     R7,L1


RET


END


 


流水灯的C51语言程序设计:


#include


 


void Delay(int n)                  //延时1ms子程序


{


   int x,y;


   for(x=0;x<110;x++)


      for(y=0;y

}


void main ()


{


   int i,temp=0xfe;


   while(1)


   {


          for(i=0;i<8;i++)         //去


          {


                P2=~(1<

                Delay(50);


          }


          for(i=7;i>0;i--)     //回


          {


             P2=~(1<

                Delay(50);


          }


   }


}


关键字:光二极管  LED 引用地址:点亮一个发光二极管LED--51的第一个程序

上一篇:MCS-51 单片机的结构和工作原理
下一篇:SPI串行总线协议

推荐阅读最新更新时间:2024-11-17 09:26

威胁不止有51%攻击,区块链为何频遭黑客入侵?
时至今日,加密货币与智能合约平台当中开始出现越来越多安全漏洞,而其中部分漏洞甚至源自这些平台的构建基础。 就在上月月初,Coinbase公司的安全团队注意到以太坊经典(Ethereum Classic)当中出现了一些异常迹象。顺带一提,Coinbase所提供的高人气加密货币交易平台正是以以太坊经典为基础。事实上,所谓异常并不足以说明问题的严重性——整个区块链,包括其中的全部交易历史,尽皆遭到入侵。 攻击者以某种方式控制了超过半数的区块链网络算力,并借此对交易历史进行了重写。这意味着其完全有能力多次使用相同的加密货币——也就是所谓“重复花费”。截至攻击者被发现之时,其滥用的资金总额高达110万美元。不过Coinbase方面宣称,
[安防电子]
威胁不止有<font color='red'>51</font>%攻击,区块链为何频遭黑客入侵?
关于51单片机字符串 EEPROM存储与读取的问题
题目如下 通过串口助手控制 LCD 显示屏,通过 LCD1602 显示并保存在 EEPROM 中,实现 数据的掉电保存(例 如:串口向单片机发送一串英文字符,该字符在 LCD 上显示出 来,若按下 k1 则实现数据的保存,按下 k2 实 现读取上次保存的数据,显示在 1602 上) 效果如下 #include reg52.h //此文件中定义了单片机的一些特殊功能寄存器 #include i2c.h #include string.h typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit LSA=P2^2; sbi
[单片机]
关于<font color='red'>51</font>单片机字符串 EEPROM存储与读取的问题
51单片机PID算法程序(三)增量式PID控制算法
当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID的 增量算法 。 增量式PID控制算法可以通过(2-4)式推导出。由(2-4)可以得到控制器的第k-1个采样时刻的输出值为: (2-5) 将(2-4)与(2-5)相减并整理,就可以得到增量式PID控制算法公式为: (2-6) 其中 由(2-6)可以看出,如果计算机控制系统采用恒定的采样周期T,一旦确定A、B、C,只要使用前后三次测量的偏差值,就可以由(2-6)求出控制量。 增量式PID控制算法与位置式PID算法(2-4)相比,计算量小得多,因此在实际中得到广泛的应用。
[单片机]
<font color='red'>51</font>单片机PID算法程序(三)增量式PID控制算法
基于51单片机设计的TFT液晶显示
   0 引言   51单片机作为一种常见的通用单片机, 虽然其内部资源, 处理速度等都无法与新型高速单片机相提并论, 但其低廉的价格, 极低的入门难度以及适用于简单场合应用等特点, 依然是开发者的常用选择之一。   用51单片机驱动液晶模块通常都使用1602和12864等极为简单的液晶模块, 这里介绍用51单片机驱动QVGA分辨率的TFT液晶模块, 以实现彩色和更为复杂的内容显示的方法。同时, 本文还将使用DS1302芯片和DS18B20芯片来实现在液晶屏上显示实时时钟和温度。    1 硬件设计   本系统硬件电路的设计主要包括单片机最小系统电路, TFT液晶显示电路, 时钟电路, 设置电路以及温度采集电路。其系统工作
[单片机]
基于<font color='red'>51</font>单片机设计的TFT液晶显示
单片机C语言教程:附录2 AT89C51特殊功能寄存器列表
附录二 AT89C51特殊功能寄存器列表(适用于同一架构的芯片) 带*号的特殊功能寄存器都是可以位寻址的寄存器
[单片机]
单片机C语言教程:附录2 AT89C<font color='red'>51</font>特殊功能寄存器列表
日本发明LED紫外杀菌灯 耗能小安全性更高
      日本产业技术综合研究所2月8日公布了该研究所的一项发明,他们用发光二极管(LED)制作出具有杀菌效果的紫外线灯。这种LED紫外线灯与目前使用的水银杀菌灯相比,具有消耗电能少、安全性高、体积小的优点。   由于H1N1甲型流感等世界性流行性疾病的横行,社会和生活中杀菌设备市场越来越大。目前使用的杀菌的方法是高温杀菌、化学药物杀菌、紫外线杀菌。在这些杀菌方法中,水银灯紫外线杀菌是重要的杀菌手段。紫外线杀菌不但对耐热性菌有效,而且没有化学药品杀菌的副作用,可以直接作用于细菌的DNA抑制其增殖。特别是DNA吸收波长为260纳米左右的光线,杀菌效果明显。目前大多应用的杀菌方法是发出256纳米波长紫外线的低压水银灯。但是如果水
[医疗电子]
大联大推出基于TI产品的汽车日间行车灯LED驱动器参考设计
大联大控股宣布,其旗下世平推出基于TI产品的汽车日间行车灯LED驱动器参考设计。 大联大世平推出的该参考设计是双串LED发光二极管(LED)驱动器,该驱动器采用基于运算放大器(op amp)的电路来平衡电流在两个LED灯串。运算放大器电路检测参考串中的电流,并使用镜像串的反馈来偏置调节串之间电流的MOSFET。 该方案采用升压配置的TPS92692-Q1多拓扑LED驱动器来驱动LED。TPS92692-Q1具有用于电磁干扰(EMI)性能的扩频频率调制,模拟电流调节和内部脉宽调制(PWM)调光。这种设计包括使用LMT87-Q1的可调线性热折返模拟温度传感器以及电流限制,以防止镜像串无法打开电路。该设计还具有两种亮度模式:一种
[半导体设计/制造]
89C51 单片机I/O 口模拟串行通信实现方法
目前普遍采用的MCS51 和PIC 系列单片机通常只有一个(或没有)UART 异步串行通信接口,在应用系统中若需要多个串行接口(例如在多机通信系 统中,主机既要和从机通信又要和终端通信)的情况下,通常的方法是扩展 一片8251 或 8250 通用同步/异步接收发送芯片(USART),需额外占用单 片机I/O 资源。本文介绍一种用单片机普通I/O 口实现串行通信的方法,可 在单片机的最小应用系统中实现与两个以上串行接口设备的多机通信。 1.串行接口的基本通信方式 串行接口的有异步和同步两种基本通信 方式。异步通信采用用异步传送格式,如图1 所示。数据发送和接收均将起 始位和停止位作为开始和结束的标志。在异步通信中,起始位占用一位
[单片机]
89C<font color='red'>51</font> 单片机I/O 口模拟串行通信实现方法
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved