单片机入门实例20150302分解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机入门实例 李素敏 2015.3 实例1: 点亮一个发光管 一、单片机的外部结构 最基本的必要连线 1、 电源:单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。 2、振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上就可以了,按图1接上即可。 ?3、复位引脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。 ?4、 EA引脚:EA引脚接到正电源端。 至此,一个单片机就接好,通上电,单片机就开始工作了。 发光管(图1) R1 二、 任务分析 我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个引脚相连,否则单片机就没法控制它了,那么和哪个引脚相连呢? 单片机上除了刚才用掉的6个引脚,还有34个,我们将这个LED和1脚相连。(见图1,其中R1是限流电阻) 按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。 因此要1脚我们要能够控制,也就是说,我们要能够让1引脚按要求变为高或低电平。 既然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧? 叫它什么名字呢?设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不可以由我们来更改。 名字有了,我们又怎样让它变‘高’或变‘低’呢? 叫人做事,说一声就可以,这叫发布命令,要计算机做事,也得要向计算机发命令,计算机能听得懂的命令称之为计算机的指令。 让一个引脚输出高电平的指令是SETB,让一个引脚输出低电平的指令是CLR。 因此,我们要P1.0输出高电平,只要写SETB P1.0,要P1.0输出低电平,只要写 CLR P1.0就可以了。 让灯亮的程序简单如下: clr p1.0 end 现在我们已经有办法让计算机去将P1.0输出高或低电平了,但是我们怎样才能计算机执行这条指令呢? 总不能也对计算机也说一声了事吧。要解决这个问题,还得有几步要走。 第一步,计算机看不懂SETB CLR之类的指令,我们得把指令翻译成计算机能懂的方式,再让计算机去读。 计算机能懂什么呢?它只懂一样东西——数字。因此我们得把SETB P1.0变为(D2H,90H ),把CLR P1.0变为 (C2H,90H ),至于为什么是这两个数字,这也是由51芯片的设计者--INTEL规定的,我们不去研究。 第二步,在得到这两个数字后,怎样让这两个数字进入单片机的内部呢? 这要借助于一个硬件工具“编程器”。 这里是我们迈出单片机编程的第一步,别看很简单可是却有重要的意义,没错,我们已经在编程序了 ? 然后用软件编程,再烧入51芯片里,这时,按图1连线的情况下,通上电源,这个LED灯就亮了。 这时可能有的朋友会问;这么简单的问题, 为啥要用单片机搞得这么复杂?接一个电池, 灯不就亮了? 没错,但是这是在编程序,如果我们不要p1.0亮。 而是要p2.0亮,那么写入clr p2.0就可以啦,不需要你动烙铁来改线。 这样我们看到,硬件电路的连线没有做任何改变,只要改变写入单片机中的内容,就可以改变电路的输出效果。 三、单片机内部结构分析 我们来思考一个问题:当我们在编程器中把一条指令写进单片要内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢? 这个地方就是单片机内部的只读存储器即ROM(READ ONLY MEMORY)。 为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗? 原来在89C51中的ROM是一种电可擦除的ROM,称为FLASH ROM,刚才我们是用的编程器,在特殊的条件下由外部设备对ROM进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为ROM。 实例2:点亮一个闪烁的发光管 一、任务分析 怎样才能让灯不断地闪烁呢? 实例1中的程序实在是没什么用,要灯不亮还要重写一下片子,下面我们要让灯不断地闪烁,这就有一定的实用价值了,比如可以把它当成汽车上的一个信号灯用了。 实际上就是要灯亮一段时间,再灭一段时间,也就是说要P10不断地输出高和低电平。怎样实现这个要求呢? 请考虑用下面的指令是否可行: SETB P1.0 CLR P1.0 …… 这是不行的,有两个问题: 第一,计算机执行指令的时间很快,执行完SETB P1.0后,灯是灭了,但在极短时间(微秒级)后,计算机又执行了CLR P1.0指令,灯又亮了

文档评论(0)

奇缘之旅 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档