单片机小白学步(13) 点亮第一个LED——好的开始,成功的一半

发布者:Yuexiang最新更新时间:2016-05-23 来源: eefocus关键字:单片机  小白学步  LED 手机看文章 扫描二维码
随时随地手机看文章
前面介绍了很多概念知识,做了很多准备工作,从这一节开始,我们正式开始单片机的学习。我们将使用单片机完成一项非常简单的工作:点亮一个发光二极管(即LED:Light-Emitting Diode)。

LED简介

先简单介绍一下LED。LED是一种半导体器件,大家其实对LED并不陌生,各种电器的指示灯、手机键盘灯、LED液晶屏的背光、高亮LED手电筒等,都是通过LED发光的。LED有两种主要用途,一种是作为指示灯;另一种是照明。照明用的LED一般都是大功率LED,需要较大的电压电流才能正常工作。而这里我们要用到的则是用作指示灯的小功率LED。常见的小功率LED,在它的正负极加上3V左右的电压,就会发光,正常发光的时候,电流大概是2~5mA。这里要注意,LED有正负极之分,接反了不会发光。另外,电压也不可太高,那样会烧坏LED。关于LED更详细的介绍,大家可以参考电子元器件介绍之类的书籍。

电路设计

前面已经介绍了,单片机的IO口能输出高低电平,点亮LED就是通过IO口输出电平实现的。如果我们把LED的正极接在电源正极,负极接在单片机的一个IO口上。让单片机的IO口输出低电平,也就是接近0V的电压,这时LED两端有电压差,就能发光;如果IO口输出高电平,LED就会熄灭。

由于我们用的51单片机是5V供电,而LED需要3V电压,所以我们需要在LED上串联合适的电阻,否则会烧坏器件。我们可以选用P0~P3共32个IO口中的任何一个,这里选择的是P1.0。电路图如下,电阻取值推荐为330Ω ~ 1kΩ之间。

顺便附上电阻阻值的计算过程:

1、电阻和LED串联,LED点亮时总电压5V,LED上需要3V,所以电阻上电压是5-3=2V。

2、LED的电流为2~5mA,如果算成2mA,电阻上电压为2V,电流为2mA,根据欧姆定律,所以阻值应该为2V/2mA=1kΩ。

 

快照1.png

 

面包板搭建电路

我们在自己的面包板上搭建的电路如下,我把LED连接在P1.0端口上(万用板焊接的电路这里没有提供,大家可以自己去搭建):

 

8d96c9da-6fa7-4e55-9e9d-0b71202a61d5_2.jpg

 

开发板的使用

如果你是用的是开发板并且上面有LED模块,你可以查看电路图。例如我的开发板电路图:

 

 

图中VCC通过J1接到RP1上,RP1是排阻,图中的1号脚是公共脚,在排阻的内部从1号脚往2~9号每个管脚之间有一个1k电阻,总共8个1k电阻排列起来,所以叫做排阻。J1相当于一个开关,其实是两个排针构成的插座。如果插上跳线帽,就可以导通;拔下跳线帽,就断开了。这样设计的好处是,如果我要用LED模块就插上跳线帽;而如果我不用LED模块,而讲IO口用于其他目的,这时LED就不会对我的电路产生干扰,因为LED一端接IO口,另一端接到排阻上,而排阻另一端是悬空的,没有接入电路。

而图中的标号DB1~DB8又接在单片机最小系统电路中的P1.0~P1.7的IO口,所以在J1导通的情况下,P1.0~P1.7的高低电平就能控制D1~D8这八个LED的亮灭了。

具体操作

单片机的编程,我们通常使用Keil软件。Keil软件可以从网上下载,安装过程这里不做详细介绍,有基本计算机操作知识,安装起来应该没有问题。值得注意的一点是,安装的时候尽量安装到英文目录下,最好不要用中文,以免程序运行出现问题。

我们打开Keil软件,准备给单片机写程序。大家可以按照下面的步骤进行(这里以Keil uv4英文版为例进行说明。如果你使用的是Keil其他版本,操作方式基本相同)。

一、新建并配置工程

1、首先新建工程:点击菜单中的Project – New uVision Project。

 

 

2、然后我们在电脑上为我们的工程新建一个文件夹,这里我用的是Project01 – LED,大家可以自行命名,但最好是英文名。

 

 

3、打开文件夹,输入工程的名称,点击保存。这里我输入的是LED。

 

 

4、然后弹出一个窗口,让我们选择单片机的型号。我们用到的是STC89C52RC,而这里面可能没有STC单片机,我们只需要选择完全兼容STC的Atmel系列AT89C52单片机,点击OK确认即可。

 

 

5、随后会弹出一个窗口,提示我们是否需要添加8051的启动代码到工程中,点击否即可(如果我们需要使用自定义的启动代码,则可以点是,然后修改启动代码。而我们编程用的是C语言,一般情况下不需要修改启动代码。至于启动代码有什么用处,则可以等到我们对单片机了解的比较深入的时候再查找相关资料进行学习)。

 

 

6、下面我们对工程进行简单的设置。右击Target 1,选择第一项Options for Target ‘Target1’…,弹出工程属性设置窗口。

 

 

7、我们打开Output标签,并勾选Create HEX File,然后点击OK确认即可。

 

 

二、新建源文件并添加至工程中

1、工程新建并配置完成了,下面我们开始新建程序源文件。点击菜单中的File-New,出现一个新的文件,如图。

 

 

2、然后我们点击保存按钮,将其保存到工程文件夹Project01 – LED中,保存为扩展名是“.c”的文件,如main.c。这里大家要注意的是,源文件其实只是一个普通的文本文件,不过扩展名是c而不是txt。我们刚刚新建main.c文件的操作,也可以通过在资源管理器中新建文本文档,然后重命名为main.c的方式进行。

 

 

3、源文件新建好了。源文件只是一个独立的文本文件,而工程文件现在和刚刚新建的源文件还是完全独立、没有关联的。我们要把刚刚新建的main.c文件添加到我们的工程中来:右击Target 1/Source Group 1,并选择菜单中的Add Files to Group ‘Source Group 1’…来添加文件。

 

 

4、双击需要添加的文件main.c,或者选中它再点击Add按钮,从左边的Project窗口就可以看到,文件就已经被添加到工程中了。这时弹出的窗口并没有关闭,因为这样可以方便继续添加其他文件。因为我们现在只需添加一个文件并且添加好了,所以点击Close关闭弹出的窗口。

 

 

三、编写程序并编译

1、我们打开main.c,开始正式编写程序了。我们编写的程序如下并保存。至于这个程序是什么含义,之后将详细介绍。注意一点,我给出的程序中设置的LED是P1.0,如果你的开发板或者自己搭建的电路中LED的IO口不是P1.0,你需要照着我给出的格式修改sbit那一行。这一点也充分体现了,单片机编程是和实际硬件电路息息相关的,程序和电路要配套,才能正常运行。

#include

sbit LED = P1^0;

void main()

{

    LED = 0;

    while(1);

}

 

 

2、点击左上方的双箭头按钮编译全部文件,我们看到下方的输出窗口显示编译完成,“creating hex file from ‘LED’”表明已经编译时创建了HEX文件(HEX文件是十六进制文件,将烧写进单片机。相当于Windows中的可执行文件“.exe”),“0 Error(s), 0 Warning(s).”表示编译成功,程序也没有语法错误。如果提示你的程序有错,请细心的检查一下,有没有发生漏掉分号等情况。

 

 

四、烧写程序到单片机中

在工程文件夹下,我们可以看到生成的LED.hex文件,这正是我们所需要的。下面我们将把LED.hex文件烧写进单片机。前面已经介绍了单片机程序下载相关知识,这里我们将介绍下载程序的一般步骤。由于大家使用的电脑、开发板等都不完全一样,有可能会下载失败。希望下载没有成功的读者不要灰心,关于下载失败如何处理,请继续看后面内容。下载程序的操作步骤如下:

1、设置单片机型号,这里我们设置单片机为STC89C52RC。

 

 

2、设置串口端口号,波特率等参数。由于我们一般用的是USB转串口芯片,不是真正的RS232串口,所以串口号不固定,每次插上转接板或单片机学习板时,我们应打开设备管理器如图(XP系统:右击“我的电脑”→“属性”→“硬件”→“设备管理器”;Win7系统:右击“计算机”→“管理”→“设备管理器”)。找到端口(COM和LPT)选项,展开,里面会有一个类似“Prolific USB-to-Serial Comm Port(COM1)”或者“USB-SERIAL CH431(COM1)”的项。括号里面的COMx就是我们要找的端口号。填到STC-ISP中就可以了(如果有多项不知道是哪一个,可以插拔单片机学习板看哪项会刷新)。如果很不幸,你的串口号很大,超出STC-ISP可设置的范围了,可以右击设备管理器中显示的那一项更改COM端口序号。波特率等选项一般按默认即可,不需设置。

 

 

3、点击“打开程序文件”,选择要烧写的单片机程序HEX或BIN文件。HEX或BIN文件是编译之后的机器码,打开后可以在STC-ISP右侧程序文件中看到对应的十六进制数字。你可以选择自己写的程序产生的机器码,也可以在STC-ISP的test-hex目录中找一些测试程序。这里我们选择刚刚编译生成的HEX文件。

4、先点击“下载”,然后再打开电源开关,给单片机上电。稍后STC-ISP就会显示正在烧写程序。如果点击“下载”前忘了先关电源,或者程序没能下载,不需要点击“停止”按钮,直接断电再上电尝试即可。一般几秒钟就能下载完成,STC-ISP中会显示下载成功。

五、观察程序执行结果,有必要的时调试程序。

一般程序下载完成后,如果P1.0口接有LED,电路连接无误,LED就会奇迹般的亮起来。我们就成功的让单片机执行了我们自己写的程序。每个初学单片机的人在看到这一幕的时候,往往都会激动万分,正如我第一次学习单片机一样开心。由于这里的程序非常简单,基本不需要调试。这时你就可以向好友炫耀一下,展示你的劳动成果了。

=======================================================

关键字:单片机  小白学步  LED 引用地址:单片机小白学步(13) 点亮第一个LED——好的开始,成功的一半

上一篇:单片机小白学步(12) Proteus仿真软件简介
下一篇:单片机小白学步(14) 点亮第一个LED的程序分析

推荐阅读最新更新时间:2024-03-16 14:54

STCl2C5A60S2单片机的SD卡读写
O 引言 SD卡是一种微型、低功耗、可移动的Flash多功能存储卡,该卡向上兼容MMC卡,并增加了智能保护机制,以有效地防止盗版,同时具有更快的传输速率及更高的存储容量,可广泛用于便携式消费类电子产品中。本文首先介绍了STC12C5A60S2单片机在SPI协议下与SD卡的硬件接口电路,然后简要阐述了SPI总线模式以及软件模拟的SPI总线数据通讯,最后给出了实现SD卡的初始化和读写操作的软件流程。 1 STC单片机 STCl2C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(IT)的单片机,这是一种高速、低功耗、超强抗干扰的新一代805l单片机,它的指令代码完全兼容传统8051,但速度比8051快8~
[单片机]
STCl2C5A60S2<font color='red'>单片机</font>的SD卡读写
在P87LPC674单片机I2C总线系统中扩展LCD显示器
    摘要: 介绍一种利用Philips公司生产的P87LPC764单片机作为I2C总线控制器与I2C总线显示器件PCF8577C构成的LCD显示器电路,并给出了相应的程序清单。     关键词: P87LPC764单片机 I2C总线 PCF8577C LCD显示器 1 引言 I2C总线是Philips公司推出的芯片间串行传输总线。它仅用串行数据线(SDA)和串行时钟线(SCL)两根连线便实现了完善的全双工同步数据传送,并可很方便地构成多机系统和外围器件扩展系统。 本文介绍在P87LPC764单片机中利用I2C总线系统中典型的LCD驱动控制器件PCF8577C来扩展256段静态LCD的电路设计方法。
[电源管理]
数码显示管显示按键总个数 89c51单片机编程实例
;AT89C51单片机P1口接8个按键(switch),P2口接1个共阴极数码显示管,数码显示管显示按键按下的个数 ;注:连接电路图时,将实例2.1中的八个button按键换成switch按键 org 00h sjmp start org 30h start: mov p2,#3fh mov dptr,#table cc: mov r3,#0 next: mov a,p1 cpl a clr c mov r4,#8 bb: rlc a jnc aa inc r3 aa: djnz r4, bb mov a,r3 movc a,@
[单片机]
LED软灯条硅胶的优势分析
作为 LED 大家族中的重要一员LED软灯条在城市夜间美化、建筑亮化美观及车辆亮化方面应用得越来越多。伴随着LED软灯条的普及越来越多的生产厂家面临着如何选择一款合适的LED软灯条灌封胶的问题。   目前市场上存在着环氧树脂灌封胶、聚氨酯灌封胶和有机硅灌封胶这三种体系的产品。这三种产品具有各自不同的特点。环氧树脂灌封胶一般为AB组份包装产品具有较好的透光率通常而言透光率在85-92%之间;具有比较好的堆高效果固化后的灯条外观光亮弧度圆润;可在-5℃到55℃内使用;但是因为环氧树脂本身的特性Tg点较低在高温时容易出现韧性变差很多时候超过60℃时软灯条胶出现软化导致胶体容易出现断裂;同时在气温低于-5摄氏度时胶体变硬变脆灯条略微摇动
[电源管理]
一文汇总22家LED上市企业半年报业绩预告
2017年,我国LED照明产业在新政策及新机遇的带动下,正步入快速增长阶段。通过对2017年一季报众多LED企业财报数据显示,A股LED概念相关上市公司今年一季度业绩普遍偏好,近九成净利润为正增长,三成以上企业净利润实现了翻倍式增长。 2017年上半年LED企业业绩又将如何?是延续一季度高增长的态势,还是会出现另一种局面?小编通过整理相关LED企业已经发布年中业绩预告,来看最新的发展。 方大集团预计上半年净利润为2亿元至2.5亿元 方大集团(000055)预计2017年1-6月归属于上市公司股东的净利润为:20,000.00万元至25,000.00万元,较上年同期相比变动幅度:276.25%至370.31%。主要原因是
[电源管理]
MCU,DSP,ARM学习方法经验分享
  很多初学者,甚至是混了好几年的老手,都在抱怨,电子这行怎么竞争这么大啊? 颓废,这完全在抹杀自己的激情,没了激情,搞电子,完全就是在浪费生命。其实,竞争真的大吗??对比一下,难道做业务的竞争不大,做管理的竞争不大,现在这个社会,哪个领域,哪个行业,竞争都大,所以,假如你想逃避竞争,那你就不用活了,当然,你本身家庭很好,父辈好有米的话,那另当别论!所以, 不管什么行业,竞争大不大的问题,都不用问了。答案都是:竞争大,但是必须面对,我们要自己面对的竞争越小,那么你的技术能力应该是越牛X。搞电子的人要跟得上时代,但是人的脑袋会随着年龄的增大而迟钝,所以这就造成了电子人才(特别是搞电子软件)的一种生老病死的自然规律。也就是说,一般40
[单片机]
基于单片机的实验室配电箱无线安全监测系统
实验室是教学科研的重要基地,实验室的安全管理是实验工作正常进行的基本保证,实验室是培养学生实践能力和创新能力的重要环节。实验室供电线路的安装必须符合实验教学的需要和安全用电的有关规定。实验室中线路组装在配电箱,因此,对实验室配电箱安全的监测研究,是实验室人员设备安全的保证。 本设计采用单片机控制对实验室配电箱的电流电压温度等信息进行数据采集、调理、分析,通过数码管显示所收集到的数据,用发光二极管显示控制器的状态,传统的实验室监控方式采用模拟信号传输的视频监控,而本文使用无线发射模块发送至上位机。若所采集数据有异常,则系统自动报警。 1 系统硬件设计 MSP430单片机是一款新型高速、超低功耗、抗超强干扰的单片机。内部集
[单片机]
基于<font color='red'>单片机</font>的实验室配电箱无线安全监测系统
三基色亮度计的设计和应用
本文利用新型颜色 传感器 TCS230具有的滤光选择功能,借助 MCU设计出了一种能够同时测量白光中所含的三基色(红、绿、蓝)亮度的便携式亮度计。另外该亮度计还提供 计算机 通信接口以及数据接收软件,实现了对数据的采集和处理,并把处理后的数据数字化的显示到 OLED 屏上。该亮度计具有快速,精确,便捷的特点,可广泛应用于各种需要对光色成分进行分析、测量的行业。 1引言 随着 LED行业的快速发展,竞争的不断加剧,LED品质受到了前所未有的重视,尤其是在大屏幕显示、LED照明光源等对颜色要求较高的场合,品质控制的难度和重要性均显得特别突出。因此,对 LED性能的测试和*估逐渐被提上日程。通常 LED的标准检测仪器是光谱分析仪,
[测试测量]
三基色亮度计的设计和应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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