单片机讲义Word文档格式.docx

上传人:b****5 文档编号:16479367 上传时间:2022-11-24 格式:DOCX 页数:54 大小:714.61KB
下载 相关 举报
单片机讲义Word文档格式.docx_第1页
第1页 / 共54页
单片机讲义Word文档格式.docx_第2页
第2页 / 共54页
单片机讲义Word文档格式.docx_第3页
第3页 / 共54页
单片机讲义Word文档格式.docx_第4页
第4页 / 共54页
单片机讲义Word文档格式.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

单片机讲义Word文档格式.docx

《单片机讲义Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机讲义Word文档格式.docx(54页珍藏版)》请在冰豆网上搜索。

单片机讲义Word文档格式.docx

1)中央处理器(CPU)

中央处理器是单片机的核心,完成运算和控制功能。

MCS-51的CPU能处理8位二进制数或代码。

2)内部数据存储器(内部RAM)

8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。

因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。

3)内部程序存储器(内部ROM)

8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。

4)定时/计数器

8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。

5)并行I/O口

MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。

在实训中我们已经使用了P1口,通过P1口连接8个发光二极管。

第三节80C51单片机的引脚功能

MCS-51是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图

P0.0~P0.7:

P0口8位双向口线。

P1.0~P1.7:

P1口8位双向口线。

P2.0~P2.7:

P2口8位双向口线。

P3.0~P3.7:

P3口8位双向口线。

ALE:

地址锁存控制信号。

在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。

此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。

PSEN:

外部程序存储器读选通信号。

在读外部ROM时,PSEN有效(低电平),以实现外部ROM单元的读操作。

EA:

访问程序存储控制信号。

当信号为低电平时,对ROM的读操作限定在外部程序存储器;

当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。

RST:

复位信号。

当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。

XTAL1和XTAL2:

外接晶体引线端。

当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;

当使用外部时钟时,用于接外部时钟脉冲信号。

VSS:

地线。

VCC:

+5V电源。

以上是MCS-51单片机芯片40条引脚的定义及简单功能说明,读者可以对照实训电路找到相应引脚,在电路中查看每个引脚的连接使用。

P3口线的第二功能。

P3的8条口线都定义有第二功能

第四节存储器结构

MCS-51单片机的芯片内部有RAM和ROM两类存储器,即所谓的内部RAM和内部ROM

MCS-51内部程序存储器

MCS-51的程序存储器用于存放编好的程序和表格常数。

8051片内有4KB的ROM,8751片内有4KB的EPROM,8031片内无程序存储器。

MCS-51的片外最多能扩展64KB程序存储器,片内外的ROM是统一编址的。

如端保持高电平,8051的程序计数器PC在0000H~0FFFH地址范围内(即前4KB地址)是执行片内ROM中的程序,当PC在1000H~FFFFH地址范围时,自动执行片外程序存储器中的程序;

当保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。

MCS-51的程序存储器中有些单元具有特殊功能,使用时应予以注意。

其中一组特殊单元是0000H~0002H。

系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。

如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。

还有一组特殊单元是0003H~002AH,共40个单元。

这40个单元被均匀地分为5段,作为5个中断源的中断地址区。

其中:

0003H~000AH外部中断0中断地址区

000BH~0012H定时/计数器0中断地址区

0013H~001AH外部中断1中断地址区

001BH~0022H定时/计数器1中断地址区

0023H~002AH串行中断地址区

中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。

但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。

MCS-51内部数据存储器

内部数据存储器低128单元

8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:

低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。

如图所示为低128单元的配置图。

寄存器区

8051共有4组寄存器,每组8个寄存单元(各为8),各组都以R0~R7作寄存单元编号。

寄存器常用于存放操作数中间结果等。

由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。

4组通用寄存器占据内部RAM的00H~1FH单元地址。

在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。

到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。

通用寄存器为CPU提供了就近存储数据的便利,有利于提高单片机的运算速度。

此外,使用通用寄存器还能提高程序编制的灵活性,因此,在单片机的应用编程中应充分

利用这些寄存器,以简化程序设计,提高程序运行速度。

位寻址区

内部RAM的20H~2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。

位寻址区共有16个RAM单元,计128位,地址为00H~7FH。

MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。

这种位寻址能力是MCS-51的一个重要特点。

用户RAM区

在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下80个单元,这就是供用户使用的一般RAM区,其单元地址为30H~7FH。

对用户RAM区的使用没有任何规定或限制,但在一般应用中常把堆栈开辟在此区中。

内部数据存储器高128单元

内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80H~FFH。

因这些寄存器的功能已作专门规定,故称之为专用寄存器(SpecialFunctionRegister),也可称为特殊功能寄存器。

第五节特殊功能存储器SFR

8051共有21个专用寄存器,现把其中部分寄存器简单介绍如下:

程序计数器(PC—ProgramCounter)。

在实训中,我们已经知道PC是一个16位的计数器,它的作用是控制程序的执行顺序。

其内容为将要执行指令的地址,寻址范围达64KB。

PC有自动加1功能,从而实现程序的顺序执行。

PC没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。

因地址不在SFR(专用寄存器)之内,一般不计作专用寄存器。

累加器(ACC—Accumulator)。

累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。

它既可用于存放操作数,也可用来存放运算的中间结果。

MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。

B寄存器。

B寄存器是一个8位寄存器,主要用于乘除运算。

乘法运算时,B存乘数。

乘法操作后,乘积的高8位存于B中,除法运算时,B存除数。

除法操作后,余数存于B中。

此外,B寄存器也可作为一般数据寄存器使用。

程序状态字(PSW—ProgramStatusWord)。

程序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。

其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。

PSW的位状态可以用专门指令进行测试,也可以用指令读出。

一些条件转移指令将根据PSW有些位的状态,进行程序转移。

PSW的各位定义如下:

除PSW.1位保留未用外,其余各位的定义及使用如下:

CY(PSW.7)——进位标志位。

CY是PSW中最常用的标志位。

其功能有二:

一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置“1”,否则清“0”;

二是在位操作中,作累加位使用。

位传送、位与位或等位操作,操作位之一固定是进位标志位。

AC(PSW.6)——辅助进位标志位。

在进行加减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位被清“0”。

在BCD码调整中也要用到AC位状态。

F0(PSW.5)——用户标志位。

这是一个供用户定义的标志位,需要利用软件方法置位或复位,用以控制程序的转向。

RS1和RS0(PSW.4,PSW.3)——寄存器组选择位。

它们被用于选择CPU当前使用的通用寄存器组。

通用寄存器共有4组,其对应关系如下:

00:

0组01:

1组10:

2组11:

3组

这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。

但当单片机上电或复位后,RS1RS0=00。

OV(PSW.2)——溢出标志位。

在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128~+127),即产生了溢出,因此运算结果是错误的,否则,OV=0表示运算正确,即无溢出产生。

P(PSW.0)——奇偶标志位。

表明累加器A中内容的奇偶性。

如果A中有奇数个“1”,则P置“1”,否则置“0”。

凡是改变累加器A中内容的指令均会影响P标志位。

此标志位对串行通信中的数据传输有重要的意义。

在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。

数据指针(DPTR)。

数据指针为16位寄存器。

编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:

DPHDPTR高位字节,DPLDPTR低位字节。

DPTR通常在访问外部数据存储器时作地址指针使用。

由于外部数据存储器的寻址范围为64KB,故把DPTR设计为16位。

堆栈指针(SP—StackPointer)。

堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。

堆栈共有两种操作:

进栈和出栈。

由于MCS-51单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器。

系统复位后,SP的内容为07H,从而复位后堆栈实际上是从08H单元开始的。

但08H~1FH单元分别属于工作寄存器1~3区,如程序要用到这些区,最好把SP值改为1FH或更大的值。

对专用寄存器的字节寻址问题作如下几点说明:

(1)21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。

(2)程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。

(3)对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器。

第六节输入输出端口

单片机芯片内还有一项主要内容就是并行I/O口。

MCS-51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。

每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。

实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。

在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。

在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。

第七节时钟电路

在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。

而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。

1.振荡周期:

为单片机提供时钟信号的振荡源的周期。

2.时钟周期:

是振荡源信号经二分频后形成的时钟脉冲信号。

3.机器周期:

通常将完成一个基本操作所需的时间称为机器周期。

4.指令周期:

是指CPU执行一条指令所需要的时间。

一个指令周期通常含有1~4个机器周期。

第八节复位电路

单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。

实训中已经看出,无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MCS-51型单片机复位的条件、复位电路和复位后状态。

第三章MCS-51指令系统

第一节指令格式

采用助记符表示的汇编语言指令格式如下:

标号是程序员根据编程需要给指令设定的符号地址,可有可无;

标号由1~8个字符组成,第一个字符必须是英文字,不能是数字或其它符号;

标号后必须用冒号。

操作码表示指令的操作种类,如MOV表示数据传送操作,ADD表示加法操作等。

操作数或操作数地址表示参加运算的数据或数据的有效地址。

操作数一般有以下几种形式:

没有操作数项,操作数隐含在操作码中,如RET指令;

只有一个操作数,如CPLA指令;

有两个操作数,如MOVA,#00H指令,操作数之间以逗号相隔;

有三个操作数,如CJNEA,#00H,NEXT指令,操作数之间也以逗号相隔。

注释是对指令的解释说明,用以提高程序的可读性;

注释前必须加分号。

第二节寻址方式

寻找操作数地址的方式称为寻址方式。

1.寄存器寻址

寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。

例如,指令MOVR1,A的操作是把累加器A中的数据传送到寄存器R1中,其操作数存放在累加器A中,所以寻址方式为寄存器寻址。

如果程序状态寄存器PSW的RS1RS0=01(选中第二组工作寄存器,对应地址为08H~0FH),设累加器A的内容为20H,则执行MOVR1,A指令后,内部RAM09H单元的值就变为20H。

2.直接寻址

直接寻址是指把存放操作数的内存单元的地址直接写在指令中。

在MCS-51单片机中,可以直接寻址的存储器主要有内部RAM区和特殊功能寄存器SFR区。

例如,指令MOVA,3AH执行的操作是将内部RAM中地址为3AH的单元内容传送到累加器A中,其操作数3AH就是存放数据的单元地址,因此该指令是直接寻址。

3.立即数寻址

立即数寻址是指将操作数直接写在指令中。

例如,指令MOVA,#3AH执行的操作是将立即数3AH送到累加器A中,该指令就是立即数寻址。

4.寄存器间接寻址

寄存器间接寻址是指将存放操作数的内存单元的地址放在寄存器中,指令中只给出该寄存器。

执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,再由该地址找到操作数并完成相应操作。

在MCS-51指令系统中,用于寄存器间接寻址的寄存器有R0、R1和DPTR,称为寄存器间接寻址寄存器。

设R0=3AH,内部RAM3AH中的值是65H,则指令MOVA,@R0的执行结果是累加器A的值为65H。

5.变址寻址

变址寻址是指将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。

DPTR或PC是基址寄存器,累加器A是变址寄存器。

该类寻址方式主要用于查表操作。

例如,指令MOVCA,@A+DPTR执行的操作是将累加器A和基址寄存器DPTR的内容相加,相加结果作为操作数存放的地址,再将操作数取出来送到累加器A中。

设累加器A=02H,DPTR=0300H,外部ROM中,0302H单元的内容是55H,则指令MOVCA,@A+DPTR的执行结果是累加器A的内容为55H。

6.相对寻址

相对寻址是指程序计数器PC的当前内容与指令中的操作数相加,其结果作为跳转指令的转移地址(也称目的地址)。

该类寻址方式主要用于跳转指令。

例如,指令SJMP54H执行的操作是将PC当前的内容与54H相加,结果再送回PC中,成为下一条将要执行指令的地址。

设指令SJMP54H的机器码80H54H存放在2000H处,当执行到该指令时,先从2000H和2001H单元取出指令,PC自动变为2002H;

再把PC的内容与操作数54H相加,形成目标地址2056H,再送回PC,使得程序跳转到2056H单元继续执行。

7.位寻址

位寻址是指按位进行的寻址操作,而上述介绍的指令都是按字节进行的寻址操作。

MCS-51单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。

当我们把某一位作为操作数时,这个操作数的地址称为位地址。

位寻址区包括专门安排在内部RAM中的两个区域:

一是内部RAM的位寻址区,地址范围是20H~2FH,共16个RAM单元,位地址为00H~7FH;

二是特殊功能寄存器SFR中有11个寄存器可以位寻址,参见有关章节中位地址定义。

第三节数据操作和指令类型

MCS-51单片机指令系统包括111条指令,按功能可以划分为以下5类

数据传送指令(29条) 

算术运算指令(24条)

逻辑运算指令(24条)

控制转移指令(17条)

位操作指令(17条)

第四节数据传送指令

数据传送指令是MCS-51单片机汇编语言程序设计中使用最频繁的指令,包括内部RAM、寄存器、外部RAM以及程序存储器之间的数据传送。

数据传送操作是指把数据从源地址传送到目的地址,源地址内容不变。

1.以累加器A为目的操作数的指令

MOVA,#data;

A←#data

MOVA,Rn;

n=0~7,A←(Rn)

MOVA,@Ri;

i=0,1,A←((Ri))

MOVA,direct;

A←(Rn)direct为内部RAM或SFR地址

2.以Rn为目的操作数的指令

MOVRn,A;

Rn←(A),n=0~7

MOVRn,direct;

Rn←(direct)

MOVRn,#data;

Rn←#data

3.以直接地址为目的操作数的指令

MOVdirect,A;

direct←(A)

MOVdirect,Rn;

direct←(Rn),n=0~7

MOVdirect,@Ri;

direct←((Ri)),i=0,1

MOVdirect,direct;

direct←(direct)

MOVdirect,#data;

direct←#data

4.以寄存器间接地址为目的操作数指令

MOV@Ri,A;

((Ri))←(A),i=0,1

MOV@Ri,direct;

((Ri))←(direct)

MOV@Ri,#data;

((Ri))←#data

字节交换指令

XCHA,Rn;

(A)←→(Ri)

XCHA,direct;

(A)←→(direct)

XCHA,@Ri;

半字节交换指令

XCHDA,@Ri;

(A)0-3←→((Ri))0-3

累加器A与外部数据传输指令

MOVXA,@DPTR;

A←((DPTR))地址范围64K

MOVXA,@Ri;

A←((Ri))地址范围0~255

MOVX@DPTR,A;

(DPTR)←(A)

MOVX@Ri,A;

(Ri)←(A)

查表指令

1)MOVCA,@A+DPTR;

A←((A)+(DPTR))

2)MOVCA,@A+PC;

A←((A)+(pc))

第五节算术运算指令

加法指令(Addtion)

ADDA,Rn;

A←(A)+(Rn)

ADDA,@Ri;

A←(A)+((Ri))

ADDA,direct;

A←(A)+(direct)

ADDA,#data;

A←(A)+#data

带进位加法指令

ADDCA,Rn;

A←(A)+(Rn)+(Cy)

ADDCA,@Ri;

A←(A)+((Ri))+(Cy)

ADDCA,direct;

A←(A)+(direct)+(Cy)

ADDCA,#data;

A←(A)+#data+(Cy)

加1指令

INCA;

A←(A)+1

INCRi;

Ri←(A)+1

INCdirect;

direct←(direct)+1

INC@Ri;

(Ri)←((Ri))+1

INCDPTR;

DPTR←(DPTR)+1

十进制调整指令

DAA

带借位减法指令(Subtraction)

SUBBA,Rn;

A←(A)-(Rn)-(Cy)

SUBBA,@Ri;

A←(A)-((Ri))-(Cy)

SUBBA,direct;

A←(A)-(direct)-(Cy)

SUBBA,#data;

A←(A)-#data-(Cy)

减1指令(Decrease)

DECA;

A←(A)-1

DECRi;

Ri←(A)-1

DECdirect;

direct←(direct)-1

DEC@Ri;

(Ri)←((Ri))-1

乘法指令(Multiplication)

MULAB

除法指令(Division)

DIVAB

第六节逻辑运算指令

简单逻辑操作指令

CLRA;

A←“0”

CPLA;

A←A

SWAPA;

A0~3A4~7

左循环指令(RotateA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1