当前位置:文档之家› 8051单片机结构学习简说

8051单片机结构学习简说

8051单片机结构学习简说
8051单片机结构学习简说

8051单片机结构学习简说

摘要:要学好用好单片机,就必须了解和掌握单片机的基本结构。本文以8051单片机为例简要说明单片机结构学习的几个基本要点。

关键词:单片机结构

单片机的学习对入门者而言有一定的难度。难度之一就在于学习者先要了解单片机的结构。尤其是单片机外部引脚和存储空间。

1 单片机引脚

单片机引脚是单片机与外部连接的桥梁,不管是单片机与外部进行信息交互还是实施控制,单片机都要依靠引脚。因此必须掌握引脚名称、功能和使用方法。

面对经典“DIP-40”封装的8051单片机,初学者总感到麻烦。实际上,8051单片机引脚分布很有规律。从类型上说,其管脚分为4类,一句话就可说明:8051单片机引脚包含”两个电源引脚、两个时钟引脚、四个控制引脚和四八三十二个IO引脚。”

两个电源引脚:如同常规集成电路一样,芯片右下角为电源负,左上角为电源正。

两个时钟引脚:单片机依靠精确的时钟信号才能自动有序运行程序,协调各部件完成指定功能,没有时钟信号,单

片机无法工作。单片机内部有时钟电路,通过时钟引脚外接不同的晶振,就可设置出不同振荡频率的时钟信号。两个时钟引脚中有一个是单片机时钟电路的时钟信号输出端。多单片机系统中,可通过这个引脚也引入外部时钟信号保证多单片机系统的时序统一。

四个控制引脚:EA引脚。PSEN引脚和ALE引脚都和存储扩展有关,存储器学习时了解较好。先了解复位引脚。必须明白单片机启动信号就是该引脚施加持续两个机器周期以上的高电平信号。基于此了解复位电路的构建才能明细根本。

最后一句四八三十,是为方便初学者掌握剩余的32个引脚都是单片机的I/O引脚,且分布在四个I/O口中,每个I/O口分配8个引脚。这样做的一个主要原因是,这样可使I/O口以字节为信息单位输入或输出信息。单片机I/O口在构建三大总线时,应注意P0口用于充当数据口,P0和P2口构建16位地址总线。P3口和相关控制引脚构建控制总线。因此用户应合理进行I/O资源分配。

2 单片机的存储结构

单片机的存储空间分为数据RAM和程序ROM两大部分。又都有片内片外之分。

2.1 程序存储空间

程序存储空间的构建有三种形式:仅片内ROM构成;

片内ROM与片外ROM共同构成;仅片外ROM构成。程序存储空间的要点是不管程序存储空间如何构建,都是统一连续编码地址。单片机只要能正确找到程序存放的首存储单元地址,就能够开始自动执行程序。显然对于前两种形式,程序起始地址单元位于片内ROM,后一种程序起始单元地址位于片外ROM。

单片机作为硬件电路,它无法知道程序存储空间构建形式,那怎么识别程序起始单元地址是在片内ROM空间还是在片外ROM空间?很简单:控制引脚EA就用于程序起始位置指向。EA引脚接地时指向片外,接高电平则指向片内。初学者常常混淆,记忆的技巧是EA接地即EA为“0”状态,0表示没有,即没有用到片内ROM,程序仅存放于片外;反之则表明片内ROM有程序存放。

从使用者角度看,用户了解程序存储空间构建形式的主要意义在于硬件电路设计时,能根据ROM构建形式正确设置EA引脚。

2.2 数据存储空间

数据存储空间的构建有两种形式:仅片内RAM;片内RAM加片外RAM。片外RAM仅用于扩展数据存放空间。片内RAM很多存储单元有特殊意义,无可替代,因此不会出现仅有片外RAM的情况。

片内数据存储空间是学习的重点。8051片内数据存储空

间共256个字节单元,一分两半,前128个字节单元称为用户RAM区,后128个字节单元为特殊功能寄存器区,该区域很多存储单元有特殊功能,如代表累加器A的E0H单元,代表P0口的80H单元等。P0口对应8个引脚,引脚高低电平状态对应的“1”、“0”二进制信息反映在80H 单元的8

个对应位单元中,输出亦然。用户需要注意的是,由于片内RAM存储单元有限,在程序设计之初一定先要做好资源分配。即根据程序需要,提前分配指定或保留用户RAM区相关单元。

特殊功能寄存器区的存储单元一般掌握特殊功能寄存

器名称及功能即可,不必记住其实际所在存储单元地址。但单片机复位后,一些特殊功能寄存器的初始值应用者必须掌握。如程序计数器PC复位后初值为零,PC值为单片机下一条待执行指令地址。因而复位后单片机自动到0000H单元开始执行首条指令。用户RAM区是使用者真正可以自行安排使用的存储空间。该区教材都会详述,这里不再说明。

数据存储空间与程序存储空间的地址编码方式不同。数据存储空间采用独立地址编码方式,即片内RAM与片外RAM各自起始单元地址均从0000H开始编码地址。

2.3 存储空间的容量

8031片内没有ROM,8051片内有4k字节ROM;8031和8051片内RAM均为256字节容量。用户可根据需要选择

片外存储器,组合出所需大小的容量。

8051程序存储空间统一连续地址编码,且由16位的程序计数器PC访问,程序存储空间地址最多由16个二进制位编码,用十六进制表示时地址范围最大是:0000H~FFFFH,即64kb。因此片内ROM与片外ROM之和不大于64kb。

8051数据存储空间片内与片外独立编码地址。片外RAM最多可由P0口和P2口共同构建的16位地址总线访问,因而片外数据存储空间的地址编码最大范围也是:0000H~FFFFH,容量64kb。因此数据存储空间的总容量最大是片内256B加片外64kb。

初学者有时困惑于地址范围与容量的换算。困惑的

实质在于十六进制表达地址范围及空间大小的不习惯。

先说十进制表达的连续单元,比如地址编码为5~10,则

总共单元有”10-5+1”即6个单元。同样十六进制的连续单元,若地址范围0000H~FFFFH,则存储单元有”FFFFH-0000H+1H”个即10000H个存储单元,换算为二进制是1 0000 0000 0000 0000B,即216个字节存储单元。210为1kb,所以总容量为64kb。

参考文献:

[1]韩守玺.在单片机教学中应让学生在应用中学习编程[J].职业教育研究,2007(03).

[2]刘珊.关于单片机教学改革的探讨[J].九江职业技术学院学报,2007(01).

[3]赵安邦.关于单片机教学的研究[J].科技信息(学术研究),2008(34).

[4]王岳圆.单片机教学刍议[J].中国校外教育(理论),2008(07).

8051单片机的内部结构

8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器(CPU)是整个单片机的核心 部件,是8位数据宽度的处理器,能处理 8位二进制数据或代码,CPU负责控制、 指挥和调度整个单元系统协调的工作,完 成运算和控制输入输出功能等操作。 ·数据存储器(RAM): 8051内部有128个8位用户数据存储 单元和128个专用寄存器单元,它们是统 一编址的,专用寄存器只能用于存放控制 指令数据,用户只能访问,而不能用于存 放用户数据,所以,用户能使用的的RAM 只有128个,可存放读写的数据,运算的 中间结果或用户定义的字型表。 ·程序存储器(ROM): 8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 ·定时/计数器(ROM): 8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 ·并行输入输出(I/O)口: 8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。 ·全双工串行口: 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以 用作异步通信收发器,也可以当同步移位器使用。 ·中断系统: 8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可 满足不同的控制要求,并具有2级的优先级别选择。 ·时钟电路: 8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051 单片机需外置振荡电容。

AT89C51单片机的基本结构和工作原理

AT89C51单片机的主要工作特性: ·内含4KB的FLASH存储器,擦写次数1000次; ·内含28字节的RAM; ·具有32根可编程I/O线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; ·两种低功耗工作模式,即空闲模式和掉电模式; ·具有可编程的3级程序锁定定位; AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能: 1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

(1)运算器 运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。 ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。 暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。 累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。 B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。运算结果存于AB寄存器中。 (2)控制器 控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。复位时PC的内容是0000H. (3)存储器 单片机内部的存储器分为程序存储器和数据存储器。AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。 (4)外围接口电路 AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。 AT89C51的工作原理: 1.引脚排列及功能 AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。 (1)I/O口线 ·P0口 8位、漏极开路的双向I/O口。 当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。 ·P1口 8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。 ·P2 8位、准双向I/O口,具有内部上拉电阻。 当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。 ·P3 8位、准双向I/O口,具有内部上拉电阻。 P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。 (2)控制信号线

单片机汇编指令大全

单片机汇编指令一览表 作者:乡下人 助记符指令说明字节数周期数 (数据传递类指令) MOV A,Rn 寄存器传送到累加器 1 1 MOV A,direct 直接地址传送到累加器 2 1 MOV A,@Ri 累加器传送到外部RAM(8 地址) 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器传送到寄存器 1 1 MOV Rn,direct 直接地址传送到寄存器 2 2 MOV Rn,#data 累加器传送到直接地址 2 1 MOV direct,Rn 寄存器传送到直接地址 2 1 MOV direct,direct 直接地址传送到直接地址 3 2 MOV direct,A 累加器传送到直接地址 2 1 MOV direct,@Ri 间接RAM 传送到直接地址 2 2 MOV direct,#data 立即数传送到直接地址 3 2 MOV @Ri,A 直接地址传送到直接地址 1 2 MOV @Ri,direct 直接地址传送到间接RAM 2 1 MOV @Ri,#data 立即数传送到间接RAM 2 2 MOV DPTR,#data16 16 位常数加载到数据指针 3 1 MOVC A,@A+DPTR 代码字节传送到累加器 1 2 MOVC A,@A+PC 代码字节传送到累加器 1 2 MOVX A,@Ri 外部RAM(8 地址)传送到累加器 1 2 MOVX A,@DPTR 外部RAM(16 地址)传送到累加器 1 2 MOVX @Ri,A 累加器传送到外部RAM(8 地址) 1 2 MOVX @DPTR,A 累加器传送到外部RAM(16 地址) 1 2 PUSH direct 直接地址压入堆栈 2 2 POP direct 直接地址弹出堆栈 2 2 XCH A,Rn 寄存器和累加器交换 1 1 XCH A, direct 直接地址和累加器交换 2 1 XCH A, @Ri 间接RAM 和累加器交换 1 1 XCHD A, @Ri 间接RAM 和累加器交换低4 位字节 1 1 (算术运算类指令) INC A 累加器加1 1 1 INC Rn 寄存器加1 1 1 INC direct 直接地址加1 2 1 INC @Ri 间接RAM 加1 1 1 INC DPTR 数据指针加1 1 2 DEC A 累加器减1 1 1 DEC Rn 寄存器减1 1 1 DEC direct 直接地址减1 2 2

8051单片机常用指令

3.2.1数据传送与交换类指令 共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指 9.堆栈操作 3.2 分类指令 在介绍各条分类指令之前,将指令中的操作数及注释中的符号说明如下。Rn:当前指定的工作寄存器组中的Ro-R7(其中n=0,1,2,…,7)。 Ri:当前指定的工作寄存器组中的RO,R1(其中i=0,1)。 (Ri):Ri间址寻址指定的地址单元。 ((Ri)):Ri间址寻址指定地址单元中的内容。 dir:8位直接字节地址(在片内RAM和SFR存储空间中)。 #data8:8位立即数。 #datal6:16位立即数。 addrl6:16位地址值。 addrll:11位地址值。 bit:位地址(在位地址空间中)。 rel:相对偏移量(一字节补码数)。 下面介绍各条分类指令的主要功能和操作,详细的指令操作说明及机器码形式可见附录。 3.2.1数据传送与交换类指令

共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指 令;数据交换指令以及准栈操作指令。

9.堆栈操作 PUSH dir ;SP十1-6P,(dir)一(SP) POP dir ;((SP))一dir,SP-1--P , 例1 SP=07H,(35H)=55H,指令PUSH 35H执行后,55H送入08H地址单元,SP= 08H。 例2 SP=13H,(13H)= 1FH,指令POP 25H执行后,1FH压入25H地址单元,SP此时为12H。 综合例把片内RAM中50H地址单元中的内容与40H地址单元中的内容互换。方法一(直接地址传送法): MOV A ,50H

【EN】单片机汇编指令讲解

2-71 Microcontroller Instruction Set For interrupt response time information, refer to the hardware description chapter. Note: 1.Operations on SFR byte address 208 or bit addresses 209-215 (that is, the PSW or bits in the PSW) also affect flag settings. Instructions that Affect Flag Settings (1) Instruction Flag Instruction Flag C OV AC C OV AC ADD X X X CLR C O ADDC X X X CPL C X SUBB X X X ANL C,bit X MUL O X ANL C,/bit X DIV O X ORL C,bit X DA X ORL C,/bit X RRC X MOV C,bit X RLC X CJNE X SETB C 1 The Instruction Set and Addressing Modes R n Register R7-R0 of the currently selected Register Bank. direct 8-bit internal data location’s address. This could be an Internal Data RAM location (0-127) or a SFR [i.e., I/O port, control register, status register, etc. (128-255)]. @R i 8-bit internal data RAM location (0-255) addressed indirectly through register R1or R0. #data 8-bit constant included in instruction.#data 1616-bit constant included in instruction. addr 1616-bit destination address. Used by LCALL and LJMP . A branch can be anywhere within the 64K byte Program Memory address space. addr 11 11-bit destination address. Used by ACALL and AJMP . The branch will be within the same 2K byte page of program memory as the first byte of the following instruction. rel Signed (two’s complement) 8-bit offset byte. Used by SJMP and all conditional jumps. Range is -128 to +127 bytes relative to first byte of the following instruction. bit Direct Addressed bit in Internal Data RAM or Special Function Register.

8051系列单片机常识

8051系列单片机常识 单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。 单片机也被称为微控制器(Microcontroler),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。 单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。 单片机介绍 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,

单片机常用指令

常用单片机汇编指令: 1 MOV A,Rn 寄存器内容送入累加器 2 MOV A,direct 直接地址单元中的数据送入累加器 3 MOV A,@Ri 间接RAM 中的数据送入累加器 4 MOV A,#data 立即数送入累加器 5 MOV Rn,A 累加器内容送入寄存器 6 MOV Rn,direct 直接地址单元中的数据送入寄存器 7 MOV Rn,#data 立即数送入寄存器 8 MOV direct,A 累加器内容送入直接地址单元 9 MOV direct,Rn 寄存器内容送入直接地址单元 10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元 11 MOV direct,@Ri 间接RAM 中的数据送入直接地址单元 12 MOV direct,#data 立即数送入直接地址单元 13 MOV @Ri,A 累加器内容送间接RAM 单元 14 MOV @Ri,direct 直接地址单元数据送入间接RAM 单元 15 MOV @RI,#data 立即数送入间接RAM 单元 16 MOV DRTR,#dat16 16 位立即数送入地址寄存器 17 MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器 18 MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器 19 MOVX A,@Ri 外部RAM(8 位地址)送入累加器 20 MOVX A,@DPTR 外部RAM(16 位地址)送入累加器 21 MOVX @Ri,A 累计器送外部RAM(8 位地址) 22 MOVX @DPTR,A 累计器送外部RAM(16 位地址) 23 PUSH direct 直接地址单元中的数据压入堆栈 24 POP direct 弹栈送直接地址单元 25 XCH A,Rn 寄存器与累加器交换 26 XCH A,direct 直接地址单元与累加器交换 27 XCH A,@Ri 间接RAM 与累加器交换 8 XCHD A,@Ri 间接RAM 的低半字节与累加器交换 算术操作类指令: 1 ADD A,Rn 寄存器内容加到累加器 2 ADD A,direct 直接地址单元的内容加到累加器 3 ADD A,@Ri 间接ROM 的内容加到累加器 4 ADD A,#data 立即数加到累加器 5 ADDC A,Rn 寄存器内容带进位加到累加器 6 ADDC A,direct 直接地址单元的内容带进位加到累加器 7 ADDC A,@Ri 间接ROM 的内容带进位加到累加器 8 ADDC A,#data 立即数带进位加到累加器 9 SUBB A,Rn 累加器带借位减寄存器内容

8051单片机的引脚及其功能

今天我们学习8051单片机的引脚及其功能。 8051系列各种芯片的引脚是互相兼容的,8051,8751和8031均采用40脚双列直播封装型式。当然,不同芯片之间引脚功能也略有差异。8051单片机是高性能的单片机,因为受到引脚数目的限制,所以有不少引脚具有第二功能,其中有些功能是8751芯片所专有的。各引脚功能简要说明如下: Vcc(40脚):电源端,为+5V。 Vss(20脚):接地端。 时钟电路引脚XLAL2(18脚):接外部晶体和微调电容的一端。若需采用外部时钟电路时,该引脚输入外时钟脉冲,要检查8051的振荡电路是否正确工作,可用示波器查看XLAL2端是否有脉冲信号输出。 时钟电路引脚XLAL1(19脚):接外部晶体的微调电容的另一端。在片内它是振荡电路方相放大器的输入端。在采用外部时钟时,该引脚必须接地。 RST(9脚):RST是复位信号输入端,高电平有效。当此输入端保持两个机器周期,即24个时钟振荡周期的高电平时,就可以完成复位操作。RST引脚的第二功能是VPD,即备用电源的输入端。当主电源Vcc发生故障降低到低电平规定值时,将+5V电源自动接入RST端,为RAM 提供备用电源,以保证存储在RAM中的信息不丢失,以使电源正常后能继续正常运行。 ALE(30脚):地址锁存允许信号端。当8051上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡器频率fosc的1/6。CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。在CPU访问片外数据存储器时,会丢失一个脉冲。平时不访问外存储器时,ALE端也可1/6的振荡频率固定输出正脉冲,因而ALE也可以用作对外输出时钟或定时信号。如果你想看一下8051芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出,如有,则8051基本上是好的。ALE端的负载驱动能力为8个LS型TTL。此引脚的第二功能PROG是对片内带有4K EPROM的8751固化程序时,作为编程脉冲输入端。 PSCN(29脚):程序存储器允许输出信号端。在访问片外程序存储器时,此端口定时输出脉冲作为读片外程序存储器的选通信号。此引脚EPROM的OE端,PSCN端有效,即允许读出片

【可直接使用】单片机指令表(最全).doc

单片机指令以A开头的指令有18条,分别为: 1、ACALL addr11 指令名称:绝对调用指令 指令代码:A10 A9 A8 10001 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,进行子程序调用。其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。操作内容: PC←(PC)+2SP←(SP)+1 (SP)←(PC)7~0 SP←(SP)+1 (SP)←(PC)15~8 PC10~0←addrl0~0 字节数: 2 机器周期:2 使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。 2、ADD A,Rn 指令名称:寄存器加法指令指令代码:28H~2FH 指令功能:累加器内容与寄存器内容相加 操作内容:A←(A)+(Rn),n=0~7 字节数: 1 机器周期;1 影响标志位:C,AC,OV 3、ADD A,direct 指令名称:直接寻址加法指令指令代码:25H 指令功能:累加器内容与内部RAM单元或专用寄存器内容相加操作内容:A←(A)+(direct) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 4、ADD A,@Ri ’ 指令名称:间接寻址加法指令指令代码:26H~27H 指令功能:累加器内容与内部RAM低128单元内容相加 操作内容:A←(A)+((Ri)),i=0,1 字节数: 1 机器周期:1 影响标志位:C,AC,OV 5、ADD A,#data 指令名称:立即数加法指令指令代码:24H 指令功能:累加器内容与立即数相加 操作内容:A←(A)+data 字节数: 2 机器周期:1 影响标志位:C,AC,OV 6、ADDC A,Rn 指令名称:寄存器带进位加法指令指令代码:38H~3FH 指令功能:累加器内容、寄存器内容和进位位相加 操作内容:A←(A)+(Rn)+(C),n=0~7 字节数: 1 机器周期:1 影响标志位:C,AC,OV 7、ADDC A,direct 指令名称:直接寻址带进位加法指令指令代码:35H 指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加 操作内容:A←(A)+(direct)+(C) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 8、ADDC A,@Ri 指令名称:间接寻址带进位加法指令指令代码:36H~37H 指令功能:累加器内容, 内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C),i=0,1 字节数: 1 机器周期:1 影响标志位:C,AC,OV 9、ADDC A,#data 指令名称:立即数带进位加法指令指令代码:34H 指令功能:累加器内容、立即数及进位位相加 操作内容:A←(A)+data+(C) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 10、AJMP addr11 指令名称:绝对转移指令 指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,实现程序转移。其方法是以指令提供的11位地址,取代PC的低11位,.而PC的高5位保持不变。操作内容:PC←(PC)+2PCl0~0←addrll 字节数: 2 机器周期:2 使用说明:由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB。 11、ANL A,Rn 指令名称:寄存器逻辑与指令指令代码:58H~5FH 指令功能:累加器内容逻辑与寄存器内容 操作内容:A←(A)∧(Rn),n=0~7 字节数: 1 机器周期:1 12、ANL A,direct 指令名称:直接寻址逻辑与指令指令代码:55H 指令功能:累加器内容逻辑与内部RAM低128单元或专用寄存器内容 操作内容:A←(A)∧(diret) 字节数: 2 机器周期:1 精选

第三章MCS51单片机的指令系统和汇编语言程序示例(第5范文

第三章MCS51单片机的指令系统和汇编语言程序示例(第5、6、7节) 1.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况? (1)MOV A,#19H ADD A,#66H (2)MOV A,#5AH ADD A,#6BH 2.已知:A=85H,R0=30H,(30H)=11H, (31H)=0FFH,C=1,试计算单片机执行下列指令后累加器A和C中的值各是多少? (1)ADDC A,R0, (2)ADDC A,31H (3) ADDC A,@R0, (4) ADDC A,#85H 3.已知M1和M2中分别存放两个16位无符号数的低8位,M1+1和M2+1中分别存放两个16位无符号数的高8位,计算两数之和(低8位存放在M1,高8位存放在M1+1,设两数之和不超过16位)。 4.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况? CLR C MOV A,#52H SUBB A,#0B4H 5.已知:A=0DFH,R1=40H,R7=19H,(30H)=00H,(40H)=0FFH,试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况? (1) DEC A (2) DEC R7 (3) DEC 30H (4) DEC @R1 6.试写出能完成85+59的BCD加法程序,并对工作过程进行分析。 7.已知:两个8位无符号乘数分别放在30H和31H单元中,编程实现他们乘积的低8位存放在32H,高8位存放在33H。 8.已知:R0=30H,(30H)=0AAH,试分析执行下列指令后累加器A和30H单元的内容是什么? (1)MOV A, #0FFH ANL A, R0 (2)MOV A, #0FH ANL A, 30H (3)MOV A, #0F0H ANL A, @R0 (4)MOV A, #80H ANL 30H, A 9.设:A=0AAH和P1=0FFH,试编程把累加器A的低四位送入P1口的低四位,P1口的高四位保持不变。 10.已知外部RAM30H中有一数AAH令高四位不变,低四位取反,试编出相应的程序。 11.已知:30H单元有一正数X,试编写求(-X)补码的程序。 12.如图所示,若X,Y,Z三个输入信号放在X,Y,Z三个单元中,试编写模拟电路功能的程序,并把电路输出送到F单元。

IC8位单片机汇编语言常用指令的识读

PIC单片机指令集简介 PIC 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容。 一、PIC汇编语言指令格式 PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下: 标号操作码助记符操作数1,操作数2;注释 指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令。 1与MCS-51系列单片机功能相同,标号代表指令的符号地址。在程序汇编时,已赋以指令存储器地址的具体数值。汇编语言中采用符号地址(即标号)是便于查看、修改,尤其是便于指令转移地址的表示。标号是指令格式中的可选项,只有在被其它语句引用时才需派上标号。在无标号的情况下,指令助记符前面必须保留一个或一个以上的空格再写指令助记符。指令助记符不能占用标号的位置,否则该助记符会被汇编程序作标号误处理。 书写标号时,规定第一字符必须是字母或半角下划线“—”,它后面可以跟英文和数字字符、冒号(:)制符表等,并可任意组合。再有标号不能用操作码助记符和寄存器的代号表示。标号也可以单独占一行。 2该字段是指令的必选项。该项可以是指令助记符,也可以由伪指令及宏命令组成,其作用是在交叉汇编时,“指令操作码助记符”与“操作码表”进行逐一比较,找出其相应的机器码一一代之。 3由操作数的数据值或以符号表示的数据或地址值组成。若操作数有两个,则两个操作数之间用逗号(,)分开。当操作数是常数时,常数可以是二进制、八进制、十进制或十六进制数。还可以是被定义过的标号、字符串和ASCⅡ码等。具体表示时,规定在二进制数前冠以字母“B”,例如B10011100;八进制数前冠以字母“O”,例如O257;十进制数前冠以字母“D”,例如D122;十六进制数前冠以“H”,例如H2F。在这里PIC 8位单片机默认进制是十六进制,在十六进制数之前加上Ox,如H2F可以写成Ox2F。 指令的操作数项也是可选项。 PIC系列与MCS-51系列8位单片机一样,存在寻址方法,即操作数的来源或去向问题。因PIC系列微控制器采用了精简指令集(RISC)结构体系,其寻址方式和指令都既少而又简单。其寻址方式根据操作数来源的不同,可分为立即数寻址、直接寻址、寄存器间接寻址和位寻址四种。所以PIC系列单片机指令中的操作数常常出现有关寄存器符号。有关的寻址实例,均可在本文的后面找到。 4用来对程序作些说明,便于人们阅读程序。注释开始之前用分号(;)与其它部分相隔。当汇编程序检测到分号时,其后面的字符不再处理。值得注意:在用到子程序时应说明程序的入口条件、出口条件以及该程序应完成的功能和作用。 二、清零指令(共4条) 1 实例:CLRW;寄存器W被清零 说明:该条指令很简单,其中W为PIC单片机的工作寄存器,相当于MCS-51系列单片机中的累加器A,CLR是英语Clear的缩写字母。 2 实例:CLRWDT;看门狗定时器清零(若已赋值,同时清预分频器)

8051单片机汇编指令速查表讲解

8051系列单片机汇编语言指令速查表

说明: 1)Ri, Rn指当前工作寄存器,i,n = 0 – 7,当前工作寄存器由程序状态字寄存器PSW的2个位RS1, RS0决定

MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。这里介绍指令助记符及其相关符号的记忆方法。 一、助记符号的记忆方法 1、表格列举法 把44个指令助记符按功能分为五类,每类列表记忆。此处从略,请读者自己总结。 2、英文还原法 单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。例如: 增量INC-Incremect 减量DNC-Decrement 短转移SJMP-Short jump 长转移LJMP-Long jump 比较转移CJNE-Compare jump not equality 绝对转移AJMP-Absolute jump 空操作NOP-No operation 交换XCH-Exchange 加法ADD-Addition 乘法MUL-Multiplication 除法DIV-Division 左环移RL-Rotate left 进位左环移RLC-Rotate left carry 右环移RR-Rotate right 进位右环移RRC-Rotate right carry 3、功能模块记忆法 单片机的44个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原则为2~3组。这样,化整为零,各个击破,实现快速记忆。 1)数据传送组。2)加减运算组 MOV 内部数据传送ADD 加法 MOVC 程序存储器传送ADDC 带进位加法 MOVX 外部数据传送SUBB 带进位减法 3)逻辑运算组。4)子程序调用组。 ANL 逻辑与LCALL 长调用 ORL 逻辑或ALALL 绝对调用 XRL 逻辑异或RET 子程序返回 二、指令的记忆方法 1、指令操作数的有关符号 MCS-51的寻址方式共有七种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址、位寻址。我们必须掌握其表示的方法。

8051单片机的特点1

1.单片机概念:单片机,又称微控制器,是在一块硅片上集成了各种部件的微型计算机。这些部件包括中央处理器CPU,数据存储器RAM,程序存储器ROM,定时器/计数器和多种I/O接口电路。 2.MCS-51系列单片机中的基本型产品是8051,8031和8751,这三个产品只是片内程序存储器制造工艺不同。8051的片内程序存储器ROM为掩膜型的在制造芯片时已将应用程序固化进去,使它具有了某种专用功能;8031无ROM,使用时需外接ROM;8751的片内ROM是EPROM型的,固化的应用程序可以方便改写。(除片内ROM 类型不同外,其他性能完全相同) 3.其他性能的结构特点:(1)8位CPU; (2)片内震荡器及时钟电路 (3)32根I\O线 (4)外部存储器ROM和RAM寻址范围各64KB (5)2个16位的定时器/计数器 (6)5个中断源,2个中断优先级 (7)全双工串行口 (8)布尔处理器 4.8051的内部结构 8051内部结构可划分为CPU,存储器,并行口,串行口,定时器/计数器和中断逻辑几部分。 (1)中央处理器 8051的中央处理器CPU由运算器和控制逻辑构成。其中包括若干特殊功能寄存器(SFR)。

a 以ALU为中心的运算器 运算逻辑单元ALU能对数据进行加减乘除等算术运算和“与”“或”“异或”等逻辑运算以及位操作运算。 ALU只能进行运算,运算的操作数可以事先存放在累加器ACC或暂存器TMP 中,运算结果可以送回ACC或通用寄存器或储存单元中。累加器ACC也可以写为A。B寄存器在乘法指令中用来存放乘数,在除法指令中用来存放除数,运算后B中为部分运算结果。 程序状态字PSW是8位寄存器,用来寄存本次运算的特征信息,用到其中的七位, 下面是其各位的定义: CY:进位标志,有进位或借位时,CY=1;否则CY=0. AC:半进位标志,当D3位向D4位产生借位或进位时,AC=1;否则AC=0;常用于十进制调整运算中。 F0:用户可设定的标志位,可置位或复位,也可供测试。 RS1,RS0:4个通用寄存器组的选择位,该两位的4种组合状态用来选择0~3寄存器组。 RS1、RS0与工作寄存器组的关系如图表所示 RS1 RS0 工作寄存器组 0 0 0组(00H~07H)0 1 1组(08H~0FH)RS1 RS0 工作寄存器组 1 0 2组(10H~17H)1 1 3组(18H~1FH)

(完整版)51单片机汇编指令(全)

指令中常用符号说明 Rn当前寄存器区的8个工作寄存器R0~R7(n=0~7) Ri当前寄存器区可作为地址寄存器的2个工作寄存器R0和R1(i=0,1) Direct8位内部数据寄存器单元的地址及特殊功能寄存器的地址 #data表示8位常数(立即数) #data16表示16位常数 Add16表示16位地址 Addr11表示11位地址 Rel8位代符号的地址偏移量 Bit表示位地址 @间接寻址寄存器或基址寄存器的前缀 ( )表示括号中单元的内容 (( ))表示间接寻址的内容 指令系统 数据传送指令(8个助记符) 助记符中英文注释 MOV Move 移动 MOV A , Rn;Rn→A,寄存器Rn的内容送到累加器A MOV A , Direct;(direct)→A,直接地址的内容送A MOV A ,@ Ri;(Ri)→A,RI间址的内容送A MOV A , #data;data→A,立即数送A MOV Rn , A;A→Rn,累加器A的内容送寄存器Rn MOV Rn ,direct;(direct)→Rn,直接地址中的内容送Rn MOV Rn , #data;data→Rn,立即数送Rn MOV direct , A;A→(direct),累加器A中的内容送直接地址中 MOV direct , Rn;(Rn)→direct,寄存器的内容送到直接地址 MOV direct , direct;(direct)→direct,直接地址的内容送到直接地址 MOV direct , @Ri;((Ri))→direct,间址的内容送到直接地址 MOV direct , #data;8位立即数送到直接地址中 MOV @Ri , A;(A)→@Ri,累加器的内容送到间址中 MOV @Ri , direct;direct→@Ri,直接地址中的内容送到间址中 MOV @Ri , #data; data→@Ri ,8位立即数送到间址中 MOV DPTR , #data16;data16→DPTR,16位常数送入数据指针寄存器,高8位送入DPH,低8位送入DPL中(单片机中唯一一条16位数据传送指令) (MOV类指令共16条)

PIC8位单片机汇编语言常用指令的识读

PIC8位单片机汇编语言常用指令的识读(上) 各大类单片机的指令系统是没有通用性的,它是由单片机生产厂家规定的,所以用户必须遵循厂家规定的标准,才能达到应用单片机的目的。 PIC 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC 系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容。 在这里笔者介绍PIC 8位单片机汇编语言指令的组成及指令中符号的功能,以供初学者阅读相关书籍和资料时快速入门。 一、PIC汇编语言指令格式 PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下: 标号操作码助记符操作数1,操作数2;注释 指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令。 1 标号与MCS-51系列单片机功能相同,标号代表指令的符号地址。在程序汇编时,已赋以指令存储器地址的具体数值。汇编语言中采用符号地址(即标号)是便于查看、修改,尤其是便于指令转移地址的表示。标号是指令格式中的可选项,只有在被其它语句引用时才需派上标号。在无标号的情况下,指令助记符前面必须保留一个或一个以上的空格再写指令助记符。指令助记符不能占用标号的位置,否则该助记符会被汇编程序作标号误处理。 书写标号时,规定第一字符必须是字母或半角下划线“—”,它后面可以跟英文和数字字符、冒号(:)制符表等,并可任意组合。再有标号不能用操作码助记符和寄存器的代号表示。标号也可以单独占一行。 2 操作码助记符该字段是指令的必选项。该项可以是指令助记符,也可以由伪指令及宏命令组成,其作用是在交叉汇编时,“指令操作码助记符”与“操作码表”进行逐一比较,找出其相应的机器码一一代之。 3 操作数由操作数的数据值或以符号表示的数据或地址值组成。若操作数有两个,则两个操作数之间用逗号(,)分开。当操作数是常数时,常数可以是二进制、八进制、十进制或十六进制数。还可以是被定义过的标号、字符串和ASCⅡ码等。具体表示时,规定在二进制数前冠以字母“B”,例如B10011100;八进制数前冠以字母“O”,例如O257;十进制数前冠以字母“D”,例如D122;十六进制数前冠以“H”,例如H2F。在这里PIC 8位单片机默认进制是十六进制,在十六进制数之前加上Ox,如H2F可以写成Ox2F。 指令的操作数项也是可选项。 PIC系列与MCS-51系列8位单片机一样,存在寻址方法,即操作数的来源或去向问题。因PIC系列微控制器采用了精简指令集(RISC)结构体系,其寻址方式和指令都既少而又简单。其寻址方式根据操作数来源的不同,可分为立即数寻址、直接寻址、寄存器间接寻址和位寻址四种。所以PIC系列单片机指令中的操作数常常出现有关寄存器符号。有关的寻址实例,均可在本文的后面找到。 4 注释用来对程序作些说明,便于人们阅读程序。注释开始之前用分号(;)与其它部分相隔。当汇编程序检测到分号时,其后面的字符不再处理。值得注意:在用到子程序时应说明程序的入口条件、出口条件以及该程序应完成的功能和作用。 二、清零指令(共4条) 1 寄存器清零指令 实例:CLRW;寄存器W被清零 说明:该条指令很简单,其中W为PIC单片机的工作寄存器,相当于MCS-51系列单片机中的累加器A,CLR是英语Clear的缩写字母。 2 看门狗定时器清零指令。 实例:CLRWDT;看门狗定时器清零(若已赋值,同时清预分频器)

单片机指令

1 MOV A,Rn 寄存器内容送入累加器 2 MOV A,direct 直接地址单元中的数据送入累加器 3 MOV A,@Ri 间接RAM 中的数据送入累加器 4 MOV A,#tata 立即数送入累加器 5 MOV Rn,A 累加器内容送入寄存器 6 MOV Rn,direct 直接地址单元中的数据送入寄存器 7 MOV Rn,#data 立即数送入寄存器 8 MOV direct,A 累加器内容送入直接地址单元 9 MOV direct,Rn 寄存器内容送入直接地址单元10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元11 MOV direct,@Ri 间接RAM 中的数据送入直接地址单元12 MOV direct,#data 立即数送入直接地址单元13 MOV @Ri,A 累加器内容送间接RAM 单元14 MOV @Ri,direct 直接地址单元数据送入间接RAM 单元15 MOV @RI,#data 立即数送入间接RAM 单元16 MOV DRTR,#dat16 16 位立即数送入地址寄存器17 MOVC A,@A+DPTR 以DPTR 为基地址变址寻址单元中的数据送入累加器18 MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器19 MOVX A,@Ri 外部RAM(8 位地址)送入累加器20 MOVX A,@DPTR 外部RAM(16 位地址)送入累加器21 MOVX @Ri,A 累计器送外部RAM(8 位地址)22 MOVX @DPTR,A 累计器送外部RAM(16 位地址)23 PUSH direct 直接地址单元中的数据压入堆栈24 POP direct 弹栈送直接地址单元25 XCH A,Rn 寄存器与累加器交换26 XCH A,direct 直接地址单元与累加器交换27 XCH A,@Ri 间接RAM 与累加器交换28 XCHD A,@Ri 间接RAM 的低半字节与累加器交换算术操作类指令:算术操作类指令1 ADD A,Rn 寄存器内容加到累加器2 ADD A,direct 直接地址单元的内

相关主题
文本预览
相关文档 最新文档