用单片机控制一个LED的设计与制作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十课:用单片机控制一个LED的设计与制作(汇编)
一、硬件电路的设计
单片机是让一块芯片通过其引脚控制各种不同的外围电路,实现具体功能的单片微型计算机。

所以要学好单片机技术,必须先了解单片机的引脚功能。

单片机的种类很多,有51系列、PIC系列、AVR系列等,我们以最常见的ATMEL 公司生产的51系列的AT89S51为例讲解。

AT89S51采用了40引脚的双列直插DIP封装形式,引脚配置图如下:
我们把单片机的40个引脚分成了四类:主电源输入引脚、时钟电路引脚、控制类引脚、输入输出I/O口引脚。

1、主电源输入引脚
单片机芯片的第40脚为正电源引脚VCC,一般外接+5V电压。

第20脚为接地引脚GND,常见电路如下图所示:
2、时钟电路引脚
单片机是一种时序电路,必须有时钟信号才能正常工作。

单片机芯片的18
脚(XTAL2)、19脚(XTAL1)分别为片内反向放大器的输出端和输入端,只要在18脚(XTAL2)和19脚(XTAL1)之间接上一个晶振,再加上2个30PF 的瓷片电容即可构成单片机所需的时钟电路。

常见的时钟电路如下:
注意,当采用外部时钟时,19脚(XTAL1)接地,18脚(XTAL2)接外部时钟信号,本文就不详细讨论了。

3、控制信号引脚
控制信号引脚共有4个,分别是第9脚(RST/VPD)、第29脚(PSEN)、第30脚(ALE/PROG)、第31脚(EA/Vpp)。

在第9脚、30脚、31脚功能描述上都有一个“/”,这说明这个引脚具有第二功能,也就是说,该引脚既可以作前面的功能,也可以作后面的功能,本文主要讲解常用的功能。

(1)第9脚RST(Reset),复位信号输入端。

单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。

复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。

MCS-51系列单片机的复位靠外部电路实现,信号从RST引脚输入,高电平有效,只要保持RST引脚高电平2个机器周期,单片机就能正常复位。

常见的复位电路有上电复位电路和按键复位电路二种:
(2)第29脚(PSEN):片外程序存储器ROM读选通信号。

(3)第30脚(ALE):地址锁存允许信号输出端。

以上第29脚(PSEN)和第30脚(ALE)一般在扩展片外存储器或I/O口时才用到,所以本文不详细讨论。

(4)第31脚(EA):内部与外部程序存储器选择输入端。

当EA引脚接高电平时,CPU先访问片内4KB的程序存储器,执行内部程序存储器中的指令,当程序计数器超过0FFFH时,将自动转向片外程序存储器,既是从1000H地址单元开始执行指令;当EA引脚接低电平时,不管片内是否有程序存储器,CPU 只访问片外程序存储器。

AT89S51内部有4KB的程序存储器,所以根据该脚的引脚功能,只有将该脚接上高电平,才能先从片内程序存储器开始取指令。

常见的程序存储器选择电路就是将第31脚直接接到正电源上。

4、输入输出I/O口引脚
主要是指P0、P1、P2、P3口共32个引脚。

(1)I/O口,是英文IN/OUT的缩写,就是输入/输出的意思。

AT89S51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

这四个口的电路结构不完全相同,所以使用也有区别。

(2) P1口:第1到8脚,8位准双向I/O口,内部带上拉电阻,作I/O使用,可驱动4个LS型TTL负载。

可以通过指令使单片机的引脚输出高低电平,下面我们来学二个常见的操作码,CLR和SETB。

CLR,该操作码的功能是清零。

如:CLR P1.0;就是要把P1.0清零。

在单片机正常工作的时候,如果执行这条指令,就是对P1.0清零,既是让单片机的第一个引脚输出低电平。

SETB,该操作码的功能是置1。

如:SETB P1.0;就是要把P1.0置1。

在单片机正常工作的时候,如果执行这条指令,就可对P1.0置1,既是让单片机的第一个引脚输出高电平。

当作为输入口使用时应先向P1口锁存器写1后才能正常读取引脚上的数据,这里就不详细讨论了。

(1) P0口:第39到32脚,属于双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口时可以不接上拉电阻;当作I/O口使用时,必须外接上拉电阻,可驱动8个LS型TTL负载,一般不直接作I/O口使用。

(2) P2口:第21到28脚,8位准双向I/O口,作I/O口使用时和P1口相似,可驱动4个LS型TTL负载,一般不直接作I/O口使用,而作扩展外部设备的地址总线(高8位)使用。

(3) P3口:第10到17脚,8位准双向I/O口,双功能复用口,作I/O
口使用时和P1口相似,可驱动4个LS型TTL负载。

P3口具有的第二功能,
用于串行输入输出、外部中断、计数器等特殊信号输入输出和数据存储器的读写控制信号,实际产品开发时一般不直接作I/O口使用,而重点使用其扩展的第二功能,本文不详细讨论。

二、单片机的工作条件
单片机要正常工作,必须具有五个基本电路,也称五个工作条件:
1、电源电路
2、时钟电路
3、复位电路
4、程序存储器选择电路
5、外围电路
外围电路的设计主要依据项目要实现的功能,本项目要实现的功能是用单片机控制一个LED,先来分析下面的LED工作原理图:
如果用“1”表示高电平,“0”表示低电平。

当开关K接上高电平,既是K=1时,LED1不亮;当开关K接上低电平,既是K=0时,LED1亮。

LED1的亮与灭完全受开关K的控制。

如果把开关K换成单片机的第1个引脚,电路设计如下:
现在只需要通过指令SETB P1.0就可以控制单片机的第1个引脚输出高电平,进而控制LED的不亮。

或通过指令CLR P1.0控制单片机的第1个引脚输出低电平,进而控制LED的发光。

从图6到图7实现了开关控制到软件控制LED 的一种转变。

三、单片机最小应用系统设计
依据单片机的引脚功能和单片机工作的条件,为了实现“用单片机控制一个
LED”的功能,我们设计的单片机最小应用系统如下:
四、元件清单
要完成本实训项目,需要购买下面的元件,清单如下:
五、产品的焊接步骤
到电子市场上购买以上材料,正常的价格是20元以内。

焊接步骤如下:
1、在万能板上依据单片机最小应用系统原理图设计好PCB电路,然后以紧锁座为中心焊接其他元件。

2、电路焊接顺序为:振荡电路→复位电路→电源电路→外围电路→程序存储器选择电路。

六、程序设计
当单片机最小应用系统的硬件电路焊接完毕后,单片机最小应用系统还不能工作,因为单片机产品需要硬件+软件共同支持才能正常工作,这里提到的软件主要是指用户编写的源程序。

这也是区别于传统的电子产品的地方。

本项目要实现的功能是用单片机控制一个LED,根据外围电路的设计,只需要通过指令控制单片机的第一个引脚输出低电平,就可以使LED发光。

依据本项目要实现的功能,采用汇编语言编写程序如下:
ORG 0000H ;起始伪指令ORG,指示随后的指令代码从0000H地址单元开始存放。

LJMP START ;跳转到标号START处去执行。

ORG 0030H ;起始伪指令ORG,指示随后的指令代码从0030H地址单元开始存放。

START:CLR P1.0 ;使得P1.0=0,既是单片机的第1个引脚输出低电平,LED发光。

END ;结束伪指令,说明程序到此结束。

该程序实现了用单片机控制一个LED发光的功能。

七、编程器的使用
编程器的作用就是把单片机目标程序代码写到单片机芯片中,那这个过程一般需要下面的几个步骤完成:
第一步:编辑源代码。

通常我们都是使用Keil C51 uVision2 编辑源程序,也就是用键盘把程序输入电脑。

第二步:使用Keil C51 uVision2编译源代码,并生成目标程序代码。

第三步:单片机芯片的烧写。

购买编程器时一般都会有配套的编程器软件,这个编程软件的主要作用就是控制编程器和电脑的通讯,并把目标程序代码通过编程器写入到单片机芯片机中。

第四步:把单片机芯片插到单片机最小应用系统上,并通电观察结果,LED 发光。

把我们编写的程序中的指令START:CLR P1.0 换成START:SETB
P1.0 ,程序如下:
ORG 0000H
LJMP START
ORG 0030H
START:SETB P1.0 ;使得P1.0=1,既是单片机的第1个引脚输出高电平,LED不发光。

END
重复前面四步,实践证明,LED不再发光了。

在不修改硬件电路的基础上,只修改程序,可以实现不同的功能,这就是单片机应用系统的特点。

本文主要通过实训项目《用单片机控制一个LED》学习了单片机的引脚功能、单片机的五大工作条件和简单的程序设计,并应用这些知识点设计了单片机最小应用系统,且制作成功,同时掌握了单片机产品的开发的基本过程,真正的实现了“边学边做”的教学理念。

下节课我们将用C语言对本次课进行编程,并在此基础上实现单灯闪烁的功能。

相关文档
最新文档