版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机入门实例李素敏2015.3 实例1: 点亮一个发光管P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST/VPD9RXD P3.010TXD P3.111INT0 P3.212INT1 P3.313T0 P3.414T1 P3.515WR P3.616RD P3.717XTAL218XTAL119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC408
2、031 8051 8751一、单片机的外部结构最基本的必要连线v1、 电源:电源:单片机使用的是单片机使用的是5V电源,其中正极接电源,其中正极接40引脚,负极(地)接引脚,负极(地)接20引脚。引脚。 v2、振蒎电路:、振蒎电路:单片机是一种时序电路,必须提供单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接荡器,使用晶体振荡器,接18、19脚。只要买来晶脚。只要买来晶振,电容,连上就可以了,按图振,电容,连上就可以了,按图1接上即可。接上即可。v 3、复位引脚:、复位引脚:按图按图1中画法连好,至于
3、复位是何含中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。义及为何需要复要复位,在单片机功能中介绍。v 4、 EA引脚:引脚:EA引脚接到正电源端。引脚接到正电源端。 至此,一个单片机就接好,通上电,单片机至此,一个单片机就接好,通上电,单片机就开始工作了。就开始工作了。发光管(图1)R1二、 任务分析v我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个引脚相连,否则单片机就没法控制它了,那么和哪个引脚相连呢?v单片机上除了刚才用掉的单片机上除了刚才用掉的6个引脚,还有个引脚,还有34个,我个,我们将这个们将这个LED和和1脚相连。(
4、见图脚相连。(见图1,其中,其中R1是限是限流电阻)流电阻) u按照这个图的接法,当按照这个图的接法,当1脚是高电平时,脚是高电平时,LED不亮,不亮,只有只有1脚是低电平时,脚是低电平时,LED才发亮。才发亮。u因此要因此要1脚我们要能够控制,也就是说,我们要能够脚我们要能够控制,也就是说,我们要能够让让1引脚按要求变为高或低电平。引脚按要求变为高或低电平。u既然我们要控制既然我们要控制1脚,就得给它起个名字,总不能就脚,就得给它起个名字,总不能就叫它一脚吧?叫它一脚吧?u叫它什么名字呢?设计叫它什么名字呢?设计51芯片的芯片的INTEL公司已经起公司已经起好了,就叫它好了,就叫它P1.0,
5、这是规定,不可以由我们来更改。,这是规定,不可以由我们来更改。 v名字有了,我们又怎样让它变高或变低呢?v叫人做事,说一声就可以,这叫发布命令,要计叫人做事,说一声就可以,这叫发布命令,要计算机做事,也得要向计算机发命令,计算机能听算机做事,也得要向计算机发命令,计算机能听得懂的命令称之为计算机的指令。得懂的命令称之为计算机的指令。v让一个引脚输出高电平的指令是让一个引脚输出高电平的指令是SETBSETB,让一个引,让一个引脚输出低电平的指令是脚输出低电平的指令是CLRCLR。v因此,我们要因此,我们要P1.0P1.0输出高电平,只要写输出高电平,只要写SETB P1.0SETB P1.0,要
6、要P1.0P1.0输出低电平,只要写输出低电平,只要写 CLR P1.0CLR P1.0就可以了。就可以了。v让灯亮的程序简单如下:让灯亮的程序简单如下: clr p1.0clr p1.0 end end现在我们已经有办法让计算机去将现在我们已经有办法让计算机去将P1.0输出高或低电输出高或低电平了,但是我们怎样才能计算机执行这条指令呢?平了,但是我们怎样才能计算机执行这条指令呢?v总不能也对计算机也说一声了事吧。要解决这个问总不能也对计算机也说一声了事吧。要解决这个问题,还得有几步要走。题,还得有几步要走。v第一步,第一步,计算机看不懂计算机看不懂SETB CLR之类的指令,我之类的指令,我
7、们得把指令翻译成计算机能懂的方式,再让计算机们得把指令翻译成计算机能懂的方式,再让计算机去读。去读。 计算机能懂什么呢?它只懂一样东西计算机能懂什么呢?它只懂一样东西数字。数字。因此我们得把因此我们得把SETB P1.0变为(变为(D2H,90H ),把),把CLR P1.0变为变为 (C2H,90H ),至于为什么是这两),至于为什么是这两个数字,这也是由个数字,这也是由51芯片的设计者芯片的设计者-INTEL规定的,规定的,我们不去研究。我们不去研究。v第二步,第二步,在得到这两个数字后,怎样让这两个数字在得到这两个数字后,怎样让这两个数字进入单片机的内部呢?进入单片机的内部呢? 这要借助
8、于一个硬件工具这要借助于一个硬件工具“编程器编程器”。 v这里是我们迈出单片机编程的第一步,别看很简单这里是我们迈出单片机编程的第一步,别看很简单可是却有重要的意义,没错,我们已经在编程序了可是却有重要的意义,没错,我们已经在编程序了 v然后用软件编程,再烧入然后用软件编程,再烧入5151芯片里,这时,按图芯片里,这时,按图1 1连线的情况下,通上电源,这个连线的情况下,通上电源,这个LEDLED灯就亮了。灯就亮了。这时可能有的朋友会问;这么简单的问题,这时可能有的朋友会问;这么简单的问题, 为啥要为啥要用单片机搞得这么复杂?接一个电池,用单片机搞得这么复杂?接一个电池, 灯不就亮了?灯不就亮
9、了?v没错,但是这是在编程序,如果我们不要没错,但是这是在编程序,如果我们不要p1.0p1.0亮。亮。 而是要而是要p2.0p2.0亮,那么写入亮,那么写入clr p2.0clr p2.0就可以啦,不就可以啦,不需要你动烙铁来改线。需要你动烙铁来改线。v这样我们看到,硬件电路的连线没有做任何改变,这样我们看到,硬件电路的连线没有做任何改变,只要改变写入单片机中的内容,就可以改变电路只要改变写入单片机中的内容,就可以改变电路的输出效果。的输出效果。三、单片机内部结构分析三、单片机内部结构分析v我们来思考一个问题:当我们在编程器中把一条我们来思考一个问题:当我们在编程器中把一条指令写进单片要内部,
10、然后取下单片机,单片机指令写进单片要内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么后依然可以保持这条指令不会丢失,这是个什么地方呢?地方呢?v这个地方就是单片机内部的只读存储器即这个地方就是单片机内部的只读存储器即ROMROM(READ ONLY MEMORYREAD ONLY MEMORY)。)。v为什么称它为只读存储器呢?刚才我们不是明明为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?
11、把两个数字写进去了吗?v原来在原来在89C5189C51中的中的ROMROM是一种电可擦除的是一种电可擦除的ROMROM,称为,称为FLASH ROMFLASH ROM,刚才我们是用的编程器,在特殊的条,刚才我们是用的编程器,在特殊的条件下由外部设备对件下由外部设备对ROMROM进行写的操作,在单片机正进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为去,所以我们还是把它称为ROMROM。实例实例2:点亮一个闪烁的发光管:点亮一个闪烁的发光管一、任务分析一、任务分析v怎样才能让灯不断地闪烁呢?怎样才能让灯不断地闪
12、烁呢?v实例实例1 1中的程序实在是没什么用,要灯不亮还要重中的程序实在是没什么用,要灯不亮还要重写一下片子,下面我们要让灯不断地闪烁,这就写一下片子,下面我们要让灯不断地闪烁,这就有一定的实用价值了,比如可以把它当成汽车上有一定的实用价值了,比如可以把它当成汽车上的一个信号灯用了。的一个信号灯用了。v实际上就是要灯亮一段时间,再灭一段时间,也实际上就是要灯亮一段时间,再灭一段时间,也就是说要就是说要P10P10不断地输出高和低电平。怎样实现这不断地输出高和低电平。怎样实现这个要求呢?个要求呢?请考虑用下面的指令是否可行:请考虑用下面的指令是否可行:vSETB P1.0 SETB P1.0 v
13、CLR P1.0 CLR P1.0 v这是不行的,有两个问题:这是不行的,有两个问题:第一,计算机执行指令的时间很快,执行完第一,计算机执行指令的时间很快,执行完SETB SETB P1.0P1.0后,灯是灭了,但在极短时间(微秒级)后,后,灯是灭了,但在极短时间(微秒级)后,计算机又执行了计算机又执行了CLR P1.0CLR P1.0指令,灯又亮了,所以根指令,灯又亮了,所以根本分辨不出灯曾灭过。本分辨不出灯曾灭过。第二,在执行完第二,在执行完CLR P1.0CLR P1.0后,不会再去执行后,不会再去执行SETB SETB P1.0P1.0指令,所以以后再也没有机会让灭了。指令,所以以后再
14、也没有机会让灭了。为了解决这两个问题,我们可以做如下设想:为了解决这两个问题,我们可以做如下设想:v第一,在执行完第一,在执行完SETB P10SETB P10后,延时一段时间(几后,延时一段时间(几秒或零点几秒)再执行第二条指令,就可以分辨秒或零点几秒)再执行第二条指令,就可以分辨出灯曾灭过了。出灯曾灭过了。v第二在执行完第二条指令后,让计算机再去执行第二在执行完第二条指令后,让计算机再去执行第一条指令,不断地在原地兜圈,我们称之为第一条指令,不断地在原地兜圈,我们称之为 循循环环 ,这样就可以完成任务了。,这样就可以完成任务了。v以下先给出程序(后面括号中的数字是为以下先给出程序(后面括号
15、中的数字是为了便于讲解而写的,实际不用输入):了便于讲解而写的,实际不用输入): ;主程序:;主程序: LOOPLOOP: SETB P1.0 SETB P1.0 ;();() LCALL DELAY LCALL DELAY ;();() CLR P1.0 CLR P1.0 ;();() LCALL DELAY LCALL DELAY ;();() AJMP LOOP AJMP LOOP ;();() ;以下子程序以下子程序 DELAYDELAY: MOV R7MOV R7,#250 #250 ;();() D1D1: MOV R6MOV R6,#250 #250 ;();() D2D2: D
16、JNZ R6DJNZ R6,D2 D2 ;();() DJNZ R7DJNZ R7,D1 D1 ;();() RET RET ;();() END END ;();()按上面的设想分析一下前面的五条指令:按上面的设想分析一下前面的五条指令:v第一条是让灯灭,第二条应当是延时,第三条是让第一条是让灯灭,第二条应当是延时,第三条是让灯亮,第四条和第二条一模一样,也是延时,第五灯亮,第四条和第二条一模一样,也是延时,第五条应当是转去执行第一条指令。条应当是转去执行第一条指令。v第二和第四条实现的原理稍后谈,先看第五条,第二和第四条实现的原理稍后谈,先看第五条,AJMP是一条指令,意思是转移,往什么地
17、方转移是一条指令,意思是转移,往什么地方转移呢?后面跟的是呢?后面跟的是LOOP,看一下,什么地方还有,看一下,什么地方还有LOOP,对了,在第一条指令的前面有一个,对了,在第一条指令的前面有一个LOOP,所以很直观地,我们可以认识到,它要转到第一条所以很直观地,我们可以认识到,它要转到第一条指令处。这个第一条指令前面的指令处。这个第一条指令前面的LOOP被称之为标被称之为标号,它的用途就是给这一行起一个名字,便于使用。号,它的用途就是给这一行起一个名字,便于使用。v第二条和第四条指令的用途是延时,它是怎样实现第二条和第四条指令的用途是延时,它是怎样实现的呢?的呢?v指令的形式是指令的形式是L
18、CALL,这条指令称为调用子程序指,这条指令称为调用子程序指令,看一下指令后面跟的是什么,令,看一下指令后面跟的是什么,DELAY,找一下,找一下DELAY,在第六条指令的前面,显然,这也是一个,在第六条指令的前面,显然,这也是一个标号。标号。v这条指令的作用是这样的:当执行这条指令的作用是这样的:当执行LCALL指令时,指令时,程序就转到程序就转到LCALL后面的标号所标定的程序处执行,后面的标号所标定的程序处执行,如果在执行指令的过程中遇到如果在执行指令的过程中遇到RET指令,则程序就指令,则程序就返回到返回到LCALL指令的下面的一条指令继续执行,从指令的下面的一条指令继续执行,从第六行
19、开始的指令中,可以看到确实有第六行开始的指令中,可以看到确实有RET指令。指令。v在执行第二条指令后,将转去执行第条指令,而在执行第二条指令后,将转去执行第条指令,而在执行完,条指令后将遇到第条在执行完,条指令后将遇到第条令:令:RET,执行该条指令后,程序将回来执行第三,执行该条指令后,程序将回来执行第三条指令,即将条指令,即将P10清零,使灯亮;清零,使灯亮;v然后又是第四条指令,执行第四条指令就是转去执然后又是第四条指令,执行第四条指令就是转去执行第行第6,7,8,9,10条指令,然后回来执行第条指令,然后回来执行第5条条指令,第指令,第5条指令就是让程序回到第条指令就是让程序回到第1条开始执行,条开始执行,如此周而复始,灯就在不断地亮、灭了。如此周而复始,灯就在不断地亮、灭了。 v在标号在标号DELAY标志的这一行到标志的这一行到RET这一行中的所有这一行中的所有程序,这是一段延时程序,大概延时零点几秒,至程序,这是一段延时程序,大概延时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度文化创意产业投资合作协议2篇
- 2025年产权车位买卖及车位增值服务与物业管理合同4篇
- 个人居间服务合同模板:房产交易中介合同版
- 2024年环保型废纸买卖合同
- 2024版医疗设备采购合同
- 2025年度环保材料销售代理合同模板4篇
- 中英双语2024年土地租赁协议模板版B版
- 2025年度现代服务业场承包经营合同样本3篇
- 个人借款担保责任合同范本2024版B版
- 2025年度征收拆迁安置房买卖合同范本(含安置补偿与产权过户)4篇
- 2023年湖北省武汉市高考数学一模试卷及答案解析
- 城市轨道交通的网络安全与数据保护
- 英国足球文化课件
- 《行政职业能力测验》2023年公务员考试新疆维吾尔新疆生产建设兵团可克达拉市预测试题含解析
- 医院投诉案例分析及处理要点
- 烫伤的安全知识讲座
- 工程变更、工程量签证、结算以及零星项目预算程序实施细则(试行)
- 练习20连加连减
- 五四制青岛版数学五年级上册期末测试题及答案(共3套)
- 员工内部岗位调换申请表
- 商法题库(含答案)
评论
0/150
提交评论