下载此文档

51资料.doc


文档分类:建筑/环境 | 页数:约52页 举报非法文档有奖
1/52
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/52 下载此文档
文档列表 文档介绍
单片机教程
[教程] [单片机教程]第一课:点亮一盏灯
第一课点亮一盏灯任务:把实验板上的任一盏灯点亮。目的:入门第一课,了解单片机基本工作原理,对指令控制硬件有初步认识。今天我们开始51单片机学****的第一课,以后还会陆续学****其它内容,今天我们先从最简单的学起,为了能更直观地了解到指令对硬件的控制,我们会采用汇编语言进行讲解,以使初学者更容易理解,建议大家在看过课程后,都实际自己在实验板进行操作。这里,我们先假定大家已经清楚KEIL的建立工程项目和进行程序编译的方法,如果有不明白的,可以下载KEIL使用教程,这里就不重复讲述如何使用KEIL。另外,我们也先假定大家已经清楚如何将编译生成的HEX文件烧录到STC芯片里。如果有不懂的,可以看看wan1jing版主写的教程。. 这里讲课不按传统教科书方式进行,而是按实际需要,用到才学。所以一些基础的知识,以后会逐步在课程里讲述。本人水平有限,讲述过程中如有错误,欢迎批评指正。好里,言归正传,开始了。。。首先,我们看看实验板的电路图。
下载( KB)
2008-6-5 17:40
由图中可以看出,单片机的P0口8个IO每个均接有一只LED发光管及串有一只电阻到电源正极,而我们的目的就是要把LED点亮,显而易见,只需要把我们的P0口相对应的IO口写成低电平,LED就可以通电工作。在51单片机里,上电后,芯片复位后其所有引脚均是高电平,因此,正常状态下,通电后,LED是不发光的,因此,我们需要用一个指令,使这个引脚变为低电平,(知识点:数字电路里,只存在二种状态,0和1,一般用高电平表示1,低电平表示0。) 我们在KEIL里建一个项目,写入如下的语句:
下载( KB)
2008-6-5 17:28
好了,编译,生成HEX文件,烧进我们的实验,怎么样,灯亮了吧。这里起作用的就是 CLR ,,相对应的语句是SETB ,
它的作用刚好相反,,同理,我们可以很容易知道,如果要控制其它端口,。 ORG语句在汇编里作用只是用来告诉编译器,定位到某个地址放置跟着的代码。因为上电复位了,单片机总是从地址0000H开始执行的,所以,在开始地址,我们放上一跳转指令AJMP ,它是无条件跳转到指定的地址,为什么要跳转到100H?这个留在讲中断时再讲。关于AJMP $,是指跳转到本行,也即是单片机执行到这里,会不停地在本行循环,不会再往下执行,一般放程序后面,使单片机执行到这里就停在这里。好了,到这里,大家都应该明白怎么把一盏灯点亮了吧。看似神秘的单片机就是这么简单,它的引脚,要么是高电平,要么低电平(P0口有点特殊,这个留待以后再讲)。我们要做的,只不过是编个程序,控制引脚在适当的时候按我们的意愿去输出高电平或者低电平。。仅此而已。。。本课到这里结束,留个作业,大家尝试一下,把其它的灯也点亮。
第二课闪动的灯任务:使把实验板上的任一盏灯闪动起来。目的:学****延时程序,对MCU执行时间有个初步概念。今天,我们来学****第二课——闪动的灯。上一课,我们已经把实验板上的灯点亮了,同时学****了CLR、SETB语句,同时,我们知道了,只要把端口电平写为低或高,即可使该端口上的LED亮或者灭。今天,我们就要让这个灯闪起来。我们在KEIL里建一个项目,写入如下的语句:
下载( KB)
2008-6-9 10:41
图1 然后我们编译,烧进实验板,怎么样?灯闪了没有?没有!连亮都没有亮过!为什么呢?这是因为,单片机的执行速度是非常快的,每条指令执行时间需1-4个机器周期不等,而每个机器周期包含12个时钟周期,在12M晶振下,每个时钟周期是1/12000000,所以每个机器周期只有12/12000000=1us。SETB、CLR指令均是1个机器周期,在1微秒时间内 LED变化,人眼当然是看不到的。所以,我们要给它加上延时,让它亮了之后,延时一段时间再灭,这样,就能看到变化了。
下载( KB)
2008-6-9 10:41
图2 我们来说说标号,程序里START,DELAY这些红色的字,汇编语言中采用符号地址(即标号)是便于查看、修改,尤其是便于指令转移地址的表示。书写标号时,规定第一字符必须是字母或半角下划线“_”,它后面可以跟英文和数字字符、制符表等,并可任意组合,以冒号(:)结束。再有标号不能用操作码助记符和寄存器的代号表示。标号可单独占一行或写在指令前。我们加上延时子程序,然后用ACALL指令来调用,我们注意到,在DELAY子程序后,我们加了RET指令,这个RET执行完之后,返回到调用语句指令之后继续执行。每个被调用的子程序,必须在程序末加

51资料 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数52
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ffy51856fy
  • 文件大小0 KB
  • 时间2015-10-05