关于AT89S51某些指令的说明

发布者:dswecd最新更新时间:2018-03-10 来源: eefocus关键字:AT89S51  指令 手机看文章 扫描二维码
随时随地手机看文章

  1.关于并行I/O口的“读引脚”和“读锁存器”指令的区别
  
  读并行I/O口有“读引脚”和“读锁存器”之分。以Pl口为例,当P1口的P1.0引脚外接一个发光二极管LED的阳极,LED的阴极接地。若想查看一下单片机刚才向P1.0脚输出的信息是0还是1,这时不能直接从P1.0读取,因为单片机刚才向P1.0输出的信息如果是1的话,则LED导通点亮,此时P1.0引脚就为0电平,如果直接读引脚,结果显然是错误的。正确的做法是读D锁存器的Q端状态,那里储存的才是前一时刻送给Pl.0的真实值。也就是说,凡遇“读取P1口前一状态以便修改后再送出”的情形,都应当“读锁存器”的Q端信息,而不是读取引脚的信息。
  
  当P1口外接输入设备时,要想P1口引脚上反映的是真实的输入信号,必须要设法先让该引脚内部的场效应管截止才行(如图2-7所示),否则当场效应管导通时,P1口引脚上将永远为低电平,无法正确反映外部设备的输入信号。让场效应管截止,就是用指令给Pl口的相应位送一个1电平,这就是为什么读引脚之前,一定要先送出1的原因。
  
  指令“MOV C,Pl.0”读的是Pl.0引脚,同样,指令“MOV A,Pl”也是读引脚指令,读引脚指令之前一定要有向Pl.0写1的指令。而指令“CPL Pl.O”则是“读锁存器”,也即“读-修改-写”指令,它会先读Pl.O的锁存器的Q端状态,接着取反,然后再送到Pl.0引脚上。而指令“ANLPl,A”也是“读锁存器”命令。类似的“读-修改-写”指令举例如下:
  640
  2.关于操作数的字节地址和位地址的区分问题
  
  如何区别指令中出现的字节变量和位变量呢?例如指令“MOV C,40H”和指令“MOV A,40H”两条指令中的助记符相同,但是指令中源操作数“40H”都是以直接地址形式给出的,“40H”究竟是字节地址还是位地址?对于助记符相同的指令,观察操作数就可看出。显然前条指令中的“40H”是位地址,因为目的操作数C是位变量。而后条指令中的“40H”是字节地址,因为目的操作数A是字节变量。当然,对于助记符不同的指令,从助记符的形式,就可以看出其中指令究竟是“字节”操作,还是“位”操作。
  
  3.关于累加器A与ACC的书写问题
  
  累加器可写成A,也可写成Acc,它们的区别是什么?在51单片机汇编语言指令中是有区别的。Acc在汇编后的机器码必有一个字节的操作数是累加器的字节地址EOH,A在汇编后则隐含在指令操作码中。例如指令“INC  A”的机器码,查表3-2是04H。如写成“INC  Acc”后,则成了“INC direct”的格式,再查表3-2,对应的机器码为“05H EOH”。在对累加器A的直接寻址和累加器A的某一位寻址要用Acc,而不能写成A。例如,指令“POP  Acc”不能写成“POP A”;指令“SETB  Acc.O”,不能写成“SETB A.O”。
  
  4.书写2位十六进制数据前要加“0”
  
  在书写源程序时经常遇到必须在某些数据或地址的前面多填一个“前导0”的问题,否则在汇编成时机器语言汇编就通不过。这是汇编语言的严格性和规范性的具体体现。由于部分十六进制数是用字母来表示的,而程序内的标号也常用字母表示,为了将标号和数据区分开,几乎所有的汇编语言都规定,凡是以字母开头(对十六进制数而言,就是A~F开头)的数字量,应当在前面添加一个数字“0”。至于地址量,它也是数据量的一种,前面也应该添加“0”。例如:
  650
  如果不加“前导0”,就会把字母开头的数据量当作标号来处理,从而出错以及不能通过汇编。

关键字:AT89S51  指令 引用地址:关于AT89S51某些指令的说明

上一篇:基于AT89S51子程序的设计
下一篇:AT89S51指令汇总

推荐阅读最新更新时间:2024-03-16 15:57

谈谈51单片机的RETI指令
  最近在基于51 单片机 编程的过程中出现了个很奇怪的问题 程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断 。   在有过单片机中断编程经历者都知道当EA=1,ET0=1的条件下,满足TF0=1时,如果在此期间没有更高优先级的中断执行的情况下定时器中断0必定会产生中断响应。而在我所编写的程序中仅使用了定时器中断0,一个中断也就谈不上存在优先级问题。经过我对自己程序的检查并对各教材中断程序对比发现我的程序中的一个问题:由于中断的不可控性决定其跳出中断返回主程序的不确定,而由于程序需要中断跳出后能跳到指定的地址。为了解决这个问题我在中断结束的地方直接用了无条件跳转指令 LJMP ADR16 其
[单片机]
让手机开口“说话”的时代或将来到我们身边
  手机是我们生活中不可或缺的重要通讯工具。在科技快速发展的今天,手机除了能够满足我们最基本的通讯需求外,也在逐步向更加智能化的方向发展,基于Windows mobile、Symbian等操作系统的智能手机已经将原始手机的通讯功能与掌上电脑的智能商务功能很好地融合在一起,像计算机一样功能丰富、操作便捷的手机已经成为未来手机发展的趋势。借此,聪明的手机开发商在追求功能和性能提升的同时,利用各种高新技术提高手机的服务本领。   随着中国逐渐步入老龄化社会,关爱老年人的身体和心理健康成为整个社会的责任,在手机设计方面加入的一些新亮点,可以让老年人方便的使用手机,实现无限沟通。老年人群的视力问题是他们获取手机中各种信息的一大障碍,而这一问
[嵌入式]
七、ARM 指令
7.1 数据处理指令 7.1.1 数据传送类 MOV 类指令:核内寄存器间的数据传送 加载和存储指令(L/S):核内寄存器与挂在存储器总线上器件的数据传送 注意: 核内寄存器就是 R0-R15 外设寄存器入 GPIO 的寄存器 7.1.2 算术逻辑运算类 ADD:假发指令 MOV R0,#0x01 ADD R0,R0.#0x01 SUB:减法指令 MUL:乘法指令 AND:按位与指令 ORR:按位或指令 EOR:按位异或指令 BIC:清零指令 BIC R1,R1,#0x0f 最低 4 位清零 注意:ARM 指令集中没有除法指令,通过软件(移位-比较-相减)实现,不过在 ARMV7 指
[单片机]
ARM汇编指令集4
协处理器cp15操作指令: mcr & mrc •mrc用于读取CP15中的寄存器 •mcr用于写入CP15中的寄存器 什么是协处理器? •SoC内部另一处理核心,协助主CPU实现某些功能,被主CPU调用执行一定任务。 •ARM设计上支持多达16个协处理器,但是一般SoC只实现其中的CP15.(cp:coprocessor) •协处理器和MMU、cache、TLB等处理有关,功能上和操作系统的虚拟地址映射、cache管理等有关。 MRC & MCR的使用方法 •mcr{ cond } p15, opcode_1 , Rd , Crn , Crm , { opcode_2 } •opcode_1:对于cp15永远为0 •R
[单片机]
MCU基本技术原理与发展历史
一.单片机与单片微计算机系统 计算机系统已明显地朝巨型化、单片化、网络化三个方向发展。巨型化发展的目的在于不断提高计算机的运算速度和处理能力,以解决复杂系统计算和高速数据处理,比如系统仿真和模拟、实时运算和处理。单片化就是把计算机系统尽可能集成在一块半导体芯片上,其目的在于计算机微型化和提高系统的可靠性,通常把这种单片计算机简称单片机。准确而言,单片机(单片微型计算机)实际上是一种将CPU(中央处理器)、存储器和输入输出接口集成在一个芯片中的微型计算机。单片机的内部硬件结构和指令系统主要是针对自动控制应用而设计的,所以单片机又称微控制器MCU(MicroController Unit),又由于用它可以很容易地将计算机嵌入到各种仪
[单片机]
汇编指令 DUP指令
复制操作符DUP可以定义重复变量,其格式为: 变量名 伪指令指示符 nDUP(操作数) ; 其中 n 为重复变量的个数 例如:用重复操作符DUP定义变量。 assume cs:code, ds:data, ss:stack data segment db 100 dup(0) db 100 dup('12') dw 100 dup('1') db 256 dup(0) data ends stack segment stack db 128 dup(0) stack ends code segment start: mov
[单片机]
汇编<font color='red'>指令</font> DUP<font color='red'>指令</font>
片上系统中断机制的可靠性设计
1 引言 在嵌入式系统应用中,异步实时交互系统占了很大部分,这就要求系统对数据或者控制信号的输入具有较高的响应速度。相对查询方式而言,中断方式具有响应速度快、效率高等特点,因而在嵌入式系统中广泛采用。随着VLSI进入深亚微米时代,嵌入式系统趋向于片上系统(SOC),中断控制部分不再由独立的通用中断控制芯片构成,而是由系统开发者根据特定的中断类型设计专用的中断控制逻辑。 目前,对于中断控制器的设计方法以及中断的快速转移等已经有大量的研究,但是对于中断机制的可靠性问题研究较少。事实上,中断机制的可靠性问题是不可忽视的,因为Windows、Unix和Linux等操作系统中,中断的发生可以导致系统由用户态进入核心态,如果中断机制存在问题
[嵌入式]
单片机MCS-51系列指令快速记忆法(学习单片机编程的好资料)
随着微电子技术和超大规模集成电路技术的发展,单片微型计算机以其体积小、性价比高、功能强、可靠性高等独有的特点,在各个领域(如工业控制、家电产品、汽车电子、通信、智能仪器仪表)得到了广泛的应用。学习、使用单片机的人越来越多,而生产单片机的厂家很多,单片机种类繁杂,不知如何选择。据统计,八位单片机占全球单片机销量的65%。在八位单片机中,Intel公司的8051单片机内核已成为8位单片机事实上的标准。因此,对初学者而言,选择8051单片机来学习不失为明智的选择。 学习单片机,除了搞清单片机内部功能、存储空间分配及I/O接口外,还应掌握其指令系统。MCS-51共有111条指令,现介绍我们总结出的快速记忆MCS-51指令的方法,供大
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved