单片机位操作指令
前面那些流水灯的例程,我们已经习惯了“位”一位就是一盏灯的亮和灭,而我们学的指令却全都是用“字节”来介绍的:字节的移动、加法、减法、逻辑运算、移位等等。用字节来处理一些数学问题,比如说:控制冰箱的温度、电视的音量等等很直观,能直接用数值来表在。可是如果用它来控制一些开关的打开和合上,灯的亮和灭,就有些不直接了,记得我们上次课上的流水灯的例程吗?我们知道送往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及端口都能有两种使用办法。
跟电师傅学单片机(20):单片机位操作指令图文讲解(一)
位操作指令:
➲指令中的操作数不是字节,而是字节中的某一位,每位取值只能是0或1;
➲指令中的操作对象是单片机内部RAM的位寻址区:20H~2FH单元中的128个位和SFR中的11个可以位寻址的特殊功能寄存器。
单片机内部RAM位寻区位地址表
一:位传送指令(2条)
位传送指令表
CY:单片机标志寄存器PSW的最高位,是进位标志位 ,CY也称为位累加器 ,在指令中CY直接写成C 。如同累加器A,都在单片机编程指令中使用频率较高。
Bit:位寻址区内的某一位的状态。
➲MOV C,Bit;指令功能是将直接寻址位的内容送入位累加器CY中。
➲MOV Bit ,C;指令功能是将位累加器CY中内容送入直接寻址位。
单片机标志寄存器PSW功能图
二:位置位和位清零指令(4条)
位置位和位清零指令
置位:就是置1。
➲CLR C;指令功能是将位累加器CY清零。
➲CLR Bit;指令功能是将直接寻址位清零。当直接寻址位为P0~P3端口某一位时,具有“读-改-写”功能。
➲SETB C;指令功能是将位累加器CY置1。
➲SETB Bit;指令功能是将直接寻址位置1。当直接寻址位为P0~P3端口某一位时,具有“读-改-写”功能。
相关问答
单片机 堆栈 指令 ?单片机堆栈操作指令如下:PUSHdirect(堆栈指令)其作用是先将栈指针SP的内容加1,然后将直接寻址单元中的数压入到sP所指的单元中。若数据已入栈,则SP指...单...
单片机 用 位 操作 指令 实现下列操作:1、使ACC.0置1;2、清除累加...[最佳回答]1.使ACC.0置1;ORLA,#01H2.清除累加器高4位;ANLA,#0FH3、清除ACC.3,ACC.4,ACC.5,ACC.6ANLA,#10000111B4.编写两个16位数的减法...
单片机 的DB 指令 使用-ZOL问答DB是伪指令,定义字节命令,貌似用在数据表的比较多,你那个应该这样写ORG0060H...不是所有的单片机都可以用串口烧的STC单片机可以的推荐用官方推荐...
单片机 移 位指令 讲解?单片机移位指令是指可以将一个二进制数向左或向右移动指定的位数的指令。其中向左移动相当于进行乘2的运算,向右移动相当于进行除2的运算。移位指令是单片机中...
单片机 编程里SET B是什么意思?单片机中指令SETB代表MCS-51的位操作命令。作为汇编指令,SETB可以实现其后面的那个寄存器的位置为1。就SETB而言,定时/计数器0的中断允许位ET0为1时,单片机会...
单片机 累加器A的 位 地址是什么?ACC为51的一个特殊功能寄存器,其地址为0XE0。很多指令都用到它,是否用到它由指令决定,这个学过汇编语言的很容易明白,直接用C51的可能不太容易理解,请认真学...
一个 单片机 的乘法 指令 ?单片机乘法指令是MULAB,只能是累加器A和寄存器B相乘,结果低八位存入A,高八位存入B。比如题中,A=4EH,B=5DH,A*B=1C56H,所以A=56H,B=1CH单片机乘法指令是MULAB,...
一些 单片机 的基础题6、在片外扩展一片2764程序存储器芯片要(...[最佳回答]6、在片外扩展一片2764程序存储器芯片要(13位)地址线。15、DA指令是(二进制转十进制)指令,它只能紧跟在(加法)指令后使用。38、在程序状态寄存器PS...
单片机指令 JNB字母各代表什么意思?1.这是51单片机的一条汇编语言指令,其中J代表"跳转JUMP",N代表"非NO",B代表"位BIT";2.如果TF0为0,那就跳转到...
单片机 的ROM有多少个字节,可以写多少条 指令 。一条 指令 占多少个字节?51单片机有111条指令:42种指令助记符其中49条单字节45条双字节17条三字节;64条单机器周期指令,45条双字节指令。51单片机有111条指令:42种指令助记符其中...