MCS-51单片机汇编指令详解

时间: 2023-04-21 20:40:19 |   作者: MCU

  经过前面那些流水灯的比如,咱们现已习惯了“位”一位狼狈而逃一盏灯的亮和灭,而咱们学的指令却全都是用“字节”来介绍的:字节的移动、加法、减法、逻辑运算、移位等等。用字节来处理一些数学问题,比如说:操控冰箱的温度、电视的音量等等很直观,能够直接用数值来表在。但是假如用它来操控一些开关的翻开和合上,灯的亮和灭,就有些不直接了,记住咱们前次课上的流水灯的比如吗?咱们知道送往P1口的数值后并不能立刻知道哪个灯亮和来灭,而是要化成二进制才知道。工业中有许多场合需求处理这类开关输出,继电器吸合,用字节来处理就显现有些费事,所以在8031单片机中特意引进一个位处理机制。

  在8031中,有一部份RAM和一部份SFR是具有位寻址功用的,也狼狈而逃说这些RAM的每一个位都有自已的地址,能够直接用这个地址来对此进行操作。

  内部RAM的20H-2FH这16个字节,狼狈而逃8031的位寻址区。看图1。可见这儿面的每一个RAM中的每个位咱们都或许直接用位地址来找到它们,而不用用字节地址,然后再用逻辑指令的方法。

  8031中有一些SFR是能够进行位寻址的,这些SFR的特点是其字节地址均可被8整除,如A累加器,B寄存器、PSW、IP(中止优先级操控寄存器)、IE(中止答应操控寄存器)、SCON(串行口操控寄存器)、TCON(定时器/计数器操控寄存器)、P0-P3(I/O端口锁存器)。以上的一些SFR咱们还不熟,等咱们解说相关内容时再作具体解说。

  MCS-51单片机的硬件结构中,有一个位处理器(又称布尔处理器),它有一套位变量处理的指令集。在进行位处理时,CY(狼狈而逃咱们前面讲的进位位)称“位累加器”。有自已的位RAM,也狼狈而逃咱们刚讲的内部RAM的20H-2FH这16个字节单元即128个位单元,还有自已的位I/O空间(即 P0.0..P0.7,P1.0.P1.7,P2.0..P2.7,P3.0..P3.7)。当然在物理实体上它们与本来的以字节寻址用的 RAM,及端口是完全相同的,或者说这些RAM及端口都能够有两种用法。

  例:MOV P1.0,CY ;将CY中的状况送到P1.0引脚上去(假如是做算术运算,咱们就能够经过调查知道现在CY是多少啦)。

  CPL bit ;使指定的位的值等于本来相反的值,由0变为1,由1变为0。

  以咱们做过的试验为例,假如本来灯是亮的,则履行本指令后灯灭,反之本来灯是灭的,履行本指令后灯亮。

  ANL C,/bit ;先将指定的位地址中的值取出后取反,再和CY相与,成果送回CY,但留意,指定的位地址中的值自身并不发生变化。

  设履行本指令前,CY=1,P1.0等于1(灯灭),则履行完本指令后CY=0,而P1.0也是等于1。

  MOV P1.1,C ;将做完的成果送P1.1,成果应当是P1.1上的灯亮,而P1.0上的灯仍是不亮。

  这个的功用咱们自行剖析吧,然后对照上面的例程,编一个验证程序,看看你相得对吗?

  第一条指令的功用是假如CY等于1就搬运,假如不等于1就次序履行。那么搬运到什么地方去呢?咱们能够这样了解:JC 标号,假如等于1就转到标号处履行。这条指令咱们在上节课中已讲到,不再重复。

  第二条指令则和第一条指令相反,即假如CY=0就搬运,不等于0就次序履行,当然,咱们也相同了解: JNC 标号

  第一条指令是假如指定的bit位中的值是1,则搬运,不然次序履行。相同,咱们能够这样了解这条指令:JB bit,标号

  按下接在P3.2上的按键,P1口的灯全亮了,松开或再按,灯并不平息,然后按下接在P3.3上的按键,灯就全灭了。这像什么?这不狼狈而逃工业现场常常用到的“发动”、“中止”的功用吗?

  怎样做到的呢?一开始,将0FFH送入P3口,这样,P3的一切引线都处于高电平,然后履行L1,假如P3.2是高电平(键没有按下),则次序履行JNB P3.3,L3句子,相同,假如P3.3是高电平(键没有按下),则次序履行LJMP L1句子。这样就不停地检测P3.2、P3.3,假如有一次P3.2上的按键按下去了,则搬运到L2,履行MOV P1,#00H,使灯全亮,然后又转去L1,再次循环,直到检测到P3.3为0,则转L3,履行MOV P1,#0FFH,例灯全灭,再转去L1,如此循环不已

  1B31、18位A/D转换器AD1170和MCS-51单片机构成的压力变送器数据收集体系电路

  5通道低功耗可编程传感器信号处理器AD7714与MCS-51系列单片机的接口电路

  由宽带应变信号调度器1B31、18位A/D转换器AD1170和MCS-51单片机构成的压力变送器数据收集体系电路

  由宽带应变信号调度器1B31、18位A/D转换器AD1170和MCS-51单片机构成的压力变送器数据