89C51的指令系统
- 格式:ppt
- 大小:1.02 MB
- 文档页数:87
第3章89C51单片机汇编语言简介教学目标本章主要介绍89C51单片机的寻址方式、指令系统、基本程序结构及汇编语言程序的编写,并给出了两个简单的应用实例。
通过本章节的学习,读者应初步掌握89C51单片机汇编语言的基本指令,并能够完成一些简单程序的编写和调试。
任务导入:基于汇编语言的静态LED显示系统的实现:利用89C51单片机的I/O端口驱动一个共阳极数码管,在数码管上循环显示0-9数字,时间间隔0.5秒。
任务分析要实现用一个数码管循环显示数字0~9的功能,我们可把数码管的段选线连接到单片的I/O口上,再通过程序让单片机的I/O口分时输出0~9对应的段码就可以了。
单片机的程序又如何编写呢?通过本章的学习,就可以用单片机的汇编语言让数码管按照要求进行显示。
任务必备知识3.1 89C51单片机指令系统3.1.1 89C51单片机指令分类89C51单片机指令系统共有111条指令。
这些指令可按不同方法进行分类:1.按字节数分单字节指令(49条)、双字节指令(45条)、三字节指令(17条)。
2.按指令的执行时间分单机器周期指令(64条)、双机器周期指令(45条)、四机器周期指令(2条)。
3.按指令的功能分数据传送指令(28条)、算术运算指令(24条)、逻辑运算指令(25条)、控制转移指令(17条)、位操作指令(17条)。
指令一般由两部分组成,即操作码和操作数。
在介绍指令系统前,我们先了解一些特殊符号的意义,这对今后程序的编写是相当有用的。
Rn——当前选中的寄存器区的8个工作寄存器R0—R7(n=0-7)。
Ri——当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1(i=0,1)direct—内部数据存储单元的8位地址。
包含0—127(255)内部存储单元地址和特殊功能寄存地址。
#data—指令中的8位常数。
#data16—指令中的16位常数。
addr16—用于LCALL和LJMP指令中的16目的地地址,目的地址的空间为64kB程序存储器地址。
B89C51 高可靠8位微控制器1.B89C51简介B89C51是一种高速低功耗的8位微控制器。
B89C51指令系统同80C51完全兼容。
它包括一个128 Bytes的RAM、4个8- bit的控制双向口、两个16-bit的定时/计数器、一个串行通信口。
它具有 5 个中断源,分为两个优先级。
B89C51有两种低功耗方式:待机方式和掉电方式。
具体采用哪种方式可以由软件设定。
待机方式下,内部处理器的时钟关掉,但外围电路可以继续工作;在掉电方式下,振荡器被停振。
外部时钟可以在任何情况或任何时间停下来,它不会影响内部处理器。
2.主要特征• 全静态设计8位 CMOS 微控制器• 电压范围 4 .5V~5.5V• 128 bytes 的 SRAM• 64KB 的程序存储地址空间• 64KB 的数据存储地址空间• 四组八位双向口• 两个16位定时/计数器• 一个全双工的串行口• 具有5个中断源,两级中断处理能力• 封装形式- DIP40:B89C51-24/43.管脚图40- PIN DIP B89C514.引脚描述5.总体结构框图6.功能描述B89C51的结构包括:一个核控制器、周边各种寄存器组成。
四个通用 I/O 口,128Bytes 的RAM , 两个定时计数器,一个串行口组成。
此处理器支持111种不同的操作码,可寻址64KB 的程序存储地址空间和64KB 的数据存储地址空间。
新增加的外围管脚为了更好的增加I/O 口的功能 ,新增加了 P4口。
它具有4位可位寻址的I/O 口和2个外部中断2INT ,3INT 。
它的封装为44引脚的 PLCC 封装。
6.1.2INT / 3INT两个新增加的外部中断2INT 和3INT 的功能和标准的80C52的外部中断0和1的功能相类似的。
它的功能由外部中断寄存器 XICON 的位来决定。
在80C52中的XICON 寄存器不是标准的寄存器而是位寻址的。
它的地址为0 C0H 。
一.数据传送指令1. 以累加器A为目的操作数的指令(4条,即四种寻址方式)MOV A,RN ;MOV DIRECTMOV A,@RIMOV A,#DATA2. 以寄存器Rn为目的操作数的指令(3条)MOV RN,AMOV RN,DIRECTMOV Rn,#DATA3. 以直接地址为目的操作数的指令(5条)MOV DIRECT,AMOV DIRECT,RNMOV DIRECT,DIRECTMOV DIRECT,@RIMOV DIRECT,#DATA4. 以间接地址为目的操作数的指令(3条)MOV @RI,AMOV @RI,DIRECTMOV @RI,#DATA5.16位数据传送指令(1条)MOV DPTP,#DATA166. 查表指令MOVC A,@A+DPTRMOVC A,@A+PC7. 累加器A与片外RAM传送指令(4条)MOVX A,@RIMOVX A,@DPTRMOVX @RI,AMOVX @DPTR,A8. 栈操作指令(2条)1)PUSH(入栈)指令PUSH DIRECT2) POP(出栈)指令POP DIRECT9. 交换指令(4条)1)字节交换指令XCH A,RNXCH A,DIRECTXCH A,@RI2)半字节交换指令XCHD A,@RI2.算数运算指令1. 加法类指令(4条)ADD A,RNADD A,DIRECTADD A,@RIADD A,#DATA2. 带进位加法指令(4条) ADDC A,RNADDC A,DIRECTADDC A,@RIADDC A,#DATA3. 带借位减法指令(4条) SUBB A,RNSUBB A,DIRENTSUBB A,@RISUBB A,#DATA4. 乘法指令(1条)MUL AB5. 除法指令(1条)DIV AB6. 加1指令(6条)INC AINC RNINC DIRECTINC @RIINC DPTR7. 减1指令(4条)DEC ADEC RNDEC DIRECTDEC @RI8. 十进制调整指令(1条)DA A3.逻辑操作指令1. 简单操作指令(2条)1)累加器清0指令CLR A2)累加器A取反指令CPL A2. 移位指令(4条)1)累加器A循环左移指令RL A2)累加器A循环右移指令RR A3)累加器A连同进位位循环左移指令RLC A4)累加器A连同进位位循环右移指令 RRC A3. 累加器半字节交换指令SWAP A4. 逻辑“与”指令(6条)ANL A,RNANL A,DIRECTANL A,@RIANL A,#DATAANL DIRECT,AANL DIRECT,#DATA5. 逻辑“或”指令(6条)ORL A,RNORL A,DIRECTORL A,@RIORL A,#DATAORL DIRECT,AORL DIRECT,#DATA6. 逻辑“异或”指令(6条)XRL A,RNXRL A,DIRECTXRL A,@RIXRL A,#DATAXRL DIRECT,AXRL DIRECT,#DATA4.控制程序转移类指令1.无条件转移指令(4条)1)短转移指令AJMP ADDR112)长转移指令LJMP ADDR163)相对转移(短转移)指令SJMP REL4)间接转移指令JMP @A+DPTR2.空指令操作NOP3,.条件转移类指令1)判零转移指令JZ RELJNZ REL2)比较转移指令CJNE (目的字节),(源字节),REL 3)循环转移指令DJNZ RN,RELDJNZ DIRECT,REL4. 调用和返回指令1)短调用指令ACALL ADDR112)长调用指令LCALL ADDR163)返回指令RETRETI5.位操作(布尔处理)类指令1.位数据传送指令MOV C,BITMOV BIT,C2.位修正指令1)位清0指令CLR CCLR BIT2)位置1指令SETB CSETB BIT3)位取反指令CPL CCPL BIT3.位逻辑运算指令1)位逻辑“与”指令ANL C,BITANL C,/BIT ; 斜杠表示对该位取反后再参与运算,但不改变原来的数值2)位逻辑“或”指令ORL C,BITORL C,/BIT4.位条件转移类指令1)判布尔累加器C转移指令JC RELJNC REL2)判位变量转移指令JB BIT,RELJNB BIT,REL3)判位变量并清0转移指令JBC BIT,REL。
数据传送指令(28 条) ;
算术运算指令(24 条) ;
逻辑运算及移位指令(25 条) ; 控制转移指令(17 条) ;
位操作指令或布尔操作(17 条)。
图1-1间接寻址
图1-2查找表
图1-3逻辑操作
图1-4 比较转移
图1-5 循环转移
图1-6 调用返回指令示意图
注意:1.位累加器C就是进位标志位CY。
2.位地址是片内RAM字节地址20H~2FH,一共128个位,地址为00H~7FH。
还有单元地址可被8整除的SFR。
3.ACC(E0H~E7H)、B(F0H~F7H)和片内RAM的128个位可做软件标志或存储位变量
4.位表达方式:(1)直接位地址,如D4H(2)点操作符号方式,如PSW.4(3)位名称方式,如RS1(4)用户自定义,用伪指令bit
摘入于北京航空航天大学出版社李朝青的《单片机原理及接口技术》(第3版)对89C51的汇编语言进行整理,以备初期使用
有不对的地方请大家指出,邮箱whx_cb@。
单片机原理与应用设计第一章单片机概述在一块半导体硅片上集成了中央处理单元(CPU)、存储器(RAM/ROM)、和各种I/O接口的集成电路芯片由于其具有一台微型计算机的属性,因而被称为单片微型计算机,简称单片机。
单片机主要应用于测试和控制领域。
单片机的发展历史分为四个阶段。
1974—1976年是单片机初级阶段,1976—1978年是低性能单片机阶段,1978—1983年是高性能单片机阶段,期间各公司的8位单片机迅速发展。
1983至现在是8位单片机巩固发展及16位、32位单片机推出阶段。
单片机的发展趋势将向大容量、高性能、外围电路内装化等方面发展。
单片机的发展非常迅速,其中MCS-51系列单片机应用非常广泛,而在众多的MCS-51单片机及其各种增强型、扩展型的兼容机中,AT89C5x系列,尤其是AT89C51单片机成为8位单片机的主流芯片之一。
第二章89C51单片机的硬件结构89C51单片机的功能部件组成如下:8位微处理器,128B数据存储器片外最多可外扩64KB,4KB程序存储器,中断系统包括5个中断源,片内2个16位定时器计数器且具有4种工作方式。
1个全双工串行口,具有四种工作方式。
4个8位并行I/O口及特殊功能寄存器。
89C51单片机的引脚分为电源及时钟引脚、控制引脚及I/O口。
电源为5V 供电,P0口为8位漏极开路双向I/O口,字节地址80H,位地址80H—87H。
可作为地址/数据复用口,用作与外部存储器的连接,输出低8位地址和输出/输入8位数据,也可作为通用I/O口,需外接上拉电阻。
P1、P2、P3为8位准双向I/O 口,具有内部上拉,字节地址分别为90H,A0H,B0H。
其中P0、P2口可作为系统的地址总线和数据总线口,P2口作为地址输出线使用时可输出外部存储器的的高8位地址,与P0口输出的低8位地址一起构成16位地址线。
P1是供用户使用的普通I/O口,P3口是双向功能端口,第二功能很重要。
A T89C51AT89C51是美国ATMEL公司生产的低电压,高性能COMS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,功能强大A T89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
主要性能参数:·与MCS-51产品指令系统完全兼容·4K字节可重擦写Flash闪速存储器·1000次擦写周期·全静态操作:0Hz—24MHz·三级加密程序存储器·128×8字节内部RAM·32个可编程I/O口线·2个16位定时/计数器·6个中断源·可编程串行UART通道·低功耗空闲和掉电模式功能特性概述:AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器。
串行通信口及中断系统继续工作。
掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
引脚功能说明:·V CC:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间即或内部上拉电阻。