单片机原理与应用_第1页
单片机原理与应用_第2页
单片机原理与应用_第3页
单片机原理与应用_第4页
单片机原理与应用_第5页
已阅读5页,还剩250页未读 继续免费阅读

下载本文档

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

文档简介

课程目标掌握:单片微型机的基本工作原理汇编语言程序设计方法单片微型计算机应用单片微型计算机应用系统设计方法《单片机原理与应用》

单片机原理与应用全文共255页,当前为第1页。第一章---------1wyx第一章

绪论

本讲重点:

微处理器、微机和单片机的基本概念、单片机的发展、常用系列简介、应用。

讲授内容:本章主要介绍单片机的结构特点、单片机的发展及常用系列和单片机的应用领域等。重点介绍单片机的特点以及在各领域中的应用。单片机原理与应用全文共255页,当前为第2页。第一章---------2wyx回

顾:有关微型计算机的基础知识

硬件:微处理器,存储器,总线,I/O接口软件:系统软件,应用软件单片机原理与应用全文共255页,当前为第3页。第一章---------3wyx第一节单片机的特点与发展概述

一、微处理器、微机和单片机的概念微处理器(Microprocessor)——微型计算机的控制和运算器部分;微型计算机(Microcomputer)——有完整运算及控制功能的计算机,包括微处理器、存储器、输入/输出(I/O)接口电路以及输入/输出设备等;

单片机(singlechipmicrocomputer)——直译为单片微型计算机,它将CPU、RAM、ROM、定时器/计数器、输入/输出(I/O)接口电路、中断、串行通信接口等主要计算机部件集成在一块大规模集成电路芯片上,组成单片微型计算机简称单片机。

单片机的形态只是一块芯片,但是它已具有了微型计算机的组成结构和功能。由于单片机的结构特点,在实际应用中常常将它完全融入应用系统之中,故而也有将单片机称为嵌入式微控制器(embeddedmicrocon-troller)。

单片机原理与应用全文共255页,当前为第4页。第一章---------4wyx

单片机有2种基本结构形式:一种是在通用微型计算机中广泛采用的将程序存储器和数据存储器合用一个存储空间的结构,称为普林斯顿(Princeton)结构或称冯·诺依曼结构;另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛(Har-vard)结构。Intel公司的MCS-51和80C51系列单片机采用的是哈佛结构。目前的单片机以采用程序存储器和数据存储器截然分开的结构较多。

单片机的中央处理器(CPU)和通用微处理器基本相同,只是增设了“面向控制”的处理功能。例如:位处理、查表、多种跳转、乘除法运算、状态检测、中断处理功能等,增强了控制的实用性和灵活性。二、

单片机的一般结构及特点单片机原理与应用全文共255页,当前为第5页。1)存储结构为哈佛结构,将程序存储器和数据存储器分开;单片机结构特点小结:4)面向控制,位处理功能强。3)芯片引脚具有复用功能;2)片内接口电路丰富,由特殊功能寄存器管理;第一章---------5wyx单片机原理与应用全文共255页,当前为第6页。第一章---------6wyx三、单片机的发展过程概述

单片机作为嵌入式微控制器在工业测控系统、智能仪器和家用电器中得到广泛应用。虽然单片机的品种很多,但其中最具有代表性的是Intel公司的MCS-51系列单片机,以及其与之兼容的派生系列芯片。Intel8位单片机的发展经历了以下3代:

第一代:以1976年推出的MCS-48系列为代表。

第二代:以MCS-51的8051为代表的单片机,

第三代:以80C51系列为代表。一般根据控制应用需要:

又可设计成通用单片机、专用单片机按内部数据总线的宽度:

单片机分为4位、8位、16位及32位等。单片机原理与应用全文共255页,当前为第7页。第一章---------7wyx第二节常用单片机系列简介

一、ATMEL单片机

ATMEL公司所生产的ATMEL89系列单片机(简称89系列单片机),就是基于Intel公司的MCS-5l系列而研制的,该公司的技术优势在于Flash存储器技术。标准型单片机有:AT89C51,AT89LV51,AT89C52,AT89LV52;低档型单片机有:AT89C1051和AT89C2051两种型号。它们的CPU内核和AT89C51是相同的,但并行I/O较少;高档型单片机有:AT89S8252,这是一种可下载的Flash单片机。它和IBM微机通信进行下载程序十分方便。

单片机原理与应用全文共255页,当前为第8页。第一章---------8wyx

二、Philips单片机

Philips公司的的单片机都属于MCS-51系列兼容的单片机。从内部结构看可以划分为两大类,8位机与80C51兼容系列和16位机XA系列。Philips公司的的单片机8位机的主要产品型号有P80CXX、P87CXX和P89CXX系列,16位机的主要产品型号有PXACXX、PXAGXX和PXASXX等。三、Maxim-Dallas单片机四、WinBond单片机五、Motorola单片机六、其他公司的单片机

1)NEC单片机;

2)东芝单片机;

3)Epson单片机;

4)PIC单片机——Microchip公司单片机原理与应用全文共255页,当前为第9页。第一章---------9wyx第三节单片机的应用领域及发展

一、单片机在智能仪器中的应用智能化仪器内部基本上都是用单片机进行信息控制与处理。特别是近年来出现的数字信号处理器DSP是一种速度极高的单片机,它在通信和高速信息处理中起了极大的作用,从而扩展了单片机在智能仪器中的应用。二、单片机在过程控制中的应用单片机原理与应用全文共255页,当前为第10页。第一章-------10wyx三、单片机与e-Home

在家用网络系统HNS(homenetworkedsystem)

中,对家用电器提出了“个性化”和“社会化”的要求。家用电器的嵌入式结构有单核嵌入和双核嵌入2种。例如:一般电脑电饭煲,内部只有一个单片机,这种控制系统是单核嵌入;对于分体式空调,室内机与室外机中分别有1个单片机,为双核嵌入结构。

四、单片机与InternetInternet技术已经深入到日常生活和工作中。各类家用电器和智能装置,它们的“心脏”多是单片机,由于单片机芯片品种达数百种,其硬件结构和指令系统各不相同,不能像PC机那样通过标准的硬件接口和接口软件直接接入Internet网络。

五、单片机的发展

1)强化指令功能2)增加各种接口部件3)提高专用程度单片机原理与应用全文共255页,当前为第11页。第一章-------11wyx补充内容:计算机系统中的数制、码制复习2、带符号数的表示法3、原码、反码、补码特点:⑴8位二进制数表示原码、反码、补码的范围

(-127~+127、-127~+127、-128~+127)⑵补码的运算

在微型计算机中,带符号数用补码表示,减法可用补码相加来实现,运算结果为补码。1、数制及其互换

数制基数字符二进制201(B)十进制100123456789(D)十六进制160123456789ABCDEF(H)单片机原理与应用全文共255页,当前为第12页。第二章1----1wyx第二章MCS-51单片机的硬件结构与工作原理主要内容:

1.MCS-51单片机组成(结构、引脚功能)

2.并行I/O端口结构

3.储器组织与操作

4.MCS-51单片机的中断系统

1)中断系统概述

2)中断的处理过程重点理解:1.MCS-51系列单片机存储器结构特点2.单片机特殊功能寄存器的作用3.不同场合下单片机引脚的复用功能4

.单片机的位处理功能及其作用单片机原理与应用全文共255页,当前为第13页。第二章1-----2wyx一、MCS—51单片微机的硬件组成

1、MCS—51系列单片机的主要特性

1)

8位字长CPU和指令系统。

2)1个片内时钟振荡器和时钟电路。

3)64K外部数据存储器的地址空间。

4)64K外部程序存储器的地址空间。

5)32条双向且分别可位寻址的I/O口线。

6)128字节的片内RAM(52子系列为256字节)。

7)2个16位定时器/计数器(52子系列为3个)。

8)具有2个优先级的5个中断源结构(52子系列有6个)。

9)1个全双工串行口。

10)1个布尔处理器。

第一节MCS-51单片机的基本组成

单片机原理与应用全文共255页,当前为第14页。第二章1-----3wyx2.MCS—51单片机的内部结构

时钟源T0T1P0

P1

P2

P3TXDRXDINT0INT1时钟电路SFR和RAMROM定时/计数器CPU串行I/O口中断系统并行I/O口系统总线图2—1MCS—51单片机的功能模块框图MCS—51单片机的功能模块框图如图所示。MCS-51单片机由8位CPU、只读存储器EPROM/ROM、读写存储器RAM、并行I/O口、串行I/O口、定时器/计数器、中断系统、振荡器和时钟电路等部分组成。各部分之间通过内部总线相连。单片机原理与应用全文共255页,当前为第15页。第二章1-----4wyxMCS—51的内部结构框图单片机原理与应用全文共255页,当前为第16页。第二章1-----5wyx二、MCS—51单片机的引脚功能

40脚分三类:1、电源线和时钟信号线共4根

VCC,GND——电源和地+5V电源供电,

X1——时钟振荡器输入端,内部振荡器输入端;

X2——时钟振荡器输出端,内部振荡器输出端;2、控制线4根RST——复位信号,晶振工作后2个机器周期的高电平复位CPU.

ALE——地址锁存信号访问外部存储器时该信号锁存低8位地址;无RAM时,ALE为晶振6分频;PSEN——外部程序存储器读从程序存储器中取指令或读取数据时,该信号有效。EA——程序存储器有效地址,EA=1从内部开始执行程序;EA=0从外部开始执行程序;3、I/O口线32根----MCS-51系列单片机P0、P1、P2、P3共32位,对应着芯片的32根引脚。单片机原理与应用全文共255页,当前为第17页。第二章

1-----6wyx三、振荡器、时钟电路及时序

1.时钟电路

MCS—5l单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTALl和XTAL2分别是反相放大器的输入端和输出端,由这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成了一个自激振荡器,如图2—4所示。这种方式形成的时钟信号称为内部时钟方式。图2—5所示,为外部时钟方式。

单片机原理与应用全文共255页,当前为第18页。第二章1-----7wyx

2.有关单片机CPU的时序1)振荡周期

——

指为单片机提供定时信号的振荡源的周期,若为内部产生方式时,为石英晶体的振荡周期。2)时钟周期

——也称为状态周期,用S表示。时钟周期是计算机中最基本的时间单位,在一个时钟周期内,CPU完成一个最基本的动作。MCS—51单片机中一个时钟周期为振荡周期的2倍。3)机器周期

——完成一个基本操作(例如,取指令、存储器读、存储器写等)所需要的时间称为机器周期。MCS—51的一个机器周期含有6个时钟周期。4)指令周期

——完成一条指令所需要的时间称为指令周期。MCS—5l的指令周期含1~4个机器周期不等,其中多数为单周期指令,还有2周期和4周期指令。4周期指令只有乘、除两条指令。单片机原理与应用全文共255页,当前为第19页。第二章1-----8wyxP1P2S1振荡周期时钟周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2MCS-51单片机各种周期的相互关系单片机原理与应用全文共255页,当前为第20页。

第二节并行I/O接口

MCS-5l单片机内有四个8位并行I/O端口,为P0、P1、P2和P3。每个端口都是8位准双向I/O口,共占32根引脚。每个端口都包含一个锁存器、一个输出驱动器和一个输入缓冲器。

一、并行I/O接口的内部结构

I/O口的每位锁存器均由D触发器组成,用来锁存输出的信息。在CPU的“写锁存器”信号驱动下,将内部总线上的数据写入锁存器中。

P0口某位的结构图

第二章2-----1wyx单片机原理与应用全文共255页,当前为第21页。

当由P0口输入数据时,由于外部输入信号既加在缓冲输入端上,又加在驱动电路的漏极上。如果这时T2是导通的,则引脚上的电位始终被钳位在0电平上,输人数据不可能正确地读人。因此,在输入数据时,应先把P0口置1,使两个输出FET均关断,使引脚“浮置”,成为高阻状态,这样才能正确地插人数据。这就是所谓的准双向口。

P1口也是—个准双向I/O口,与P0口不同的是,没有多路开关MUX和控制电路部分。输出驱动电路只有一个FET场效应管,同时内部带上拉电阻,此电阻与电源相连。P1口可作通用双向I/O口用,而不必再外接上拉电阻。

P2口在结构上比P0口少了一个输出转换控制部分,多路开关MUX的倒向由CPU命令控制,且P2口内部接有固定的上拉电阻。

P3口与Pl口的输出驱动部分及内部上拉电阻相同,但比P1口多了一个第二功能控制部分的逻辑电路〔由一个与非门和一个输入缓冲器组成〕第二章2----2wyx单片机原理与应用全文共255页,当前为第22页。P3.0(RXD):串行输入端。P3.1(TXD):串行输出端。P3.2(INTO):外部中断0输入端,低电平有效。P3.3(INT1):外部中断1输入端,低电平有效。P3.4(T0):定时/计数器0外部事件计数输入端。P3.5(T1):定时/计数器1外部事件计数输入端。P3.6(WR):外部数据存储器写选通信号,低电平有效。P3.7(RD):外部数据存储器读选通信号,低电平有效。

P3口每位的第二功能:第二章2----3wyx单片机原理与应用全文共255页,当前为第23页。P0~P3的功能及使用时的注意事项

1.在无片外扩展存储器的系统中,这四个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口作为双向总线,分时作为低8位地址和数据的输入/输出线。

2.P0口作为通用双向I/O口用时,必须外接上拉电阻。

3.P3口除了作通用I/O使用外,它的各位还具有第二功能。当P3口某一位用于第二功能作输出时,则不能再作通用I/O使用。

4.当P0~P4端口用作输入时,为了避免误读,都必须先向对应的输出锁存器写入“l”,使FET截止。然后再读端口引脚。

如:MOVP1,#0FFHMOVA,P1第二章2----4wyx单片机原理与应用全文共255页,当前为第24页。单片机的片外三总线结构第二章2----5wyx单片机原理与应用全文共255页,当前为第25页。

第三节MCS-51单片机的复位

MCS—5l的RST/VPD引脚是复位输入端,其内的施密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2由复位电路采样一次。在振荡器运行时,RST端至少要保持2个机器周期(24个振荡周期)为高电平,才完成一次复位。复位后片内各专用寄存器的状态如表2—1。寄存器内容寄存器内容PC00HTMOD00HA00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0~P30FFHSCON00HIP(XXX00000)BSBUF不变IE(0XX00000)BPCON(0XXXXXXX)B第二章3----1wyx单片机原理与应用全文共255页,当前为第26页。几种实用的复位电路

第二章3----2wyx单片机原理与应用全文共255页,当前为第27页。第二章4------1wyx第四节MCS-51存储器组织与操作

MCS—51系列单片机其存储结构特点是:

将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构的单片微机称为哈佛型结构单片微机。在物理上有4个相互独立的存储空间:片内和片外程序存储器;片内和片外数据存储器。

在逻辑上有三个彼此独立的地址空间:

1、片内外统一编地址的64KB程序存储器地址间;

2、256字节的片内数据存储器地址空间;

3、64KB片外数据存储器地址空间单片机原理与应用全文共255页,当前为第28页。外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0FFFH1000HFFFFH外部RAM(I/O口)0000H0FFFFH程序存储器(c)特殊功能寄存器区00H

30H2FH

0FFH工作寄存器区位寻址区20H1FH80H7FH0000H0FFFH内部数据存储器(a)外部数据存储器(b)一般RAM区

MCS—5l系列存储器地址空间分配图

单片机原理与应用全文共255页,当前为第29页。第二章4-----2wyx一、MCS—51程序存储器地址空间

7个特殊单元:

0000H复位后,PC=0000H.开始执行程序

0003H外部中断0(INT0)入口

000BH定时器0中断(TF0)入口

0013H外部中断1(INT1)入口

001BH定时器1中断(TF1)入口

0023H串行口中断TI/RI入口

002BH定时计数器2溢出或T2EX输入负跳变(52系列)

程序存储器用于存放调试好的应用程序和表格常数。MCS—5l采用16位的程序计数器PC和l6位的地址总线,64KB片内、外的程序存储器空间连续、统一。单片机原理与应用全文共255页,当前为第30页。第二章4-----3wyx二、MCS—51数据存储器地址空间

数据存储器地址空间由内部和外部数据存储器空间组成。内部和外部数据存储器空间存在重叠。通过不同指令来区别

内部数据传送指令:MOV外部数据传送指令:MOVX单片机原理与应用全文共255页,当前为第31页。1、工作寄存器区(00H~1FH)分成4组,每组8个寄存器R0-R72、位寻址区(20H~2FH)既可进行字节寻址,又可进行位寻址。这16个单元共有16×8=128位,对应位地址00H-7FH。3、通用存储区(30H~7FH)4、外部数据存储器

0000H-FFFFH范围为64K字节,采用R0、R1或DPTR寄存器间址方式访问。

内部数据存储器在物理上又可分成三部分:低128字节RAM、高128字节RAM(仅8032/0852才有)和专用寄存器(SFR)。

低128字节RAM由工作寄存器区、位寻址区和通用RAM区组成。内部数据存储器地址空间8032/0852的高128字节RAM和专用寄存器(SFR)空间重合,通过不同寻址方式区别单片机原理与应用全文共255页,当前为第32页。第二章4-----4wyx三、特殊功能寄存器地址空间

共有26个专用寄存器SFR,离散地分布在片内RAM的高128字节地址80H~0FFH中。程序计数器PC不占据RAM单元,在除PC外的专用寄存器SFR中,有12个专用寄存器既可字节寻址,又可位寻址(字节地址为8的整倍数)。标识符名称字节地址*Acc累加器E0H*BB寄存器F0H*PSW程序状态字D0HSP堆栈指针81HDPTR数据指针(DPH和DPL)82H,83H*P0口080H*P1口190H*P2口2A0H*P3口3B0H*IP中断优先级寄存器B8H*IE中断控制寄存器A8HTMOD定时器方式寄存器89H*TCON定时器控制寄存器88H标识符名称字节地址TH0计数器0高位8CHTL0计数器0低位8AHTH1计数器1高位8DHTL1计数器1低位8BH*SCON串行口控制98HSBUF串行数据缓冲器99HPCON电源控制97H位地址的表示法例:位名称CY、RS0

寄存器名加序号PSW.7ACC.1

字节地址加序号20H.3

直接位地址 00H单片机原理与应用全文共255页,当前为第33页。第二章1-------19wyx1.累加器ACC—累加器A在大部分的算术运算中存放某个操作数和运算结果。2.寄存器B—寄存器B主要用于与累加器A配合执行乘法和除法指令的操作。3.程序状态字PSW——8位寄存器,用来存放程序状态信息。某些指令的执行结果会自动影响PSW的有关状态标志位,有些状态位可用指令来设置。

特殊功能寄存器D7D6D5D4D3D2D1D0CyACF0RS1RS0OV-PCY:进位标志位AC:半进位标FO:用户标志位RS1.RS0:工作寄存器组选择OV:溢出标志

P:奇偶标志RS1RS0寄存器组内部RAM地址

00工作寄存器组000H~07H01工作寄存器组108H~0FH10工作寄存器组210H~17H11工作寄存器组318H~1FH单片机原理与应用全文共255页,当前为第34页。第二章1------20wyx4.堆栈指针SP

栈指针SP为一个8位专用寄存器,每存入(或取出)一个字节数据,SP就自动加1(或减1),SP始终指向新的栈顶。系统复位后钱指针初始化为07H。5.数据指针DPTR16位的专用寄存器,由高位字节DPH和低位字节DPL组成。可作为一个16位寄存器使用,也可以作为2个独立的8位寄存器DPH和DPL使用。6.I/O端口P0~P3

专用寄存器P0~P3分别是I/O端口P0~P3的锁存器。可以把I/O口当作—般的专用寄存器来使用,没有专门设置的口操作指令,全部采用统一的MOV指令。单片机原理与应用全文共255页,当前为第35页。wyx关于数据存储器第二章1----21wyx

1)根据地址总线宽度,在片外可扩展的存储器最大容量为64KB,地址范围为0000H~FFFFH。2)片外数据存储器与程序存储器的操作使用不同的指令和控制信号,允许两者的地址重复。因此,片外要扩展的数据存储器与程序存储器各为64KB。3)片外数据存储器与片内数据存储器的操作指令亦不同(对片外RAM用MOVX指令),所以也允许两者的地址重复,内部数据存储器的地址00~FFH,外部扩展数据存储器的地址可以从0000H~FFFFH。

注意:采用R0、R1或DPTR寄存器间址方式访问片外数据存储器。当采用R0、R1间址时只能访问低256字节,采用DPTR间址可访问整个64K字节空间。单片机原理与应用全文共255页,当前为第36页。

MCS-51及其5l子系列的其它成员都具有相同的中断结构。

8051有5个中断源——2个外部中断源INT0和INT1,2个片内定时器/计数器溢出中断源,1个片内串行口中断源。分为两级——高级中断和低级中断。其中任何一个中断源的优先级均可由软件设定为高级或低级,能实现两级中断服务程序嵌套。

都是可屏蔽的,由软件设定。

第五节MCS-51的中断系统

中断允许寄存器IE控制中断优先级寄存器IP控制中断触发方式位IT控制单片机原理与应用全文共255页,当前为第37页。第二章3--------2wyx一、MCS—51的中断源

1.中断源

1)外部中断0请求,由P3.2引脚输入。可由用户设定为两种触发方式,(电平触发方式还是边沿触发方式)。一旦输入信号有效,则向CPU申请中断,并且将中断标志IE0置1。

2)外部中断1请求,由P3.3引脚输入。亦可由用户设定为电平触发方式还是边沿触发方式。一旦输人信号有效,则向CPU申请中断,并将中断标志IE1置1。

3)片内定时器T0溢出中断请求。当定时器T0产生溢出时,T0中断请求标志TF0置1,请求中断处理。

4)片内定时器T1溢出中断请求。当定时器T1产生溢出时,T1中断请求标志TF1置l,请求中断处理。

5)片内串行口发送/接收中断请求。当通过串行口发送或接收完一帧串行数据时,串行口中断请求标志TI或RI置1,请求中断处理。单片机原理与应用全文共255页,当前为第38页。第二章3------3wyx2.中断请求标志

(1)TCON的中断标志

TCON是专用寄存器,字节地址为88H,它锁存了外部和的中断请求标志及T0和T1的溢出中断请求标志TCON88HD7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT01)IT0:选择外部中断0(INT0)触发方式控制位。IT0=0INT0为电平触发方式。

2)IE0:外部中断0请求标志位。IE0=1,外部中断0向CPU申请中断。

3)IT1:选择外部中断1(INT1)触发方式控制位。

4)1E1:外部中断1请求标志位。IE1=1时,外部中断1向CPU申请中断。

5)TF0:片内定时器T0溢出中断请求标志。T0被启动后,从初始值开始进行加1计数,当最高位产生溢出时置TF0=1,向CPU申请中断,直到CPU响应该中断时,才由硬件自动将TF0清0,也可由软件查询该标志,并用软件清0。

6)TF1:片内定时器T1溢出中断请求标志,其操作功能与TF0类同。单片机原理与应用全文共255页,当前为第39页。第二章3--------4wyxSCON是串行口控制寄存器,与中断有关的是它的低两位TI和RI。1)TI(SCON.1):串行口发送中断标志位。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能清除TI,TI必须由软件清除。

2)RI(SCON.0):串行口接收中断标志位,当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。TIRISCON2)SCON的中断标志单片机原理与应用全文共255页,当前为第40页。第二章3--------5wyx二、MCS—51的中断控制

1、中断允许寄存器IE——中断的允许与开放

单片机原理与应用全文共255页,当前为第41页。第二章3-------6wyx2.中断优先级寄存器IP——中断优先级控制

内部自然优先级:入口地址

INT0高0003HT0000BHINT10013HT1001BHTI/RI底0023H单片机原理与应用全文共255页,当前为第42页。第二章3-------8wyx中断处理过程一般分为三个阶段,即中断响应、中断处理和中断返回。三、响应中断的条件及过程

1.中断响应(1)中断响应的条件

1)有中断源发出请求信号

2)中断是开放的(总允许、源允许)

3)没有封锁(受阻),受阻情况是:①CPU正在执行同级或高一级的中断服务程序;②现行机器周期不是正在执行的指令的最后一个机器周期,即现行指令完成前.不响应任何中断请求;③当前正在执行的是中断返回指令RETI或访问专用寄存器IE或IP的指令。也就是说,在执行RETI或是访问IE、IP的指令后,至少需要再执行—条其他指令,才会响应中断请求。单片机原理与应用全文共255页,当前为第43页。第二章3-----9wyx

2)中断响应过程

进入中断响应周期。CPU在中断响应周期要完成下列操作:

1)根据中断请求源的优先级高低,使相应的优先级状态触发器置1。

2)清相应中断请求标志位IE0、IE1、TF0或TF13)保留断点,把PC内容压入堆保存。

4)把被响应的中断源服务程序入口地址送入PC,输入相应中断服务程序。单片机原理与应用全文共255页,当前为第44页。第二章3------10wyx2.中断服务与返回

在编写中断服务程序时加注意的几点:

1)因各入口地址之间只相隔8个字节,一般的中断服务程序是存放不下的。所以通常在中断入口地址单元处存放—条无条件转移指令,这样就可使中断服务程序灵活地安排在64KB程序存储器的任何空间。2)若要在执行当前中断程序时禁止更高优先级中断,可先用软件关闭CPU中断,或禁止某中断源中断,在中断返回前再开放中断。

3)注意在保护现场和恢复现场。

4)中断服务程序的最后一条是返回指令RETI,该指令将清除响应中断时被置位的优先级状态触发器,然后自动将断点地址从栈顶弹出,装入程序计数器PC,使程序返回到被中断的程序断点处,继续向下执行。

单片机原理与应用全文共255页,当前为第45页。第二章3-----11wyx3.中断请求的撤除CPU响应中断请求后,在中断返回(RETI)前,该中断请求信号必须撤除,否则会引起另外一次中断。注意:采用边沿触发的外部中断标志IE0或IEl和定时器中断标志TF0或TFl,CPU响应中断后能用硬件自动情除。但在电平触发时,IE0或IEl受外部引脚中断信号(或)的直接控制,CPU无法控制IE0或IEl,需要另外考虑撤除中断请求信号的措施,如通过外加硬件电路,并配合软件来解决;串行口中断请求标志TI和RI也不能由硬件自动清除,需要在中断服务程序中,用软件来清除相应的中断请求标志

小结:1、硬件构成

2、存储器组织

3、中断系统单片机原理与应用全文共255页,当前为第46页。第三章6----24wyx三、分支程序与循环程序设计

课间休息单片机原理与应用全文共255页,当前为第47页。第三章1------1wyx

本章重点:指令的寻址方式、功能、使用方法程序设计的一般方法和技巧

讲授内容:MCS-51单片机的寻址方式

MCS-51单片机指令分类

程序设计方法和算法分析应用程序设计举例

第三章

MCS-51单片机的指令系统与程序设计单片机原理与应用全文共255页,当前为第48页。第一节MCS—51单片机的寻址方式

MCS-51单片机的指令系统共有111条指令,7种寻址方式,共分为五大类

MCS-51指令系统简介:1、指令所包含的内容操作码:规定指令的操作功能操作数:指令操作的具体对象(地址、数据)2、指令格式单字节指令:双字节指令:三字节指令第三章1------2wyx单片机原理与应用全文共255页,当前为第49页。在MCS-51系列单片机的指令中,常用的符号:

#data8、#data16:分别表示8位、16位立即数。

direct:片内RAM单元地址(8位),也可以指特殊功能寄存器的地址或符号名称。

addr11、addr16:分别表示11位、16位地址码。

rel:相对转移指令中的偏移量,为8位带符号数(补码形式)。

bit:片内RAM中(可位寻址)的位地址。

A:累加器A;ACC则表示累加器A的地址。

Rn:当前寄存器组的8个工作寄存器R0~R7。

Ri:可用作间接寻址的工作寄存器,只能是R0、R1。@:间接寻址的前缀标志。第三章1------3wyx第一节MCS—51单片机的寻址方式单片机原理与应用全文共255页,当前为第50页。一、立即寻址立即寻址是指在指令中直接给出其操作数,该操作数称为立即数。为了与直接寻址指令中的直接地址相区别,在立即数前面必需加上前缀“#”。例如:MOV R0,#30H寻址方式二、直接寻址直接寻址是指在指令中直接给出存放数据的地址(注意:不是立即数,并且只限于片内RAM范围)。直接寻址只能访问特殊功能寄存器、内部数据存储器和位地址空间。例如:MOV A,30H

比较以上两指令的区别第三章1------4wyx单片机原理与应用全文共255页,当前为第51页。

三、寄存器寻址寄存器寻址是指指令中的操作数为寄存器中的内容。例如:MOV A,R1第三章1-----5wyx四、寄存器间接寻址寄存器间接寻址是指指令中的操作数在寄存器的内容所指的地址单元中。例如:MOV R1,#30H ;把立即数30H送R1寄存器

MOV A,@R1 ;把30H单元中的数送到A中五、变址寻址变址寻址用于访问程序存储器中的一个字节,该字节的地址是:基址寄存器(DPTR或PC)的内容与变址寄存器A中的内容之和。例如:

MOVDPTR,#3000H;立即数3000H送DPTRMOVA,#02H ;立即数02H送AMOVC A,@A+DPTR;取ROM中3002H单元中的数送A单片机原理与应用全文共255页,当前为第52页。六、相对寻址

以PC当前值为基准,加上相对偏移量rel形成转移地址转移范围:以PC当前值起始地址,相对偏移在-128~+127字节单元之间。相对寻址方式为相对转移指令所采用。转移的目的地址为:目的地址=转移指令所在地址+转移指令字节数+rel第三章1------6wyx单片机原理与应用全文共255页,当前为第53页。七、位寻址位寻址是指对片内RAM的位寻址区(20H~2FH)、可以位寻址的专用寄存器的各位,并进行位操作的寻址方式。例如:MOV C,00H ;把20H单元中D0位的值送C位

MOV P1.0,C ;把C位中的值送P1口的D0位

SETB 20H.0 ;把00H位置1位地址的表示方法位名称例:CY、RS0寄存器名加序号例:ACC.1、P0.1字节地址加序号例:20H.3直接位地址例:00H、07H第三章1------7wyx单片机原理与应用全文共255页,当前为第54页。操作数的7种寻址方式和寻址的空间寻址方式相关寄存器寻址的空间

立即寻址

程序存储器ROM直接寻址

片内RAM和SFR寄存器寻址R0~R7,A,B,DPTRR0~R7,A,B,DPTR寄存器间接寻址@R0,@R1片内RAM@R0,@R1,@DPTR片外RAM变址寻址@A+PC,@A+DPTRROM区相对寻址PCROM区位寻址可位寻址的SFR片内RAM20H~2FH,SFR可寻址位第三章1------8wyx单片机原理与应用全文共255页,当前为第55页。MCS—51汇编语言指令格式如下:标号:操作码

操作数1,操作数2,操作数3;注释其中标号实际上为符号地址,表示这条指令在程序存储器中的存放首地址,以字母开始,后可跟1~8个字母或数字,但标号不能用操作码或专用符号。

操作码规定了指令的具体操作。指令中的操作数为指令的具体操作对象,有些指令中有3个操作数,有些只有一个,有些无操作数,仅有操作码。第三章2------1wyx第二节MCS—51单片机的指令分类单片机原理与应用全文共255页,当前为第56页。第三章2-----2wyx指令分类:一、数据传送与交换类指令特点:除第一操作数为A的指令影响P位外,其它并不影响标志位有三种传送指令

MOV片内RAM和特殊功能寄存器之间的传送

MOVX片外RAM与ACC之间的传送

MOVC程序存储器的数据送ACC

1.用于片内RAM传送的指令(16条)

1)以累加器ACC

为目的操作数

.MOVA,Rn;

.MOVA,direct;MOVA,@Ri(R1,R0)MOVA,#data单片机原理与应用全文共255页,当前为第57页。第三章2-----3wyx2)以Rn

为目的操作数MOVRn,A

MOVRn,direct

MOVRn,#data3)以直接地址为目的操作数MOVdirect,AMOVdirect,Rn

MOVdirect,#data

MOVdirect,@Ri(R1,R0)MOVdirect,direct;4)以寄存器间址

为目的操作数MOV@Ri,direct;MOV@Ri,A;MOV@Ri,#data5)16位数据送数据指针DPTR

MOVDPTR,#Ddata16例如:MOV 30H,#7AH;将立即数7AH送片内RAM30H单元中

MOV R0,#30H;将立即数30H送R0寄存器

MOV A,@R0;将R0指定的30H中的数7AH送A中

MOVDPTR,#1000H;将1000H送DPTR寄存器

MOVX@DPTR,A练习:将R1中的内容送R2单片机原理与应用全文共255页,当前为第58页。第三章2----4wyx2.用于片外RAM传送的指令(共4条)片外RAM单元的地址为16位,一般用DPTR间接寻址;也可使用Ri来间接寻址(低8位编址时)。1)外部RAM低256字节单元与A之间的传送

MOVX

A,@Ri

MOVX

@Ri,A2)64KB外部RAM单元与A之间的传送

MOVX

A,@DPTR

MOVX

@DPTR,A

例:

MOVDPTR,#2000HMOVXA,@DPTR

;将外部RAM中2000H单元内容→A思考:将片内RAM50H单元内容→片外RAM5000H单元单片机原理与应用全文共255页,当前为第59页。第三章2-----5wyx3.用于ROM传送的指令(共2条)MOVCA,@A+DPTR ;(A)←((A)+DPTR))MOVCA,@A+PC ;(A)←((A)+(PC))

以PC的当前值为基址,A为变址

例3-1:在ROM1000H开始存有5个字节数,编程将第二个字节数取出送片内RAM30H单元中。程序段如下:

MOVDPTR,#1000H;置ROM地址指针(基址)DPTRMOVA,#01H;表内序号送A(变址)

MOVCA,@A+DPTR;从ROM1000H单元中取数送到AMOV30H,A;再存入内RAM30H中

ORG1000H;伪指令,定义数表起始地址TAB:DB55H,67H,9AH,…;在ROM1000H开始的空间中定义5个;字节

单片机原理与应用全文共255页,当前为第60页。第三章2-6wyx

例3-2:设某数N已存于20H单元(N≤10),查表求N平方值,存入21H单元。

程序段如下:

MOV A,20H ;取数NADD A,#01 ;加查表偏移量

MOVC A,@A+PC ;查表

NOP

TAB:DB00H,01H,04H,09……

;定义数表

由于PC为程序计数器,总是指向下一条指令的地址在执行第二条指令“MOVCA,@A+PC”时,在查表前应在A累加器中加上该指令与表之间的偏移量。

用DPTR查表时,表格可放在ROM的64K范围(不用考虑偏移量),用MOVCA,@A+PC指令时则必须把表格就放在该条指令下面开始的255个字节的空间中。单片机原理与应用全文共255页,当前为第61页。第三章2-7wyx4.交换指令(共5条)其中3条为整个字节相互交换,XCHD指令为低4位相互交换,SWAP为ACC中的高、低4位互换。1)字节交换

XCHA,Rn;(A)←→(Rn)

XCHA,directXCHA,@Ri2)半字节交换

XCHDA,@Ri;

SWAPA例:已知(A)=34H,(R6)=29H,执行以下指令后,(A)=?

XCHA,R6SWAPA思考:用不同的方法实现片内RAM

(20H)→R1单片机原理与应用全文共255页,当前为第62页。第三章2-----7-2wyx5.堆栈操作指令(共2条)堆栈是在内RAM开辟的一个数据的暂存空间,遵守“后进先出”原则操作,其地址指针为SP,它指出栈顶的位置,复位时SP=07H。入栈:PUSHdirect;SP先增1,再将数据压栈。出栈;POPdirect;数据先出栈,再SP减1。例如,已知(A)=44H,(30H)=55H,执行

MOV SP,#5FH;栈起点设置为5FHPUSHACC ;A中的44H压到60H中保存

PUSH30H ;30H中的55H压到61H中保存

POP 30H ;把61H中的55H弹出到30HPOP ACC ;把60H中的44H弹出到A中单片机原理与应用全文共255页,当前为第63页。【例】将片内RAM30H单元与40H单元中的内容互换。方法1(直接地址传送法):

MOV 31H,30HMOV 30H,40HMOV 40H,31HSJMP $方法2(间接地址传送法):

MOV R0,#40HMOV R1,#30HMOV A,@R0MOV B,@R1MOV @R1,AMOV @R0,BSJMP $方法4(字节交换传送法):

MOV A,30HXCH A,40HMOV 30H,ASJMP $方法3(堆栈传送法):

PUSH 30HPUSH 40HPOP 30HPOP 40HSJMP $单片机原理与应用全文共255页,当前为第64页。第三章2----8wyx二、算术运算类指令算术运算类指令有加、减、乘、除法指令,增1和减1指令,十进制调整指令,共24条,使用时应注意判断各种结果对哪些标志位(CY、OV、AC、P)产生影响。

1.不带进位的加法指令ADD(4条)ADD A,Rn;A←(A)+(Rn)

ADD A,direct;A←(A)+(direct)

ADD A,@Ri;A←(A)+((Ri))

ADD A,#data;A←(A)+data

练习3-398H+75H分析各标志位的置位情况加法和减法指令的第一操作数都是A,并将运算结果放在A中2.

带进位的加法指令ADDC

(4条)

ADDCA,Rn;A←(A)+(Rn)+(CY)

ADDCA,direct;A←(A)+(direct)+(CY)

ADDCA,@Ri;A←(A)+((Ri))+(CY)

ADDCA,#data;A←(A)+data

+(CY)

例如求5688H+2396H低字节用ADD指令,高字节用ADDC指令单片机原理与应用全文共255页,当前为第65页。第三章2-----9wyx3.带借位减法指令SUBB(4条)SUBBA,Rn;A←(A)-(Rn)-(CY)SUBBA,direct;A←(A)-(direct)-(CY)

SUBBA,@Ri;A←(A)-((Ri))-(CY)

SUBBA,#data;A←(A)-data-(CY)——减法只有带借位减法指令,在不须减借位时可先清CY。4.乘法指令MUL(1条)

MULAB

;BA←(A)×(B)

5.除法指令DIV(1条)

DIVAB

;A←A/B(商)B←余数

说明:无符号数相除,当除数(B)=0时,结果为无意义,并置OV=1;CY位总是0。说明:当积大于255(0FFH)时,即积的高字节B不为0时,置OV=1,否则OV=0;CY位总是0。单片机原理与应用全文共255页,当前为第66页。第三章2----10wyx6.加1指令INC

(5条)INCAINCRnINCdirectINC@RiINCDPTR7.减1指令(4条)

注意:没有对DPTR

的减1操作指令

DECADECRnDECdirectDEC@Ri

只有INCA和DECA这两条指令影响影响P,其他不影响任何标志。

8.十进制调整指令DAA(1条)

ADD、ADDC指令都是对8位二进制数进行加法运算,当两个BCD码数进行加法时,必须增加一条DAA指令(对其结果进行调整),否则结果就会出错。

注意:DAA指令只能用于加法指令后单片机原理与应用全文共255页,当前为第67页。第三章2------11wyx

三.逻辑运算与循环类指令特点:是当A作目的操作数(第一操作数)时,影响P位;带进位的移位指令影响Cy位,其余都不影响PSW。第二节MCS-51单片机的指令分类1.逻辑“或”运算指令ORL(6条)2.逻辑“与”运算指令ANL(6条)3.逻辑“异或”运算指令XRL(6条)

此类指令都是按位操作,其中有4条指令的第一操作数都为A。另外两条指令的第一操作数为direct,第二操作数为A和#data。逻辑运算类指令:如:逻辑或指令格式:ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#data单片机原理与应用全文共255页,当前为第68页。用AND指令可对指定位或指定的一些位进行屏蔽(清零)。

例如:ANLA,#0FH;将A中的高4位清零

#0FH称为屏蔽字,屏蔽字中的0对应于需要清0的位。用ORL指令可对一些指定位置1。例如:ORLA,#80H可将A中的最高位置1,其他位保持不变。通过XRL指令用“1”与某数的对应位异或,可将该位取反,用“0”与某数的对应位异或,可将指定位不变;

逻辑运算类指令的常用功能:单片机原理与应用全文共255页,当前为第69页。

求反指令(1条)

CPLA;对累加器A的内容各位求反,结果送回A中,影响P位。

清0指令(1条)

CLR A;将累加器A的内容清0。

第三章2-----12wyx注意:两条指令仅对A有效单片机原理与应用全文共255页,当前为第70页。⒍

循环移位指令(4条,仅对A有效)其中有两条不带CY位的逐位循环移位一次指令,不影响PSW。两条带CY位的逐位循环移位一次指令,仅影响CY位。第三章2------13wyx

RLA;左移RRA;右移

RLCA;带进位CY的左移RRCA;带进位CY的右移

CYRLD7D0D7D0CYRLCCYD7D0RRD7D0CYRRC单片机原理与应用全文共255页,当前为第71页。例:将双字节数(R2)(R3)右移一位

CLRCMOVA,R2RRCAMOVR2,AMOVA,R3RRCAMOVR3,A分析执行过程第三章2------14wyx单片机原理与应用全文共255页,当前为第72页。四、控制程序转移类指令第三章2------15wyx

控制程序转移类指令主要功能是控制程序转移到新的PC所指地址去执行程序。1.无条件转移指令(4条)(1)长转移指令LJMPaddr16;PC←addr16范围64K(2)绝对转移指令

AJMPaddr11;PC10~0←addr11

指令中包含有11位的目的地址(a10a9……a0),PC高5位不变

*转移范围2K字节——目的地址必须和PC+2在同一页内*机器码为两字节

a10a9a800001a7---------------a0

单片机原理与应用全文共255页,当前为第73页。第三章2-----16wyx(3)短(相对)转移指令

SJMPrel;PC←PC+2+rel

其目的地址是由PC中的当前值和指令的第二字节中带符号的相对地址相加而成的。因此本指令转移的范围为:下一条指令的(-128~+127)字节内,即本指令的(-126~+129)字节内。

实际应用时,addr16、addr11、rel一般用符号地址形式。(4)间接转移指令(又称散转指令)

JMP@A+DPTR;PC←(A)+(DPTR

目的地址由指针DPTR和变址A的内容之和形成,范围达64K

。单片机原理与应用全文共255页,当前为第74页。第三章2----16wyx2.条件转移指令(8条)此类指令均为相对寻址指令。(1)累加器判零转

JZrel;A=0转,PC=PC+2+relJNZrel;A<>0转(2)CY位条件判转

JCrel;CY=1转PC=PC+2+rel

JNCrel;CY=0转单片机原理与应用全文共255页,当前为第75页。第三章2-----13wyx(3)数值比较转均为三字节

CJNEA,#data,relCJNEA,direct,relCJNERn,#data,relCJNE@Ri,#data,rel指令功能为两数比较不相等转移,操作过程为第一数减第二数状态标志送PSW,但不改变原来的操作数注意:参与比较的数为无符号数单片机原理与应用全文共255页,当前为第76页。第三章2-----14wyx(4)可寻址位条件判转(三字节)JBbit,rel;(bit)=1转JNBbit,rel;(bit)=0转JBCbit,rel;(bit)=1转,并将该位清零(5)循环控制指令DJNZ

DJNZRn,relDJNZdirect,rel;指令功能是把源操作数减1,结果送回原操作数中,再判结果不为0就转到目的地去,否则继续下面一条指令执行。主要应用在循环结构的编程中,作循环结束控制用。

单片机原理与应用全文共255页,当前为第77页。第三章2-----15wyx

例2:比较两无符号数的大小求R1、R2中较大的数,结果存R3中。解:

温馨提示

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

评论

0/150

提交评论