第二章80C51单片机的基础知识_第1页
第二章80C51单片机的基础知识_第2页
第二章80C51单片机的基础知识_第3页
第二章80C51单片机的基础知识_第4页
第二章80C51单片机的基础知识_第5页
已阅读5页,还剩178页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章 80C51单片机的基础知识2.2 80C51单片机的微处理器2.3 80C51单片机的存储器配置2.1 80C51单片机的内部结构与引脚功能 2.4 80C51单片机的寻址方式2.5 80C51单片机的指令系统思考与练习2.1 80C51单片机的内部结构与引脚功能一、80C51单片机的构成及结构特点 二、80C51单片机的引脚及其功能 一、80C51单片机的构成及结构特点180C51构成 8位CPU、128字节RAM存储器、21个专用寄存器(亦称特殊功能寄存器SFR)、4K字节ROM存储器、4个8位并行口、1个全双工的串行口、2个16位的定时器/计数器、一个处理能力较强的中断系统。80

2、C51内部结构框图如下:一、80C51单片机的构成及结构特点一、80C51单片机的构成及结构特点 2 80C51单片机的结构特点 片内RAM的低端开辟了一个工作寄存器区,共有4组,每组有8个8位的工作寄存器,还有21个专用寄存器,使CPU控制灵活、编程方便。一、80C51单片机的构成及结构特点 2 80C51单片机的结构特点 把程序存储器与数据存储器在空间上严格分开:采用不同的寻址方式;使用不同的控制信号;使用两个不同的地址指针,用PC指向程序存储器,用DPTR指向数据存储器。一、80C51单片机的构成及结构特点 2 80C51单片机的结构特点 片内I/O口多,有4个8位多功能且可按位控制的并

3、行口和一个全双工的串行口,串行口有多种工作方式,可实现多机通讯,易构成集中分布式的控制系统。一、80C51单片机的构成及结构特点 2 80C51单片机的结构特点 扩展能力强,当片内的存储器或I/O口不够用时,可以很方便地通过片内并行口(这时作为总线口)进行扩展,最大可扩展至64K字节程序存储器和64K数据存储器。一、80C51单片机的构成及结构特点 2 80C51单片机的结构特点 芯片采用条状结构,制造商很容易按照用户的要求,设计出多种指令系统和引脚都完全兼容的专用的单片机。如80C52就是在80C51上加了128字节RAM、4K字节ROM和一个16位的定时器/计数器,并增加相应的SFR。一、

4、80C51单片机的构成及结构特点 2 80C51单片机的结构特点 80C51单片机内含有一个布尔处理器,它实际上是一个完整的1位微处理器,这个1位机有自己的CPU、位寄存器、I/O口和指令集。所以80C51单片机把8位机和1位机复合在一起,发挥各自的长处,这是它的一大优点。二、80C51单片机的引脚及其功能 80C51系列单片机有40个引脚,用 CHMOS工艺制造,芯片采用双列直插式封装。 80C51单片机芯片引脚图二、 80C51单片机的引脚及其功能1主电源引脚 VCC:接5V电源正端 VSS:接5V电源地端 一般VCC和VSS之间应接高频和低频滤波电容。 二、 80C51单片机的引脚及其功

5、能2外接晶体引脚XTAL1:芯片内部振荡电路(单级反相放大器) 输入端XTAL2:芯片内部振荡电路(单级反相放大器) 输出端二、 80C51单片机的引脚及其功能2外接晶体引脚80C51单片机的振荡器有内部和外部两种方式。 内部方式振荡电路二、 80C51单片机的引脚及其功能2外接晶体引脚80C51单片机的振荡器有内部和外部两种方式。 外部方式振荡电路二、 80C51单片机的引脚及其功能3控制信号线复位信号复位信号:时钟电路工作后,该引脚上出现持续24个振荡周期(即两个机器周期)以上的高电平,单片机就可完成复位操作 。RST/VPD:复位/掉电时内部RAM的备用电源输入端复位二、 80C51单片

6、机的引脚及其功能复位电路:复位电路: 上电复位电路 上电复位和开关复位组合电路3控制信号线RST/VPD:复位/掉电时内部RAM的备用电源输入端复位上电复位电路(80C51)上电复位和开关复位组合电路(80C51)(80C51)二、 80C51单片机的引脚及其功能3控制信号线复位RST/VPD:复位/掉电时内部RAM的备用电源输入端复位状态复位状态: :80C51复位后内部寄存器状态特殊功能寄存器初始状态特殊功能寄存器初始状态ACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPL00HTL100HDPH00HSCON00HP0P30FFHSBUF不定

7、IPXXX00000BPCON0XXX0000BIE0XX00000BTMOD00HPC0000H二、 80C51单片机的引脚及其功能3控制信号线RST/VPD:复位/掉电时内部RAM的备用电源输入端掉电时内RAM备用电源输入。二、 80C51单片机的引脚及其功能3控制信号线ALE/PROG:地址锁存允许/编程脉冲输入。 用ALE锁存从P0口输出的低8位地址 在对片内EPROM编程时,编程脉冲由此输入。二、 80C51单片机的引脚及其功能3控制信号线PSEN:外部程序存储器读选通信号。二、 80C51单片机的引脚及其功能3控制信号线EA/VDD:访外允许/编程电压输入 80C31中EA必须接地

8、。 80C51/87C51中 EA1,单片机使用片内ROM/EPROM; EA0,单片机片内程序存储器失效,而使用片外程 序存储器。 对片内EPROM编程时,此脚接编程电压。2.2 80C51单片机的微处理器一、运算器 微处理器又称CPU,由运算器和控制器两大部分组成。 二、控制器一、运算器 以算术逻辑单元ALU为核心,含累加器ACC、暂存器、程序状态字PSW、B寄存器等许多部件。 如右图所示:一、运算器 1、算术逻辑单元 能完成带进位位加法、不带进位位加法、带借位位减法、加1、减1、逻辑与、逻辑或、逻辑异或、循环移位以及数据传送、程序转移等操作。一、运算器 2、累加器ACC和寄存器B 累加器

9、ACC是最常用的专用寄存器。进入ALU作算术操作和逻辑操作的操作数很多来自ACC,操作的结果也常送回ACC。 寄存器B在乘、除指令中作为一个操作数寄存器,其它情况下,可作为一个通用寄存器用。 一、运算器 3、程序状态字 程序状态字PSW是一个8位寄存器,它包含了许多程序状态信息,其各位的含义如图所示: Cy AC FO RS1RS0 OV P一、运算器 3、程序状态字 Cy AC FO RS1RS0 OV P进位标志Cy: 加法(减法)时最高位D7有进(借)位,则Cy=1,否则Cy=0;位处理时,它起着“位累加器”的作用。 一、运算器 3、程序状态字 Cy AC FO RS1RS0 OV P辅

10、助进位标志AC: 加(减)法运算时,如果低半字节的最高位D3有进(借)位,则AC=1,否则AC=0;AC在作BCD码运算而进行二十进制调整时有用。 一、运算器 3、程序状态字 Cy AC FO RS1RS0 OV P用户标志FO: 是用户定义的一个状态标志。可通过软件对它置位、清零;在编程时,也常测试其状态进行程序分支。 一、运算器 3、程序状态字 Cy AC FO RS1RS0 OV P工作寄存器区选择位RS1、RS0: 可借软件置位或清零,以选定4个工作寄存器区中的一个区投入工作。 一、运算器 3、程序状态字 Cy AC FO RS1RS0 OV PRS1RS0寄存器区000区011区10

11、2区113区一、运算器 3、程序状态字 Cy AC FO RS1RS0 OV P溢出标志OV: 作有符号数加法、减法时由硬件置位或清除,以指示运算结果是否溢出。 一、运算器 3、程序状态字 Cy AC FO RS1RS0 OV P奇偶标志P: 每执行一条指令,单片机都能根据A中1的个数的奇偶自动令P置位或清零:奇为1,偶为0。此标志对串行通信的数据传输非常有用,通过奇偶校验可检验数据传输的正确与否。 二、控制器 1控制器的结构 控制器是CPU的大脑中枢,它以定时控制逻辑为中心,还包括指令寄存器、译码器、数据指示器DPTR、程序计数器PC、堆栈指针SP、以及RAM地址寄存器、16位地址缓冲器等。

12、 二、控制器 1控制器的结构PC: 16位的地址指针,专门用来控制程序运行的顺序,其中的内容总是下一条要执行的指令的地址。 复位时,PC=0000H,使程序从0单元开始执行。 通常单片机每取一个字节机器码,PC就自动加1,从而保证了指令的顺序执行。 转移指令可强行改变PC的内容。 二、控制器 1控制器的结构DPTR:它是由DPH、DPL两个8位专用寄存器组成的16位的地址指针,用于访问单片机外部数据存储器或扩展的I/O口。 二、控制器 1控制器的结构SP:80C51单片机的堆栈建在内RAM区中,8位地址指针SP总是指向栈顶的位置。复位时,(SP)=07H,可以通过MOV指令对SP赋值。 80C

13、51单片机的堆栈是向上生成的:压栈时,使SP的内容增1后作压入操作;出栈时,先把栈顶的数据弹出,然后使SP的内容减1。 二、控制器 2CPU操作时序 80C51单片机每个机器周期包含6个状态周期,每个状态周期包含两个振荡周期(2个节拍P1、P2),若采用6MHz的晶体振荡器,则每个机器周期为2s。 时序概念:二、控制器2CPU操作时序 一条指令执行的时间称为指令周期,80C51单片机的指令周期为14个机器周期。时序概念:下面介绍几种典型指令的取指/执行时序二、控制器 3布尔处理机 布尔处理机是单片机CPU中运算器的一个重要组成部分。它有相应的指令系统,可提供17条位操作指令,硬件有自己的“累加

14、器”(进位位C)和自己的位寻址RAM和I/O空间,所以是一个独立的位处理机。 三、80C51单片机的低功耗工作方式 80C51有两种低功耗方式:待机方式和掉电方式。它们比正常运行方式的功耗大大降低,下表列出80C31单片机三种工作方式下的功耗。三、80C51单片机的低功耗工作方式低功耗单片机的内部结构如下图所示: 80C51 低功耗方式的内部结构低功耗方式的内部结构三、80C51单片机的低功耗工作方式低功耗方式是由电源控制寄存器PCON控制的。PCON格式如下:SMODGF1GF0PDIDL1,波特率加倍1,进入待机方式1,进入掉电方式通用标志位0通用标志位1三、80C51单片机的低功耗工作方

15、式1、待机方式 待机方式的进入:用指令使PCON中的IDL位置1,80C51便进入待机方式,CPU停止工作,振荡器仍运行,并向中断系统、串行口、定时器提供时钟。三、8051单片机的低功耗工作方式1、待机方式 待机方式的退出:退出待机方式有中断和硬件复位两种方法。任何已开放的中断提出中断请求,都会引起硬件对IDL位清“0”,从而结束待机方式。硬件复位也将结束待机方式。三、8051单片机的低功耗工作方式2、掉电方式: 掉电方式的进入:PCON中的PD位置“1”,单片机进入掉电方式,此时单片机的一切工作停止,只有内部RAM的内容被保存。掉电方式的退出:唯一的方法是复位。三、8051单片机的低功耗工作

16、方式待机和掉电方式下引脚的状态如下表所示:2.3 80C51单片机的存储器配置四、外部数据存储器一、80C51单片机存贮器结构特点 二、程序存贮器三、内部数据存贮器一、80C51单片机存贮器结构特点 程序存贮器和数据存贮器的地址空间严格分开,用不同的地址指针、寻址方式和控制信号将这两种存储空间分开。 存在4个物理上相互独立的存贮器空间:片内、外程序存贮器 片内、外数据存贮器 一、80C51单片机存贮器结构特点 从逻辑上看,存在三个独立的空间:片内片外的程序存贮器,地址从0000HFFFFH, 共有64K字节;片内数据存贮器,地址为00HFFH,共128/256字节;片外数据存贮器(含扩展I/O

17、),地址为0000HFFFFH,共64K。 存储器的配置图(a) 80C51/87C51(b) 80C52/87C5280C51二、程序存贮器 程序存贮器用来存放程序,其地址指针PC是16位的寄存器,所以可寻址的空间有64K字节,但片内的容量比较有限,对于51系列的80C51/87C51/89C51片内只有4K字节ROM/EPROM/FLASH,80C31内部无程序存储器。 二、程序存贮器 如果要让单片机执行片内ROM/EPROM /FLASH中的程序(地址在00000FFFH之间),必须将单片机的EA引脚接高电平,否则当PC1000H时,单片机只会到片外程序存储器中取指。二、程序存贮器 单片

18、机到片外程序存储器中取指时,以PC的内容作为地址,以PSEN作为控制信号,读取相应单元的指令码,经数据总线传送到指令寄存器。 三、内部数据存贮器 80C51单片机内部有128/256字节RAM存储器,地址从007FH/FFH,可供CPU随机按字节或位(部分)进行读写操作,内部RAM可作为数据缓冲区、堆栈区使用。 1. 内部数据RAM RAM空间分配示意图三、内部数据存贮器1. 内部数据RAM 三、内部数据存贮器 工作寄存器区:001FH共32个单元还作为工作寄存器区,划分为四个小区,每个小区有8个工作寄存器R0R7,某一时刻用户使用其中的一个小区,可以通过设置程序状态字PSW中的RS0和RS1

19、 的状态确定使用哪一个小区。1. 内部数据RAM 三、内部数据存贮器 位地址区:字节地址202FH共16个单元,CPU可按字节访问,也可按位寻址,其位地址为007FH。1. 内部数据RAM 内部RAM位地址空间三、内部数据存贮器1. 内部数据RAM 位地址区:三、内部数据存贮器 80C51单片机有21/26个SFR,用来管理内部各个功能部件。它们离散地分布在80HFFH地址范围内。 它们有些反映有关逻辑部件的工作状态,有些则是有关功能单元的控制命令字,均可由单片机按字节地址访问,而其中一部分(凡是字节地址能被8整除)还可按位寻址,如下图所示。 2. 特殊功能寄存器SFR 三、内部数据存贮器2.

20、 特殊功能寄存器SFR 特殊功能寄存器位地址2.4 80C51单片机的寻址方式 寻址方式即寻找操作数、产生操作数的地址的方式。中心任务是如何在寻址范围内灵活方便地找到所需的操作数或操作数的地址。自然,寻址方式越多,计算机的功能越强,灵活性越大。 80C51单片机有七种寻址方式。七种寻址方式n 寄存器寻址方式n 直接寻址方式n 寄存器间接寻址方式n 立即寻址方式n 基址加变址的间接寻址方式n相对寻址方式n位寻址方式一、寄存器寻址 操作数存放在某一寄存器中,指令中给出相应的寄存器。寄存器寻址主要是对工作寄存器R0-R7进行操作,用指令操作码的低3位指明所使用的寄存器。 一、寄存器寻址例如:MOV

21、A,R6 ;(A)(R6) INC R3 ;(R3)(R3)+1 一、寄存器寻址一、寄存器寻址 这种寻址方式除了可以对R0R7进行操作外,还可以对A、B、C(位)、AB、DPTR进行操作。二、直接寻址 存放操作数的单元地址直接出现在指令中,即指令中直接给出操作数的地址。 二、直接寻址例如:ANL 70H,#48H ;(70H)(70H)48HMOV A,70H ;(A)(70H) 二、直接寻址二、直接寻址1. 内部RAM的低128字节;例如: MOV A,78H ;(A)(78H) ORL A,77H ; (A)(A) (77H) 这种寻址方式使用的变量是direct,可访问的存储空间有: 二

22、、直接寻址2. 专用寄存器;例如: MOV TCON,A ;(TCON)(A) 这种寻址方式使用的变量是direct,可访问的存储空间有: 二、直接寻址3. 位地址空间;例如: MOV C,7EH ;(Cy)(7EH) SETB EA ;(EA)1 这种寻址方式使用的变量是direct,可访问的存储空间有: 三、寄存器间接寻址 寄存器中的内容不是操作数本身,而是操作数的地址。即操作数的地址是以寄存器中的内容间接给出的。 三、寄存器间接寻址例如:ANL A, R0 ;(A)(A)(R0)MOV A,R0 ;(A)(R0) 三、寄存器间接寻址三、寄存器间接寻址适用的存储空间有: 1. 内部RAM,

23、使用的变量为R0、R1、SP; 例如:MOV R0,76H ; (R0)(76H) PUSH PSW ; (SP)(SP)+1,(SP)(PSW)三、寄存器间接寻址适用的存储空间有: .内部RAM的低半字节,使用的变量是 R0 、R1。 例如: XCHD A,R1;三、寄存器间接寻址适用的存储空间有: 3. 外部RAM(或I/O口),使用的变量是 R0、R1、DPTR。 例如: MOVX R0,A ;(R0)(A) MOVX A,DPTR ;(A)(DPTR) 四、立即寻址 操作数直接出现在指令码中,即指令的操作码后面的一个字节就是实际的操作数(立即数)。 四、立即寻址例如:MOV DPTR,

24、#3456H ;(DPH)34H,(DPL)56H MOV A,#20H ;(A)20H四、立即寻址四、立即寻址立即寻址方式只能适用于程序存储器。 五、基址加变址的间接寻址 以程序计数器PC或数据指示器DPTR中的内容为基地址,加上累加器A(变址寄存器)中的内容作为操作数的地址。 五、基址加变址的间接寻址例如:MOVC A,A+DPTR ; (A)(A)+(DPTR)MOVC A,A+PC ; (A)(A)+(PC)五、基址加变址的间接寻址五、基址加变址的间接寻址这种寻址方式仅适用于程序存储器空间六、相对寻址 以PC的内容作为基地址,加上指令中提供的偏移量作为转移的目标地址。 注意:该偏移量r

25、el是一字节带符号数。 六、相对寻址例如:JC 80H ; C=0,顺序执行 ,即(PC)(PC)+2 ; C=1,转移,(PC)(PC)+2,(PC)(PC)+80H六、相对寻址六、相对寻址相对寻址方式只能适用于程序存储器空间。 七、位寻址 操作对象是位,指令中直接给出位地址。这种寻址方式也可以归并于直接寻址方式,但它提供的是直接的位地址。 七、位寻址例如:SETB 20H ;(20H)1 CLR EA ;(EA)0 位寻址方式只能适用于位地址空间。 80C51中的寻址方式与寻址空间2.5 80C51单片机的指令系统111111条指令按功能分为五大类:条指令按功能分为五大类:位操作类指令位操

26、作类指令 17条条数据传送类指令数据传送类指令 28条条算术运算类指令算术运算类指令 24条条逻辑运算类指令逻辑运算类指令 25条条控制转移类指令控制转移类指令 17条条2.5 80C51单片机的指令系统 111条指令中 单字节 49条 单周期 64条 双字节 45条 双周期 45条 三字节 17条 四周期 2条常用符号说明 Rn : 8个工作寄存器R0R7 Ri : 间接寻址寄存器R0或R1 #data : 8位二进制立即数 #data16 :16位二进制立即数 direct :直接地址 rel :相对地址偏移量,一字节带 符号数常用符号说明addr11 : 11位二进制数的目的地址addr

27、16 : 16位二进制数的目的地址Bit : 位地址(x) : 表示x地址单元中的内容(x) : 表示以x地址单元中的内容为地 址的单元中的内容 : 数据传送方向一、数据传送指令1. 内RAM低128字节的数据传送2. 内RAM高128字节的数据传送3. 专用寄存器的数据传送4. 外部数据存储器(包括扩展I/O口) 的数据传送5. 从程序存储器中取数6. 不同存储空间之间的数据传送1.内内RAM低低128字节的数据传送字节的数据传送 可用寄存器寻址可用寄存器寻址 MOV A, Rn ;(A)(Rn) MOV Rn , A ;(Rn)(A) MOV Rn , #data ;(Rn)data MO

28、V direct , Rn ;(direct)(Rn) 1.内内RAM低低128字节的数据传送字节的数据传送 可用直接寻址可用直接寻址 MOV A, direct ;(A)(direct) MOV Rn,direct ;(Rn)(direct) MOV Ri,direct ;(Ri)(direct) MOV direct1,direct2 ;(direct1)(direct2) 机器码 85, direct2,direct11.内内RAM低低128字节的数据传送字节的数据传送 MOV A,Ri ;(A)(Ri) MOV direct,Ri ;(direct)(Ri) 可用寄存器间接寻址可用寄存

29、器间接寻址1.内内RAM低低128字节的数据传送字节的数据传送 堆栈操作指令也属于寄存器间接寻址方式,堆栈操作指令也属于寄存器间接寻址方式,所用的指针是所用的指针是SPSP。 PUSH direct PUSH direct ;(SP)(SP)+1,(SP)(direct) ;(SP)(SP)+1,(SP)(direct) POP direct POP direct ;(direct)(SP),(SP)(SP)-1 ;(direct)(SP),(SP)(SP)-1 可用寄存器间接寻址可用寄存器间接寻址2.内内RAM高高128字节的数据传送字节的数据传送 只能用寄存器间接寻址方式,可只能用寄存器间

30、接寻址方式,可用的地址指针有:用的地址指针有:R0、R1、SPMOV R0, #85HMOV A,R0 3.专用寄存器的数据传送专用寄存器的数据传送 只能用直接寻址方式(注:其中的只能用直接寻址方式(注:其中的A、B、DPTR亦可用寄存器寻址)亦可用寄存器寻址)MOV A,P1 ;(A) (P1)MOV TMOD,#data ;(TMOD) data 其中,P1和TMOD都是专用寄存器,通常编程时用符号表示,汇编成机器码时用直接地址代之。 4.外部数据存储器的数据传送外部数据存储器的数据传送只能用寄存器间接寻址,地址指针可以是只能用寄存器间接寻址,地址指针可以是R0、R1,DPTR,共有共有6

31、条指令:条指令:MOVX A,R0 ; (A) (R0)MOVX R0,A ;(R0)(A)MOVX A,R1 ;(A) (R1)MOVX R1,A ;(R1)(A)MOVX A,DPTR ;(A) (DPTR)MOVX DPTR,A ;(DPTR)(A) 5.从程序存储器中取数从程序存储器中取数立即寻址数据传送指令立即寻址数据传送指令 MOV A,#data ;(A) data MOV Rn,#data ;(Rn) data MOV Ri,#data ;(Ri) data MOV direct,#data ;(direct) data MOV DPTR,#data16 ;(DPTR) dat

32、a16 5.从程序存储器中取数从程序存储器中取数程序存储器中的数据往往是按表格形式存程序存储器中的数据往往是按表格形式存 放着,因此,程序存储器中的这类数据是放着,因此,程序存储器中的这类数据是 用查表指令提取。用查表指令提取。 5.从程序存储器中取数从程序存储器中取数 MOVC A,A+DPTR ;(A) (A)+(DPTR) MOVC A,A+PC ;(A) (A)+(PC) (A)是一字节无符号数,PC是指当前的PC,指令执行后PC、DPTR的内容不变。以PC为基址时需加上一个附加的偏移量。两条查表指令:两条查表指令:5.从程序存储器中取数从程序存储器中取数 例如:在LED显示器接口中,

33、需将字符代码转换成字形码,可通过查表法实现软件译码。对于共阴级7段LED显示器,如果要显示字符“0”,则须向显示器提供段码3FH;如果要显示字符“1”,则须向显示器提供段码06H;两条查表指令:两条查表指令:5.从程序存储器中取数从程序存储器中取数 MOV A, #XXH MOV DPTR, #TAB MOVC A, A+DPTR TAB: 3FH 06H 5.从程序存储器中取数从程序存储器中取数 MOV A, #XXH ADD A, #01H MOVC A, A+PC RETTAB: 3FH 06H 6.不同存储空间之间的数据传送不同存储空间之间的数据传送有的允许直接传送有的允许直接传送 M

34、OV R5, #0FFH ;(R5)0FFH MOV R0, #3AH ;(R0)3AH MOV DPTR,#03FFH ;(DPTR)03FFH MOV R1, P1 ;(R1)(P1) MOV P3,30H ;(P3)(30H)6.不同存储空间之间的数据传送不同存储空间之间的数据传送有的不能直接传送,可通过累加器有的不能直接传送,可通过累加器A A实现中实现中 转。转。80C5180C51单片机指令系统中有四组与单片机指令系统中有四组与A A交换交换 数据的指令:数据的指令: XCH :源操作数与A的字节交换如:XCH A,Rn ;(A) (Rn) XCH A,direct ;(A) (d

35、irect) XCH A,Ri ;(A) (Ri)6.不同存储空间之间的数据传送不同存储空间之间的数据传送XCHD :源操作数与A的低半字节交换 XCHD A,Ri ;有的不能直接传送,可通过累加器有的不能直接传送,可通过累加器A A实现中实现中 转。转。80C5180C51单片机指令系统中有四组与单片机指令系统中有四组与A A交换交换 数据的指令:数据的指令: 6.不同存储空间之间的数据传送不同存储空间之间的数据传送 MOVX:用于A与外RAM间的数据传送 (双向),共有六条指令。有的不能直接传送,可通过累加器有的不能直接传送,可通过累加器A A实现中实现中 转。转。80C5180C51单片

36、机指令系统中有四组与单片机指令系统中有四组与A A交换交换 数据的指令:数据的指令: 6.不同存储空间之间的数据传送不同存储空间之间的数据传送 MOVC:将程序存储器中的数向A传送, 有2条查表指令。有的不能直接传送,可通过累加器有的不能直接传送,可通过累加器A A实现中实现中 转。转。80C5180C51单片机指令系统中有四组与单片机指令系统中有四组与A A交换交换 数据的指令:数据的指令: 二、算术运算指令 1. 加法指令2. 减法指令3. 乘法指令4. 除法指令1.加法指令加法指令1.加法指令加法指令1.加法指令加法指令1.加法指令加法指令十进制数加法调整 DA A: 当要进行十进制数加

37、法运算时,该指令用在加法指令(ADD、ADDC)之后,会对相加结果进行调整,确保结果也是BCD码。(P62)2.减法指令减法指令2.减法指令减法指令3.乘法指令乘法指令MUL AB (A)、(B)中为两个单字节无符号数,乘积为双字节数,高字节在B中,低字节在A中。当乘积的高字节非“0”时,OV=1;任何情况下,Cy总是清“0”。4.除法指令除法指令DIV AB 两个单字节无符号数除法,被除数送A,除数送B,执行后商在A中,余数在B中。 若除数为0,则指令执行后A、B的内容不定,且OV=1;任何情况下,Cy总是清“0”。三、逻辑运算指令1. 单操作数2. 双操作数CPL A ;(A)(A)CLR

38、 A ;(A)0RL A ;RLC A ;RR A ;RRC A ;SWAP A ;1.单操作数,指定在单操作数,指定在A中中CAACAAA2.双操作数,可进行与、或、异或操作双操作数,可进行与、或、异或操作dataAAdataRiAARidirectAAdirectRnAARnAXRLORLANL)()(;:)()()(;:)()()(;:)()()(;,:2.双操作数,可进行与、或、异或操作双操作数,可进行与、或、异或操作:data)direct()direct(data:)direct()A()direct(AdirectXRLORLANL,2.双操作数,可进行与、或、异或操作双操作数,

39、可进行与、或、异或操作这组指令可直接对接口进行操作:ANL P1,#01111100BORL P1,#00110010BXRL P1,#31H四、控制转移指令作用:通过改变PC的内容以控制程序的走向。分类: 无条件转移 条件转移 中断四、控制转移指令1.无条件转移指令无条件转移指令2. 条件转移指令条件转移指令1.无条件转移指令无条件转移指令(1)相对转移SJMPSJMP rel ;(PC)(PC)+2,(PC)(PC)+rel 机器码:80 rel例: 0100H 80 rel SJMP AAA 0102H 00 NOP 0123H 00 AAA:NOP1.无条件转移指令无条件转移指令(1)

40、相对转移SJMP rel是一字节的偏移量,编程时通常用目标地址标号代替,如本例中AAA,汇编时才计算出偏移量rel,计算方法是: rel=目标地址-(本指令地址+02H) =0123H-(0100H+02H) =21H 1.无条件转移指令无条件转移指令(1)相对转移SJMP又例: 00FFH 00 FIRST:NOP 0100H 80 rel SJMP FIRST rel=目标地址-(本指令地址+02H) =00FFH-(0100H+02H) =00FFH-0102H =FFFDH=FDH1.无条件转移指令无条件转移指令(2)短跳转AJMPAJMP addr11 ;(PC)(PC)+2,PC

41、PC1511a10a9a8a7a6a5a4a3a2a1a0机器码2字节格式:a10a9a800001a7a6a5a4a3a2a1a01.无条件转移指令无条件转移指令(2)短跳转AJMP例: 0138H 1100H KEYB:ACALL DISUP 030AH 2138H AJMP KEYB 1.无条件转移指令无条件转移指令(2)短跳转AJMP执行AJMP指令时,(PC)=030CH=0000001100001100B,由机器码2138H,知a10a9a8=001B,a7a0=38H所以(PC)=00000 001 00111000 B=0138H 1.无条件转移指令无条件转移指令(3)长跳转L

42、JMPLJMP addr16 ;(PC)addr150 机器码:02 addr158 addr701.无条件转移指令无条件转移指令(4)散转JMPJMP A+DPTR ;(PC)(A)+(DPTR)(A)是无符号数,指令执行后,不影响累加器和DPTR中的内容,也不影响任何标志。本指令根据A中的内容可实现多个分支,故称散转指令。1.无条件转移指令无条件转移指令(4)散转JMP例:在某键盘处理程序中,假定命令键的读数(0AH、0BH、0CH、0DH中之一)在A中,利用散转指令便可根据A中的内容实现正确的转向,程序如下:1.无条件转移指令无条件转移指令(4)散转JMPKEYB: MOV DPTR,#

43、JMPTBL CLR C SUBB A,#0AH RL A JMP A+DPTRJMPTBL:AJMP AAA ; AJMP BBB AJMP CCC AJMP DDD两字节指令,执行后转相应命令处理程序1.无条件转移指令无条件转移指令(5)子程序调用与返回(ACALL、LCALL、RET)1. ACALL addr11 ; ;(PC)(PC)+2, ;(SP)(SP)+1,(SP)(PC70) ;(SP)(SP)+1,(SP)(PC158) ;PC PC1511a10a9a0 机器码2字节格式: a10a9a810001a7a6a5a4a3a2a1a01.无条件转移指令无条件转移指令(5)子

44、程序调用与返回(ACALL、LCALL、RET)2. LCALL addr16 ;(PC)(PC)+3,;(SP)(SP)+1,(SP)(PC70) ;(SP)(SP)+1,(SP)(PC158) ;(PC)addr16 机器码:12 addr158 addr701.无条件转移指令无条件转移指令(5)子程序调用与返回(ACALL、LCALL、RET)3. RET ;(PC158)(SP),(SP)(SP)-1;(PC70)(SP),(SP)(SP)-1 机器码:22H2. 条件转移指令条件转移指令 条件转移指令是指当满足某种条件时程序才转移,而条件不满足时程序继续执行下一条指令。条件主要指PS

45、W中的标志。80C51单片机指令对标志的影响如下表:指令标志指令标志COVACCOVACADDCLR C0ADDCCPL CSUBBANL C,bitMUL0ANL C,/bitDIV0ORL C,bitDAORL C,/bitRRCMOV C,bitRLCCJNESETB C12. 条件转移指令条件转移指令注注:对PSW的按位操作也将影响相应的标志位。 任何一条改变累加器A的内容的指令都将影响P 标志。 80C51单片机隐含一个零标志位(Z),当(A)=0时Z置“1”,MOV指令可能影响Z标志。2. 条件转移指令条件转移指令(1) 根据根据8位数据运算处理的结果确定是否转移位数据运算处理的结

46、果确定是否转移根据进位标志: JC rel ;当C=1时转移,(PC)(PC)+2,(PC)(PC)+rel JNC rel ;当C=0时转移,(PC)(PC)+2,(PC)(PC)+rel 2. 条件转移指令条件转移指令(1) 根据根据8位数据运算处理的结果确定是否转移位数据运算处理的结果确定是否转移根据零标志: JZ rel;当(A)=0时转移,(PC)(PC)+2,(PC)(PC)+rel JNZ rel;当(A)0时转移,(PC)(PC)+2,(PC)(PC)+rel2. 条件转移指令条件转移指令(1) 根据根据8位数据运算处理的结果确定是否转移位数据运算处理的结果确定是否转移 比较不

47、相等,则转移:CJNE A,#data,rel;CJNE A,direct,rel;CJNE Ri,#data,rel;CJNE Rn,#data,rel;3字节指令,当第一操作数第二操作数时不转,(PC)(PC)+3,否则转移,(PC)(PC)+3+rel,本指令还影响Cy,当第一操作数第二操作数时,Cy=0,因此可实现程序的三分支。2. 条件转移指令条件转移指令(1) 根据根据8位数据运算处理的结果确定是否转移位数据运算处理的结果确定是否转移 比较不相等,则转移:例如: CJNE A,30H,NOTEQ ;(A)(30H),转 EQ: ;(A)(30H)NOTEQ: JC LITTER ;

48、(A)(30H),转LITTER:2. 条件转移指令条件转移指令(1) 根据根据8位数据运算处理的结果确定是否转移位数据运算处理的结果确定是否转移 减1不为0则转移:DJNZ Rn,rel;(PC)(PC)+2,(Rn)(Rn)-1当(Rn)=0时,不转移,当(Rn)0时转移,(PC)(PC)+rel DJNZ direct,rel;(PC)(PC)+3,(direct)(direct)-1当(direct)=0时,不转移,当(direct)0时转移,(PC)(PC)+rel2. 条件转移指令条件转移指令(2) 根据对某一位测试确定是否转移根据对某一位测试确定是否转移(均为(均为3字节指令)字

49、节指令)JB bit,rel ; (bit)=1 转移 ;即(PC)(PC)+3,(PC)(PC)+relJNB bit,rel ; (bit)=0 转移JBC bit,rel ;(bit)=1 转移,且(bit)03.中断返回指令中断返回指令RETI ;(PC)(PC)+1;(PC158)(SP) ,(SP)(SP)-1;(PC70)(SP) ,(SP)(SP)-1 4.空操作指令空操作指令NOP ;(PC)(PC)+1这是一条单字节、单周期指令,它不作任何操作,只将(PC)+1,常用于延时或给程序留空。五、位操作指令 80C51单片机中有一个位处理器,以进位位Cy作为位累加器,可完成以下操

50、作: 1.位数据传送 2.位状态控制 3.位逻辑操作1. 位数据传送指令位数据传送指令 位数据传送必须经过位累加器Cy,而不能在可寻址位之间传送。 MOV C,bit ;(Cy)(bit) MOV bit,C ;(bit)(Cy)1. 位数据传送指令位数据传送指令例:内部RAM 20H的内容为11001100B,25H的内容为00100101B,执行下列程序后,20H、25H、Cy的内容各是什么? MOV C,00H ;(Cy)(20H.0),即(Cy)0 MOV 28H,C ;(25H.0)(Cy),即(25H.0)0 MOV C,07H ;(Cy)(20H.7),即(Cy)1 MOV 2F

51、H,C;(25H.7)(Cy) 结果:(Cy)=1,(20H)不变,(25H)=10100100B=A4H2.位状态控制指令位状态控制指令 位状态控制有置1和清零两种,每种有两条指令,如下:SETB C ;(Cy)1SETB bit ;(bit)1 CLR C ;(Cy)0 CLR bit ;(bit)03.位逻辑操作指令位逻辑操作指令 位逻辑操作有与、或、取反三种。与、或操作时以位累加器Cy作为第一操作数,第二操作数为位地址,操作结果在Cy中。取反可以对每个位地址内容直接进行。3.位逻辑操作指令位逻辑操作指令ANL C,bit ;(Cy)(Cy)(bit)ANL C,/bit ;(Cy)(C

52、y)(bit)ORL C,bit ;(Cy)(Cy)(bit)ORL C,/bit ;(Cy)(Cy)(bit)CPL C ;(Cy)(Cy)CPL bit ;(bit)(bit)思考与练习1.80C51单片机片内包含哪些主要逻辑功能部件?2.80C51单片机结构上有哪些主要特点?3.80C51单片机EA引脚的作用是什么?在下列情况下,EA引脚应接何种电平? (1)只有片内ROM (2)只有片外ROM (3)有片内ROM,也有片外ROM (4)有片内ROM/EPROM,但不用或不能用了4.说明80C51单片机复位条件、复位状态,画出常用 的复位电路。思考与练习5.详细描绘80C51单片机的存储器配置图。6.80C51单片机是通过哪些方法将程序存储器和数据存储器严格分开的?7.什么是单片机的特殊功能寄存器?80C51/80C52各有几个特殊功能寄存器?这些特殊功能寄存器占有的地址范围?8.80C51单片机有哪些可直接寻址的位?9.简述80C51单片机的并行口P0P3的基本结构和功能。10.画出80C51和80C31单片机最小应用系统逻辑电路图。思考与练习11、80C51指令系统有哪几种寻址方式?如果要对特殊功能寄存器进行操作将使用哪种寻址方式?12、80C51程序段中,怎样识别位地址和字节地址?13、怎样区分内部RAM高128个字节地址以及特殊功能寄存器的地址?14、80C

温馨提示

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

评论

0/150

提交评论