本站联系电话:023-58186350 客服手机:15823731091 客服QQ:865697323
  给本站投递文章!
  购买本站产品,享受优惠价格!
  初学者应该怎样快速入门?
您现在的位置: 五六电子 > 电子技术 > 单片机 > 系列教程 > 正文 本站公告:网站公告列表     本站代理多家公司产品,质量保证,发货快捷,欢迎大家购买!  [2008年2月14日]            本站向各位网友征稿!  [2007年11月6日]        
  单片机第十五课           ★★★★ 【字体:
单片机第十五课
作者:佚名    文章来源:本站原创    点击数:    更新时间:2007-8-29    

    位及位操作指令

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

  1. 位寻址区

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

    字节地址

    位地址

    2FH

    7FH

               

    78H

    2EH

    77H

               

    70

    2DH

    6FH

               

    68H

    2CH

    67H

               

    60H

    2BH

    5FH

               

    58H

    2AH

    57H

               

    50H

    29H

    4FH

               

    48H

    28H

    47H

               

    40H

    27H

    3FH

               

    38H

    26H

    37H

               

    30H

    25H

    2FH

               

    28H

    24H

    27H

               

    20H

    23H

    1FH

               

    18H

    22H

    17H

               

    10H

    21H

    0FH

               

    08H

    20H

    07H

    06H

    05H

    04H

    03H

    02H

    01H

    00H

    图1

    内部RAM20H-2FH16个字节,就是8031的位寻址区。看图1。可见这里面的每一个RAM中的每个位我们都可能直接用位地址来找到它们,而不必用字节地址,然后再用逻辑指令的方式。

  2. 可以位寻址的特殊功能寄存器

    8031中有一些SFR是可以进行位寻址的,这些SFR的特点是其字节地址均可被8整除,如A累加器,B寄存器、PSWIP(中断优先级控制寄存器)、IE(中断允许控制寄存器)、SCON(串行口控制寄存器)、TCON(定时器/计数器控制寄存器)、P0-P3I/O端口锁存器)。以上的一些SFR我们还不熟,等我们讲解相关内容时再作详细解释。

  3. 位操作指令

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

  1. 位传送指令

    MOV CBIT

    MOV BITC

    这组指令的功能是实现位累加器(CY)和其它位地址之间的数据传递。

    例:MOV P1.0,CY ;CY中的状态送到P1.0引脚上去(如果是做算术运算,我们就可以通过观察知道现在CY是多少啦)。

    MOV P1.0,CY ;P1.0的状态送给CY

  2. 位修正指令

  1. 位清0指令

    CLR C ;使CY=0

    CLR bit ;使指令的位地址等于0。例:CLR P1.0 ;即使P1.0变为0

  2. 位置1指令

    SETB C ;使CY=1

    SETB bit ;使指定的位地址等于1。例:SETB P1.0 ;使P.0变为1

  3. 位取反指令

CPL C ;使CY等于原来的相反的值,由1变为0,由0变为1

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

例:CPL P1.0

以我们做过的实验为例,如果原来灯是亮的,则执行本指令后灯灭,反之原来灯是灭的,执行本指令后灯亮。

  1. 位逻辑运算指令

  1. 位与指令

    ANL C,bit ;CY与指定的位地址的值相与,结果送回CY

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

    例:ANL C,/P1.0

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

    可用下列程序验证:

    ORG 0000H

    AJMP START

    ORG 30H

    STARTMOV SP#5FH

    MOV P1#0FFH

    SETB C

    ANL C/P1.0

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

    [1] [2] 下一页

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【文章投稿】【加入收藏】【告诉好友】【打印此文
    载入中...
    载入中...
         网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    数据载入中,请稍后……
    专 题 栏 目
    推 荐 商 品
    最 新 商 品
    推 荐 图 文
    最新热点 最新推荐 相关文章
    单片机大虾是怎么样炼成的
    5年单片机学习总结
    如何学好单片机
    单片机系统延时关机电路
    对51单片机的学习心得
    致单片机初学者
    从无线电世界到单片机世界
    我对单片机的向往!
    单片机入门制作(三)
    单片机入门制作(四)
    地址:重庆市万州区石柱坪6号5单元601室 邮编:404000
    联系电话:023-58186350 邮箱:webmaster@56dz.com QQ:865697323
    Copyright©2007-2008 五六电子 All rights reserved
    渝ICP备07007061号