配套课件-单片机原理与C51语言程序设计基础教程_第1页
配套课件-单片机原理与C51语言程序设计基础教程_第2页
配套课件-单片机原理与C51语言程序设计基础教程_第3页
配套课件-单片机原理与C51语言程序设计基础教程_第4页
配套课件-单片机原理与C51语言程序设计基础教程_第5页
已阅读5页,还剩518页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、重点内容: 单片机简介 单片机的应用领域及趋势常用51单片机介绍 本章小结第1章 绪 论 一、单片机简介 微处理器:如果把运算器和控制器封装在一块芯片上,则称该芯片为微处理器(MPU,Micro Processing Unit)或者是中央处理器(CPU,Central Processing Unit)。 微型计算机:将微处理器与大规模集成电路制成的存储器,输入输出接口电路在印制电路板上用总线连接起来,就够成了微型计算机。 弹片机:如果在一块芯片上,集成了一台微型计算机的四个组成部分,则称为单片微型计算机,简称单片机。 换句话而言,单片机是一块芯片上的微型计算机。以单片机为核心的硬件电路称为单片

2、机系统,它属于嵌入式系统地应用范畴。1、微处理器、微型计算机与单片机一、单片机简介 1、微处理器、微型计算机与单片机 右图是双列直插以及PLCC封装的51单片机芯片AT89S52。 它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。一、单片机简介 1、微处理器、微型计算机与单片机 单片机应用系统是以单片机为核心,配以输入、输出、显示、控制等外围电路和软件,能实现一种或多种功能的实用系统。所以说,单片机应用系统是由硬件和软件组成的,硬件是应用系统的基础,软件则在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务

3、,二者相互依赖,缺一不可。一、单片机简介 2、单片机的分类和指标单片机从用途上可分成专用型单片机和通用型单片机两大类。专用型单片机是为某种专门用途而设计的,如DVD控制器和数码摄像机控制器芯片等。在用量不大的情况下,设计和制造这样的专用芯片成本很高,而且设计和制造的周期也很长。我们通常所用的都是通用型单片机,通用型单片机把所有资源(如ROM、I/O等)全部提供给用户使用。一、单片机简介 2、单片机的分类和指标位数:即单片机能够一次处理的数据的宽度存储器:包括程序存储器和数据存储器,程序存储器空间较大,数据存储器的字节数则通常为几十字节到几百字节之间。I/O口:即输入输出口,用户可以根据自己的需

4、要进行选择。速度:指的是CPU的处理速度,以每秒执行多少条指令衡量,常用单位是MIPS(百万条指令每秒),工作电压:通常工作电压是5V功耗:低功耗是现代单片机所追求的一个目标温度:单片机根据工作温度可分为民用级(商业级)、工业级和军用级三种。附加功能:有的单片机有更多的功能,用户可根据自己的需要选择最适合自己的产品。一、单片机简介 3、单片机的特点单片机作为微机的一种,它具有如下特点:1)具有优异的性能价格比。2)集成度高、体积小、可靠性高。3)控制功能强,开发应用方便。4)低电压、低功耗。一、单片机简介 4、如何学习单片机这门技术首先,大概了解单片机的结构其次,要有大量的实例练习第三,要多结

5、合外围电路,如流水灯、数码管、独立键盘、矩阵键盘、AD或DA(原理一样)、液晶、蜂鸣器进行练习最后,就是结合自己的实际情况,开发一个完全具有个人风格,功能完善的电子产品,尽情享受单片机带来的欢乐和成就感二、单片机的应用领域及趋势 1、应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1)在智能仪器仪表上的应用(2)在工业控制中的应用(3)在家用电器中的应用(4)在计算机网络和通信领域中的应用(5)在医用设备领域中的应用二、单片机的应用领域及趋势 2、发展趋势随着科学技术的发展,单片机正朝着高性能和多品种方向发展趋势将是

6、进一步向着CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。三、常用51单片机介绍 1、Intel公司系列单片机三、常用51单片机介绍 2、Atmel 公司系列单片机三、常用51单片机介绍 3、Philips公司单片机 Philips公司生产与MCS-51兼容的80C51系列单片机,片内具有I2C总线、A/D转换器、定时监视器、CRT控制器(OSD)等丰富的外围部件。其主要产品有LPC900系列,LPC76x系列,P8xC5x系列,增强型80C51系列。以P87C552为例,它具有8K ROM,256B RAM,48个I/O口,3个16位定时/计数器,15个中

7、断源,16MHz的工作频率,UART, I2C通道,8路10位A/D转换器,工作电压为2.7-5.5V。 Philips单片机独特的创造是具有I2C总线,这是一种集成电路和集成电路之间的串行通信总线。可以通过总线对系统进行扩展,使单片机系统结构更简单,体积更小。I2C总线也可以用于多机通信。三、常用51单片机介绍 4、STC公司单片机STC(宏晶科技)是大陆本土的51单片机生产企业,其在51单片机内核上集成了大量各种诸如I2C总线接口、ADC转换模块、PWM控制模块之类的外围器件,提供了大量拥有不同扩展功能的型号以供用户选择,并且这些单片机都支持串口下载,可以很方便的修改内部软件,非常适合制作

8、开发板和系统原型。 。四、本章小结 单片机即单片微型计算机,它把一台计算机所需要的部件集成在一个芯片上,单片机应用系统是以单片机为核心,配以外围电路和软件,能实现一种或多种功能的实用系统。单片机具有体积小、质量轻、价格便宜等优点,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。四、本章小结 目前常用的8位单片机有AVR,PIC,51这三个系列,51单片机指的是以Intel 8051为内核的一系列单片机,它因为技术成熟,学习资料丰富而得到广泛应用。51系列单片机又分为标准型和增强型,增加型51系列与标准型完全兼容,并且一些功能有所增强。Intel、Atme

9、l、Philips、STC等公司是51单片机的主要厂商。51单片机型号繁多,选型时应从芯片的通用性和系统的需求等方面考虑。重点内容: 单片机的内部结构 单片机引脚功能单片机的工作时序 单片机的工作方式单片机的最小系统本章小结第2章 单片机的硬件基础 一、单片机的内部结构 51单片机内部有一个8位的面向控制、功能强大的微处理器,其主要功能是运算和控制整个系统协调工作。它由运算器和控制器两部分组成。 1 运算器运算器主要实现对操作数的算术运算、逻辑运算和位操作。主要包括算术逻辑运算部件(ALU)、累加器A、寄存器B、程序状态字PSW、暂存器、布尔外理器以及十进制调整电路等部件。1、中央处理器一、单

10、片机的内部结构算术与逻辑部件ALU(Arithmetical Logic Unit)算术逻辑单元ALU是计算机中必不可少的数据处理单元之一,主要对数据进行算术逻辑运算。从结构上看,该单元实质是一个全加器,它的运算结果将对程序状态字PSW产生影响。该单元主要完成以下操作:加、减、乘、除运算;增量(加1)减量(减1)运算;十进制数调整;位操作中的置位、复位和取反操作;与、或、异或等运算操作;数据传送操作。1、中央处理器一、单片机的内部结构累加器A累加器A是CPU中最繁忙、使用频度最高的一个特殊功能寄存器,简称为ACC或A寄存器,其作用为:累加器A作为ALU的输入数据源之一,也是ALU的输出;CPU

11、中的数据传送大多数都通过累加器,累加器A是一个非常重要的数据中转站。1、中央处理器一、单片机的内部结构 寄存器B寄存器B是一个8位寄存器,是为ALU进行乘、除运算而设置的。在执行乘法运算指令的时候,寄存器B用于存放其中的一个乘数和乘积的高8位数。在执行出发运算的时候,寄存器B用于存放除数和余数。在其他情况下,B寄存器可以作为一个普通的寄存器使用。1、中央处理器一、单片机的内部结构程序状态字程序状态字PSW(Program Status Words)是一个8位的专用寄存器,用于存储程序运行中的各种状态信息。它被逐位定义,可以位寻址,1、中央处理器一、单片机的内部结构 暂存器 用以暂存进入运算器之

12、前的数据。 布尔处理器布尔处理器(位处理器)是51单片机ALU所具有的一种功能。单片机指令系统的位处理指令集(17条位操作指令),存储器中的位地址空间,以及借用程序状态寄存器PSW中的进位标志CY做为位操作“累加器”,构成了51单片机内的布尔处理器。它可对直接寻址的位(bit)变量进行位处理,如置位、清零、取反、测试转移以及逻辑“与”、“或”等位操作,使用户在编程时可以利用指令完成原来单凭复杂的硬件逻辑锁完成的功能,并可方便地设置标志等。十进制调整电路顾名思义,用来进行十进制调整的电路。1、中央处理器一、单片机的内部结构 2 控制器控制器是控制计算机系统各种操作的部件,其功能是控制指令的读取、

13、译码和执行,对指令的执行过程进行定时控制,并根据执行结果决定其后的操作。它包括时钟发生器、定时控制逻辑、复位电路、指令寄存器IR、指令译码器ID、程序计数器PC、程序地址寄存器、数据指针DPTR、堆栈指针SP等。1、中央处理器一、单片机的内部结构51系列单片机的存储组织采用的是哈佛(Harvard)结构,即将程序存储器和数据存储器截然分开,程序存储器和数据存储器具有各自独立的寻址方式、寻址空间和控制系统。这种结构对于单片机“面向控制”的实际应用极为方便。在物理结构上,51系统单片机有4个存储器空间:程序存储器:片内程序存储器和片外程序存储器;数据存储器:片内数据存储器和片外数据存储器。2、存储

14、器结构一、单片机的内部结构 51单片机内部有一个8位的面向控制、功能强大的微处理器,其主要功能是运算和控制整个系统协调工作。它由运算器和控制器两部分组成。 1 运算器运算器主要实现对操作数的算术运算、逻辑运算和位操作。主要包括算术逻辑运算部件(ALU)、累加器A、寄存器B、程序状态字PSW、暂存器、布尔外理器以及十进制调整电路等部件。2、存储器结构一、单片机的内部结构 1存储原理为了探讨计算机的存储原理,先让我们做一个实验:这里有两盏灯,我们知道灯只有亮和灭两种状态,我们能用0和1来代替这两种状态,规定亮为1,灭为0。现在这两盏灯总共有几种状态呢?我们列表来看一下,如图所示:存储器是利用电平的

15、高低来存放数据的。它是由大量寄存器组成的,其中每一个寄存器就称为一个存储单元。它可存放一个有独立意义的二进制代码。一个代码由若干位(bit)组成,代码的位数称为位长,习惯上也称为字长。2、存储器结构一、单片机的内部结构2内部程序存储器51单片机程序存储器是用来存放经过调试正确的应用程序和表格之类的固定数据的。3内部数据存储器数据存储器由随机存储器RAM组成,这种存储器又叫读写存储器。它不仅能读取存放在存储单元中的数据,还能随时写入新的数据,写入后原来的数据就丢失了。断电后RAM中的信息全部丢失。因此,RAM用来存放运算中的数据、中间结果及最终结果。4特殊功能寄存器在51单片机内部有一个CPU用

16、来运算、控制,有四个并行I/O口,有程序存储器,有数据存储器,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。对并行I/O口的读写只要将数据送入到相应I/O口的锁存器就可以了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。2、存储器结构一、单片机的内部结构5存储器结构特点单片机的存储器结构与微型计算机有很大的不同。它的两个重要的特点是:一是把数据存储器和程序存储器截然分开,二是存储器有内外之分。对于面向控制应用且又不可能具有磁盘的单片机系统来说,程序存储器是至关重要的,但数据存储器也不可

17、少。为此单片机的存储器分为数据存储器和程序存储器,其地址空间、存取指令和控制信号各有一套。2、存储器结构一、单片机的内部结构51系列单片机有1个8位双向并行I/O端口P0和3个8位准双向并行I/O端口P1P3。每一位端口都由口锁存器、输出锁存器和输入缓冲器组成。它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。3、I/O端口结构一、单片机的内部结构1P0端口图表示了P0端口中某一位的电路结构。由图可见,电路中包含有一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出控制电路。当对P0口进行写操作时,由锁存器和驱动电路构成数据输出通路。由于通路中已有输出锁存器,因

18、此数据输出时可以与外设直接连接,而不需再加数据锁存电路。3、I/O端口结构一、单片机的内部结构P1端口某一位的电路结构如图2.7所示。因为P1口通常是作为通用I/O口使用的,所以在电路结构上与P0口有一些不同之处,主要表现为2点:首先它不再需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应管共4同组成输出驱动电路。为此,P1口作为输出口使用时,已经能向外提供推拉电流负载,无需再外接上拉电阻。当P1口作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。3、I/O端口结构一、单片机的内部结构P2端口的电路如图2.8所示。P2口电路比P1口电路多了一个多路转接电路M

19、UX,这又正好与P0口一样。P2口可以作为通用I/O口使用,这时多路转接电路开关倒向锁存器Q端。通常情况下,P2口是作为高位地址线使用而不作为数据线使用,此时多路转接电路开关应倒向相反方向。3、I/O端口结构一、单片机的内部结构P3端口某一位的电路如图2.9所示。P3口的特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。对于于第二功能信号有输入和输出两类。 3、I/O端口结构一、单片机的内部结构8051有两个16位定时器/计数器T0和T1,分别与2个8位寄存器T0L、T0H及T1L、T1H对应。8051的定时器/计数器可以工作在定时方式或计数方式。1定时方式定时方式实现对单片机内

20、部的时钟脉冲或分频后的脉冲进行计数。2计数方式实现对外部脉冲的计数,读者将对定时器/计数器将在后续章节中进行具体学习。4、定时器/计数器结构一、单片机的内部结构在单片机系统设计设计中,中断是一个必不可少的概念。在程序的执行过程中,有时候需要停下手头的工作转而执行其他的一些重要工作,并在执行完后返回到原来的执行的程序中,然后继续执行未完成的任务。这就是中断的一般过程。8051有5个中断源,两个中断优先级控制,可以实现两个中断服务嵌套。两个外部中断INT0、INT1,两个定时器中断T0、T1,还有一个串行口中断。中断的控制由中断允许寄存器IE和中断优先级寄存器IP实现。关于中断的设置和实现将在后续

21、章节进行具体讲解学习。5、中断系统二、单片机引脚功能1供电引脚供电引脚接入AT89S51的工作电源。VCC:电源正级,一般为+5V。GND:电源地。2、引脚及功能二、单片机引脚功能2I/O引脚顾名思义,就是输入/输出引脚。P0 :P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1:P1 口是一个具有内部上拉电阻的8

22、 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器T2的外部计数输入(P1.0/T2)和时器/计数器T2的触发输入(P1.1/T2EX),具体功能见表2.7。在flash编程和校验时,P1口接收低8位地址字节。2、引脚及功能二、单片机引脚功能P2:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高

23、,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用

24、时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,见表2.8。在flash编程和校验时,P3口也接收一些控制信号。2、引脚及功能二、单片机引脚功能3控制引脚控制引脚包括RST、ALE、 、 ,此类引脚提供控制信号,有些引脚具有复用功能。RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。2、引脚及功能二、单片机引脚功能ALE/PROG :地址

25、锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN :外部程序存储器选通信号。当AT89S52从外部程序存储

26、器执行外部代码时,PSEN 在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN 将不被激活。EA /VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA 应该接VCC。在flash编程期间,EA也接收12伏VPP电压。2、引脚及功能二、单片机引脚功能外接晶振引脚外接晶振引脚与片内的反相放大器构成一个振荡器,他提供了单片机的时钟控制信号,也可采用外部晶体振荡器。XTAL1:接外部晶体的一个引脚,在单片机内部,它是一个反相放大器的输入端。若采用外部振荡器,该引脚接收振荡器的信号,即把此信号直接接到内部时

27、钟发生器的输入端。XTAL2:借外部晶体的另一端,在单片机内部接到反相放大器的输出端,当采用外接晶体振荡器时,此引脚可以不接。2、引脚及功能三、单片机工作时序时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路产生时钟信号;另一种为外部方式,时钟信号由外部引入。51单片机有一个用于构成内部振荡器的反相放大器,引脚XTAL1 和XTAL2 分别是放大器的输入、输出端。外接石英晶体和陶瓷电容构成自激振荡器。这种方式称为内部时钟方式。如果振荡器已起振,则在XTAL2引脚上输出3V左右的正弦波。振荡器的频率取决于晶振的频率。电容C1和C2主要作用是帮助起振(谐振),其值的大小对振荡频率也

28、有影响。因此常用调节C1或C2的容量大小对频率进行微调,电容容量在通常在20pF100pF之间选择,当时钟频率为12MHz时典型值为30Pf。1、时钟电路三、单片机工作时序2、时序定时单位(1)拍节与状态把振荡脉冲的周期定义为拍节(用P表示)。振荡脉冲经过二分频后,就是单片机的时钟信号的周期,其定义为状态(用S表示)。这样,一个状态就包含两个拍节,具前半周期对应的拍节叫拍节1(P1),后半周期对应的拍节叫拍节2(P2)。(2) 机器周期51单片机采用定时控制方式, 因此它有固定的机器周期。规定一个机器周期的宽度为6个状态,并依次表示为S1S6。由于一个状态又包括两个拍节,因此一个机器周期总共有

29、12个拍节,分别记作S1P1、S1P2、S6P2。由于一个机器周期共有12个振荡脉冲周期, 因此机器周期就是振荡脉冲的十二分频。当振荡脉冲频率为12MHz时,一个机器周期为1s;当振荡脉冲频率为6MHz时,一个机器周期为2s。三、单片机工作时序2、时序定时单位(3) 指令周期指令周期是最大的时序定时单位, 执行一条指令所需要的时间称为指令周期。它一般由若干个机器周期组成。不同的指令,所需要的机器周期数也不相同。通常,包含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令,等等指令的运算速度与指令所包含的机器周期有关,机器周期数越少的指令执行速度越快。MCS-51单片机通常可

30、以分为单周期指令、双周期指令和四周期指令等三种。四周期指令只有乘法和除法指令两条,其余均为单周期和双周期指令。单片机执行任何一条指令时都可以分为取指令阶段和执行指令阶段,时序如图2.13所示,(a)为单字节单周期指令;(b)为双字节单周期指令;(c)为单字节双周期指令。三、单片机工作时序3、指令的执行时序图(a),(b)所示分别给出了单字节单周期和双字节单周期指令的时序。单周期指令的执行始于S1P2,这时操作码被锁存到指令寄存器内。若是双字节,则在同一机器周期的S4读第二字节。若是单字节指令,则在S4仍有读操作,但被读入的字节无效,且程序计数器PC并不增量。图(c)给出了单字节双周期指令的时序

31、,两个机器周期内进行4次读操作码操作。因为是单字节指令,所以,后三次读操作都是无效的。四、单片机工作方式1、复位方式1上电自动复位上电复位电路只需在RST端接一个电容至VCC和一个电阻至VSS即可,加电瞬间,RST端出现一段时间的高电平,只要高电平保持至少2个机器周期,51单片机就会执行复位操作,然后把RST恢复为低电平。电路中,时间常数RC越大,上电时保持高电平的时间越长,当振荡频率为12MHz时,典型值C=10F,R=8.2 k,当时钟频率选用6MHz时,C=22F,R=1 k。上述参数比实际要求的值大很多,但通常设计人员并不关心多出的复位时间。四、单片机工作方式1、复位方式2人工复位除了

32、上电复位外,有时还需要人工复位。将一个按钮开关并联于上电自动复位电路,就是人工复位电路。四、单片机工作方式2、程序执行方式程序的执行方式是单片机的基本工作方式。由于复位后PC=0000H,因此程序执行总是从地址0000H开始。1连续执行方式连续执行方式是单片机执行的基本工作方式,所要执行的代码放在程序存储器ROM中(可以是片内或片外),CPU不断地从程序存储器中取指令、分析并执行。2单步执行方式程序的执行处于外加脉冲(通常用一个按键产生)的控制下,一般利用中断来实现程序的单步执行。四、单片机工作方式3、低功耗方式对于51单片机来说,有待机方式和掉电保护方式两种低功耗方式。通过设置电源控制寄存器

33、PCON的相关位,可以指定当前的工作方式为低功耗方式。PCON寄存器格式如表2.10所示。四、单片机工作方式3、低功耗方式1待机方式如果使用指令使PCON寄存器IDL位置“1”,则进入待机方式。这时振荡器仍然工作,并向逻辑中断、串行口和定时器/计数器电路提供时钟,但向CPU提供时钟的电路被阻,因此CPU不能工作,与CPU相关的如SP、PC、PWS、ACC以及全部通用寄存器也被“冻结”在原状态。在待机方式下,中断功能应继续保留,一便采用中断方法退出待机方式。为此,应该引入一个外中断请求信号,在单片机响应中断的同时,IDL位被硬件自动清“0”,单片机就退出待机模式而进入正常工作方式。2掉电保护方式

34、PCON寄存器的PD位控制单片机进入掉电保护方式。因此对于51单片机,在检测到电源故障时,除进行信息保护外,还应把PD位置“1”,使之进入掉电保护方式。此时单片机一切工作都停止,只有内部RAM单元的内容被保存。五、单片机最小系统单片机最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机 处于正常的运行状态。电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,因此51单片机最小系统的功能主要如下:能够运行用户程序。用户可以复位单片机。具有相对强大的外部扩展功能。最小系统的结构如图2.16所示。六、本章小结本章主要

35、介绍了单片机的内部结构和基本组成,详细介绍了MCS-51单片机的中央处理器、存储器结构、输入输出接口、引脚、中断系统、定时器/计数器以及单片机工作方式和最小系统等内容,为以后的学习打下坚实的基础。通过本章的学习,读者应该掌握以下几个知识点:1.了解单片机单片机的基本结构和组成。2.理解单片机的运行基本原理。3.知道单片机最小系统的组成。重点内容:单片机的指令系统概述单片机的寻址方式单片机的指令说明本章小结第3章 单片机指令系统 一、单片机的指令系统概述汇编语言是我们后面所讲的指令系统的一个子集,只要指令按格式书写就构成了程序的基本格式。在程序中,指令格式由以下几部分组成:操作码 目的操作数,源

36、操作数 ;注释对各部分的解释如下:操作码:操作码用助记符表示,它代表了指令的操作功能。操作码是指令的必需部分,是指令的核心,不可缺少。操作数(目的操作数和源操作数):是指参加操作的数据或数据的地址。操作数的个数可以是03个。操作数与操作码之间用空格分隔,操作数与操作数之间用逗号“,”分隔。注释:注释属于非必需项,是为便于阅读,对指令功能作的说明和注解。注释必须以“;”开始。注释的长度不限,当一行不够时,可以换行后接着书写,但是换行时应以分号“;”开始。1、指令格式一、单片机的指令系统概述为了方便后面指令系统的学习和记忆,我们需要对51单片机指令系统中的一些常用符号进行了解。常用符号的说明如下:

37、(1)#data:8位立即数;(2)#data16:16位立即数;(3)Rn:工作寄存器,R0R7,n为07;(4)Ri:工作寄存器,0或1,i=0或1;(5)Ri:寄存器Ri间接寻址8位存储单元00HFFH;(6)direct:8位直接寻址,可以是特殊功能寄存器SFR的80HFFH或内部存储单元00H7FH;(7)addr11:11位目的地址。用于AJMP和ACALL指令,均在2KB地址内转移或调用;2、符号说明一、单片机的指令系统概述(8)addr16:16位目的地址。用于LJMP和LCALL指令,可在64KB地址内转移或调用;(9)rel:带符号的8位偏移地址,主要应用于所有的条件转移指

38、令和SJMP。其范围是相对于下一条指令的第一字节地址128 +127字节;(10)bit:位地址。片内RAM中的可寻址位和专用寄存器中的可寻址位;(11)DPTR:数据指针,可用于16位的地址寄存器;(12):间接寄存器或者是基址寄存器的前缀。如:DPTR,Ri,A+PC,A+DPTR;(13)A:累加器ACC;(14)B:通用寄存器,常用于乘法MUL和除法DIV的指令;(15)Cy:进位标志位或者布尔处理器中的累加器。(16) /:位操作数前缀,表示对该位操作数进行取反操作。(17)(x):寄存器或存储单元x的内容。(18)(x):以寄存器或存储单元x的内容作为地址的存储单元的内容。:数据传

39、送方式。2、符号说明二、单片机的寻址方式立即寻址就是直接将需要访问的数据在指令中给出,这样的寻址方式就是立即寻址。立即寻址的方式为: MOV A dataH就是一条立即寻址方式的传送指令,通常我们把出现在指令中的操作数data称之为立即数。假如立即数是0F4H,则指令为:MOV A 4BH 指令功能是把数据4BH传送到累加器A中。值得注意的一点是:在立即数寻址中立即数前面必须要加上一个“”号。1、立即寻址二、单片机的寻址方式直接寻址就是直接在指令中指定操作数的地址,-比如:MOV A,3AH 其功能就是将地址为3AH的存储单元中数据取出来传送给累加器A。这里的操作数就是直接通过数据存储器的地址

40、3AH来指定的。直接寻址方式的寻址范围仅限于内部数据存储器。对于内部数据存储器的低128个字节可以直接通过地址的方式来指定,而对于高128个字节除了可以通过地址的方式来指定外还可以通过特殊功能寄存器的寄存器符号给出。2、直接寻址二、单片机的寻址方式寄存器寻址方式就是操作数存储在寄存器中,指定寄存器就得到了操作数,例如:MOV A,R0其功能是将寄存器R0中的数据传送到累加器A中,这样通过直接指定寄存器的方式进行寻址即为寄存器寻址。可以采用这种方式进行寻址分寄存器包括通用寄存器和部分专用寄存器,比如工作寄存器R0-R7、累加器ACC、通用寄存器B 、数据指针DPTR、位累加器Cy。3、寄存器寻址

41、二、单片机的寻址方式寄存器间接寻址就是通过寄存器指定数据存储单元的地址,寄存器中存储的是地址。采用用寄存器间接寻址方式时应在寄存器前加上符号。比如:MOVE A,R0它的功能就是将R0中所存储的地址所指向的存储单元中的数据取出来传送到累加器中去。对于这种寄存器间接寻址,用来存储地址的寄存器只能为R0或R1或DPTR。其中R0和R1用来访问片内数据存储器的低128字节和片外数据存储器的低256字节,DPTR用来访问片外数据存储器。比如:MOVX A ,DPTR它的功能是将外RAM DPTR所指存储单元中的数据传送至累加器A中。4、间接寻址二、单片机的寻址方式变址寻址是以某个寄存器的内容为基础,然

42、后在这个基础上再加上地址偏移量,形成真正的操作数地址,需要特别指出的是用来作为基础的寄存器可以是PC或是DPTR,地址偏移量存储在累加器A中比如:MOV A,A+DPTRMOV A,A+PCJMP A+DPTR前2条意思就是分别将DPTR、PC内存储的地址和累加器A里面的偏移量相加最后根据得到的地址来查找相应的存储单元。最后一条是无条件转移指令。5、变址寻址二、单片机的寻址方式相对寻址主要是针对跳转指令而言的。对于跳转指令,跳转去的目标指令的地址是通过正在执行的指令地址来确定的,一般是采用正在执行的指令地址加上偏移量的方式。即:转移目的地址当前PC值转移指令字节数+相对偏移量rel我们后面所讲

43、的条件转移指令都是相对寻址方式,如:JZ rel;若(A)= 0,则PC(PC)+ 2 + rel ;若(A)0,则PC(PC)+ 2 JNZ rel;若(A)0,则PC(PC)+ 2 + rel ;若(A)= 0,则PC(PC)+ 2由于这2条指令都是二字节指令,所以转移指令字节数为2。偏移量可以是正也可以是负,偏移量是采用有符号数的存储形式即补码的形式来存储的,所能表示的范围是-128+128。6、相对寻址二、单片机的寻址方式位寻址方式是指将要访问的数据是一个单独的位,指定位数据的方式有:通过位地址、通过字节地址加点及位数、通过寄存器名加点及位数以及通过位的名称等方式。例如:MOV C,0

44、7H 这条指令的功能是把07H位的状态送进进位位C。位寻址的范围是有限制的,下面将讲述位寻址的寻址范围7、位寻址二、单片机的寻址方式1.内部RAM中的位寻址区单元地址为20H2FH,共16个单元128位,位地址是00H7FH。对这个128个位的寻址使用直接位地址表示。位寻址区中的位有两种表示方法,一种是位地址;另一种是单元地址加位。2.专用寄存器的可寻址位可供位寻址的专用寄存器共有11个,实有寻址位83位。对这些寻址位在指令中有如下4中表示方法:直接使用位地址。例如PSW寄存器位5地址为0D5H。位名称表示方法。例如PSW寄存器位5是F0标志位,则可使用F0表示该位。单元地址加位数的表示方法。

45、例如0D0H单元(即PSW寄存器)位5,表示为0D0H.5。专用寄存器符号加位数的表示方法。例如PSW寄存器的位5,表示为PSW.5。7、位寻址二、单片机的寻址方式寻址方式可以做如下小结。对于片内程序存储器只能使用变址寻址方式,或者反过来说,变址寻址是一种专门用于程序存储器的寻址方式。8、寻址方式总汇三、单片机的指令说明1内部RAM中数据传送指令单片机内部的数据传送指令运用频率最高。寄存器、累加器、RAM单元及专用寄存器之间的数据可相互传送。这类指令使用助记符MOV。(1)以累加器A为目的字节的传送指令(4条)MOV A,Ri;(Ri)A,i=0、1MOV A,Rn;RnA,n=07 MOV

46、A,#data;dataA MOV A,direct;(direct)A这组指令的功能是将源操作数所指定的内容送入累加器A。源操作数可以采用寄存器寻址、直接寻址、寄存器间接寻址和立即寻址4种方式。1、数据传送类指令 三、单片机的指令说明(2)以工作寄存器Rn为目的字节的传送指令(3条)MOV R,A;ARn,n=07MOV Rn,direct;(direct)Rn,n=07MOV Rn,#data ;dataRn,n=07这组指令的功能是把源操作数所指定的内容送到当前工作寄存器组R0R7中的某个寄存器中。源操作数有寄存器寻址、直接寻址、立即寻址3种方式。例如下面三条指令:MOV R0,A ;把

47、累加器A的内容传送给R0MOV R2,80H ;把80H单元的内容传给R2MOV R6,#60H ;把立即数60H传给R61、数据传送类指令 三、单片机的指令说明(3)以直接地址为目的字节的传送指令MOV direct,A ;A(direct)MOV direct,Rn ;Rn(direct),n=07MOV direct,Ri ;(Ri)(direct),i=0、1MOV direct1,direct2;(direct2)(direct1)MOV direct,#data;data(direct)这组指令的功能是把源操作数所指定的内容送入由直接地址direct所指出的片内存储单元中。源操作数

48、有寄存器寻址、直接寻址、寄存器间接寻址、立即寻址等方式。例如下面五条指令:MOV 3FH,#3FH ;把立即数3FH传送给内部RAM的3FH单元MOV 3FH,A ;把累加器A中的内容传送给内部RAM的3FH单元MOV 3FH,R0 ;把寄存器R0中的内容传送给内部RAM的3FH单元1、数据传送类指令 三、单片机的指令说明(4)以寄存器间址为目的字节的传送指令(3条)MOV Ri,A ;A(Ri),i=0、1MOV Ri,direct;(direct)(Ri),i=0、1MOV Ri,#data;data(Ri),i=0、1这组指令的功能是把源操作数所指定的内容送入以R0或R1为地址指针的片内

49、存储单元中。源操作数有寄存器寻址、直接寻址和立即寻址3种方式。与上一组指令功能类似,不再举例。(5)16位数据传送指令(1条)MOV DPTR,#data16;data16DPTR这是唯一的16位立即数传送指令。其功能是把16位常数送入DPTR中。1、数据传送类指令 三、单片机的指令说明2外部RAM数据传送指令累加器A与片外数据存储器之间的数据传送是通过P0口和P2口进行的。片外数据存储器的地址总线低8位和高8位分别由P0口和P2口送出,数据总线也是通过P0口与低8位地址总线分时传送。外部RAM中数据传送均是通过间接寻址的方式来实现的,使用操作码助记符MOVX,共有四条指令:MOVX A,DP

50、TR; A(DPTR)MOVX A,Ri; A(Ri)MOVX DPTR,A; (DPTR)AMOVX Ri,A; (Ri)A前两条指令为外部数据存储器读指令,后两条指令为外部数据存储器写指令。这四条指令共同特点都要经过累加器A,外RAM的低8位地址均由P0传送,高8位地址均由P2传送,其中8位数据也需P0传送。1、数据传送类指令 三、单片机的指令说明3查表指令51系列单片机的程序存储器除了存放程序外,还可存放一些常数,被称为表格。在单片机指令系统提供了两条访问程序存储器的指令,称为查表指令,该指令使用助记符MOVC,只能通过累加器A来实现。共两条指令:MOVC A,A+PC;PC(PC)+1

51、,A(A)+PCMOVC A,A+DPTR;A(A+DPTR)前一条指令由PC作为基址寄存器,它虽然提供16位地址,但其基址值是固定的,A+PC中的PC是程序计数器的当前内容(查表指令的地址加1),所以它的查表范围是查表指令后256B的地址空间。后一条指令采用DPTR作为基址寄存器,它的寻址范围为整个程序存储器的64KB空间,所以表格可以放在程序存储器的任何位置。缺点是若DPTR已有它用,在上式表首地址之前必须保护现场,执行完查表后再执行恢复。1、数据传送类指令 三、单片机的指令说明数据交换指令数据交换主要用在累加器和其它内部RAM中的数据交换,数据交换指令分为三类: (1)整字节交换指令 X

52、CH A,Rn;ARn XCH A,Ri;A(Ri) XCH A,direct;A(direct) (2)半字节交换指令:XCHD A,Ri ;A30(Ri)30。SWAP A;A74A301、数据传送类指令 三、单片机的指令说明堆栈操作指令堆栈操作通常用于临时保护数据及子程序调用时保护现场/恢复现场。共有两条指令。PUSH direct;SPSP+1,(SP)(direct)POP direct ;(direct)(SP),SPSP1PUSH为压栈指令,将指定的直接寻址单元的内容压入堆栈。先将堆栈指针SP的内容+1,指向栈顶的一个单元,然后把指令指定的直接寻址单元内容送入该单元。POP为出栈

53、指令,它是将当前栈指针SP所指示的单元内容弹出到指定的内RAM单元中,然后再将SP减1。以上指令结果不影响程序状态字寄存器PSW标志。1、数据传送类指令 三、单片机的指令说明1加法指令加法指令使用助记符ADD,运算时不带进位位。共有4条:ADD ,data ;dataADD ,direct ;(direct)ADD,Ri ;A(Ri)ADD ,Rn ;Rn这组指令的功能是把源操作数所指出的内容与累加器A的内容相加,执行结果存入A中。该运算会影响程序状态字PSW中的CY、AC、OV。如果位7有进位,则进位位CY置“1”,否则清“0”;如果位3有进位,则半进位位AC置“1”,否则清“0”。若看做两

54、个带符号数相加,还要判断溢出位OV。若OV为“1”,表示和数溢出。例如,执行A=0C3H,执行指令ADD ,#0AAH,则结果A=6DH,CY=1,OV=1,AC=0,P=1。2、算术运算类指令 三、单片机的指令说明2带进位加法指令ADDC带进位的加法指令使用助记符ADDC,共有4条:ADDC ,data;dataCYADDC ,direct ;(direct)CYADDC ,Ri ;A(Ri)CYADDC ,Rn ;RnCY这组指令的功能与上一组加法指令ADD相似,唯一不同的是计算加法时同时还要加上CY中的值。运算结果对PSW各位的影响同上述加法指令。带进位加法指令多用于多字节数的加法运算,

55、低位字节相加时可能产生进位。因此,高位字节运算时,必须使用带进位的加法运算。例如,设R0=55H,A=OAAH,Cy=1,执行指令ADDC A ,R0后,结果为A=00H,Cy=0,AC=0,OV=0, P=0。2、算术运算类指令 三、单片机的指令说明3带借位减法指令带借位减法指令使用助记符SUBB,共有4条:SUBB A ,#data;AAdataCYSUBB A ,Rn;AARnCYSUBB A ,direct;AA(direct)CYSUBB A ,Ri;AA(Ri)CY这组指令的功能是将累加器中的数减去源操作数所指出的数和进位位CY,其差值存放在累加器中。减法运算结果对程序状态标志寄存

56、器PSW中的影响如下:减法运算的最高位有借位时,进位位Cy置位为1,否则Cy为0。减法运算时低4位向高4位有借位时,辅助进位位AC置位为1,否则AC为0。减法运算过程中,位6和位7同时借位时溢出标志位OV为1,否则OV为0。2、算术运算类指令 三、单片机的指令说明运算结果中“1”的个数为奇数时(注意:不计借CY中的1),奇偶校验位P置1,否则P为0。由于减法只有带借位减法一条指令,所以在单字节相减时,须先清进位位CY。减法指令执行过程与加法类似,需强调的一点是,减法运算在计算机中实际上是变成补码相加。例 设A=D9H,R0=87H,执行指令:SUBB A,R0则结果为:A=52H,CY=0,A

57、C=0,P=1,OV=0。2、算术运算类指令 三、单片机的指令说明加1指令加1指令使用助记符INC,共有5条指令:INC A ;AA+1INC Rn ;RnRn+1INC Ri ;(Ri)(Ri)+1INC direct ;(direct)+1INC DPTR ; DPTRDPTR+1这组指令的功能是将操作数所指定单元的内容加1。其操作除第一条指令影响奇偶标志位外,其余指令均不影响PSW。第4条指令,若直接地址是I/O端口,则其功能是修改输出口的内容。指令执行过程中,首先读入端口的内容,然后在CPU中加1,继而输出到端口。2、算术运算类指令 三、单片机的指令说明5减1指令减1指令使用助记符DE

58、C,对于DPTR只能使用加1指令,不能使用减1指令。因此减1指令比加1指令少一条,即4条:DEC A ;AA1DEC Rn ;RnRn1DEC direct ;(direct)(direct)1DEC Ri ;(Ri)(Ri)1该指令是将指定变量减1,结果仍存在原指定单元。这类指令操作除第一条影响奇偶标志值外,其余操作均不影响PSW标志。其他情况与加1指令类似。2、算术运算类指令 三、单片机的指令说明6乘法指令乘法指令使用助记符MUL,操作数只能是累加器A和寄存器B,格式如下:MUL AB;ABA*B这条指令的功能是把累加器A和寄存器B中的8位无符号整数相乘,乘积为16位,积低8位存于A中,积

59、高位存于B中。如果积大于255(0FFH),则OV 置1,否则清0,运算结果总使进位位CY清0。例如,设A=5BH,B=0ABH,执行指令MUL AB 后,结果为:乘积3CC9H,A=0C9H,B=3CH,OV=1,CY=0。2、算术运算类指令 三、单片机的指令说明7.除法指令除法指令使用助记符DIV,操作数只能是累加器A和寄存器B,格式如下:DIV AB;AA/B的商,B余数这条指令的功能是把累加器A中的8位无符号整数除以寄存器B中8位无符号整数,商放在A中,余数放在B中,标志位CY和OV均清0。若除数(B)为00H,则执行后果为不确定值,OV置1,在任何情况下,进位位Cy清0。例如,设A=

60、87H,B=0CH,执行指令DIV AB后,结果为:A=0BH,B=03H,OV=0,CY=0。2、算术运算类指令 三、单片机的指令说明8十进制调整指令BCD码是十位二进制码, 也就是将十进制的数字转化为二进制。十进制数09之间的数字可以用BCD码来表示,然而,单片机在进行运算时,是按照二进制规则进行的,对于4位二进制数是按逢16进位的,不符合十进制的要求,可能导致错误的结果,因此需要用十进制调整指令。十进制调整指令使用助记符DA,操作数只能是累加器A。其格式如下: DA A这条指令是在进行BCD码加法运算时,跟在ADD或ADDC指令之后,用于对BCD码的加法运算结果自动进行修正,使其仍为BC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论