版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务1控制单只LED闪烁发光1.1任务内容与分析1.2任务实施1.3任务相关知识1.1任务内容与分析
1.任务内容
在日常生活中经常看到有些电器上带有的LED(发光二极管)指示灯有节奏地闪动,任务1就以单片机控制一只LED闪烁(简称为闪烁灯)为例,简单介绍单片机。
2.任务分析
要用单片机控制LED闪烁,那么,LED必须和单片机的某个引脚相连,否则单片机就无法控制它,那么应和哪个引脚相连呢?89S51单片机有40个引脚,设计该芯片的Intel公司已经给每个引脚起好名字,且每个引脚都有具体功能,可以将LED和89S51单片机的1脚(P1.0)相连,如图1-1所示,图中,R1为限流电阻。图1-1闪烁灯示意图当P1.0输出低电平时,使发光二极管正向偏置,就会点亮LED;P1.0输出高电平时,LED就熄灭。如果P1.0输出电平在高低电平之间不停转换,则LED会产生闪烁。也就是说,先点亮LED一段时间之后熄灭LED,再延时一段时间后点亮LED,如此反复。计算机能听得懂的命令,称之为计算机的指令。在89S51单片机中,让一个引脚输出高电平的指令是SETB,让一个引脚输出低电平的指令是CLR。因此,要P1.0输出高电平,只要写SETBP1.0;要P1.0输出低电平,只要写CLRP1.0即可。但计算机怎样执行指令呢?第一,计算机看不懂SETB、CLR之类的指令,因此要把指令先翻译成计算机能懂的方式,再让计算机去读。计算机只能懂二进制数字0、1,因此,要把SETBP1.0变为(D2H,90H),把CLRP1.0变为(C2H,90H)。至于为什么是这样的数字,是由51芯片的设计者——Intel公司规定的,暂时先不去研究。第二步,在得到这些数字后,要把这些数字写进单片机的内部程序存储器中,这要借助于硬件工具——编程器。将编程器与电脑连好,运行编程器的软件,然后在编辑区内输入图1-2所示的目标代码,或者用仿真软件生成HEX文件(目标代码)再导入。取下单片机,将单片机插入做好的电路板,并接通电源。正常情况下,可见LED在闪烁。图1-2中地址栏后的c:表示存储器,OX表示十六进制,00表示空白。图1-2闪烁灯程序目标代码1.2任务实施
步骤1:把电路连接妥当,如图1-3所示。P1.0输出低电平(指令为CLRP1.0)时,所连接的LED点亮;输出高电平(指令为SETBP1.0)时,所连接的LED熄灭。如果P1.0输出电平在高低电平之间不停转换,则LED便会产生闪烁。图1-3闪烁灯电路原理图步骤2:有了电路,又有了思路,即可将思路画成流程图,如图1-4所示。其中延时用延时子程序来实现。在“任务5”中将详细讨论子程序的应用。图1-4闪烁灯程序流程图步骤3:除非是非常简单的程序,比较容易且保险的方法还是要根据流程图来编写程序。闪烁灯控制程序如下:
;//*****闪烁灯控制程序*************//
;程序名:闪烁灯控制程序xiaodeng.a
;程序功能:用单片机实现单只LED闪烁
ORG 0000H
;程序从地址0000H开始存放
AJMPSTART ;低端地址单元留给中断处理用
ORG 0030H
START:CLRP1.0 ;点亮LED
ACALL
DELAY_50MS ;延时50ms
SETB P1.0 ;熄灭LED
ACALLDELAY_50MS
;延时50ms
AJMPSTART ;重复闪烁
;***************延时子程序***************
DELAY_50MS: MOV R7,#200 ;延时子程序开始
DEL2: MOV R6,#123
DEL1: NOP
DJNZ R6,DEL1
DJNZ R7,DEL2
RET ;子程序返回
END ;汇编程序结束步骤4:通过仿真软件KeilμVision3将源程序生成HEX格式的目标文件。
①工程的建立。
首先点击KeilμVision3,进入KeilμVision3界面。点击工具栏“项目”选项中的“新项目”,准备开始建立自己的项目,如图1-5所示。图1-5建立项目给工程起一个名字,并选择保存工程文件的目录,然后单击“保存”即可,如图1-6所示。图1-6创建新工程进入下一步,选择目标CPU。Keil支持400余种以80C51为内核的单片机系列,这里选择Atmel公司生产的AT89S51。双击“Atmel”,找到“AT89S51”后点击,然后选择“确定”,如图1-7所示。图1-7选择目标CPU返回到主界面,此时会出现下面的对话框,询问是否要将8051标准启动代码的源程序拷贝到工程所在文件夹,并将这一文件加入到项目中。这是新版本Keil软件新增加的功能。在使用C语言编程且要修改启动代码时可以选择“是”,在使用汇编语言进行编程时可以选择“否”,如图1-8所示。选择好后回到主界面,此时工程已建立。图1-8询问界面②新建、添加文件。接下来再为工程新建一个文件。一般应把工程与源文件建立在同一个文件夹中。可以将一个已在其他编辑器中写好的源程序加入工程,也可以从建立一个空白的源程序文件开始。
点击“文件/新建”创建源程序文件并输入程序代码,如图1-9所示。图1-9创建源程序文件在文本框中输入源程序。在此写入汇编程序,如图1-10所示。图1-10输入源程序然后点击“文件/另存为”保存文件,为文件起一个名字,这里命名为“xiaodeng.a”。注意文件的扩展名不能省略,且后缀必须是“.a”,如图1-11所示。图1-11保存文件点击“保存”,出现如图1-12所示的界面。图1-12保存后的源文件点击“视图”菜单栏中的“项目窗口”选项,弹出项目工作区(若已有项目工作区,则不用点击“视图”菜单栏中的“项目窗口”选项),将项目工作区中“目标1”前面的“+”号展开,在其下面的字符“源代码组1”上点击鼠标右键,再点击“添加文件到组‘源代码组1’”,如图1-13所示。图1-13为工程添加文件弹出如图1-14所示的对话框,在文件类型中点击“Asm源文件”,找到刚才新建的“xiaodeng.a”文件,然后点击
“添加”。
图1-14加入文件对话框只需要加入一次就够了,如果再次重复加入,将出现如图1-15所示的提示框,这时直接点击“确定”即可。
图1-15重复加入文件的提示添加文件完毕,文件夹“源代码组1”前面就有了一个
“+”号,点击该“+”号展开后,下面就出现了一个名为“xiaodeng.a”的文件,如图1-16所示,说明已经成功加入
文件。
图1-16成功加入文件③工程的设置。工程建立好后,还要对工程进行进一步的设置,以满足每个工程的个性化要求。
其具体做法是:将鼠标移到“目标1”上,点击右键,
再点击“为目标‘目标1’设置选项”(如图1-17所示),弹出如图1-18所示的窗口。图1-17为目标设置选项图1-18为目标设置选项的界面点击“输出”菜单,在新弹出的如图1-19所示的窗口中,一定要确保“产生HEX文件”前面的小方格内有“√”,即选中该项。在“执行的名字”方框中为生成的HEX文件起名字,在此输入与源文件一样的名字“xiaodeng”,然后点击“确定”。图1-19“输出”菜单的设置点击“调试”菜单,如图1-20所示。在此菜单中可选择是使用硬件仿真,还是软件仿真。图1-20选择仿真模式④编译、链接。在设置好工程后,即可进行编译、链接。有关编译、链接、工程设置的工具栏按钮如图1-21所示。图1-21有关编译、链接、工程设置的工具栏图1-21中,各按钮说明如下:
编译/汇编当前文件:使用A51汇编器或C51编译器对源程序进行编译/汇编处理,得到可浮动地址的目标代码。
建立目标文件:根据编译/汇编得到的目标文件调用有关库模块,链接产生绝对地址的目标文件。如果在上次编译/汇编过后,又对源程序做了修改,应先对源程序进行编译/汇编,然后再链接。重建全部:对工程中的所有文件先进行重新编译/汇编处理,再进行链接以产生目标代码。使用该按钮可以防止由于一些意外情况(如系统日期不正确)造成的源文件与目标代码不一致。
停止建立:在建立目标文件的过程中,可以单击该按钮停止这一工作。点击对项目文件进行编译时,将使用编译链接装载功能对源程序进行编译和语法检查,编译过程中的信息将出现在输出窗口中的Build页中。如果源程序中有语法错误,则会出现错误报告。双击错误报告行,可以定位到错误的源程序的相应行。应注意,若有错误时必须按提示排错。当出现图1-22所示的画面时,说明编译成功,目标文件“xiaodeng.hex”已经生成,结果中还给出了内部RAM使用量(8B)、外部RAM使用量(0B)、目标代码量的大小(68B)。图1-22编译、链接后得到正确的结果在这一过程中,还会生成一些其他文件,产生的目标
文件被用于Keil软件的仿真与调试,此时可进入下一步调试工作。
步骤5:程序固化(芯片烧录)。通过编译链接装载后形成的*.HEX目标文件,可通过编程器烧写到单片机中,然后将烧写好的单片机插到电路板上,一接通电源就可以工作了。步骤6:联机仿真调试。参照图1-23,将单片机仿真器、单片机应用系统、(目标板)及PC机连接起来。图1-23仿真器的连接方法在完成步骤4的基础上,即程序编译装载无误后,就可以进行程序的仿真调试运行了。
在“为目标‘目标1’设置选项”窗口中,点击“调试”菜单,可选择仿真模式,即硬件仿真或软件仿真。在此,因要连接目标板,故选择硬件仿真。点击硬件仿真选项后面的“设置”选项,在此对话框中选择串口和波特率。串口根据所连接的电脑来决定,如图1-24所示。图1-24硬件仿真模式的设置点击“调试”菜单下的“启动/停止调试”,进入调试界面,如图1-25所示。图1-25启动调试界面在调试界面中可选择调试程序的方式。调试程序的方式有三种:全速运行、单步运行、宏单步运行。单步运行与宏单步运行的区别在于前者步入调用的子程序运行,而后者不步入调用的子程序运行。点击图1-26所示的全速运行按钮,即可对程序进行全速运行的调试,这样就可以看到单只LED在闪烁了。图1-26调试界面
1.3任务相关知识
1.3.1微型计算机与单片机
一般来说,微型计算机包括中央处理器(CPU)、存储器(Memory)及输入/输出单元(I/O)三大部分,如图1-27所示。CPU就像是人的大脑,控制着整个系统的运行;存储器则存放系统运行所需要的程序及数据;I/O是微型计算机与外部沟通的通道,其中包括输出口与输入口。图1-27基本微型计算机结构何为单片机呢?将CPU、存储器、I/O口等全部放置在一块集成电路芯片中,这块芯片称为单片(单芯片)机,如图1-28所示。有一些单片机中除了上述部分外,还集成了其他部分如A/D、D/A等。单片机只要再配置几个小器件,如电阻、电容、石英晶体、连接器等,即成为完整的微型计算机。图1-28单片机微控制器结构1.3.2单片机产品分类
(1) 8051系列单片机产品繁多,主流地位已经形成。
MCS-51是Intel公司生产的一个单片机系列产品名称,人们习惯用8051来称呼MCS-51系列单片机。Intel公司把单片机的内核,即8051内核,以出售或互换专利的方式授权给一些公司,如Atmel、Philips、NEC等。
MCS-51单片机有以下两种分类方法:
①按芯片的半导体制造工艺划分,可以分为HMOS工艺型单片机和CHMOS工艺型单片机两类。在产品型号中凡带有字母“C”的,即为CHMOS芯片;不带有字母“C”的,即为HMOS芯片。HMOS芯片的电平与TTL电平兼容,如8051/8751/8031;而CHMOS芯片的电平既与TTL电平兼容,又与CMOS电平兼容,如80C51/87C51/80C31。②按芯片内不同容量的存储器配置划分,可以分为51子系列单片机和52子系列单片机。52子系列可以说是51子系列的增强型,其最大的特色就是内部存储器容量更大,增加了一个定时器/计数器。51子系列单片机的最后一位数字以“1”作为标志,如8051/8751/8031、80C51/87C51/80C31为基本型。52子系列单片机的最后一位数字以“2”作为标志,如8052/8752/8032、80C52/87C52/80C32为增强型。
(2)非8051系列单片机不断推出,给用户提供了更为广泛的选择空间。
单片机芯片生产商也推出了一些非8051结构的产品,影响比较大的有:Intel公司推出的MCS-96系列16位单片机,Microchip公司推出的PIC系列RISC结构单片机,TI公司推出的MSP430F系列16位低电压、低功耗单片机,Atmel公司推出的AVR系列RISC结构单片机。1.3.38051的基本结构
8051单片机发展至今,虽然有许多厂商各自开发不同的兼容芯片,但其基本结构并没有多大的变动。标准的8051结构如图1-29所示。图1-298051内部基本结构示意图
8051为8位控制器,其中包括:
程序存储器ROM:内部有4KB、外部最多可扩展至
64KB。
数据存储器RAM:内部有128B、外部最多可扩展至
64KB。
4组可位寻址的8位输入/输出端口,即P0、P1、P2及P3。
1个全双工串行口,即UART;两个16位定时器/计数器。
5个中断源,即INT0、INT1、T0、T1、TXD/RXD。1.3.489S51的封装与引脚
PDIP40为40个引脚的双并排针脚式封装,刚好可插在面包板或40脚的底座上。其左上方有记号的为1脚,然后逆时针排序,分别为第2、3、…、40脚。相邻两个脚的间距为2.540mm,器件长度为52.578mm,而两排引脚的间距为15.875mm,器件厚度为4.826mm(不含引脚),特别适合高校和培训机构使用。图1-30所示为89S51单片机实物图(PDIP40封装),图1-31为89S51单片机PDIP40封装引脚图。图1-3089S51单片机实物图图1-3189S51单片机PDIP40封装引脚图
89S51型号的含义如图1-32所示。图1-3289S51型号的含义1.3.5单片机最小应用系统
89S51工作不可或缺的基本连接电路包括三部分,即电源电路、时钟电路和复位电路。
1.电源电路
没有电路不需要电源的,89S51电路也是如此。首先将第40脚接VCC,也就是 +5 V电源,第20脚接地GND。
2.时钟电路
8051内部已具备振荡电路,只要在GND引脚上方的两个引脚(第18、19脚)连接简单的石英振荡晶体(Crystal,简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号,如图1-33所示。图中电容器C1和C2的作用是稳定频率和快速起振,电容值为5~30pF,典型值为30pF。89S51的工作频率为0~24MHz,而华邦电子(Winbond)提供了40MHz的版本。图1-33使用内部振荡器的时钟电路如果非得自行设计一个电路,或者要求多片单片机同时工作,可采用把外部已有的时钟信号引入到单片机内来实现,如图1-34所示。图1-34使用外部时钟脉冲产生电路
3.复位电路
单片机在启动运行前必须进行复位操作,使CPU和系统中其他部件都处于一个确定的初始状态,单片机从这个状态开始工作。89S51的复位引脚(RST)是第9脚,当此引脚连接高电平超过两个机器周期(1个机器周期包含12个时钟脉冲,在“时序分析”环节会再学习)时,即可产生复位操作。复位操作有两种基本形式,一种是上电复位(见图1-35(a)),另一种是上电与按键均有效的复位(如图1-35(b)所示)。图1-35复位操作的两种基本形式接上电源的瞬间,电容C上没有电荷,相当于短路,所以第9脚直接连接到VCC,即89S51执行复位操作。然后电源通过电阻R对电容C充电,电容上的电压逐渐增加,而第9脚上的电压逐渐下降。当第9脚上的电压降至低电平时,89S51即恢复正常状态,称之为上电复位(PowerOnReset)。在此使用10kΩ电阻、10μF电容,其时间常数远大于1μs,所以第9脚上的电压可保持2μs以上的高电平,足以使系统复位。当然,只要时间常数大于2μs即可,而不一定非要使用10kΩ电阻和10μF电容。通常还会在电容两端并接一个按钮开关,如图1-35(b)所示,此按钮开关就是一个手动的复位开关(强制复位)。单片机实质上是一个芯片。图1-36所示为最小的单片机应用系统。在实际应用中,通常很难将单片机直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统,如图1-37所示。单片机应用系统的设计人员必须从硬件和软件两个角度来深入了解单片机,并能够将二者有机结合起来,才能形成具有特定功能的应用系统或整机产品。图1-36最小的单片机应用系统
图1-37单片机应用系统1.3.6单片机的特点与应用
1.单片机的特点
(1)有优异的性能价格比。
(2)集成度高、体积小、可靠性高。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。
(3)控制功能强。单片机的逻辑控制功能及运行速度均高于同一档次的微机。
(4)低功耗、低电压,是一种便于生产的便携式产品。
(5)外部总线增加了IC(Inter-IntegratedCircuit)及SPI
(Serial
Peripheral
Interface)等串行总线方式,进一步缩小了体积,简化了结构。
(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。
2.单片机的应用
(1)在智能化家用电器中的应用。洗衣机、空调、电视机、录像机、微波炉、电冰箱、电饭煲、电子玩具等家用电器产品配上单片机后,提高了智能化程度,增加了功能,深受人们喜爱。
(2)在智能仪器、仪表中的应用。在结合不同类型的传感器后,单片机可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度和压力等物理量的测量。由于单片机具有超小型化的特点,并且有无可比拟的高性价比,从而为仪器、仪表的智能化提供了可能。
(3)在实时控制中的应用。在工厂测控、航空航天、机器人等方面都可以用单片机作为控制器。单片机可使系统保持在最佳工作状态,从而大大提高了系统的工作效率和产品质量。
(4)在商业营销设备中的应用。在商业营销系统中已广泛使用的电子秤、收款机、条形码阅读器、IC卡刷卡机、出租车计价器,以及仓储安全监测系统、商场保安系统、空气调节系统、冷冻保险系统等都采用了单片机进行控制。
(5)在汽车电子产品中的应用。现代汽车的集中显示系统、动力监
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论