版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章汽车电子技术与单片机第一节汽车电子技术的发展第二节单片机在汽车中的应用和总线系统第三节单片机的基本知识第四节数制与码制第一节汽车电子技术的发展一、当今汽车技术发展的几个重要方向科学技术的不断进步体现在各个方面,在计算机和微电子、生物工程、材料科学、工艺制作技术等很多领域都出现了一大批具有换时代意义的成,在制造业中,汽车技术的发展具有很强的代表性,成为许多新技术的载体。电控发动机、自动变速器、防抱死系统(ABS)、安全气囊、智能导航等大量推陈出新的技术使得汽车在动力性、经济性、排放水平、加成舒适性和安全性方面已经达到了令人相当满意的程度。新技术同时也为行业的发展带来了升级,为行业的进步指明了方向。下一页返回第一节汽车电子技术的发展作为汽车“心脏”的发动机,在汽车技术进步的过程中始终走在前列。汽油机电控喷射技术结合三元催化器、柴油机燃油喷射系统、可变截面涡轮增压器(VGT)、可变气门正时和升程技术(VTEC)、混合动力技术(HPS)等许多机、电、液紧密结合的技术使发动机的性能指标日益提高。汽车采用自动变速器,在驾驶时可以不踩离合器,实现自动换挡,而且发动机不会熄火,从而可以有效的提高驾驶方便性。20世纪80年代以来,随着电子技术的发展,变速器自动控制更加完善,在各种使用工况下均能实现发动机与传统系的最佳匹配。上一页下一页返回第一节汽车电子技术的发展不少现代车型已装有自诊断装置。有些高级的汽车内还装备了汽车导航系统,它通过汽车内的显示装置显示地图、汽车位置、运动轨迹、目的方向和距离等,从而为引导汽车提供大量信息。该系统还能将以汽车行驶方向为主的交通信息等反映到显示屏的移动地图上,为车辆行驶指示最佳路线。汽车导航系统可分为卫星导航系统和地面无线电固定导航系统两类。上一页下一页返回第一节汽车电子技术的发展二、汽车电子技术的发展史从20世纪60年代中期开始,微电子技术的迅猛发展使其在汽车上被广泛应用,给汽车工业的进一步发展带来了新的生机。电子控制系统具有控制精度高、响应速度快,集成度高、体积小、重量轻、应用更加灵活等特点用于汽车后,可使汽车有关系统在各种工况下都处在最佳的工作状况,各项受控指标均能获得较大的改善,使任何机械控制系统都难以达到的。50年代到70年代末,主要用电子装置改善部分机械部件的性能;70年代末到90年代中期,汽车电子控制技术开始形成,大规模集成电路得到广泛应用,减小了汽车电子产品的体积,特别是8位、16位单片机的广泛应用,提高了电子装置的可靠性和稳定性。上一页下一页返回第一节汽车电子技术的发展80年代中期到90年代末被认为是电子技术在汽车上应用的第三阶段,在这一阶段中,以微处理器为核心的微机控制系统在汽车上大规模的应用趋于成熟和可靠,并向智能化发展,汽车全面进入电子化时代。2000年以后,汽车电子化被认为已进入第四阶段——智能化和网络化时代,在这一阶段中,汽车产品将大量采用人工智能技术,并利用网络进行信息的传递和交换。汽车电子技术的中的由解决汽车部件或总成问题开始向广泛应用计算机网络与信息技术发展,使汽车更加自动化、智能化,并向解决汽车与社会融为一体等问题转移。汽车电子设备成本占汽车总成本的比重越来越大,汽车制造技术由机械制造逐步步入电子控制技术时代。上一页下一页返回第一节汽车电子技术的发展三、汽车电子系统在整车中的地位从世界范围看,汽车工业向电子化发展的趋势,在20世纪90年代已十分明显,由于汽车工业是国民经济发展的支柱产业,因而是国际经济竞争的重要领域,而电子技术在汽车上的应用促进了汽车各项性能的发展,世界各大汽车公司纷纷投入巨资开发自己的汽车电子产品以赢得更大的市场空间,因此,汽车电子化将是夺取汽车市场的重要手段。上一页下一页返回第一节汽车电子技术的发展现代汽车电子控制技术的应用不仅提高了汽车的动力性、经济性和安全性,改善了行驶的稳定性和舒适性,推动了汽车工业的发展,还为电子产品开拓了广阔的市场,从而推动了电子工业的发展。因此,发展汽车电子控制新技术,加快汽车电子化速速,是振兴和发展汽车工业的重要手段。上一页返回第二节单片机在汽车中的应用和总线系统一、单片机的发展史及其在汽车中的引入单片机从20世纪70年代出现至今已经有30多年的历史,从最初的简单功能单片机发展到现在32位、64位的高性能微处理器,它的身影几乎已经融入人们生产生活的各个领域,从工业设备的自动化,到人们日常使用的各种通讯产品,再到武器军工行业,卫星和载人等方方面面,单片机都在发挥着难以替代的作用,并且成为产品附加值的重要来源。下一页返回第二节单片机在汽车中的应用和总线系统从单片机性能的衍变和发展看,可以将单片机的发展历史划分为三个阶段:第一阶段是20世纪70年代,单片机产生,低性能微处理器开始在工业生产中得到应用。第二阶段从20世纪80年代到20世纪末,微处理器的性能已经有了很大的提高,以Motorola公司和Zilong公司为代表,虽然其单片机问世较迟,但是产品性能较高,单片机内有串行I/O口,多集中断处理能力,片内RAM和ROM容量较大,有些还带有A/D转换接口。第三阶段是20世纪末直到现在,这一阶段是8位单片机巩固发展,16为单片机、32为单片机推出阶段。上一页下一页返回第二节单片机在汽车中的应用和总线系统单片机在汽车中的引入,最早应用于汽车发动机的控制。首推1976年通用汽车公司研发的利用单片机对发动机的点火时间进行控制(MASIR)。它能更好的根据发动机运转工况,对点火调速器提前角与负压提前角作出精确的点火时间控制。汽车电子控制电脑也从模拟时代进入到了数字时代。上一页下一页返回第二节单片机在汽车中的应用和总线系统二、当代汽车各系统使用单片机的状况随着时代的发展,特别是计算机总线技术的日益成熟。在车上使用的芯片也越来越多,比如ABS、EBD、ASR、悬挂、电子防盗和卫星导航等系统上的应用,而在这些系统中有的使用的芯片功能较为简单,甚至一片8位的芯片就完全能满足使用要求。因而有许多汽车上开始采用基于总线的多芯片系统,大家通过布置在车上的总线系统,共享信息,使汽车能非常自如地工作。上一页下一页返回第二节单片机在汽车中的应用和总线系统三、汽车总线系统的产生及其在整车中的应用电控系统的增加虽然提高了汽车的动力性、经济性和舒适性,但随之增加的复杂电路也降低了汽车的可靠性,增加了维修的难度。为此,早在20世纪70年代就已提出实现汽车电控单元之间的通讯问题。随着集成电路的迅速发展,使得以串行总线将车用电器组成网络,无论是在可靠性和经济性上,都成为了可能。CAN(ControllerAreaNetwork)总线即控制器局域网络,是德国BOSCH公司在20世纪80年代初研制成功的,最初主要是为汽车监测、控制系统而设计的。现在,由于CAN总线的优良特性,除了在汽车电子控制系统中应用外,在其他一些实时控制系统中也得到了广泛应用。上一页下一页返回第二节单片机在汽车中的应用和总线系统目前,汽车新技术的发展应用于汽车线束数量及线束急剧增加的矛盾相当突出。为解决这些问题,数据总线已被广泛地应用到汽车电控系统。现代汽车典型的控制单元有电控燃油喷射系统、电控传动系统、防抱死制动系统(ABS)、防滑控制系统(ASR)、废气再循环系统、巡航系统和空调系统。在一个完善的汽车电子控制系统中,许多动态信息必须与车速同步。为了满足各子系统的实时性要求,有必要对汽车公共数据实行共享,如发动机转速、车轮转速、油门踏板位置等。上一页返回第三节单片机的基本知识一、概述单片机是微型机计算机的一个很重要的分支。自20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,应用广泛,发展迅速。单片机体积小,质量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。通过学习有关单片机的知识后,能依靠自己的力量来开发所希望的单片机系统,并可获得较高的经济效益。在我国,单片机已广泛地应用在智能仪器仪表、机电设备过程控制、自动检测、家用电器和数据处理等各个方面。下一页返回第三节单片机的基本知识二、单片机的软件和硬件系统单片微型计算机就是把组成微型计算机的各部件,如中央处理器、存储器、输入/输出接口电路、定时器/计数器等,制作在一块集成电路芯片中,构成一个完整的微型计算机。下面把组成计算机的五个基本组成部分做简单说明,如图1-3所示。运算器是计算机的运算部件,用于实现算术和逻辑运算,计算机的数据运算和处理都在这里进行。控制器是计算机的指挥控制部件,使计算机各部分能自动协调地工作。上一页下一页返回第三节单片机的基本知识运算器和控制器是计算机的核心部分,常把他们合在一起统称为中央处理器,简称CPU。存储器是计算机的记忆部件,用于存放程序和数据,存储器又分为内存储器和外存储器。输入设备用于将程序和数据输入到计算机中。输出设备用于把计算机数据计算或加工的结果,以用户需要的形式显示或保存。通常把外存储器、输入设备和输出设备合在一起称之为计算机的外部设备。以上这些组成计算机实际的部分称之为计算机的硬件,也叫计算机硬件系统。单片机尽管简单、组成单片机系统的也是上述这五个基本组成部分。上一页下一页返回第三节单片机的基本知识硬件系统作为实体,为计算机工作提供了基础和条件,但要想使计算机有效地工作,还必须有软件的配合,概括的说,计算机的软件系统包括系统软件和应用软件两个部分。但单片机由于硬件支持和需要所限,其软件系统比较简单。传统观念认为单片机的系统管理不需要像微型计算机那样复杂的操作系统,而只使用简单的操作系统程序,通常称之为监控程序。因此监控程序就成为单片机中最重要的系统软件,这种观念还认为大多数单片机不使用高级语言,单片机中通常使用的是汇编语言,但单片机并没有自己专用的汇编程序。上一页下一页返回第三节单片机的基本知识三、Intel公司MCS-51系列产品概述8051单片机是美国Intel公司在1980年推出的MCS-51系列单片机的第一个成员。凡Intel公司生产的以8051为核心单元的其他派生单片机都可成为MCS-51系列,有时简称为51系列。其他公司生产的以8051为核心单元的其他派生单片机不能称为MCS-51系列,只能称为8051系列。MCS-51系列单片机包括三个基本型80C31、8051、8751,以及对应的低功耗型号80C31、8051、8751,因而MCS-51特指Intel的这几种型号。上一页下一页返回第三节单片机的基本知识四、单片机的最新发展技术单片机在近10年取得了飞速的发展,目前在世界范围内从事单片机开发的有4各区域:一是欧美,如美国国家半导体的COP8系列单片机,Philips公司的51系列单片机,AMD公司的186系列16位嵌入式单片机,ST公司的ST62系列单片机,MICROCHIP的PIC系列单片机,Motorola的各个系列单片机,以及Infineontechnologies的C500和C166系列等;二是日本,如TOSHIBA公司开发了从4位到64位的多系列单片机,日立公司也有从4位到32位的单片机,FUJITSUMicroelectronics的F2MC-8L单片机系列产品,OKIElectronics的MSM80、MSM66、MSM63系列单片机,NEC的75X、78X系列单片机;三是台湾地区,如WINBOND公司的W741/W536、W78/W77等系列单片,Holtek的HT46/48/49CXX系列单片机,EMC公司的E7系列单片机等;四是韩国,如Hyundaimicroelectronics的GMS800、GMS30系列单片机,另外,LG等公司也生产单片机。上一页返回第四节数制与码制一、数制数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。按进位的方法进行计数,称为进位计数制。在进位计数制中有数位、基数和位权三个要素。数位是指数码在一个数中所处的位置;基数是指在某种进位计数制中,每个数位上所能使用的数码的个数,位权是指在某种进位计数制中,每个数位上的数码所代表的数值的大小,等于在这个数位上的数码乘上一个固定的数值,每个固定的数值就是这种进位计数制中该数位上的位权。数码所处的位置不同,代表数的大小也不同。下一页返回第四节数制与码制1.十进制十进位计数制简称十进制。十进制数具有下列特点:(1)有十个不同的数码符号0、1、2、3、4、5、6、7、8、9.(2)每一个数码符号根据它在这个数中所处的位置(数位),按“逢十进一”来决定其实际数值,即各数位的位权是以10为底的幂次方。2.二进制二进位计数制简称二进制。一个二进制数位简称为位(英文名为bit)。计算机中最直接、最基本的操作就是对二进制位的操作。二进制数具有下列特点:(1)有两个不同的数码符号0、1。(2)每个数码符号根据它在这个数中的数位,按“逢二进一”来决定其实际数值。上一页下一页返回第四节数制与码制3.十六进制二进制数书写冗长、易错、难记,而十进制数与二进制数之间的转换过程复杂,所以一般用十六进制数或八进制数来表示。十六进位计数制简称为十六进制。十六进制具有下列特点:(1)它有十六个不同的数码符号0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。(2)每个数码符号根据它在这个数中的数位,按“逢十六进一”来决定其实际数值。上一页下一页返回第四节数制与码制二、码制数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,为了能方便地与二进制转换,就是用了十六进制(24)和八进制(23)。数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负)。这就是机器数的原码了。假设机器能处理的位数为8,即字长为1byte,原码能表示数值的范围为(-127~-0,+0~+127)共256个。有了数值的表示方法就可以对数值进行算术运算,但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了为题,假设字长为8bits:上一页下一页返回第四节数制与码制上式显然不正确,因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码。反码的取值空间和原码相同且一一对应。下面是反码的减法运算:上一页下一页返回第四节数制与码制上式也不正确,再如:上面这种计算方法是正确的。问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的。于是就引入了补码概念:负数的补码就是对反码加一,而正数不变,正数的原码、反码、补码是一样的。在补码中用(-128)代替了(-0),所以补码的表示范围为(-128~0~127)共256个。(-128)没有相对应的原码和反码,(-128)=(10000000)。上一页下一页返回第四节数制与码制下面是补码的加减运算:上一页下一页返回第四节数制与码制以上这几种计算方法是正确的。补码的设计目的是:(1)使符号位能有效值部分一起参加运算,从而简化运算规则;(2)使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计。所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C语言等其他高级语言中使用的都是原码。上一页下一页返回第四节数制与码制ASCII码是美国信息交换用标准代码。ASCII码虽然是美国国家标准,但它已被国际标准化组织(ISO)认定为国际标准,为世界公认,并在世界范围内通用。ASCII码用一个8位二进制数(字节)表示,每个字节只占用了7位,最高位恒为0。7位ASCII码可以表示128(27=128)种字符,其中通用控制字符34个,阿拉伯数字10个,大小写英文字母52个,各种标点符号和运算符号共有32个。上一页返回图1-3微型计算机的组成返回第二章MSC-51单片机的结构和原理第一节MCS-51单片机的内部组成及信号引脚第二节MCS-51单片机的中央处理器CPU第三节MCS-51的内部存储器第四节I/O端口、时钟电路与时序第五节MCS-51单片机工作方式第六节MCS-51单片机的存储器第一节MCS-51单片机的内部组成及信号引脚MCS-51系列单片微型机计算机包括8031、8051、8751等型号,其代表型号是8051。8051内部组成方框图如图2-1所示,本书也将主要以8051单片机的代表来介绍MCS-51系列单片机的工作原理。通常计算机须由三大基本单元,即中央处理器、存储器和输入/输出设备组成。下一页返回第一节MCS-51单片机的内部组成及信号引脚一、MCS-51单片机的基本组成8051单片机的结构组成如图2-1所示,各部分情况介绍如下:1.中央处理器顾名思义,这是单片机的核心部分。也有人将其称为MCU,在这些公司提供的器件使用手册上还有μP的写法,都是同一个意思。8051单片机的CPU由算术逻辑部件(ALU)、累加器(ACC)、寄存器B、暂存器TMP1和TMP2、程序状态寄存器(PSW)等运算部件,以及指令寄存器(IR)、指令译码器(ID)、数据指针寄存器(DPTR)、程序指针寄存器(PC)、堆栈指针(SP)等控制部件组成。上一页下一页返回第一节MCS-51单片机的内部组成及信号引脚2.内部数据寄存器(内部RAM)MCS-51的CPU能处理8位二进制。8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128个单元,用于存放可读写的数据。因此,通常所说的内部数据存储器就是指前128单元,简称内部RAM。3.内部程序存储器(内部ROM)根据有无片内ROM,8051单片机有三个品种,即无ROM版本为8031、工厂掩膜只读ROM版本为8051、EPROM版本为8751.8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,简称内部ROM。上一页下一页返回第一节MCS-51单片机的内部组成及信号引脚4.定时器/计数器8051有两个16位定时器/计数器(T0,T1),它们由特殊功能寄存器TMOD和TCON分别选择它们的工作方式和表示它们的状态。在定时器功能中,每个机器周期定时器加1,可以认为它是机器周期计数器,由于1个机器周期包含12个振荡周期,定时器计数到的脉冲为振荡频率的1/12。5.并行I/O口MCS-51共有四个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入输出。上一页下一页返回第一节MCS-51单片机的内部组成及信号引脚6.串行口MCS-51单片机有一个全双工的串行口,以实现单片机和其他设备之间的穿行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。7.中断控制系统MCS-51单片机的中断功能较强,以满足控制应用的需要。8051共有5各中断源,即外部中断2个,定时/计数中断2个,串行中断1个。全部中断分为高级和低级两个优先级别。上一页下一页返回第一节MCS-51单片机的内部组成及信号引脚8.时钟电路MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的最高晶振频率为12MHZ。从上述内容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此实际上它是一个简单的微型计算机系统。上一页下一页返回第一节MCS-51单片机的内部组成及信号引脚二、MCS-51的信号引脚MCS-51微处理器采用40引脚的双列直插封装(DIP)方式,如图2-2所示,仔0条引脚中,有2条专用于主电源的引脚,2条外接晶振引脚,4条控制引脚和3条I/O引脚。下面分别叙述各引脚的功能。主电源引脚VSS和VCC:VSS(20)接地,VCC(40)正常操作时接+5V电源。外接晶振引脚XTAL1和XTAL2:当外接晶体振荡器时,XTAL1和XTAL2分别接在外接晶体两端;当采用外部时钟方式时,XTAL1接地,XTAL2接外来振荡信号。上一页下一页返回第一节MCS-51单片机的内部组成及信号引脚控制引脚RST/VPD,ALE/、、。对于RST/VPD:当振荡器正常运行时,在此引脚上出现两个机器周期以上的高电平使微处理器复位;VCC掉电期间,此引脚可接备用电源,以保持内部RAM的数据。:当访问外部存储器时,由微处理器的P2口送出地址的高8为,P0口送出地址的低8位,数据通过P0口传送。:是程序存储器读选通信号,低电平有效。上一页下一页返回第一节MCS-51单片机的内部组成及信号引脚EA/VPP(31):当EA端保持高电平时,访问内部程序存取器(4KB),但当PC(程序计数器)值超过0FFFH时,将自动转向执行外部程序存储器内的程序;当EA保持低电平时,则只访问外部程序存储器(从0000H地址开始),而不管微处理器内部是否有程序存储器。输入输出引脚P0.0~P0.7(39~~32):P0口是一个漏极开路型准双向I/O口。在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。在EPROM编程时,它接收指令字节,而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。上一页下一页返回第一节MCS-51单片机的内部组成及信号引脚P1.0~P1.7(1~8):P1口是带内部上拉电阻的8位双向I/O口。在EPROM编程和程序验证时,它接收低8位地址。P2.0~P2.7(21~28):P2口是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,它接收高8位地址。P3.0~P3.7(10~17):P3口是一个带内部上拉电阻的8位双向I/O口。在MCS-51中,这8个引脚还兼有专用功能。上一页返回第二节MCS-51单片机的中央处理器CPU一、运算器运算器包括算术逻辑部件ALU、位处理器、累加器A、寄存器B、暂存器以及程序状态寄存器PSW等。该模块的功能是实现数据的算术、逻辑运算、位变量处理和数据传送等操作。ALU的功能十分强,它不仅可对8位变量进行逻辑“与”、“或”、“异或”、循环、求补和清零等基本操作,还可以进行加、减、乘、除等基本运算。ALU还具有一般的微机ALU所不具备的功能,即位处理操作,它可以位(bit)变量进行处理,如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。下一页返回第二节MCS-51单片机的中央处理器CPU由此可见,ALU在算术运算及控制处理方面能力是很强的。累加器A是一个8位的累加器,从功能上看,它与一般微机的累加器相比没什么特别之处,但需要说明的是A的进位标志Cy是特殊的,因为它同时又是位处理器的一位累加器。寄存器B是为执行乘法和除法操作设置的,在不执行乘、除法操作的一般情况下可把它当做一个普通寄存器使用。MCS-51的程序状态寄存器PSW是一个8位可读写的寄存器,它的不同位包含了程序状态的不同信息,掌握并牢记PSW各位的含义是十分重要的,因为在程序设计中,经常会与PSW的各个位打交道。PSW各位的定义如表2-1所示。上一页下一页返回第二节MCS-51单片机的中央处理器CPU二、控制器控制部件是微处理器的神经中枢,以主振频率位基准。控制器控制CPU的时序,对指令进行译码,然后发出各种控制信号,将各个硬件环节组织在一起。CPU的时序为每个机器周期(12个振荡周期)由6个状态周期组成,即S1、S2、……S6,而每个状态周期由两个时相P1,P2组成。上一页下一页返回第二节MCS-51单片机的中央处理器CPUCPU功能的强弱,主要可以用下几个指标来衡量:(1)内部总现宽度,也称字长、位数。位数越大运算精度越高,运算速度越快。(2)指令数。指令越多、编程越灵活。(3)执行每条指令所需时间或每秒钟平均执行指令条数,常用的MIPS表示每秒钟执行指令的百万条数。(4)寻址方式越多、对某一空间的寻址越灵活。MCS-51有5种寻址方式,MCS-96有6种寻址方式,Z80有6种寻址方式,MC6805有10种寻址方式。上一页返回第三节MCS-51的内部存储器一、内部数据存储器的结构(图2-3)MCS-51数据存储器在物理上和逻辑上都分为两个地址空间:一个内部和一个外部数据存储器空间。访问内部数据存储器,用MOV指令,访问外部数据存储器用MOVX指令。MCS-51内部数据存储器共有128个字节单元。内部数据存储器的00H~1FH(共32个单元)为4个寄存器工作区,每区8个寄存器,表示为R0~R7,如表2-2所示。由于每个寄存器区的8个寄存器都记为R0~R7,因此每次只能选择一个寄存器区工作。寄存器工作区的选择是通过状态标志寄存器PSW的第3、4位,即RS1、RS0进行。下一页返回第三节MCS-51的内部存储器内部数据存储器20H~2FH(16个单元)既可按字节寻址,作为一般工作单元,又可以按位CPU直接寻址,进行位操作。二、堆栈及堆栈指示器堆栈实际上是一种数据结构(如图2-4所示),是只允许在其一端进行数据插入和数据删除操作的线性表。数据写入堆栈称为压入运算(PUSH),也叫入栈。数据从堆栈中读出称之为弹出运算(POP),也叫出栈。堆栈的最大特点就是“后进先出”的数据操作规则,常把“后进先出”写为LIFO(Last-In.First-Out),即先入栈的数据存放在栈的底部。堆栈有两种类型:向上生长型和向下生长型。上一页下一页返回第三节MCS-51的内部存储器不论是数据进栈还是数据出栈,都是对堆栈的栈顶单元进行的,即对栈顶单元的写和读操作。为了指示栈顶地址,要设置堆栈指示器SP,其内容就是堆栈栈顶的存储单元地址。MCS-51系列微处理器的堆栈是以栈顶满的形式工作的。在执行PUSH期间,压入数据前,SP加1;反之,在执行POP期间,弹出数据前,SP减1.SP宽为8位。由于堆栈指针可以由指令改变,因此堆栈可以设置在片内RAM中任一连续空间内。复位后,SP初始化值位07H,所以,堆栈从08H单元开始。上一页下一页返回第三节MCS-51的内部存储器三、程序存储器程序存储器空间为0000H~FFFFH,共64KB,其结构如图2-5所示。其中低4KB(0000H-0FFFH)可以在单片机外部(8031),也可以在内部(8051、8751)。对没有片内ROM的8031,只要在硬件设计时使,就可以使程序执行始终在外部ROM中进行;对有片内ROM的8051和8751,只要在硬件设计时使,程序开始执行的前4KB总是在片内ROM中,超过0FFFH(4KB)时,在片外ROM中。上一页下一页返回第三节MCS-51的内部存储器无论,还是,都由16位程序计数器(PC)作为寻址装置。在整个程序存储器的64KB空间中,0000H~0023H空间只能用于存放中断服务子程序的向量地址,还有一组特殊单元是0003H~002AH,共40个单元。这40个单元被均匀地分为五段,作为五个中断源的中断地址,如表2-3所示。上一页返回第四节I/O端口、时钟电路与时序一、MCS-51的I/O端口输入/输出口也称为I/O端口。MCS-51单片机的四个I/O端口都是8位双向口,这些端口在结构和特性上是基本相同的,但又各具特点。I/O端口的作用在单片机中是一个集数据输入缓冲、数据输出驱动及锁存等多项功能为一体的电路。8051共有32根引脚全部为I/O端口,分为4个8位口。8051单片机的4个端口都是双向的,每个端口都包含锁存器(特殊功能寄存器中P0~P3,地址分别为80H、90H、0A0H、0B0H)、输出驱动器和输入缓冲器。下一页返回第四节I/O端口、时钟电路与时序每个端口的每一根引脚都可以独立地用作输入或输出引脚。P0端口是三态双向端口,称为数据总线端口,因为只有该端口能直接用于对外部存储器的读/写数据操作。P0端口还用以输出外部存储器的低8位地址。P1端口是8位准双向端口,作通用I/O端口使用,在输出驱动器部分,P1端口有别于P0端口,它接有内部上拉电阻。P1端口的每一位可以独立地定义为输入或者输出,因此,P1端口既可以作为8位并行I/O端口,又可作为8位I/O端口。上一页下一页返回第四节I/O端口、时钟电路与时序P2端口是8位准双向I/O端口,P2端口可作通用I/O端口使用。P2端口电路中比P1端口多了一个多路转换电路MUX,这又正好与P0端口一样。但通常应用情况下,P2端口是作为高位地址线使用,此时多路转换开关应倒向相反方向。当外接程序存储数据时,P3端口给出地址的高8位,此时不能用作通用I/O端口。P3端口是一个8位的准双向I/O端口。它具有多种功能:可以作为一般准双向I/O端口,具有字节操作和位操作两种工作方式;也可以用8条I/O线独立地作为串行I/O端口和其他控制信号。上一页下一页返回第四节I/O端口、时钟电路与时序P1、P2、P3口的输出缓冲器可驱动4个TTL电路。对于HMOS芯片单片机的I/O口,在正常情况下,可任意由TTL或NMOS电路驱动。HMOS及CMOS型单片机的I/O由集电极开路或漏极开路的输出来驱动时,不必外加上拉电阻。P0端口输出缓冲器能驱动8个TTL电路,驱动MOS电路须外接上拉电阻,但P0端口用作地址/数据总线时,可直接驱动MOS的输入而不必外加上拉电阻。如果MCS-51本书的I/O端口不能满足用户需要时,可以扩展I/O端口,MCS-51单片机外部RAM存储器和外部扩展的I/O端口是同一编址的,CPU对它们的操作指令也相同,在外部64KB的RAM空间内,可以划出一个区域作为扩展I/O端口的地址空间,因此I/O端口的扩展几乎是不受限制的。上一页下一页返回第四节I/O端口、时钟电路与时序二、时钟电路MCS-51单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。两种不同的时钟电路如图2-6所示。上一页下一页返回第四节I/O端口、时钟电路与时序对于内部振荡方式的外部电路,电容器C1、C2起稳定振荡频率、快速起振的作用,其电容值一般在5~30pF。晶振频率的典型值位12MHz,采用6MHz的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜来使单片机的时钟与外部信号保持同步。外部振荡信号由XTAL2引入,XTAL1接地。为了提高输入电路的驱动能力,通常使外部信号经过一个带有上拉电阻的TTL反相门后介入XTAL2。上一页下一页返回第四节I/O端口、时钟电路与时序三、基本时序单位时序是用定是单位来说明的。MCS-51的时序定时单位共有4个,从小到大依次是:拍节、状态、机器周期和指令周期。把振荡脉冲的周期定义为拍节(用P表示)。振荡脉冲经过二分频后,就是单片机的时钟信号,把时钟信号的周期定义为状态s。一个状态包含两个拍节,其前半周期对应的拍节叫拍节1(P1),后半周期对应的拍节叫拍节2(P2)。上一页下一页返回第四节I/O端口、时钟电路与时序MCS-51采用定时控制方式,因此它有固定的机器周期。一个机器周期总共有12个拍节,分别记作s1p1,s1p2,……s16p2。由于一个机器周期共有12个振荡脉冲周期,因此机器周期就是振荡脉冲的12分频,当振荡脉冲频率为12MHz时,一个机器周期为1μs当振荡脉冲频率为6MHz时,一个机器周期为2μs.指令周期是最大的时序定时单位,执行一条指令所需要的时间称之为指令周期。MCS-51的指令周期根据指令的不同,可包含有一至四个机器周期。上一页返回第五节MCS-51单片机工作方式一、复位方式当MCS-51系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。下一页返回第五节MCS-51单片机工作方式上电后,由于电容的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。根据时间操作的经验,可以依据实际情况给出这两种复位电路的电容、电阻参考值。通常的复位逻辑电路如图2-7所示。上一页下一页返回第五节MCS-51单片机工作方式二、程序执行方式单片机上电复位和上电或开关复位后,单片机便可进入连续执行程序的状态。由于复位时已把PC值清零。所以,程序将从0000H单元开始执行。如果用户需要从别的起始地址开始执行程序,则必须先把该起始地址输入单片机,然后才能从该起始地址开始执行。单片机从执行程序开始除非遇到设定断点或软件出现故障,否则中途不会停止,一直至程序执行完为止。上一页下一页返回第五节MCS-51单片机工作方式三、低功耗方式8051在掉电保护情况下,由备用电源给单片机低功耗供电,因此掉电保护方式实际上就进入了低功耗方式。但与HMOS的8051不同,CHMOS的80C51却有两种低功耗方式,即待机方式和进入掉电保护方式。要想使单片机进入待机或掉电保护方式,只要执行一条能使IDL或PD位为1的指令就可以完成。如果使用指令使PCON寄存器IDL位置1,则80C51即进入待机方式。这是振荡器仍然运行,并向中断逻辑、串行口和定时器/计数器电路提供时钟,但向CPU提供时钟的电路被阻断,因此CPU不能工作,与CPU有关的如SP、PC、PWS、ACC以及全部通用寄存器也都被“冻结”在原状态。在待机方式下,中断功能继续存在。上一页下一页返回第五节MCS-51单片机工作方式四、掉电保护方式单片机系统在运行过程中,如发生掉电故障,将会丢失RAM和寄存器中的程序和数据,其后果有时是很严重的。为此MCS-51单片机设置有掉电保护措施,进行掉电保护处理,具体做法是,先把有用信息转存,然后再启用备用电源维持供电。所谓信息转存是指当电源出现故障时,应立即将系统的有用信息转存到内部RAM中。信息转存是通过中断服务程序完成的。信息转存后还应维持内部RAM的供电,才能保护转存信息不被破坏。为此,系统应装有备用电源,并在掉电后立即接通备用电源。备用电源由单片机的RST/VPD引脚引入。上一页返回第六节MCS-51单片机的存储器一、存储器的分类程序存储器一般采用只读存储器,因为这种存储器在电源关断后,仍能保存程序,在系统上电后,CPU可取出这些指令予以重新执行。数据存储器一般采用RAM芯片,这种存储器在电源关断后,存储的数据将全部丢失。RAM器件有两类,即静态RAM(SRAM)和动态RAM(DRAM)。另外,随着时代的发展还出现了许多新的或特殊的存储器。下一页返回第六节MCS-51单片机的存储器二、扩展存储器的编址所谓存储器编址,就是使用系统提供的地址线,通过适当连接,最终达到一个编址唯一对应存储器中一个存储单元的目的。由于存储器通常都是由多片存储芯片组成的,为此存储器编址分为两个层次,即存储芯片的选择和芯片内部存储单元的选择。芯片的选择比较复杂,所谓的存储器编址,实际上主要是研究芯片的选择问题。总的来说,芯片的选择共有两种方法:译码法和线选法。上一页下一页返回第六节MCS-51单片机的存储器所谓译码法就是使用译码器对系统的高位地址进行译码,以其译码输出作为存储芯片的片选信号。这是一种常用的存储器编址方法,能有效地利用存储空间,适用于大容量多芯片存储器扩展。译码电路可以使用现有的译码器芯片,图2-8位译码器芯片,表2-4为真值表。常用的译码形式有2-4译码,3-8译码以及4-16译码等。上一页下一页返回第六节MCS-51单片机的存储器三、程序存储器的扩展程序存储器扩展使用只读存储器芯片,只读存储器简称为ROM。MCS-51单片机程序存储器的寻址空间为64KB,对于8051/8751片内程序存储器为4KB的ROM或EPROM,在单片机的应用系统中,片内的存储容量往往不够,特别是8031,片内没有程序存储器,必须外扩程序存储器。图2-9为程序存储器的扩展图。上一页下一页返回第六节MCS-51单片机的存储器CPU在由外部程序存储器取指令时,16位地址的低8位(PCL)由P0口输出,高8位(PCH)由P2口输出,而指令的8位指令码而通过P0口输入。CPU读取的指令有两种情况:一是不访问数据存储器的指令;二是访问数据存储器的指令。在不执行MOVEX指令时,P2口专门用于输出PCH中的内容,因有锁存功能,可直接与外部存储器的地址线相连。P0口除了输出PCL中的内容外,还要输入指令,所以,必须用ALE信号锁存PCL。在每个机器周期中,允许地址锁存信号ALE两次有效,且在下降沿时锁存PCL。ALE信号的频率是振荡频率的1/6,可用来做外部时钟和定时时钟。对而言,也是每个机器中期两次有效,适用于选通外部程序存储器,使指令由P0口进入片内。上一页下一页返回第六节MCS-51单片机的存储器MCS-51单片机应用系统中使用得最多的EPROM程序存储器时Intel公司典型的27系列芯片,如2764、27128和27512等芯片。EPROM一般都有五种工作方式:(1)读方式:一般系统工作在这种方式。进入这种方式的条件是使片选控制线为低,同时让输出允许控制线为低,就可将指定地址单元的内容从数据总线上读出。(2)维持方式:当片选控制为高电平时,芯片进入维持方式,这时输出高阻抗悬浮状态,不占用数据总线。上一页下一页返回第六节MCS-51单片机的存储器(3)编程方式:在Vpp端加上规定好的高压,和端加上合适的电平,就能将数据线上的数据固化到指定的地址单元。(4)编程校核方式:在Vpp端保持相应的高压,再按读出方式操作,读出编程固化好的内容,以校核写入的内容是否正确。(5)编程禁止方式:当片选信号面无效时,输出呈高阻状态。上一页下一页返回第六节MCS-51单片机的存储器四、数据存取器的扩展MCS-51芯片内部具有128B空间的RAM存储器,它们可以作为寄存器、堆栈、数据缓冲器。CPU对其内部RAM有丰富的操作指令,因此这个RAM是十分珍贵的资源。在许多系统中,仅仅片内的RAM存储器往往不够,在这种情况下,可以扩展外部数据存储器。图2-11给出了单片机扩展RAM的电路结构。图中P0口分时传动RAM的低8位地址和数据,P2口为高8位地址线,用于对RAM进行页寻址。在外部RAM读/写周期,CPU产生读写选通信号。上一页下一页返回第六节MCS-51单片机的存储器外部数据存储器读写的时序通常是,在其读周期中,P2口输出外部RAM单元的高8位地址,P0口分时传送低8位地址及数据。当地址锁存允许信号ALE为高电平时,P0口输出的地址信息有效,ALE的下降沿将此地址打入外部地址锁存器,接着P0口变为输入方式,读信号有效,选通外部RAM,相应存储单元的内容出现在P0口,由CPU读入累加器。外部数据存储器写周期波形,其操作过程与读周期类似。写操作时,在ALE下降为低电平以后,写信号才有效,P0口上出现的数据写入相应的RAM单元。上一页返回图2-18051单片机的组成结构图返回图2-28051单片机的引脚信号返回表2-1PSW状态字的组成返回图2-3MCS-51内部数据区返回表2-2寄存器工作区的分配返回图2-4堆栈的结构返回图2-5程序存储器的结构返回表2-3中断向量的入口地址返回图2-6内部和外部时钟电路返回图2-7复位电路逻辑图返回图2-8译码器芯片返回表2-4真值表返回图2-9程序存储器的扩展图返回图2-11外部数据存储器的扩展返回第三章MCS-51单片机系统程序设计第一节MCS-51指令系统概述第二节MCS-51单片机指令详解第三节MCS-51单片机系统程序设计实例第一节MCS-51指令系统概述一、概述MCS-51指令系统是一种简明易掌握、效率较高的指令系统。MCS-51的基本指令共111条,其中单字节指令49条,双字节指令45条,三字节指令17条。从指令的执行时间来看,单机器周期指令64条,双机器周期指令45条,只有乘、除两条指令的执行时间为4个机器周期。指令的表示方法称之为指令格式,其内容包括指令的长度和指令内部信息的安排等。一条指令通常由两部分组成,即操作码和操作数。下一页返回第一节MCS-51指令系统概述通常在MCS-51指令系统中,有一字节、二字节和三字节等不同长度的指令。一字节指令只有一个字节,操作码和操作数信息同在其中。二字节指令包括两个字节,其中一个字节为操作码,第二个字节是操作数。三字节指令中,操作码占一个字节,操作数占两个字节,其中操作数既可能是数据,也可能是地址。二、寻址方式MCS-51共有5种寻址方式,现介绍如下:上一页下一页返回第一节MCS-51指令系统概述1.立即寻址操作数就写在指令中,和操作码一起放在程序存储器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如#20H。2.寄存器寻址操作数放在寄存中,在指令中直接以寄存器的名字来表示操作数的地址。例如MOVA,R0就属于寄存器寻址,即将RO寄存器的内容送到累加器A中。3.直接寻址操作数放在单片机的内部RAM某单元中,在指令中直接写出该单元的地址。如前例的ADDA,70H中的70H。上一页下一页返回第一节MCS-51指令系统概述4.寄存器间接寻址寄存器间接寻址方式可用于访问内部RAM或外部数据存储器。访问内部RAM或外部数据存储器的低256个字节时,可采用R0或R1作为间接寄存器。这类指令为单字节指令,其最低位是表示采用R0还是R1作为间接寄存器。这种寻址方式的示意图如图3-1所示。访问外部数据存储器的低256字节时,只要把MOV改为MOVX就行了。访问外部数据存储器,还可用数据指针DPTR作为间址寄存器,DPTR是16位寄存器,故它可对整个外部数据存储器空间(64K)寻址。在执行PUSH和POP指令时,也采用寄存器间接寻址,这是堆栈指针SP用作间接寄存器。上一页下一页返回第一节MCS-51指令系统概述5.基址寄存器加变址寄存器间接寻址这种寻址方式用于访问程序寄存器的一个单元,该单元的地址是基址寄存器(DPTR或PC)的内容与变地址寄存器A的内容之和。这种寻址方式对查表访问特别有用。寻址方式的示意图如图3-2所示。三、指令执行过程和指令符号意义单片机执行程序的过程,实际上就是执行我们所编制程序的过程,即执行逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行,即取指令——分析指令——执行指令。上一页下一页返回第一节MCS-51指令系统概述取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。分析指令阶段的任务是:将指令寄存器中的指令操作码读出后进行译码,分析其指令性质,如指令要求操作数,则寻找操作数地址。计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令或循环等到指令。一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先都已通过写入器固化在片内或片外程序存储器中,因而一开机即可执行指令。上一页下一页返回第一节MCS-51指令系统概述指令中操作数的描述符号:Rn——工作寄存器R0~R7Ri——间接寻址寄存器R0、R1Direct——直接地址,包括内部128BRAM单元地址、26个SFR地址。#data——8位常数#data16——16位常数addr16——16位目的地址addr11——11位目的地址rel——8位带符号的偏移地址DPTR——16位外部数据指针寄存器上一页下一页返回第一节MCS-51指令系统概述bit——可直接位寻址的位A——累加器AB——寄存器BC——进、借位标志位,或位累加器@——间接寄存器或基址寄存器的前缀/——指定位求反(x)——x中的内容((x))——x中的地址中的内容
——当前指令存放的地址上一页返回第二节MCS-51单片机指令详解一、数据传输指令1.累加器相关的数据传输指令以下指令的功能是把源操作数的内容送入累加器A,源操作数有寄存器寻址、直接寻址、间接寻址和立即寻址等方式。2.内部RAM单元之间的数据传输指令下一页返回第二节MCS-51单片机指令详解内部RAM单元之间的数据传输可以使用直接寻址、寄存器寻址以及寄存器间接寻址方式。3.外部存储器数据传输指令外部RAM传输指令通常使用间接寻址的方式,主要可以分为以Ri进行间接寻址和使用16位的DPTR进行的间接寻址。针对外部RAM的操作只能通过累加器A来完成,MCS-51系统中没有专门的存储器读写指令,实际上这些传输指令就是读写指令,为了区分是外部寄存器,特别是指令助记符上增加了“X”代表外部之意。具体的指令如下:上一页下一页返回第二节MCS-51单片机指令详解采用Ri的指令有:采用DPTR的指令有:上一页下一页返回第二节MCS-51单片机指令详解4.数据交换指令数据交换主要是在内部RAM单元与累加器A之间进行,有整字节交换、半字节交换和累加器高低半字节交换指令。源操作数有寄存器寻址、直接寻址和寄存器间接寻址等方式,例如:上一页下一页返回第二节MCS-51单片机指令详解5.堆栈指令在MCS-51内部RAM中可以设定一个后进先出LIFO的区域作为一个堆栈。在特殊功能寄存器中有一个堆栈指针SP,它指出栈顶的位置,在指令系统中有两条用于数据操作的栈操作指令。首先是入栈指令,这条指令的功能是首先将栈指针SP加1,然后把直接地址指出的内容送到栈指针SP指示的内部RAM单元中。还有对应的出栈指令,出栈指令是将当前堆栈指针寄存器SP所指示的单元的内容传送到该指令指定的直接寻址单元中去,然后SP中的内容减1.堆栈操作实际上是通过堆栈指示器SP进行的读写操作,是以SP为间址寄存器的间接寻址方式。因为SP是唯一的,所以在指令中把通过SP的间接寻址的操作数项隐含了,只表示出直接寻址的操作数项。上一页下一页返回第二节MCS-51单片机指令详解二、算术运算指令1.加法指令在加法指令中,又分位普通加法和带进位的加法。这组加法指令的功能是把所指出的字节变量与累加器A的内容相加,其结果放在累加器A中。如果位7有进位输出,则置“1”进位标志Cy,否则对Cy清“0”,如果位3有进位输出,置“1”辅助进位标志Ac,否则对Ac清“0”;如果位6有进位输出而位7没有进位,或者位7有进位输出而位6没有进位,则置“1”溢出标志OV,否则对OV清“0”。源操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址等方式。带进位的加法,除了与上述的运算相似外,还增加了进位标制Cy参加运算;上一页下一页返回第二节MCS-51单片机指令详解上一页下一页返回第二节MCS-51单片机指令详解2.减法指令通常的减法运算都带有借位,这与带进位的加法十分类似:上一页下一页返回第二节MCS-51单片机指令详解3.增1减1指令这些指令可以实现对相应的操作数的增1和减1操作,这种操作不会影响PSW的状态,具体指令如下:以上为自增1运算,只需将INC更改为DEC,则可以实现减1运算,但增1运算中还有INCDPTR,实现DPTR增1,而减1中却没有这条指令。上一页下一页返回第二节MCS-51单片机指令详解4.乘除指令MULABDIVABMUL为乘法指令,其功能是把累加器A和寄存器B中的无符号8位整数相乘,其16位积得低位字节在累加器A中,高位字节在B中。如果积大于255,则置位溢出标志位OV,否则对OV清“0”。进位标志位总是清“0”。DIV为除法指令,该指令的功能是把累加器A中8位无符号整数除以B中的8位无符号整数,所得的商(为整数)存放在累加器A中,余数在寄存器B中,清“0”Cy和溢出标志位OV。如果B得内容为“0”(除数为“0”),则结果A,B中的内容不定,并置位溢出标志位OV。上一页下一页返回第二节MCS-51单片机指令详解5.十进制调整指令DAA这条指令对累加器A由前两个变量(压缩的BCD码)相加的结果进行十进制调整使A中的结果为二进制码数。三、逻辑运算指令逻辑运算指令包括与、或、异或、循环、累加器清零与求反指令。这些指令中的操作数都是8位,它们在执行时,不影响标志位。上一页下一页返回第二节MCS-51单片机指令详解1.与(AND)逻辑运算指令逻辑运算都是按位进行的,逻辑与运算用符号∧表示。以上这几条指令运算结果存放在A中,下面这两条指令的运算结果则存放在直接地址的地址单元中:上一页下一页返回第二节MCS-51单片机指令详解2.或(OR)逻辑运算指令逻辑或运算用符号∨表示。以上几条指令运算结果存放在A中,下面这两条指令的运算结果则存放在直接寻址的地址单元中:上一页下一页返回第二节MCS-51单片机指令详解3.异或逻辑运算指令逻辑异或运算的规则是,两运算数相同时为假(0),两运算数相异时为真(1),这种运算用符号表示。以上这几条指令运算结果存放在A中,下面这两条指令的运算结果则存放在直接地址的地址单元中:上一页下一页返回第二节MCS-51单片机指令详解4.累加器清零和求反指令四、控制转移指令控制转移指令包括无条件转移指令、条件转移指定、比较转移指令、循环转移指令及调用与返回指令。1.无条件转移指令这里又分为长转移、短转移、绝对转移和变址寻址转移4种方式。长转移指令执行时可以把指令的第二和第三字节分别装入PC的高位和低位字节中,无条件地转向指定地址。转移的目标地址可以在64K程序存储器地址空间的任何地方。指令格式如下:上一页下一页返回第二节MCS-51单片机指令详解对于短转移指令,在执行时在PC加2之后,把指令的有符号的偏移量rel加到PC上,并计算出转向地址。因此转向的目标地址可以在这条指令前128字节到后127字节之间。指令格式如下:绝对转移指令是2KB范围内的无条件跳转指令。AJMP把MCS-51的64K程序存储器空间划分为32个区,每个区为2K字节,转移目标地址必须与AJMP下一条指令的第一个字节在同一2KB范围内,否则,将引起混乱,如果AJMP正好落在区底的两个单元内,程序就转移到下一个区中去了,这时不会出现问题。上一页下一页返回第二节MCS-51单片机指令详解执行该指令时,先将PC加2,然后把addr11送入PC的低11位,PC高位不变,程序转移到指定的地方。指令格式如下:变址寻址转移指令的功能是把累加器中8位元符号数与数据指针DPTR的16位数相加,结果作为下条指令地址送入PC,不改变累加器和数据指针DPTR内容,也不影响标志。指令格式如下:上一页下一页返回第二节MCS-51单片机指令详解2.条件转移指令条件转移指令又可以分为判零转移、数值比较转移和减1转移三种。判零转移是有条件的相对转移指令,指令如下:上一页下一页返回第二节MCS-51单片机指令详解数值比较转移指令的功能是比较前面两个操作数的大小,如果他们的值不相等则转移,在PC加到下一条指令的起始地址后,通过把指令最后一个字节的有符号的相对偏移量加到PC上,并计算出转向地址。如果第一操作数(无符号数)小于第二操作数(无符号整数),则置进位标志位Cy,否则对Cy清“0”,不影响任何一个操作数的内容。指令格式如下:上一页下一页返回第二节MCS-51单片机指令详解这组指令将源操作数(Rn,direct)减1,结果回送到源操作数寄存器或存储器中去。如果结果不为0则转移。源操作数有寄存器寻址和直接寻址。允许程序员把内部RAM单元用作程序循环计数器。指令格式如下:DJNZRn,relDJNZdirect,rel3.子程序调用和返回指令子程序结构是一种重要的程序结构。在一个程序中经常遇到反复多次执行程序段的情况,如果重复书写这个程序段,会使程序变得冗长而杂乱,因而采用了功能较为重复的子程序。上一页下一页返回第二节MCS-51单片机指令详解调用和返回构成了子程序调用的完整过程。为了实现这一过程,必须有子程序调用指令和返回指令。返回指令则应该是子程序的最后一条指令。执行完这条指令之后,程序返回主程序断点处继续执行。上一页下一页返回第二节MCS-51单片机指令详解还有子程序返回指令RET和RETI,分别放置了在子程序和中断服务程序的最后。4、空操作指令这条语句什么也不做,消耗一个机器周期的时间,通常用于程序的延时。上一页下一页返回第二节MCS-51单片机指令详解五、位操作指令1.数据位传送指令这组指令的功能是把由源操作数指出的位变量送到目的操作数指定的单元中去。其中一个操作数必须为进位标志,另一个可以是任何直接寻址位。不影响其他寄存器或标志。指令格式如下:上一页下一页返回第二节MCS-51单片机指令详解2.修改变量指令这组指令将操作数指出的位清“0”、取反、置“1”,不影响其他标志。上一页下一页返回第二节MCS-51单片机指令详解3.位变量的逻辑运算实际上位运算全部是逻辑运算,共有与、或、非三种指令。这里仅以与运算为例来说明,或运算符位ORL,非运算已在上文中替代。上一页下一页返回第二节MCS-51单片机指令详解4.条件转移类指令与前文介绍的条件转移指令类似,位运算也可以进行条件转移。上一页返回第三节MCS-51单片机系统程序设计实例一、汇编语言程序的基本结构各种计算机的汇编语言的语法规则基本相同,且具有相同的语句格式。先以MCS-51汇编语言作具体说明。MCS-51汇编语言的语句格式表示如下:下一页返回第三节MCS-51单片机系统程序设计实例其中,方括号括起来的是可选部分,可有可无,视需要而定。标号是指令的符号的地址,有了标号,程序中的其他语句才能访问该语句。标号的规则:标号由1~8个ASCII字符组成,但头一个字符必须是字母,其余可以是字母,数字或其他特定字符。不能使用本汇编语言已定义了符号作为符号,如指令助记符、伪指令助记符以及寄存器的符号名称。标号后必须跟以冒号(:)同一标号在一个程序中只能定义一次,不能重复定义。上一页下一页返回第三节MCS-51单片机系统程序设计实例一条语句可以有标号,也可以没有标号,标号的有无取决于本程序中的其他语句是否需要访问这条语句操作码用于规定语句执行的操作内容。操作码是以指令助记符或伪指令助记符表示的,操作码是汇编指令格式中唯一不能空缺的部分。操作数用于给指令和操作提示数据或地址。注释不属于语句的功能部分,它只是对语句的解释说明。分界符用于把语句格式中的各部分隔开,以便于汇编语言程序区分,包括空格,冒号,分号或逗号等多种符号,在MCS-51中,冒号(:)用于标号之后;空格()用于操作码和操作数之间;逗号(,)用于操作数之间;分号(;)用于注释之前。上一页下一页返回第三节MCS-51单片机系统程序设计实例汇编语言程序的结构形式主要分为三种:顺序结构,分支结构和循环结构。顺序结构是最简单的程序结构,在顺序结构中既无分支,循环,也不调用子程序,程序执行时一条一条地按顺序执行指令。分支结构使用条件转移指令实现,即根据条件对程序的执行进行判断,满足条件则进行程序转移,否则程序顺序执行。循环结构则在程序的某个区段进行反复的运行,直到满足某种条件结束,而有的程序则完全不能跳出的死循环,将会无休止地运行下去。上一页下一页返回第三节MCS-51单片机系统程序设计实例二、简单程序设计简单程序设计指的就是按照顺序来执行程序,程序中可以包含某种算法。[实例]求解多项式y=2a-b。假设操作数a放在寄存器R3,操作数b放在寄存器R4;结果分别放在寄存器R5和R6.上一页下一页返回第三节MCS-51单片机系统程序设计实例上一页下一页返回第三节MCS-51单片机系统程序设计实例三、分支和循环程序在许多情况下,需要根据不同的条件转向不同的处理程序,这种结构的程序称为分支程序。MCS-51单片机设置的条件转移指令、比较转移指令和位转移指令可以实现程序的分支。图3-3为分支程序框图。[实例]设a存放在累加器R2中,b存放在寄存器R3中,要求按下式计算y值,并将结果y存于累加器A中。上一页下一页返回第三节MCS-51单片机系统程序设计实例上一页下一页返回第三节MCS-51单片机系统程序设计实例循环程序是指一段反复执行的程序。图3-4为循环程序框图。[实例]将内部数据存储器38H~6FH单元的内容传送到外部数据存储器以1000H开始的连续单元中去。38H~6FH单元向外传数据,需传送56次。将R6作为循环计数寄存器,有如下的流程图:上一页下一页返回第三节MCS-51单片机系统程序设计实例四、查表程序查表就是根据自变量x的值,在表总查找y,使y=f(x)。x和y可以使各种类型的数据。表的结构也是多种多样的。表格可以放在程序存储器中,也可以存放在数据存储器中。在单片机应用系统中,这类程序使用频繁。利用它能避免进行复杂的运算或转换过程,故它广泛应用于显示、打印字符的转换以及数据补偿、计算、转换等程序中。一般情况下,对自变量x是有变化规律的数据,可以根据这一规律形成地址,对应的y则存放于该地址单元中;对x是没有变化规律的数据,在表中存放x及其对应的y值。上一页下一页返回第三节MCS-51单片机系统程序设计实例[实例]试计算发动机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/TR 33402:2025 EN Good practice in reference material preparation
- 2024年租赁合同:房产、车辆、设备等租赁细节及合同标的
- 智能台灯课程设计 总结
- 摇摆式送料机构课程设计
- 专题06 三角形(全等、相似)(2大易错点分析+19个易错点+易错题通关)-2024年中考数学考试易错题(解析版)
- 端口扫描器课程设计
- 自然心教育爱课程设计
- 花卉拼贴课程设计
- 竹片铣槽机课程设计
- 液压设计课程设计总结
- 2025年济南铁路局招聘笔试参考题库含答案解析
- 2025年心内科工作计划
- 质量是生产出来课件
- 2024-2025学年人教版七年级数学上册期末模拟测试卷(含简单答案)
- 2024-2030年中国家用小家电项目可行性研究报告
- 监理对进度控制的目标及方法措施
- 2024年内科医生年终工作总结参考(2篇)
- xx单位政务云商用密码应用方案V2.0
- 湖南省怀化市2023-2024学年七年级上学期语文期末试卷(含答案)
- 《廊坊市绿色建筑专项规划(2020-2025)》
- 2024-2030年中国湿巾行业发展趋势及竞争策略分析报告
评论
0/150
提交评论