版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、白驹珩 雷晓平 编著,高等学校电子信息类规划教材 单片计算机及其应用 第二版 白驹珩 雷晓平 编著, 版权所有 侵权必究 邮购本书请与本社发行科联系。电话:(028)83201495 邮编:610054 本书如有缺页、破损、装订错误,请寄回印刷厂调换。,目录,第一章 绪论 第二章 MCS-51单片机的结构和原理 第三章 MCS-51单片机的指令系统第四章 MCS-51单片机的应用程序设计 第五章 MCS-51单片机内部定时/计数器及其应用第六章 MCS-51单片机的系统扩展 第七章 MCS-51系统的串行接口 第八章 MCS-51单片机的中断系统 第九章 单片机应用系统的组成 第十章 I2C总
2、线技术及其应用 第十一章 单片机应用系统的开发第十二章 新型的MCS-51兼容单片机简介 第十三章 8098准16位单片机简介,第一章 绪论 1-1 单片机的结构特点 1-2 单片机的主要品种及系列 1-3 单片机的应用 1-4 单片机与嵌入式系统 1-5 单片机技术的发展趋势,1-1 单片机的结构特点,单片机是在一块大规模集成电路(LSI)或超大规模集成电路(VLSI)芯片上集成的一台具有一定规模的微型计算机,它在硬件结构和指令设置上有其独到之处。,1-2 单片机的主要品种及系列,一、4位单片机,4位单片机的主要生产国是日本,如SHARP公司的SM系列、东芝公司的TLCS系列、NEC公司的m
3、COM 75和mPD75系列等。此外,美国TI公司的TMS1000和NS公司的COP400系列也占一定的市场。国内已能生产COP400的4位单片机。 4位单片机的特点是价格便宜,但功能并不弱,只是CPU为4位。其存储器有片内ROM为2KB,RAM为1284b的。NEC公司的mPD75的片内ROM可达8KB,RAM为5124b,还带有6位A/D转换。 4位单片机主要用于控制诸如洗衣机、微波炉等家用电器及高档电子玩具。,二、8位单片机,8位机已成为单片机中的主要机型。在8位单片机中,一般把无串行I/O接口和只提供小范围的寻址空间(小于8KB)的单片机称为低档的8位单片机;把带有串行I/O接口或A/
4、D转换,以及可以进行64KB以上寻址的单片机,称为高档8位单片机。近来,在高档8位单片机的基础上又出现了超8位单片机。它们不但进一步扩大了片内ROM和RAM的容量,而且还增加了高级通信、DMA传送和高速I/O的功能。,三、16位单片机,8,4,3,2,8,2,四、32位单片机,32位单片机的字长为32位,属单片机的顶级产品。它具有极高的运算速度。这类单片机的代表产品有Motorola公司的M68300系列机、日立公司的SH系列机以及英国Inmos公司的IM-ST414等。在满足高速数字处理方面,32位机将发挥重要作用。,1-3 单片机的应用,由于单片机具有下述一些特点,因而使得单片机的应用模式
5、多、 应用范围广。这些特点是:,(1)小巧、低功耗、低成本、控制功能强、易于产品化,因而能方便地组装成各种智能式控制设备和仪器,做到机、电、仪一体化; (2)面向控制,能有针对性地解决从简单到复杂的各类控制问题,因而获得最佳的性能价格比; (3)抗干扰能力强,适应温度范围宽,在各种恶劣环境下都能可靠地工作; (4)可以方便地实现多机和分布式控制,从而使整个控制系统的效率和可靠性大为提高。,一、单片机的应用领域及应用模式,1单机应用,(1)智能产品 (2)智能仪表 (3)测控系统 (4)数控控制机 (5)智能接口,2多机应用,(1)功能弥散系统,(2)并行多机处理系统,(3)局部网络系统,二、单
6、片机的供应状态,1片内ROM配置状态 2片内EPROM配置状态 3片内无ROM配置状态 4OTP(One Time Programmable)ROM供应状态5Flash ROM供应状态,三、单片机产品的等级,在过去,把微处理器及与其有关的元器件分为两级:商用级及军用级。商用级的微处理器产品主要限于机房及办公室环境,温度范围为070。军用级运用的环境条件苛刻,温度范围为 - 50 + 125。工业应用环境的温度介于商用和军用之间,这就产生了工业级产品,其运行温度范围为 - 45 + 85。工业级产品的可靠性较商用级的高,价格较军用级的低,采用密封封装。单片机属于工业级产品,其可靠性较高。,1-4
7、 单片机与嵌入式系统,一、什么是嵌入式系统,从狭义的角度而言,人们一般将埋藏在宿主设备中专用的、使用者不可见的微处理器系统称为嵌入式系统。 从广义的角度来说,计算机可以作为某种技术过程的核心处理环节直接与真实世界自然地接口与互动,并按照环境事件的节拍主动、协调地做出响应。也就是说,计算机嵌入到了一个技术过程之中,从而成为一种嵌入式计算机。我们将实现这种技术过程的系统叫做嵌入式系统。,二、嵌入式系统的由来,(1)面对控制对象。面对物理量传感变换的信号输入;面对人机交互的操作控制;面对对象的伺服驱动控制。 (2)嵌入到工业控制应用系统中的结构形态。 (3)能在工业现场环境中可靠运行的可靠性品质。
8、(4)突出控制功能。对外部信息及时捕捉;对控制对象能灵活地实时控制;有突出控制功能的指令系统,如I/O口控制、位操作以及丰富的转移指令等。,三、嵌入式系统的种类,1工控机 2通用CPU模块 3嵌入式微处理器 4单片机(微控制器),四、单片机是经典的嵌入式系统,单片机从体系结构到指令系统都是按照嵌入式应用的特点进行设计的,因此,它能最好地满足面对控制对象、应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。单片机应该是经典的嵌入式系统,也是发展最快、品种最多、数量最大的嵌入式系统。,五、嵌入式系统的特点及其典型应用,1特点,(1)目的性和针对性。即对每一套嵌入式系统都是针对其特殊的应用场合与
9、特定功能来进行开发设计的。这也是嵌入式系统与通用的计算机系统的主要区别。 (2)实时性。从本质上讲,嵌入式系统的计算机总是处于实时的计算模式,也即嵌入式技术与实时性总是存在着某种内在的联系。由于嵌入式系统是为特定的目的而设计的,它常常受到空间、存储、带宽以及成本等条件的制约,因此,设计者必须最大限度地在硬件和软件两方面为系统“量身定做”,以提高系统的效率。这样做的结果会最终导致实时性的增强。,2典型应用,(1)过程控制。 (2)网络通信。 (3)智能仪器。 (4)消费电子。 (5)计算机外部设备。 (6)军事电子。,1-5 单片机技术的发展趋势,一、大力提升主流型单片机的技术性能,1增强CPU
10、的功能 2增加内部资源 3低电压和低功耗,二、单片机和模糊逻辑相结合,为了满足模糊控制的要求和发展,厂家纷纷推出模糊控制开发的软件系统。这类软件一般采用神经网络的学习功能,通过重复、计算等过程,并利用用户设定的隶属函数的控制规划来产生较合适的输出控制信号。一般而言,模糊开发软件能产生控制所需的目标代码。,三、大力发展专用型单片机,专用型单片机就是针对某一类应用对象的要求而设计的单片机。目前,家用电器、仪器仪表、医疗诊断检测设备等的品种层出不穷,且对其智能化程度的要求也越来越高,这就意味着单片机将面临一个量大而面广的应用领域,从而迫使单片机逐渐趋向专用化。使用专用单片机可最大限度地简化系统结构,
11、资源利用的效率也最高,在大批量使用时有可观的经济效益和可靠性效益。,四、全盘CMOS化趋势,CMOS器件的可贵品质是具有极低的静态功耗(所谓本质低功耗)、集成度高、数字逻辑噪声容限大。而且,由于其静、动态功耗差别大,使得很容易实现对其单个器件及整机系统的功耗管理。其实,CMOS工艺很早就已出现,只是由于CMOS器件的运行速度较慢而招致长期被冷落。HCMOS工艺出现后,HCMOS器件得到了飞速的发展。这里所说的全盘CMOS化是指在HCMOS基础上的CMOS化。,五、实现全面的功耗管理,(1)传统的CMOS单片机低功耗运行方式。 (2)双时钟技术。 (3)高速时钟下的分频或低速时钟下的倍频控制运行
12、技术。 (4)实行对外围电路的电源管理。 (5)低电压供电技术。,六、采用RISC体系结构,早期的单片机大多是CISC(复杂指令系统计算机)的体系结构,其结果是导致指令复杂,指令代码和所需的周期数不统一,因而指令的运行很难实现流水线操作,也就大大阻碍了运行速度的提高。采用RISC(精简指令系统计算机)的体系结构,可以使指令系统中的绝大部分指令成为单周期指令。如果再适当增加程序存储器的宽度(例如从8位增加到10位、12位、14位)使得可以实现这样的存储方式:一个地址单元存放一条指令且很容易实现指令的并行流水线操作,其结果是大大提高指令的运行速度。目前,在一些采用RISC体系结构的单片机中已达到了
13、在一个时钟周期内执行一条指令的运行速度。,七、片内EPROM的Flash Memory化,(1)系统在开发过程中可以十分容易地进行程序的修改,从而大大缩短程序的开发周期。 (2)在系统工作过程中,能有效地保存一些数据信息,即使外界电源损坏也不会丢失所保存的信息。 (3)为最终取消外部存储器扩展奠定了基础。,八、推行串行扩展总线,目前,外围器件接口技术发展的一个重要方面是串行接口的发展。采用串行接口可以大大减少芯片引脚的数量,简化系统的结构。采用串行接口虽然较之并行接口在数据传输速度上有所减缓,但由于串行传输速度的不断提高,加之单片机面对对象的有限速度要求,使得单片机应用系统中的串行扩展技术仍然
14、获得很大的发展。随着外围电路串行接口技术的发展,以及单片机串行扩展接口设置的普遍化、高速化,以及由于在片Flash Memory使可以免去外部扩展EPROM等因素,导致了单片机的并行接口技术日趋衰退。目前许多原来带有并行总线的单片机系列,都推出了不少删去了并行总线的非总线单片机。,第二章 MCS-51单片机的结构和原理 2-1 关于MCS-51系列 2-2 MCS-51单片机的结构原理 2-3 MCS-51单片机的引脚及其片 外总线结构 2-4 MCS-51单片机的工作方式 2-5 MCS-51单片机的时序,2-1 关于MCS-51系列,MCS-51的主要特点: 单 + 5V供电,40脚封装;
15、 8位CPU; 片内有振荡器电路和时钟电路; 32根I/O线; 64KB外部数据存储器地址空间; 64KB外部程序存储器地址空间; 2个16位定时/计数器(8032/8052为3个); 具有2个优先级别的5个中断源结构(8032/8052为6个); 可编程全双工串行通道; 布尔处理器; 128个用户位可寻址单元。,2-2 MCS-51单片机的结构原理,一、MCS-51单片机的基本组成,每一单片机包括: 中央处理器CPU。 内部数据存储器RAM,用以存放可以读、写的数据,如运算的中间结果和最终结果等。 内部指令存储器ROM,用以存放程序,亦可存放一些原始数据和表格,但也有一些单片机的内部是不带R
16、OM的4个8位输入/输出接口。每个口既可以用做输入,也可以用做输出。,2个或3个定时/计数器。可以用来对外部事件进行计数,也可以设置成定时器,并根据计数或定时的结果对计算机进行控制。 内部中断控制系统。 1个串行接口电路,使得数据可以一位一位地在计算机与外设之间传送。 内部时钟产生电路,但晶体和微调电容需要外接。最高允许振荡频率为12MHz。,二、8051单片机的内部结构,1存储器的组织形式,256B的片内数据存储器地址空间; 64KB的片外数据存储器地址空间; 64KB的程序存储器地址空间。,(1)程序存储器地址空间,一般情况下,在8051程序存储器的64KB地址空间中,最低的4KB(000
17、0H0FFFH)对于片内ROM和片外ROM是公共的,而1000HFFFFH地址空间为片外ROM专用。CPU专门提供一个控制信号来区分片内ROM和片外ROM的公用地址空间:当接高电平时,单片机从片内ROM的4KB地址空间取指令,当地址超过0FFFH后,则自动地转向片外ROM取指令;当接低电平时,CPU只从片外ROM取指令。,(2)数据存储器地址空间,CPU:ACC,B,PSW,SP,DPTR(由两个8位寄存器DPL和DPH组成); 并行口:P0,P1,P2,P3; 中断系统:IE,IP; 定时/计数器:TMOD,TCON,T0,T1(分别由TL0、TH0和TL1、TH1组成); 串行口:SCON
18、,SBUF,PCON。,2CPU,CY:进位标志。当有进位或借位时CY = 1;否则CY = 0。 AC:辅助进位标志。当D3向D4有进位或借位时AC = 1;否则AC = 0。 F0:用户标志。用户可以根据需要对F0赋予一定的含义,并依据F0 = 0或F0 = 1来决定程序的执行方式。 RS1,RS0:工作寄存器组选择控制。由这两位的值决定选择哪一组工作寄存器。 OV:溢出标志。当运算结果超出 - 128 + 127的范围时OV = 1;否则OV = 0。 P:奇偶校验标志。每条指令执行完后,都按照ACC中1的个数来决定P值:当1的个数为奇数时P = 1;否则P = 0。 PSW.1:程序状
19、态字的第1位。该位的含义没有定义,若用户要使用这一位,可直接使用PSW.1的位地址。PSW寄存器除具有字节地址外,还具有位地址。,3并行I/O口,1)P0口的位结构,2)P1口的位结构,3)P2口的位结构,4)P3口的位结构,根据以上所述,对P0P3口概括如下:,(1)从应用功能上看: (2)从负载能力看,P0口的负载能力最强,其输出驱动器能驱动8个LSTTL输入;P1P3口的负载能力减半,只能驱动4个LSTTL输入。 (3)在访问外部存储器时,P0口是一个真正的双向口。 (4)每个I/O口均有两种读入方式,即读锁存器和读引脚,并各自有相应的指令。 (5)当系统复位时,P0P3口的锁存器均置1
20、。,2-3 MCS-51单片机的引脚及其片外总线结构,一、管脚功能,1I/O口线,具有P0,P1,P2,P3 4个8位口,但这些I/O口线不能都作为用户的I/O口线使用。除8051/8751外,真正可以完全为用户使用的I/O口线,只有P1口以及部分作为第一功能使用时的P3口。,2控制口线,PSEN:外部取指控制。在访问外部ROM时,信号会自动产生。 ALE/PROG:ALE是地址锁存允许信号。在访问外部存储器(RAM或ROM)时,用它来锁存P0口送出的低8位地址信号。第二功能是在对8751的EPROM编程时,编程脉冲的输入端。 EA/VPP:是访问外部存储器的控制信号。当无效(高电平)时,访问
21、内部ROM;当有效(低电平)时,访问外部ROM。第二功能VPP为对8751 EPROM的21V编程电源的输入。 RST/VPD:RST是复位信号输入端,第二功能VPD是备用电源输入端。当主电源发生故障而突然下降或断电时,VPD将为片内RAM提供备用电源,以保证存储在RAM中的信息不至丢失。,3电源及时钟,VCC:电源端。 VSS:接地端。 XTAL1,XTAL2:对于HMOS芯片来说,当使用单片机内部振荡电路时,这两个端子用来外接石英晶体和微调电容.,二、片外三总线结构,1地址总线(AB) 地址总线宽度为16位,因此,外部存储器直接寻址范围为64KB。由P0口经地址锁存器提供16位地址总线的低
22、8位地址(A7A0),而由P2口直接提供高8位地址(A15A8)。 2数据总线(DB) 数据总线宽度为8位,由P0口提供。 3控制总线(CB) 控制总线由第二功能状态下的P3口和4根独立控制线RST、ALE及组成。,2-4 MCS-51单片机的工作方式,一、复位方式,8051复位电路的结构示。复位引脚RST/VPD通过片内一个施密特触发器(抑制噪声作用)与片内复位电路相连。在每个机器周期的S5P2由复位电路对施密特触发器的输出采样一次。当振荡电路工作,并且在RST引脚加上一个至少保持两个机器周期的高电平时,就能使8051完成一次复位。,二、程序执行方式,程序执行方式是单片机的基本工作方式。所执
23、行的程序可以放在内部ROM、外部ROM,或同时放在内部ROM和外部ROM中。由于复位之后PC = 0000H,所以程序的执行总是从0000H单元开始的,但是,用户的程序一般不可能从0000H单元开始存放。因此,需要从0000H单元开始存放一条转移指令,以使执行转移到用户程序的入口地址。,三、单步执行方式,所谓单步执行,是指在外界脉冲的控制下,使单片机每次只执行一条指令之后就暂停下来的执行方式。因此,单步执行是单片机暂停连续运行而又不复位的一种工作方式。它是调试程序、跟踪程序执行,以了解程序执行流程的一种有效手段。,四、掉电和节电方式,1HMOS单片机的掉电方式,由于HMOS工艺芯片本身的功耗较
24、大,因此,对这类芯片没有设置低功耗运行方式;但是,为了减少应用系统的功耗,设置了掉电操作方式。即当单片机处于正常运行状态时,片内RAM由主电源VCC供电。若RST/VPD端接有备用电源,则当VCC掉电时,此备用电源可以维持内部RAM中的数据不丢失。由于RAM的耗电仅为正常操作时耗电的10%左右,所以,常可以用干电池作为备用电源。,2CHMOS的节电运行方式,1)等待工作方式,当将PCON.0置位的指令执行后,单片机就进入了等待工作方式。这时,通往CPU的内部时钟信号被门控电路所封锁,CPU进入等待状态,但内部时钟信号仍继续供给中断系统、串行口和定时器。CPU的全部状态在等待期间都被保留起来,它
25、们是:堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC以及所有的工作寄存器。,2)掉电保护方式,在执行置位PCON.1位( PD = 1) 指令后,8051便进入掉电保护运行方式。在这种方式下,片内振荡器停止工作。由于时钟被冻结,使得一切功能都停止,只有片内RAM和特殊功能寄存器中的内容被保存下来。,五、编程和校验方式,1内部EPROM编程,P1口和P2口的P2.3P2.0为EPROM的4K地址输入,P1口为低8位地址。 P0口为编程数据输入。 P2.6P2.4以及应为低电平,P2.7和RST为高电平。,2EPROM程序校验,3程序存储器的保险位,在8751内部有一个保险位,亦称保
26、密位。一旦设置好该位,就建立了保险。设置保险位的过程,除了将P2.6脚改为加TTL高电平外,其余和正常编程时一样。由于不需要单元地址和程序数据,所以P0、P1和P2.3P2.0可为任意状态。,2-5 MCS-51单片机的时序,一、机器周期、状态和指令周期,二、MCS-51指令的取指/执行时序,对于任何一条指令的处理,都包括取指和执行两个阶段。在取指阶段,CPU从内部或外部ROM中取出指令操作码及操作数,然后执行这条指令的逻辑功能。对于绝大部分指令,在整个指令执行过程中,ALE信号是周期性地出现的。在每一个机器周期中,ALE信号出现两次,出现的时刻为S1P2和S4P2,信号的有效宽度为一个S状态
27、。每出现一次ALE信号,CPU就进行一次取指操作。,三、访问外部ROM和外部RAM的时序,(1)在S1P2时刻ALE信号有效。 (2)从P0口送出ROM单元的低8位地址,从P2口送出其高8位地址。A7A0只持续到S2结束,故在外部要用锁存器锁存,可用ALE作为锁存信号。A15A8在整个读指令过程中都保持有效,到S2P2前ALE失效。 (3)在S3P1时刻开始有效,可用它来选通外部ROM的使能端,被选中的ROM单元的内容,即指令,从P0口读入CPU,然后失效。 (4)在S4P2后开始第二次读入,其过程与第一次的相同。,第三章 MCS-51单片机的指令系统 3-1 指令的格式及标识 3-2 寻址方
28、式 3-3 MCS-51指令系统的分类 3-4 MCS-51的伪指令,3-1 指令的格式及标识,一、指令的格式,标号:操作码助记符目的操作数,源操作数;注释,操作码助记符和目的操作数、源操作数是指令的核心部分,标号是该指令的符号地址,注释是对该指令的解释。方括号中的内容不是每条指令都必须齐全的,它们的有无因指令而异。,二、指令中的符号标识,Rn:工作寄存器,n = 07。 Ri:工作寄存器,i = 0,1。 Ri:间接寻址的8位片内RAM单元地址(00HFFH)。 #data:8位常数。 #data 16:16位常数。 addr 16:16位目标地址,用于LCALL和LJMP指令,能调用或转移
29、到64KB程序存储器地址空间的任何地方。 addr 11:11位目标地址,用于ACALL和AJMP指令,可在下条指令所在的2KB页面内调用或转移。 rel:带符号的8位偏移地址,用于SJMP和所有条件转移指令,其范围是相对于下条指令第一字节地址的 - 128 + 127B。 bit:特殊功能寄存器的可寻址位。 direct:直接地址,其范围为片内RAM单元(00H7FH)和80HFFH中的特殊功能寄存器。,三、关于注释,(A)(Rn):表示把Rn中的内容送到A中。 (直接地址)(Ri):表示把R0或R1所指示的单元的内容送到某直接地址中去。 (DPTR)立即数150:表示把一个16位的常数或地
30、址送到DPTR中。,3-2 寻 址 方 式,一、寄存器寻址,寄存器寻址就是以通用寄存器的内容作为操作数。在指令的助记符号中直接以寄存器的名字来表示操作数的地址。 在MCS-51的CPU中,并没有专门的硬件通用寄存器,而是把片内数据RAM中的一部分(00H1FH)作为工作寄存器来使用,每次可以使用其中的一组,并以R0R7来命名。,二、直接寻址,内部数据RAM的低128B。例如: MOV A,78H ORL A,77H 其中,77H和78H都是某单元的地址。 特殊功能寄存器。例如: MOV TCON,A MOV SBUF,A 其中,TCON和SBUF都是属于特殊功能寄存器,它们所代表的直接地址是8
31、8H和99H。特殊功能寄存器只能用这种方式寻址。 特殊功能寄存器中可位寻址的位地址空间。例如: SETB EX0 SETB EA 其中,EX0和EA分别是IE寄存器的第0位和第7位,它们相应的直接位地址是A8H和AFH。 内部数据RAM地址空间子集的128位(位地址空间)。例如: MOV C,7EH SETB 20H,三、立即寻址,若操作数以指令字节的形式存放于程序存储器中,就称为立即寻址。在MCS-51系统中,用“#”符号放在立即数前面,以表示该寻址方式为立即数寻址。例如指令: MOV A,#3AH 其含义是把操作数3AH直接送到A中,用符号表示为(A)3AH。8位立即数表示为#data。
32、在MCS-51系统中,只有一条16位立即数指令,即 MOV DPTR,#data 16 其功能是将16位立即数送到数据指针寄存器DPTR中。,四、寄存器间接寻址,由指令中指出某一个寄存器的内容作为操作数的地址,这种寻址方式称为寄存器间接寻址。寄存器间接寻址,使用当前工作寄存器组中的R0或R1作为存放操作数单元的地址指针。这种寻址方式可用于访问内部RAM的256个单元(00HFFH)(对8051为128个单元,即00H7FH),或外部RAM的低256个单元;但是,如果要对全部64KB的外部RAM进行访问,则要使用DPTR数据指针作间接寻址才可能。在MCS-51系统中,用在寄存器名前加符号的方式来
33、表示寄存器间接寻址。,五、变址寻址,变址寻址是这样一种寻址方式:以某个寄存器的内容为基本地址,然后在这个基本地址的基础上加上地址偏移量才是真正的操作数地址。在MCS-51系统中没有专门的变址寄存器,而是采用数据指针DPTR或者程序计数器PC的内容作为基本地址,地址偏移量则是累加器A的内容,并以DPTR或者PC的内容与A的内容之和作为实际的操作数地址。,六、相对寻址,它是以PC的当前值为基准,加上指令中给出的相对偏移量rel形成有效的转移地址的。这里所说的当前PC值,是指执行完相对转移指令后的PC值。一般将相对转移指令所在的地址称为源地址,转移后的地址称为目的地址,故有: 目的地址 = 源地址
34、+转移指令字节数 + rel,七、位寻址,在MCS-51系统中,位地址的表示可以采用以下几种方式: (1)直接使用00HFFH范围内的某一位的位地址来表示。 (2)采用第几单元第几位的表示方法,例如,25H.5表示25H单元的D5位。这种表示方法可以避免查表或计算,比较方便。 (3)对于特殊功能寄存器,可直接用寄存器名加位数的表示法,例如TCON.3,P1.0等。,3-3 MCS-51指令系统的分类,按照指令的功能, 可以把MCS-51的111条指令分成5类: (1)数据传送类(29条); (2)算术操作类(24条); (3)逻辑操作类(24条); (4)控制程序转移类(17条); (5)布尔
35、变量操作类(17条)。,一、数据传送类指令,1以累加器A为目的操作数的指令,其汇编格式如下: MOV A,Rn;n = 07,把Rn中的数据送到A中 MOV A,direct;将内部RAM单元或特殊功能寄存器的数据送到A中 MOV A,Ri;i = 01。将内部RAM单元的数据送到A中 MOV A,#data ;将立即数送到A中 例如: MOV A,R6;(A)(R6) MOV A,70H;(A)(70H) MOV A,R0;(A)(R0) MOV A,#78H;(A)78H,2以Rn为目的操作数的指令,MOV Rn,A ;n = 07,将A中的数据送到寄存器 MOV Rn,direct ;n
36、 = 07,将内部RAM单元或特殊功能寄存器中的数据送到寄存器 MOV Rn,#data ;n = 07,将立即数送到寄存器,3以直接地址为目的操作数的指令,MOV direct,A MOV direct,Rn MOV direct,direct MOV direct,Ri MOV direct,#data,4以寄存器间接地址为目的操作数的指令,MOV Ri,A MOV Ri,direct MOV Ri,#data,516位数据传送指令 MOV DPTR,#data 16;将16位立即数送到数据指针寄存器 6栈操作指令 PUSH direct;(SP)(SP)+ 1,(SP)(direct)
37、POP direct;(direct)(SP),(SP)(SP) - 1,7累加器A与外部数据存储器之间的传送指令,MOVX A,DPTR;将外部RAM单元的数据传送到A MOVX A,Ri;将外部RAM单元的数据传送到A MOVX DPTR,A;将A中的数据传送到外部RAM单元 MOVX Ri,A;将A中的数据传送到外部RAM单元,8查表指令 MOVC A,A + PC;将程序存储器单元的数据送到A中 MOVC A,A + DPTR;将程序存储器单元的数据送到A中 9字节交换指令 XCH A,Rn;(A)(Rn) XCH A,direct;(A)(direct) XCH A,Ri;(A)(R
38、i) XCHD A,Ri;(A30)(Ri 30),10累加器A低4位与高4位交换指令,SWAP A;(A30)(A74),二、算术操作类指令,1加法指令,ADD A,Rn;(A)(A) + (Rn) ADD A,direct;(A)(A) + (direct) ADD A,Ri ;(A)(A) + (Ri) ADD A,#data ;(A)(A) + data,2带进位加法指令,ADDC A,Rn ;(A)(A) + (Rn) + (CY) ADDC A,direct ;(A)(A) + (direct) + (CY) ADDC A,Ri ;(A)(A) + (Ri) + (CY) ADDC
39、 A,#data ;(A)(A) + data + (CY),3加1指令,INC A;(A)(A) + 1 1NC Rn;(Rn)(Rn) + 1 INC direct ;(direct)(direct) + 1 INC Ri;(Ri)(Ri) + 1,4带进位减法指令和减1指令,SUBB A,Rn;(A)(A) - (Rn) - (CY) SUBB A,direct;(A)(A) - (direct) - (CY) SUBB A,Ri;(A)(A) - (Ri) - (CY) SUBB A,#data;(A)(A) - data - (CY),5乘、除指令和其他运算指令,(1)乘除指令。 (
40、2)十进制数调整指令。 (3)数据指针加1指令。,三、逻辑操作类指令,1逻辑与运算指令 2逻辑或运算指令 3逻辑异或运算指令 4累加器清零及取反指令 5移位指令,四、控制程序转移类指令,1无条件转移指令 2条件转移指令 3子程序调用及返回指令 4空操作指令,五、布尔变量操作类指令,1位传送指令 2位清零及位置位指令 3位运算指令 4位控制转移指令,3-4 MCS-51的伪指令,一、指令性语句,指令性语句(可简称指令)是进行汇编语言程序设计的可执行语句,每条指令都产生相应的机器语言的目标代码。源程序的主要功能是由指令性语句去完成的。,二、指示性语句,1ORG(汇编起始地址) 2END(结束汇编)
41、 3EQU(等值) 4DB(定义字节) 5DW(定义字) 6DS(定义存储单元) 7BIT(地址符号命令),第四章 MCS-51单片机的应用程序设计 4-1 运算程序 4-2 数据的拼拆和转换 4-3 查表程序 4-4 散转程序 4-5 I/O端口控制程序4-6 子程序调用时的参数 传递方法,4-1 运 算 程 序,一、多字节数加法,主程序: JAFA:MOV R0,#40H ;指向加数最低位 MOV R1,#50H ;指向另一加数最低位 MOV R2,#04H ;字节数作计数初值 ACALL JASUB ;调用加法子程序 加法子程序: JASUB:CLR C JASUB1:MOV A,R0;
42、取出加数的一个字节 ADDC A,R1;加上另一数的一个字节 MOV R0,A;保存和数 INC R0;指向加数高位 INC R1;指向另一加数高位 DJNZ R2,JASUB1 ;未加完则继续 RET,二、多字节数减法,主程序: JIAN:MOV R0,#40H;指向被减数最低位 MOV R1,#50H;指向减数最低位 MOV R2,#04H ACALL JIANSB 减法子程序: JIANSB:CLR C JIAN1:MOV A,R0 SUBB A,R1 ;完成一个字节的减法运算 MOV R0,A INC R0 INC R1 DJNZ R2,JIAN1 RET 执行结果,在43H40H中得
43、到差数2F5BA7C3H。此程序亦可以推广到n个字节的情况。,三、多字节十进制数(BCD码)加法,十进制数加法子程序: JADSB: CLR C JAD1:MOV A,R0 ADDC A,R1;完成一个字节的加法运算 DA A;十进制数调整 MOV R0,A INC R0 INC R1 DJNZ R2,JAD1 RET,四、多字节数乘法,ZHENFA:MOV A,R2 MOV B,R3 MUL AB;( R3)( R2) MOV R5,A;积的低位送到R5 MOV R6,B;积的高位送到R6 MOV A,R2 MOV B,R4 MUL AB;( R4)( R2) ADD A,R6;( R3)(
44、 R2)的高位加( R4)( R2)的低位 MOV R6,A;结果送R6,进位在CY中 MOV A,B ADDC A,#00H;( R4)( R2)的高位加低位来的进位 MOV R7,A;结果送R7 RET,五、多字节数除法,4-2 数据的拼拆和转换,一、数据的拼拆,例4-1 设在20H和21H单元中各有一个8位数据: (20H)= x7x6x5x4x3x2x1x0 (21H)= y7y6y5y4y3y2y1y0 现在要从20H单元中取出低5位,并从21H单元中取出低3位完成拼装,拼装结果送30H单元保存,并且规定: (30H)= y2y1y0 x4x3x2x1x0 程序如下: MOV 30H
45、,20H;将x7x0传送到30H单元 ANL 30H,#00011111B ;将高3位屏蔽掉 MOV A,21H;将y7y0传送到累加器中 SWAP A;将A的内容左移4次 RL A;y2y0移到高3位 ANL A,#11100000B;将低5位屏蔽掉 ORL 30H,A;完成拼装任务,二、数据的转换,1ASCII码与二进制数的互相转换 2BCD码与二进制数的转换,4-3 查 表 程 序,使用DPTR作为基地址查表比较简单,可通过三步操作来完成: (1)将所查表格的首地址存入DPTR数据指针寄存器; (2)将所查表的项数(即在表中的位置是第几项)送累加器A; (3)执行查表指令MOVC A,A
46、 + DPTR进行读数,查表结果送回累加器A。,若用PC内容作为基地址查表,则操作有所不同,亦可分为以下三步: (1)将所查表的项数送累加器A,在MOVC A,A + PC指令之前先写上一条ADD A,#data指令,data的值待定; (2)计算从MOVC A,A + PC指令执行后的地址到所查表的首地址之间的距离(以字节数表示),用这个计算结果取代加法指令中的data,作为A的调整量; (3)执行查表指令MOVC A,A + PC进行查表,查表结果送回累加器A。,4-4 散 转 程 序,一、采用转移指令表的散转程序,在许多场合下,需要根据标志单元的内容是0,1,2,n分别转向分支操作程序0
47、,1,2,n。这时,可以先用无条件转移指令(“AJMP”或“LJMP”)按序组成一个转移表,将转移表首地址装入数据指针DPTR中,而将标志单元的内容装入累加器A作为变址值,然后执行指令: JMP A + DPTR 实现转移。,二、采用地址偏移量表的散转程序,地址偏移量表的长度加上各操作程序的长度后必须仍然处于同一页内,但对最后一个操作程序的长度则不受限制,只要其入口地址相对于地址偏移量表首地址的偏移量在1B以内(小于256)即可。显然,地址偏移量表和各操作程序可位于64KB程序存储器中的任何位置。,三、采用转向地址表的散转程序,前面讨论的采用地址偏移量表的方法,其转向范围局限于一页之内,在使用
48、时受到较大的限制。若需要转向较大的范围,可以建立一个转向地址表,即将所要转向的二字节地址组成一个表,在散转时,先用查表的方法获得表中的转向地址,并将该地址装入数据指针DPTR中,然后清除累加器A,执行JMP A + PTR指令,便能转向到相应的操作程序中去。,四、采用“RET”指令的散转程序,RET指令的功能是将堆栈中的内容弹出,并装到程序计数器PC中去。在本应用中,首先用查表法找到操作程序的转向地址,并将它压入堆栈(先低位字节,后高位字节),然后执行RET指令,将该地址弹入PC中,使程序转向相应的操作程序。与此同时,将堆栈指针调整到原来的位置。,4-5 I/O端口控制程序,(1)单片BCD码
49、拨盘与单片机的接口 (2)多片BCD码拨盘与单片机的接口 (3)拨码输入程序,4-6 子程序调用时的参数传递方法,一、通过寄存器传递参数,MAIN: MOV R0,#30H;传送RAM数据区的起始地址 MOV R7,#0AH;传送RAM数据区的长度 ACALL SUBRT;调用清零子程序 SUBRT:同前,二、通过堆栈传递参数,SUBRT:POP DPH;将返回地址送到DPTR中暂存 POP DPL POP R7;取出数据区长度 POP R0;取出数据区首地址 SUB1:MOV A,#00H LOOP:MOV R0,A INC R0 DJNZ R7,LOOP PUSH DPL;将返回地址送回堆
50、栈 PUSH DPH RET,三、利用数据指针传递参数,PRINT:POP DPH;把调用指令下面字节的地址弹出,作为数据指针 POP DPL PPP1:MOV A,#00H MOVC A,A + DPTR;取出欲打印的字符 INC DPTR JZ PPPEND;判断是否为结束字符 PPP2: ;打印程序 SJMP PPP1;未完,继续打印 PPPEND:JMP A + DPTR ;指向主程序NEXT处,取代返回指令,第五章 MCS-51单片机内部定时/计数器及其应用 5-1 定时/计数器的结构及工作原理 5-2 定时/计数器的方式和控制寄存器 5-3 定时/计数器的工作方式 5-4 定时/计
51、数器的应用举例,5-1 定时/计数器的结构及工作原理,5-2 定时/计数器的方式和控制寄存器,一、定时器方式寄存器TMOD,(1)M1和M0方式选择位。 (2)C/功能选择位。(C/)= 0为定时器方式;(C/)= 1为计数器方式。 (3)GATE门控位。(GATE)= 0,允许软件控制位TR0或TR1启动定时器;(GATE) = 1,允许外中断引脚电平启动定时器,即由(P3.2)和(P3.3)引脚分别控制T0和T1。,二、定时器控制寄存器TCON,(1)TCON.7 TF1 定时器1溢出标志。定时器1溢出时,由硬件将此位置1,并请求中断。进入中断服务程序后,由硬件自动清零,也可以用软件清零。
52、 (2)TCON.6 TR1 定时器1运行控制位。由软件置1或复0来启动或关闭定时器1。 (3)TCON.5 TF0 定时器0溢出标志。其功能及操作情况类同于TF1。 (4)TCON.4 TR0 定时器0运行控制位。其功能及操作情况类同于TR1。,(5)TCON.3 IE1 外部边沿触发中断1请求标志。当检测到引脚上有由10的电平跳变,且IT1 = 1时,由硬件将此位置位,以请求中断。进入中断服务程序后,由硬件自动清零。 (6)TCON.2 IT1 外中断1触发方式选择位。(IT1)= 0,为低电平触发;(IT1)= 1,为下降沿触发。由软件来置位或复位。 (7)TCON.1 IE0 外部边沿
53、触发中断0请求标志。其功能及操作方法类同于IE1。 (8)TCON.0 IT0 外中断0触发方式选择位。其功能及操作方法类同于IT1。,5-3 定时/计数器的工作方式,一、方式0,二、方式1,三、方式2,四、方式3,5-4 定时/计数器的应用举例,一、方式0、方式1应用,BEGIN:MOV TL1,#06H;置寄存器初值 MOV TH1,#0F8H SETB TR1;启动T1 LOOP: JBC TF1,PTF0;查询计数溢出 AJMP LOOP PTF0:MOV TL1,#06H;重置计数初值 MOV TH1,#0F8H CPL P1.1;输出取反 AJMP LOOP;重复循环,二、方式2应
54、用,三、门控位应用,第六章 MCS-51单片机的系统扩展 6-1 MCS-51单片机最小应用系统 6-2 MCS-51单片机的外部扩展性能 6-3 程序存储器的扩展 6-4 数据存储器的扩展 6-5 采用EEPROM的存储器扩展 6-6 采用Flash Memory的扩展 6-7 I/O口扩展,6-1 MCS-51单片机最小应用系统,一、8051/8751最小应用系统,(1)有可供用户使用的大量I/O口线,P0,P1,P2,P3都可作为用户I/O口用。由于没有外部存储器扩展,应接高电平。 (2)内部存储器容量有限(只有4KB地址空间)。 (3)应用系统开发具有特殊性。由于这类应用系统应用程序量
55、不大,外电路简单,因而采用模拟开发手段较好。8051的应用软件需依靠半导体厂家用半导体掩模技术置入,故8051应用系统适合于大批量生产的应用场合。,二、8031最小应用系统,6-2 MCS-51单片机的外部扩展性能,一、MCS-51单片机的片外总线结构,1地址总线,地址总线宽度为16位,因此可寻址范围为216 = 64KB。 地址总线由P0口提供低8位A7A0,由P2口提供高8位A15A8。由于P0口还要作数据总线口,因此它只能分时地用做地址线。而且P0口输出的低8位地址必须用锁存器锁存。锁存器的锁存信号为引脚ALE输出的控制信号,在ALE的下降沿将P0口输出的地址锁存。 P2口具有输出锁存功
56、能,故不需外加锁存器。P0,P2口在系统扩展中用做地址线后便不能再作为一般I/O口使用。,2数据总线,数据总线由P0口提供,其宽度为8位,该口为三态双向口,是应用系统中使用最为频繁的通道。单片机所有需要与外部交换的数据、指令、信息,除少数可直接通过P1口传送外,大部分都经由P0口传送。 数据总线要连接到多个外围芯片上,而在同一时间内只能有一个有效的数据传送通道,至于是哪一个芯片的数据通道有效,则由地址线控制的各个芯片的片选线来选择。,3控制总线,WR,RD:用于片外数据存储器(RAM)的读/写控制。当执行片外数据存储器操作指令MOVX时,这两个信号自动生成。 PSEN:用于片外程序存储器(EP
57、ROM)的读数控制。读取EPROM中的数据(指令)时不用信号。 ALE:用于锁存P0口输出的低8位地址的控制线。通常,ALE在P0口输出地址期间用其下降沿控制锁存器锁存地址数据。 EA:用于选择片内或片外程序存储器。当 = 0时,只访问外部程序存储器,而不论片内有无程序存储器。因此,在扩展并使用外部程序存储器时,必须将接地。,二、MCS-51单片机的系统扩展能力,片外数据存储器与程序存储器的操作使用不同的指令和控制信号,允许两者的地址重复。因此,片外可扩展的数据存储器与程序存储器各为64KB。 片外数据存储器与片内数据存储器的操作指令亦不同(对片外RAM只能用MOVX指令),所以也允许两者的地
58、址重复,即外部扩展数据存储器的地址可以从0000H开始。 片外程序存储器与片内程序存储器采用相同的操作指令,对片内、片外程序存储器的选择依靠硬件来实现:当 = 0时,不论片内有无程序存储器,片外程序存储器的地址都可以从0000H开始;但当 = 1时,则前4KB的地址(0000H0FFFH)为片内程序存储器所有,片外扩展的程序存储器的地址只能从1000H开始设置。,6-3 程序存储器的扩展,一、外部程序存储器扩展概要,1地址线的连接 2数据线的连接 3控制线的连接,二、典型EPROM扩展电路,1使用单片EPROM的扩展电路,2使用多片EPROM的扩展电路,6-4 数据存储器的扩展,一、数据存储器
59、扩展概要,(1)地址线的连接方法与程序存储器连接的方法相同。 (2)数据线的连接方法与程序存储器连接的方法相同。 (3)控制线的连接要用到下述控制信号.,二、常用数据存储器扩展电路,6-5 采用EEPROM的存储器扩展,一、EEPROM的特点,电擦除可编程只读存储器EEPROM(Electrically Erasable PROM)是近年来受到广泛重视的一种只读存储器。它的主要优点是能在应用系统中进行在线改写(即在进行改写操作时,EEPROM芯片不必从目标系统上取下来),并可在断电情况下保存数据而不需保护电源。因此,它既有RAM在联机操作中可读可改写的特性,又有非易失性存储器ROM在掉电后仍能保存所存数据的优点。写入的数据在常温下至少可以保存10年以上。一般其擦除/写入周期寿命为1万次,而近期推出的EEPROM芯片已可达到10万次以上。,二、EEPROM的接口类型,1并行接口的EEPROM,(1)内部VCC电压检测。 (2)写禁止数据保护。 (3)滤波电路。 (4)工作电源VCC上电延时。 (5)软件数据保护(SDPSoftware Data Protection)。,2串行接口的EEPROM,(1)一线式总线。 (2)二线式总线。 (3)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防止违约合同范本
- 简约大气家长会
- 火灾逃生演练教育活动
- 工厂入股合同范本
- 商业用房买卖网签合同范本
- 场地种植合同范本
- 网线销售合同范本
- 包含家电的装修合同范本
- 昆明理工大学答辩
- 维修窗户合同范本
- 2024年6月2日《证券投资顾问》真题卷(79题)
- 招投标咨询合同文本
- 2025年中考语文复习之文言文阅读
- 2024统编版(2024)道德与法治小学一年级上册教学设计(附目录)
- 2.2 直线的方程(分层练习)(解析版)
- 《保密法》培训课件
- 北京市2024-2025学年高三上学期第二次普通高中学业水平合格性考试英语试卷 含解析
- 2024版《中医基础理论经络》课件完整版
- 2024年全球 二次元移动游戏市场研究报告-点点数据
- 第6课《我们神圣的国土》第1课时(教学设计)-部编版道德与法治五年级上册
- 绵阳市高中2022级(2025届)高三第一次诊断性考试(一诊)物理试卷(含标准答案)
评论
0/150
提交评论