51单片机最小系统原理及编程电路设计.docVIP

  • 25
  • 0
  • 约3.7千字
  • 约 7页
  • 2018-03-31 发布于河南
  • 举报

51单片机最小系统原理及编程电路设计.doc

51单片机最小系统原理及编程电路设计

51单片机最小系统原理及编程电路设计 点击: 3416, 文章入库日期: 2008-04-18 07:01:22, 来源: 本课以AT89S51单片机最小系统来教你如何实现单片机编程,该程序驱动单片机P1.7端口上的发光二极管不停闪烁,系统程序用keil 汇编语言编写,电路参考下图1所示。 《51单片机最小系统原理及编程电路设计》 首先来认识一下发光二极管(LED),发光二极管实物如下图2所示,发光二极管具有单项导电,体积小、耗电省、寿命长、响应速度快、显示清晰等特点,广泛用于电子电路中当作LED数码管、LED指示灯、LED电子显示屏,既然是51单片机最小系统我们当然只进行了最简单的电路设计与编程 图2: 《发光二极管介绍》 发光二极管导通时,产生一个正向的工作电流IF,工作电流根据发光二极管的材料、功率等不同,额定电流一般在10~40mA左右,发光二极管导通时的正向压降VF比较大,一般为1.5~3V(普通硅二极管约为0.7V)。因此在正常使用中,为了保证发光二极管在电源电压V的作用下管子的工作电流不超过额定值,必须给发光二极管串联一只限流电阻R,R的阻值可由下式算出:R=(V-VF)/IF。其中V为工作电源电压,VF为发光二极管的正向压降,IF为额定工作电流。 从上面原理图1可知,当单片机的P1.7输出低电平(0V)时,有正向工作电流流过发光二极管,发光二极管就亮;相反,当P1.7输出高电平(5V)时,发光二极管没有足够电压差产生工作电流,此时发光二极管不亮。因此,程序中只需交替让单片机的P1.7输出低电平“0”和高电平“1”就可以让发光二极管闪烁发光。 下面以51单片机汇编语言来编程,让某个端口输出高电平语句是SETB,让端口输出低电平的语句是CLR语句,让P1.7端口输出高电平的语句是: SETB; 让P1.7端口输出低电平的语句是: CLR,实现发光二极管LED闪烁的编程思路如下图3所示。 图3: 《51单片机最小系统原理编程框图》 完整的源程序如下: ** 51单片机最小系统原理及编程电路设计主程序 ******** 主程序开始,P1.7输出低电平0,让点亮发光二极管 调用延时子程序延时一段时间,让发光二极管亮一段时间 输出高电平1,熄灭发光二极管 调用延时子程序延时一段时间,让发光二极管熄灭一段时间 跳转到程序开头重复执行 下面是延时子程序 ******** 延时子程序返回 程序结束 启动“Keil uVision2”单片机集成开发环境,如没有请再这里下载?keil下载 建立一个新工程,输入上面的源程序,最后编译得到一个lich1.hex目标文件,用编程器把lich1.hex写入单片机AT89S51中,插到实验板上就可以看到第一个程序的运行效果了(P1.7端口的发光二极管不停闪烁)。这就是我们学习的第一个最简单的程序,是一个完整的单片机开发过程,再复杂庞大的程序都是由简单的语句、程序构成的,希望该教程能给初学者对单片机开发有一个感性的认识。不懂如何在Keil中编辑源程序的初学者请看 keil教程 图4:ISP编程器将产生的目标程序lich1.hex写入AT89S51单片机 图5:单片机插入实验板上程序的运行效果 单片机的学习是一个循序渐进的过程,制作单片机最小系统,并彻底了解其原理,能把你快速带入单片机世界的大门,这只是一个最简单的制作,有什么问题请联系我 八、相关程序编写 针对上面的电路原理图,设计出本系统的详细功能: (1)、第一个发光二极管点亮,同时数码管显示“1”。 (2)、第二个发光二极管点亮,同时数码管显示“2”。 (3)、依次类推到第八个发光二极管点亮,同时数码管显示“8”。 以上出现的是流水灯的效果 (4)、所有的发光二极管灭了,同时数码管现实“0”。 (5)、数码管显示“1”。 (6)、数码管显示“2、……”直到“9、A、B、C、D、E、F、Y”。 (7)、蜂鸣器发出九声报警声后重复上面所有步骤。 (8)程序如下: ORG 0000H;伪指令,定义下面的程序代码(机器代码)从地址为0000H的单元存放。 LJMP START;跳转到标号为START的地方去执行。 ORG 0030H;伪指令,定义下面的程序代码(机器代码)从地址为0030H的单元存放。 START:MOV P1,#0FEH ;点亮第一个发光二极管。 CLR P2.7 ;送低电平到第一个数码管,开启数码管。 CLR P2.6 ;送低电平到第二个数码管,开启数码管。 MOV P0,#06H;让数码管显示“1” 。 LCALL DELAY;调用延时子程序,起到延时的目的。 MOV P1,#0FDH;点亮第二个发光二极管。 MOV P0,#5bH;让数码管显示“2” 。 LCALL DELAY;调用延时子程序,起到延

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档