静下心来教书,潜下心来育人,专注电子入门技术,打造电子入门教学启蒙网,提供一站式服务!--刘昆山
科教电子制作
下载中心
电阻
电容
二极管
三极管
集成电路
电工基础
模拟电路
数字电路
高频电路
电子制作工具
芯片资料
电子实验
教学问答
PCB设计
PLC教程
家用电器
电子工艺
电视技术
书籍推荐
电子英语
电子视频教程
教育心理学
教学论文
教研论文
教学理论
教学管理
评语大全
职业教育
教育政策
名家思想
人际关系学
您的位置网站首页>>跟我学单片机>>《教师吧》课堂:第十课:用单片机控制一个LED的设计与制作
责任编辑:刘昆山

  各位朋友,大家好,我是教师吧http://www.jiaoshi8.com的站长刘昆山老师,下面我们开始今天的学习了。上节课我们主要是讲了单片机程序的编辑、编译、调试软件KEIL C51的使用,并通过一个实例进行了分析与讲解,今天开始,我们将以项目为主线,进行讲解单片机的原理和应用,并从汇编语言和C语言进行编程。

  本栏目主要根据“边学边做”的教学模式,经过多年的教学实践,采用该教学模式教学,教学效果明显,学习前完全不懂单片机技术,学习后就能初步开发单片机产品。我将把我教学过程中的若干个实训项目陆续为大家详细讲解。
  本文讲解的是《用单片机控制一个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语言对本次课进行编程,并在此基础上实现单灯闪烁的功能。

单灯闪烁汇编语言:

ORG 0000H
LJMP START
ORG 0030H
START:CLR P1.0
LCALL DELAY
SETB P1.0
LCALL DELAY
LJMP START
DELAY:MOV R7,#250
D1:MOV R6,#250
D2:DJNZ R6,D2
DJNZ R7,D1
RET
END

上一页: 第九课:Keil C51编辑、编译、调试仿真程序实例
下 一页:
第十一课:用单片机控制一个LED的设计与制作(C语言)
科教电子制作
邮购指南 教师吧淘宝店关于站长关于教师吧免责声明常见问题招聘人才友情链接给我留言
《教师吧》是一家帮助电子初学者快速入门电子技术的公益性教学网站,专门提供电子技术和单片机技术等入门型学习视频教程和电子制作套件。
我们主张电子初学者采用万能板焊接电子制作产品,因为这种“边学边做”的自学模式,不仅能锻炼焊接技术,还能提高识别电路图和分析原理图的能力。
辅以电子视频教程同步学习,必将为日后维修、设计电子产品打下坚实的基础,帮助您快速跨越电子入门者到电子工程师的门槛。
本站已经获得国家部门认证 国家ICP备案序号: 赣ICP备06004613号 业务客服QQ:56943772 E-mail:56943772@qq.com
电子爱好者群(1):66585281电子爱好者群(2):197874883电子爱好者群(3):29019650 电子爱好者群(4):14454755
版权归刘昆山所有©2005-2025 转载须经本人同意,否则后果自负!本站网址:http://www.jiaoshi8.com
站长:刘昆山 手机:13217080719(刘昆山)副站长:刘星慧  13755545457(刘星慧
欢迎您为本站提供资料,本站资料有的来自网络,如有版权争议,请通知本人,本人将删除之!