- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
项目2
发光二极管的闪烁
大多数单片机初学者都是从点亮一个发光二极管开始单片机学习之路的。在项目2中我们安排了3个简单的任务,分别是点亮一个发光二极管、发光二极管闪烁和8位流水灯。
通过这三个任务,让初学者初步了解51单片机IO口控制外围器件的原理,激发初学者学习单片机的兴趣。在完成这三个任务之外,教程中穿插讲述了51单片机编程软件KeilC51以及STC烧录软件的使用、C语言入门基础、模拟电路基本元件的特点等入门知识,为今后的学习打下良好的基础。
【内容安排】
2.1点亮一个发光二极管
2.2 发光二极管的闪烁
2.3 8位流水灯
任务2.1 点亮一个发光二极管
2.1.1任务要求
使用单片机的两个I/O口,其中一个I/O口作为输入引脚,接开发板上的高电平(或低电平),另外一个I/O口作为输出引脚,控制开发板上的一个发光二极管亮灭。当输入I/O接高电平时,发光二极管点亮,反之当输入I/O接低电平时,发光二极管熄灭。
2.1.2知识准备
1、发光二极管
LED(light-emitting diode),即发光二极管,有贴片的,也有直插的,如图2.1.1所示,常见的颜色有红、绿、黄、蓝、白等。从发光二极管的字面上我们可以看出它的一些特性:首先它能发出可见光,另外这种器件具有普通二极管的特性,即单向导电性,具有阴极和阳极之分。
图2.1.1 直插发光二极管和贴片发光二极管
开发板上的发光二极管发出的光是红颜色,0805贴片封装。这种二极管的正向导通电压在1.8V到 2.2V之间,工作电流在1mA~20mA 之间。当导通电流大约1mA时,人的眼睛就可以明显地观察到二极管的发光,导通电流越大,亮度越高,超过10mA,亮度变化就不明显了,当电流超过20mA时,发光二极管就会有烧坏的危险。
图2.1.2 发光二极管驱动电路
2、单片机I/O口如何控制发光二极管亮灭
图2.1.3(a)中是一个通过开关控制发光二极管亮灭的电路。开关S1断开,电源上的电流经过限流电阻R1,流向发光二极管,发光二极管被点亮。开关S1闭合,电源上的电流经过限流电阻R1流向地,发光二极管没有电流流过,发光二极管熄灭。
在单片机的I/O内部,实际上也存在这样一个开关。图2.1.3(b)是通过单片机I/O口控制发光二极管亮灭的等效电路图。与图(a)不同的地方在于,开关S1不是通过手动控制的,而是通过单片机的I/O控制的。我们通过程序控制P17引脚连接的开关S1闭合,则P17引脚为低电平,发光二极管熄灭,相反通过程序控制开关打开,则P17引脚呈现高电平,发光二极管被点亮。
(a)开关控制发光二极管 (b)I/O控制发光二极管
图2.1.3 I/O控制发光二极管亮灭的原理解释
另外需要说明的,对于51单片机而言,如果按照图2.1.3(b)中的接法来驱动发光二极管,并不能点亮发光管,本单元的任务3中会详细解释I/O口高电平驱动不了发光二极管的原因。
3、编程语言的选择和C语言的简单介绍
单片机控制发光二极管亮灭是通过编写程序来实现的,那么我们用什么语言来编写程序呢?
单片机编程语言有汇编语言和C语言。相比较来说,汇编语言比较接近单片机的底层,使用汇编语言有助于理解单片机内部结构。简单的程序,用汇编语言,程序效率也可能比较高,但是当程序容量达到几千上万行以后,汇编语言在组织结构、修改维护等方面就会成为你的噩梦了。C语言具有通用性,51单片机用可以用C语言编程,其它单片机(AVR、STM32等)也可以用C语言编程,而汇编则不具备通用性,每一类型的单片机的汇编指令不尽相同,初学者绕不过学习汇编指令的烦扰。另外C语言的可移植性好,用51单片机写的程序只要稍加修改,就可以在别的单片机中使用。所以目前实际开发过程中,大部分工程师都在用 C 语言做单片机开发,只有在很低端的应用中或者是特殊要求的场合,才会用汇编语言开发,所以这里建议大家还是用C语言开发比较好一些。
4、特殊功能寄存器(SFR)
学过C语言的人肯定会有这样一个问题:编写单片机程序用C语言,那么在C语言中怎样来描述单片机的资源呢?
在单片机内部有一个重要的资源叫特殊功能寄存器,简称SFR。SFR是单片机中各功能部件对应的寄存器,用于存放相应功能部件的控制命令、状态或数据。举个例子来讲,SFR可以看成是一栋宿舍楼,里面有很多房间,这些房间存放P0、P1、P2、P3这些I/O的控制命令,也存放着定时器、中断、串口等资源的控制命令,房间号对应命令的地址。我们要操控这些资源,只需要向房间号(
文档评论(0)