欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    汽车单片机与车载网络技术第2章 MCS51单片机介绍.ppt

    • 资源ID:5892958       资源大小:4.91MB        全文页数:226页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    汽车单片机与车载网络技术第2章 MCS51单片机介绍.ppt

    第2章 MCS-51单片机介绍,2.1 单片机概述2.2 MCS-51单片机的基本结构2.3 MCS-51单片机的指令2.4 MCS-51单片机的并行接口2.5 中断2.6 定时/计数器2.7 串行接口2.8 模拟通道接口,2.1 单片机概述2.1.1 单片机的含义 单片机(Single Chip Micro Computer)也称为微控制器MCU(Micro Controller Unit)。它是采用超大规模集成电路技术把中央处理器(CPU)、一定容量的存储器(RAM/ROM等)、多种输入/输出(I/O)接口和中断系统、定时计数器等功能电路(可能还包括显示驱动电路、脉宽调制电路、A/D转换器等电路)集成到一块硅片上而构成的一个小而完善的计算机处理系统。简单地说,一个单片机就相当于一个微型的计算机。与计算机相比,单片机只缺少了I/O设备。,单片机具有功能强、体积小、成本低、功耗小、配置灵活等特点。以单片机为核心构成的控制系统,成本低廉且能够适应各种现场环境,具有实时、快速的外部响应,因而被广泛应用在工业控制、智能化仪器仪表、通信、家电、汽车等领域中。事实上,单片机是世界上数量最多的计算机。现代人类生活中,几乎所用的每件电子和机械产品中都会集成有单片机。手机、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中会有12部单片机;汽车上一般会配备40多部单片机;复杂的工业控制系统上甚至可能会有数百台单片机同时工作。,2.1.2 单片机的产品分类根据应用范围的不同,单片机可分为通用型单片机和专用型单片机两种。1.通用型单片机通用型单片机是由单片机厂家生产的、供广大用户选择使用的、具有基本功能的芯片,其性能全面、适应性强、能够满足多种控制的需要。但使用时用户必须进行二次开发设计,即根据需要以通用单片机为核心配以其他外围电路、芯片,从而构成控制系统,同时还需要编写控制程序。,目前,世界上通用型单片机芯片的主要生产厂家有美国Intel公司、Motorola公司、荷兰Philips公司、德国Siemens公司、日本Toshiba公司、韩国的Samsung公司等。其中,Intel公司的单片机最具有代表性,应用也最广。自1976年起,Intel公司相继开发了MCS-48、MCS-51、MCS-96三大系列产品。此三大系列产品是我国目前的主流系列。在Intel公司对MCS-51系列单片机实行技术开放政策之后,许多公司,如Philips、Siemens、Atmel、华邦、LG等都以MCS-51中的8051为基核推出了许多各具特色且具有优异性能的单片机。以8051为基核推出的各种型号的兼容型单片机统称为51系列单片机。Intel公司MCS-51系列单片机中的8051是最基础的单片机型号。,2.专用型单片机专用型单片机是专门针对某一类产品甚至是某一个产品而设计制造的单片机。此类型的单片机即不需要进行二次设计,也不用进行功能开发,一般由厂家与芯片制造商合作生产设计。例如全自动洗衣机、来电显示电话上的单片机都是专用型单片机。专用型单片机通用性差,但由于是专门针对某一控制系统设计的,因此其结构紧凑、资源优化、成本低,在其应用领域具有明显的综合优势。,2.1.3 单片机在汽车电子控制系统中的应用在现代的汽车中,电子设备比比皆是,均已涉及汽车的各主要部件(见表1-1)。其控制装置中的单片机既有功能强大的16位机或32位机,也有低性能的8位机。例如,现代汽车发动机的功能越来越完善,其控制系统也越来越复杂。控制系统需要不断地采集各个传感器的信息,并按照预定的程序进行实时计算,所以对单片机的运算速度、数据字长、与外部设备的接口等方面不断提出新的要求。目前,发动机控制系统内单片机的总线频率已经提高到几十兆赫,机型多为16位机或32位机。Motorola公司生产的MC68HC912DG128A单片机就被德尔福等汽车电子企业选用在自己的电控单元的产品中。,再如,车身电子系统大量采用电子技术,其目标是提高驾驶舒适程度并为驾驶员提供车况信息。如空调系统、座椅调节系统、电动车窗、电动后视镜等,这些应用系统通常以较低的速率进行数据传输,但要求有大电流驱动模块来驱动电动机和执行机构。由于控制对象的数目众多,必须考虑成本,因而廉价的8位控制器就成了首选。另外,随着汽车上电子控制单元的增多,为节省导线、易于布线以及在各控制单元之间快速地传输信息,网络技术便成为了有效的手段。,2.2 MCS-51单片机的基本结构2.2.1 MCS-51单片机的性能介绍MCS-51单片机的基本结构如图2-1所示。其内部具有以下硬件资源:(1)8位的中央处理器(CPU)。CPU是单片机的核心,由运算器和控制器组成。MCS-51单片机的CPU能同时处理8位二进制数或代码,故称为8位机。(2)256个字节的内部RAM(包括21个SFR)。RAM主要用于存储可读写的数据,因此又称为数据存储器。(3)内部ROM。由于ROM通常用于存放程序、原始数据、表格等,所以又称为程序存储器。8051的内部有4 K字节的掩膜ROM和4 K字节的EPROM,而8031无片内ROM。,(4)2个可编程的16位定时/计数器T0、T1,用于对外部脉冲进行计数,也可用来实现定时操作。(5)4个8位的并行I/O口P0、P1、P2、P3,可用来实现数据的并行输入与输出。(6)1个全双工异步串行接口,可用来实现单片机与其他设备之间的串行数据通信。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。(7)5个中断源,包括3个内部中断与2个外部中断,可通过编程将其设置为两个优先级别。(8)内部时钟电路,用于产生CPU正常工作所需的时钟信号。其中,石英晶体振荡器和微调电容需外接。,图2-1 MCS-51单片机的内部基本结构,2.2.2 MCS-51单片机的存储器1.存储器概述存储器是计算机中不可缺少的重要部件,用于储存二进制信息。下面介绍一些有关存储器的基本概念。(1)位:信息的基本单位是位(bit或b),表示一个二进制信息“1”或“0”。(2)字节:在微型机中信息大多是以字节(Byte或B)形式存放的,一个字节由8个位组成(1 Byte=8 bit),通常称作一个存储单元。(3)存储容量:存储器芯片的存储容量是指一片芯片所能存储的信息位数,例如8 K8位的芯片,其存储容量为810248位=65536位信息。,(4)地址:地址表示存储单元所处的物理空间的位置,用一组二进制代码来表示。地址相当于存储单元的“单元编号”。CPU可以通过地址码访问某一存储单元,一个存储单元对应一个地址码。例如8051单片机有16位地址线,能访问的外部存储器的最大地址空间为64 K(65 536)字节,对应的16位地址码为0000HFFFFH。(5)存取周期:是指存储器存放或取出一次数据所需的时间。存储容量和存取周期是存储器的两项重要性能指标。,2.半导体存储器的分类半导体存储器按读、写功能可以分为随机读/写存储器RAM(Random Access Memory)和只读存储器ROM(Read Only Memory)。RAM可以进行多次信息写入和读出,每次写入后,原来的信息将被新写入的信息所取代。另外,RAM在断电后再通电时,原存的信息会全部丢失,所以它主要用来存放临时数据。ROM的信息一旦写入后,便不能随机修改。在使用ROM时,只能读出信息,而不能写入,且在掉电后ROM中的信息仍然保留,所以它主要用来存放固定不变的程序和数据。ROM按生产工艺又可以分为以下几种:,(1)掩膜ROM:其存储的信息在制造过程中采用一道掩膜工艺生成,一旦出厂,信息就不可改变。(2)可编程只读存储器 PROM:其存储的信息可由用户通过特殊手段一次性写入,但只能写入一次。(3)可擦除只读存储器:用户可以多次擦除其存储的信息,并可用专用的编程器重新写入新的信息。可擦除只读存储器又可分为紫外线擦除的EPROM、电擦除的EEPROM和Flash ROM。,3.8051的内部数据存储器8051的内部RAM有256个单元,通常在空间上分为两个区:低128个单元(地址为00H7FH)的内部数据RAM块和高128个单元(地址为80H0FFH)的专用寄存器SFR块,见图2-2。,图2-2 8051内部的RAM配置,(1)工作寄存器区(00H1FH)。工作寄存器区也称为通用寄存器,该区域共有4组寄存器,每组由8个寄存单元组成,各组均以R0R7作寄存器编号。在任一时刻,CPU只能使用其中的一组通用寄存器,称为当前通用寄存器组,具体使用哪组可由程序状态寄存器PSW中RS1、RS0位决定,见表2-1。通用寄存器为CPU提供了就近存取数据的便利,提高了工作速度,也为编程提供了方便。,(2)位寻址区(20H2FH)。内部RAM的20H2FH地址段,共16个单元(计168=128位)为位寻址区,位地址为00H7FH,见表2-2。既可将位寻址区作为一般的RAM区进行字节操作,也可对单元的每一位进行位操作。,(3)用户RAM区(30H7FH)。单元地址为30H7FH的80个单元为用户RAM区,在一般应用中把堆栈设置在该区域中。(4)专用寄存器区(80H0FFH)。内部RAM的高128单元中分散有21个专用寄存器。表2-3为21个专用寄存器一览表。,下面介绍几个常用的专用寄存器。累加器A(Accumulator)。累加器是最常用的一个8位专用寄存器,是运算器的重要组成部分,大多数运算操作都有它的参与。其既可存放操作数,又可存放运算结果。寄存器B。寄存器B是8位寄存器,主要用于乘、除运算,同时也可作为一般的寄存器使用。程序状态字PSW(Program Status Word)。程序状态字是8位寄存器,用于指示程序的运行状态信息。其中有些位是根据程序执行结果由硬件自动设置的,而有些位可由用户通过指令来设定。PSW中各标志位的名称及定义如下:,CY进(借)位标志位。在加减运算中,若操作结果的最高位有进位或有借位时,CY由硬件自动置1,否则清0。在位操作中,CY作为位累加器使用。AC辅助进(借)位标志位。在加减运算中,当低四位向高四位产生进位或借位时,此标志位由硬件自动置1,否则清0。F0用户标志位。由用户通过软件设定,用以控制程序转向。RS1、RS0寄存器组选择位。用于设定当前通用寄存器组的组号,具体组号见表2-1。,OV溢出标志位。在有符号数(补码数)的加减运算中,若OV=1,表示加减运算的结果超出了累加器A的八位有符号数的表示范围(-128+127),产生溢出,因此运算结果是错误的。若OV=0,表示结果未超出累加器A的符号数的表示范围,运算结果正确。乘法运算时,若OV=1,表示结果大于255,结果分别存在累加器A、寄存器B中。若OV=0,表示结果未超出255,结果只存在累加器A中。除法运算时,若OV=1,表示除数为0。OV=0,表示除数不为0。,P奇偶标志位,表示累加器A中1的个数的奇偶性。在每个指令周期由硬件根据累加器A的内容的奇偶性对P自动置位或复位。P=1,表示累加器A中的内容有奇数个1。数据指针DPTR(Data Pointer)。数据指针DPTR是唯一的一个供用户使用的16位寄存器,它由两个8位寄存器DPH与DPL组成。DPTR通常在访问外部数据存储器时作为地址指针使用,寻址范围为64 KB。堆栈指针SP(Stack Pointer)。程序运行时需要一个连续的RAM块作为数据缓冲区,以暂时存放程序运行过程中的一些重要数据,此RAM块称为堆栈。,堆栈的主要功用是保护断点和保护现场。因为计算机无论执行的是中断程序还是子程序,最终都要返回主程序。在转去执行中断程序或子程序时,要把主程序的断点保护起来,以便能正确的返回。同时,也要将中断程序或子程序可能要用到的寄存器中的内容保护起来,即保护现场。堆栈指针SP用于指示栈顶单元地址,是一个8位寄存器。当系统复位后,SP的内容为07H。堆栈的最大特点是按“后进先出”的数据操作原则执行。MCS-51系列单片机的堆栈是向上生长型,即数据进栈时,SP的内容先自动加1后再向栈区写入数据;数据出栈时,SP所指示的栈区数据先弹出,然后SP的内容再自动减1。,4.8051的内部程序存储器在介绍8051的内部程序存储器前,先介绍一个重要的专用寄存器程序计数器PC。PC(Program Counter)为一个16位的计数器,其存储的内容为单片机将要执行的指令机器码所在的存储单元的地址。PC具有自动加1的功能,即CPU以PC的当前值为地址从ROM中读取一个字节指令后,PC自动加1,以指向下一个ROM单元,当CPU再次以PC的当前值为地址进行指令读取时,读到的就是下一个ROM单元的内容,这样就实现了程序的自动按顺序执行。由于PC是不可寻址的,因此用户无法对它直接进行读写操作,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。复位后,PC=0000H。,程序存储器主要用于存放程序及重要的数据。大多数51系列单片机的内部都配置有一定数量的程序存储器ROM,如8051芯片内有4 KB的掩膜ROM存储单元,AT89C51芯片内部配置了4 KB的FlashROM,它们的地址范围均为0000H0FFFH。内部程序存储器内有如下一些特殊单元,使用时要注意。0000H单元:系统复位后,PC=0000H,即单片机从0000H单元开始执行程序。如果主程序不是从0000H单元开始存放,就必须在0000H0002H单元中存放一条无条件转移指令,以便转去执行指定的应用程序。,0003H单元:外部中断0的中断程序入口地址。000BH单元:定时器/计数器0的中断程序入口地址。0013H单元:外部中断1的中断程序入口地址。001BH单元:定时器/计数器1的中断程序入口地址。0023H单元:串行中断程序入口地址。在中断程序入口地址单元中应存放相应的中断服务程序,但8个单元通常难以存下一个完整的中断服务程序,因此往往需要在中断程序入口地址单元中存放一条无条件转移指令,以便转到中断服务程序真正的入口地址。,对程序存储器的操作作以下说明:(1)程序指令的自主操作。CPU按照PC指针自动地从程序存储器中取出指令。(2)用户使用指令对程序存储器中的常数表格进行读操作。此操作可用MOVC指令实现。,图2-3 MCS-51单片机的引脚图,5.8051的外部存储器因8051的内部程序计数器PC为16位计数器,同时8051共有16根地址线引脚,因此在8051单片机的外部可以分别扩展64 KB的ROM与64 KB的RAM。,2.2.3 MCS-51单片机的引脚功能介绍MCS-51单片机的引脚图见图2-3。下面对各引脚的作用进行介绍。1.主电源引脚VCC和VSSVCC为电源输入端,正常操作时接+5 V电源;VSS为接地线。,2.时钟振荡电路引脚XTAL1、XTAL2XTAL1和XTAL2分别用作晶体振荡电路的反相器输入端和输出端。MCS-51单片机的时钟电路见图2-4。图2-4(a)中采用了芯片内部的一个高增益反向放大器、芯片外连的晶体振荡器和微调电容构成一个稳定的自激振荡器,这就是单片机的内部时钟电路。时钟电路产生的振荡脉冲经过二分频以后,才成为单片机的时钟信号。晶振的频率fosc通常在6 MHz12 MHz之间选择。1个机器周期=12个振荡周期=12/fosc。,图2-4 MCS-51单片机的时钟电路,4.控制类引脚(1)RST/VPD(9脚)。RST为复位信号输入端。复位是单片机系统的初始化操作,在该引脚上输入持续2个机器周期以上的高电平时,单片机系统复位。系统复位后对专用寄存器的影响情况见表2-3。同时,复位操作还对单片机的个别引脚信号有影响,如把ALE和PSEN信号变为无效状态,即ALE=1,PSEN=1。复位操作对内部RAM不产生影响。复位电路见图2-5。,图2-5 MCS-51单片机的复位电路,2.3 MCS-51单片机的指令2.3.1 单片机的指令系统概述指令就是指挥计算机工作的命令。一台计算机能执行的全部指令称为该计算机的指令系统。指令系统全面描述了CPU的功能。指令系统是由生产厂家确定的,不同的CPU有不同的指令系统。编程语言是人机对话的工具,按使用层次可分为机器语言、汇编语言和高级语言。机器语言(二进制代码)能直接被机器识别,用其编写的程序运行效率高,但编程效率低,不便于阅读、书写和交流。引入助记符将机器语言符号化后就成为汇编语言,其指令直观易懂。用汇编语言编写的程序称为汇编语言程序。汇编语言程序必须经过汇编(机器汇编或手工汇编)成为机器语言后才能被机器执行。,例如将累加器A中的数据加9的指令,机器语言为0010 0100 0000 1001B,而汇编指令为ADD A,#09H。高级语言的编程效率高,但编写出的程序运行效率低。,2.3.2 汇编语言的语句格式汇编语言程序由一系列语句组成,一行为一个语句。汇编语言的语句格式如下:标号:操作码助记符操作数;注释1.标号标号表示该指令代码第一字节的地址,是用户根据程序需要(该指令为子程序入口指令或程序转移的目标指令)而设定的符号地址。标号由英文字母、数字或下划线组成,但必须以英文字母开头,以“:”结束,一般包含18个字符。不能使用汇编语言中已经定义的符号(如助记符、寄存器符号等)作标号,一个标号在同一程序中只能定义一次。,2.操作码助记符操作码助记符是表示指令操作功能的英文缩写,是语句的核心部分。每条语句都必须有操作码。3.操作数操作数表示指令的操作对象,其表示形式与寻址方式有关。一条指令中可以没有操作数,也可以有多个操作数,操作数和操作码之间以空格分隔,操作数之间以逗号分隔。4.注释注释是编程者为方便程序的理解、交流而书写的解释性文字、符号,不属于语句的功能部分,既不产生代码,对汇编过程也不起作用。注释必须以“;”开始。,2.3.3 寻址方式操作数是指令的一个重要组成部分,所谓的寻址方式就是确定操作数所在的位置(地址)的方法。MSC-51系列单片机共有七种寻址方式。1.立即寻址 立即寻址是指在指令中直接给出操作数的寻址方式。操作数作为指令的一个组成部分存放在程序存储器中。该操作数称为立即数。立即数前应加“”标记,如下面指令中的“#40H”:MOVA,40H该指令将立即数40H送累加器A中。,2.直接寻址直接寻址是在指令中直接给出操作数地址的寻址方式。这种寻址方式可对内部数据存储器进行访问。如下面指令中的“50H”:MOVA,50H该指令把内部RAM中地址为50H的单元(直接寻址)中的内容送入累加器A中。,3.寄存器寻址寄存器寻址是指以指令指定的寄存器的内容作为操作数的寻址方式。指定的寄存器有工作寄存器R0R7、累加器A、数据指针DPTR。如下面指令中的“A、R2”:MOVA,R2该指令是将工作寄存器R2的内容送给累加器A。,4.寄存器间接寻址方式寄存器间接寻址是以指令中指定寄存器的内容作为地址取得操作数的方法。指定的寄存器有R0、R1、DPTR,使用时寄存器前面加“”标志。如下面指令中的“R0”:MOV A,R0 该指令的操作为将寄存器R0的内容(设(R0)=30H)作为地址,把片内RAM地址为30H的单元中的内容(设(30H)=48H)送入累加器A,指令执行后(A)=48H。,5.基址加变址寻址基址加变址就是以DPTR或PC为基址寄存器,以A为变址寄存器,然后以两者内容相加形成的16位地址作为操作数地址。例如下面指令中的“A+DPTR”:MOVC A,A+DPTR该指令是把DPTR的内容作为基地址,把A的内容作为偏移量,再将两量相加形成16位地址,然后将该地址的程序存储器ROM单元中的内容送给累加器A。假设指令执行前为:(DPTR)=1100H,(A)=56H,ROM(1156H)=80H,则该指令执行后:(A)=80H。基址加变址寻址只能对程序存储器进行寻址。,6.相对寻址相对寻址方式只用于相对转移指令中。相对转移指令以当前PC的值(即本指令下面一条指令的首字节地址)与指令中给定的相对偏移量rel之和作为程序转移的目标地址。偏移量rel是8位二进制补码,转移范围位于当前PC值的-128+127个字节单元之间。例如下面的指令:JZ 30H;当(A)=0时,则PC(PC)+2+rel,程序转移;当(A)0时,则PC(PC)+2,程序按原顺序执行,7.位寻址位寻址是对内部RAM及专用寄存器的可寻址位的内容进行操作的寻址方式。可进行位寻址的空间有:(1)片内RAM的20H2FH,共16个单元128位,其位地址编码为00H7FH。(2)字节地址能被8整除的SFR(11个)。对这些寻址位,可以有以下几种表示方法:直接位地址方式,如:0D5H;位名称方式,如:F0;点操作符方式,如PSW.5或0D0H.5;以上几种方式指的都是PSW中的第5位。例如指令:MOV C,07H 该指令属位操作指令,将内部RAM 20H单元的D7位(位地址为07H)的内容送给位累加器CY。,2.3.4 指令中符号的约定下面对汇编指令系统中指令的符号约定进行介绍。Rn:当前选中的工作寄存器组的工作寄存器,n=07。Ri:以R0或R1作寄存器间接寻址,“”为间址符,i=0、1。可以访问片内RAM的低128字节和片外RAM的低256字节。DPTR:以数据指针DPTR的内容为地址的寄存器间接寻址,对外部RAM的64 K字节地址空间进行寻址。direct:8位直接地址,可以是内部RAM单元地址(00H7FH),也可以是特殊功能寄存器地址(80HFFH)。,addr11:11位地址,短转移(AJMP)及短调用(ACALL)指令中用于构成转移目标地址,可在2 KB范围内转移。实际编程时用标号代替此指令。addr16:16位地址,长转移(LJMP)及长调用(LCALL)指令中为转移目标地址,转移范围为64 KB。实际编程时用标号代替此指令。bit:位地址,可以是内部RAM中所有的可寻址位。rel:用于相对转移指令中,为8位二进制补码,表示偏移量为-128+127字节。实际编程时用标号代替此指令。,data:8位立即数。“”为立即数的标志。data16:16位立即数。/:位操作数取反操作的前缀,如“/bit”。(X):X中的内容。(X):由X间接寻址的单元中的内容。:将箭头右边的内容送到箭头所指的单元。,2.3.5 MCS-51单片机指令系统的分类MCS-51单片机的指令系统共有111条指令,按功能分为五大类:数据传送类指令、算术运算类指令、逻辑运算类指令、位操作类指令、控制程序转移类指令。1.数据传送类指令MSC-51单片机的数据传送类指令如表2-4所示。,表2-4中:(1)MOV指令。MOV 目的操作数,源操作数该指令的功能是把源操作数所表示的数据传送到目的操作数指定的单元中,指令执行之后源操作数不发生改变。(2)PUSH、POP指令为堆栈操作指令。PUSH为入栈指令;POP为出栈指令。(3)XCH为字节交换指令,该指令的功能是将累加器A中的值与另一个操作数指示的数据互换位置。,(4)XCHD为半字节交换指令,该指令的功能是将累加器A中内容与源操作数的低4位互换,而高4位不变。(5)SWAP指令的功能是将累加器A中的高4位与低4位互换。(6)MOVX指令的功能是实现片外RAM(或扩展I/O)与累加器A之间的数据传送。注意:片外RAM只能采用寄存器间接寻址的方式访问。(7)MOVC指令的功能是从程序存储器中读取数据并送入累加器A,该指令可以访问片内ROM,也可以访问片外ROM。,2.算术运算类指令,表2-5中:(1)ADD为加法指令,功能是将源操作数与累加器A中的内容相加,结果存储在累加器A中。该操作不改变源操作数,但影响PSW中的CY、AC、OV、P,影响如下:若最高位有进位,则CY置1,否则清0;若低4位向高4位有进位,则AC置1,否则清0;若第6位有进位而第7位无进位或第6位无进位而第7位有进位,则OV置1,否则清0。,(2)ADDC为带进位加法指令,功能是将源操作数、累加器A的内容、进位标志CY的值三者相加,结果存储在累加器A中。该指令对标志位的影响与ADD指令的相同。(3)INC为增量指令,功能是将操作数指示的数据加1,结果仍然存储在该操作数指示的单元中。该组指令除“INC A”指令影响P标志位外,不影响任何标志位。(4)SUBB为带进位减法指令,功能为用累加器A中的数据减去源操作数,再减去进位CY,差存储在累加器A中,该组指令影响PSW中的CY、AC、OV、P。(5)DEC为减量指令,功能是将操作数减1,结果仍然存储在该操作数指示的单元中。,(6)MUL为乘法指令,功能是将累加器A与寄存器B中的两个8位无符号数相乘,所得16位乘积存储在BA寄存器对中。(7)DIV为除法指令,功能是用累加器A中的数据除以寄存器B中的数据,运算后,商存于累加器A中,余数存于寄存器B中。注意,除数与被除数都为无符号数。(8)DA为十进制调整指令,功能是对累加器A中由上一条加法指令(加数和被加数均为压缩BCD码)所获得的结果进行调整。该指令需紧跟在ADD或ADDC指令后使用。,3.逻辑运算类指令,表2-6中:(1)ANL为逻辑与运算法指令,功能是将指令中的两个操作数指示的数据按位与运算,运算结果存储在第一个操作数指示的单元中。(2)ORL为逻辑或运算法指令,功能是将指令中的两个操作数指示的数据按位或运算,运算结果存储在第一个操作数指示的单元中。(3)XRL为逻辑异或运算法指令,功能是将指令中的两个操作数指示的数据按位异或运算,运算结果存储在第一个操作数指示的单元中。(4)CLR、CPL为累加器A的清零、取反指令。(5)RL、RR、RLC、RRC为循环移位指令。,4.位操作类指令,表2-7中:(1)MOV为位传送指令,功能为将源操作数的值(可能为1或0)传送至目的操作数中。(2)SETB、CLR、CPL分别为置位、清0、取反指令,功能是将操作数的值置为1、0或者取反。(3)ANL、ORL为位逻辑运算指令。,5.控制程序转移类指令,表2-8中:(1)LJMP、AJMP、SJMP、JMP为无条件转移指令,指令中的操作数即为转移的目标。(2)JZ、JNZ指令为条件转移指令,转移的条件为累加器的值是否为0。(3)JC、JNC指令为条件转移指令,转移的条件为标志位CY的值是为0还是为1。(4)JB、JNB、JBC指令为条件转移指令,转移的条件为bit位的值为0还是为1。(5)CJNE为比较不相等转移指令,指令的功能是将第1、第2操作数的值(无符号数据)进行比较,若不相同则转移(转移的目标由第3操作数指示),若相同则顺序执行。(6)DJNZ为减1不为0转移指令,指令的功能是先将第1操作数的值减1,之后判断结果是否为0,若不为0则转移(转移的目标由第2操作数指示),若为0则顺序执行。(7)LCALL、ACALL指令为子程序调用指令,RET为子程序返回指令,RETI为中断返回指令。(8)NOP是空操作指令。,2.3.6 汇编伪指令1.汇编起始地址伪指令ORG(Origin)格式:ORGaddr16功能:规定目标程序段的起始地址。ORG后面的16位地址表示此语句后的程序或数据块在程序存储器中的起始地址。例如:ORG1000HSTART:MOVA,32H上述指令说明:START表示的地址为1000H,MOV指令从1000H存储单元开始存放数据。,2.字节定义伪指令DB(Define Byte)格式:标号:DB data1,data2,data3,dataN功能:从指定的地址单元开始,存入规定好的8位数据表。例如:ORG1000HTAB1:DB01H,04H,09H,10H以上伪指令汇编后从1000H单元开始存放4个字节的数据平方表:(1000H)=01H,(1001H)=04H,(1002H)=09H,(1003H)=10H。,3.字定义伪指令DW(Define word)格式:标号:DWdata1,data2,dataN功能:从指定的地址单元开始,存入规定好的16位数据表。每个数据(16位)占用两个存储单元,其中高8位存入小地址单元,低8位存入大地址单元。常用于定义一个地址表。例如:ORG1000HTAB2:DW 1067H,765AH汇编后:(1000H)=10H,(1001H)=67H,(1002H)=76H,(1003H)=5AH。,4.存储区定义伪指令DS(Define Storage)格式:标号:DSX功能:从指定的地址单元开始,预留X字节单元作为备用。例如:ORG2000HDS 07HL2:MOV A,#00H汇编后,从2000H开始保留7个字节单元,从而MOV指令的地址为2007H。注意:DB、DW、DS伪指令只能对程序存储器进行赋值和初始化工作,不能用来对数据存储器进行赋值和初始化工作。,5.赋值伪指令EQU(Equate)格式:字符名EQU数或汇编符号功能:将右边的值赋给左边用户定义的字符。赋值后,字符在整个程序内有效,该伪指令一般放在程序的开始段。例如:TEMPEQUR0XEQU16第一条伪指令将TEMP等值为汇编符号R0,此后的指令中TEMP可以代替R0来使用。第二条指令表示指令中可以用X代替16来使用。注意使用EQU命令时必须先赋值后使用,字符名不能和汇编语言的关键字同名,如不能使用A、MOV、B等。,6.位地址定义伪指令BIT 格式:字符名BIT位地址功能:将位地址赋予所定义的字符名。7.汇编结束伪指令END格式:END功能:表示汇编语言源程序到此结束。,2.4 MCS-51单片机的并行接口1并行接口的结构(1)P0口。P0口的结构见图2-6。P0口是功能最强的口,即可作为一般的I/O口使用,也可作为单片机外部数据线、低8位地址线使用。当P0口作为一般的I/O口输出时,由于端口各口线的输出电路是漏极开路电路,因此必须外接上拉电阻才能有高电平输出。当P0口作为一般的I/O口输入时,必须使电路中的锁存器写入高电平“1”,使场效应管FET截止、引脚处于“浮空”状态,才能做到高阻输入,以保证输入正确的数据。,图2-6 P0的内部结构,(2)P1口。P1口的结构见图2-7。P1口通常作为通用I/O口使用。作为输出口时,由于P1电路内部已经带有上拉电阻,因此无需外接上拉电阻;作为输入口时,也需先向锁存器写入“1”。,图2-7 P1的内部结构,(3)P2口。P2口的结构见图2-8。P2口既可作为通用I/O口使用,也可作为单片机外部的高8位地址线使用。,图2-8 P2的内部结构,(4)P3口。P3口的结构见图2-9。P3口既可作为通用I/O口使用,也可作为第二功能按需要来使用,见表2-9。,图2-9 P3的内部结构,(4)I/O口功能的自动识别。无论是P0、P2口的总线复用功能,还是P3口的第二复用功能,单片机都会自动选择,不需要用户通过指令选择。(5)I/O口的驱动特性。P0口的每一个I/O口可驱动8个LSTTL输入,而P1、P2、P3口的每一个I/O口只可驱动4个LSTTL输入。在使用时应注意口的驱动能力。,3并行接口的使用在MCS-51单片机中,没有专门的输入/输出指令,而是将I/O接口与存储器一样看待,即使用访问存储器的指令来实现I/O接口的输入/输出功能。当向I/O口写入数据时,即通过相应引脚向外输出,而当从I/O口读入数据时,则将通过引脚将外部设备的状态信号输入到单片机内。4个I/O口都可以进行位寻址,即可通过位操作指令实现一位口线的输入/输出。为了使用方便,用Pm表示某一个并行口,Pm.n表示m口的第n位口线。,1)输出数据(1)使用MOV指令输出字节数据,这是常用的输出方法,例如:MOV Pm,#dataMOV Pm,A(2)使用位操作指令输出各位数据。外部设备的输入/输出线往往只有一根,此时使用位操作指令更方便。例如:MOV Pm.n,CSETB Pm.nCLR Pm.n,(3)使用读修改写指令改变输出数据。有时控制系统的前后输出是有联系的,下一个输出必须根据前一个输出决定,此时需要使用读修改写指令,例如:ANL Pm,#dataORL Pm,ACPL Pm.n,2)输入数据执行对端口进行读操作的指令时,可以从相应的口线上将外部设备的状态信息输入至单片机中。例如:(1)字节数据输入MOV Pm,#0FFHMOV A,Pm该程序段执行后将从Pm端口中输入一个8位数据,送至A中存放。(2)位数据输入SETB Pm.nMOV C,Pm.n该程序段执行后将从Pm端口的第n位口线上输入一位信息,并送至C中存放。,4并行接口的应用实例1)并行接口控制七段LED显示器图2-10为七段LED显示器,它由8个发光二极管构成各字段,内部结构有共阴极与共阳极两种。,图2-10 七段LED显示器,例1 用8051控制共阳极七段LED显示器循环显示09十个数字,电路见图2-11。,图2-11 共阳极七段LED显示器的控制电路,程序如下:ORG0000HLJMP MAINORG 0100HTAB:DB0C0H,0F9H,0A4H,0B0H,99H;09显示码DB92H,82H,0F8H,80H,90H MAIN:MOVR0,#0MOVDPTR,#TAB,LOOP:MOVA,R0MOVC A,A+DPTR;查表取显示码MOVP1,A;输出显示LCALLDELAY;定时INCR0CJNE R0,#10,LOOPLJMPMAINDELAY:MOVR2,#0C8H;定时子程序LOOP1:MOVR3,#0FAHDJNZR3,$DJNZR2,LOOP1RETEND,2)并行接口驱动步进电机步进电机因其转动角度与转速可精确控制而广泛应用于数字电路,特别是在计算机控制系统中作为执行机构,直接由计算机的数字信号驱动以实现精确控制。以三相步进电机为例,步进电机的控制包括以下三个方面。(1)方向控制。给步进电机的三个励磁绕组A、B、C按照不同的顺序通电、断电,则可实现步进电机的正转或反转。,步进电机驱动方式通常有三种:三相单三拍方式:ABC。其中,“三相”指A、B、C三个绕组,“单”指每次只有一相绕组通电,“拍”指从一种通电状态转到另一种通电状态。三相双三拍方式:ABBCCA。三相六拍方式:AABBBCCCA。假设按以上顺序通电,步进电机正转;若按相反方向通电,则步进电机反转。例如用单片机的P1.0、P1.1、P1.2分别控制步进电机的A、B、C相绕组(见图2-12),则各种驱动方式下的控制代码见表2-10表2-12。,图2-12 单片机控制三相步进电机的硬件电路,(2)角度控制。步进电机每一拍前进一步,对应一个脉冲。通过控制通电脉冲数可精确控制电机转过的角度。(3)速度控制。步进电机的运转速度由输入到A、B、C三相绕组脉冲的频率控制。,例2 编程控制步进电机,控制电路见图2-12。对步进电机的要求如下:步进电机以三相六拍方式工作。步进电机转动的总步数存储在内部RAM的0FFH单元中。转向标志存放在程序状态寄存器用户标志位F0(D5H)中,当F0为“0”时,步进机正转,反之步进机反转。步进电机工作脉冲的频率为100 Hz。系统晶振频率fosc为12 MHz。解 步进电机的控制流程如图2-13所示。,图2-13 步进电机的控制流程,程序清单如下:ORG0000HLJMP MAINORG0100HTAB6:DB01H,03H,02H,06H,04H,05H;正转控制代码TAB_6:DB05H,04H,06H,02H,03H,01H;反转控制代码DELAY:MOVR0,#100;延时0.01 sD_1:MOVR1,#48NOPDJNZR1,$DJNZR0,D_1RET,MAIN:JNBF0,CLW;判断转向MOVDPTR,#TAB_6;设置反转控制代码首地址LJMPCONCLW:MOVDPTR,#TAB6;设置正转控制代码首地址CON:MOVA,#0;设置控制代码偏移量LOOP:PUSHACC;保护控制代码偏移量MOVCA,A+DPTR;取控制代码MOVP1,A;输出控制代码LCALLDELAY;延时0.01 sDJNZ0FFH,NEXT;判断转动步数是否达到要求LJMPFINISH;控制完成NEXT:POPACC;取控制代码偏移量INCA;偏移量加1CJNEA,#6,L

    注意事项

    本文(汽车单片机与车载网络技术第2章 MCS51单片机介绍.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开