《匠人手记》推荐网上购书渠道:
EDN网(ednchina)购书入口   >>>
互动出版网(china-pub)购书入口   >>>
当当网(dangdang)购书入口   >>>
淘宝网(taobao)购书入口   >>>
更多购书渠道……   >>> 

设为首页加入收藏联系匠人管理入口21IC首页21IC博客21IC社区侃单片机回复的贴参与的贴

天气预报
百宝日历

百宝专栏

  • 首页 相册 标签
  • 电脑应用(65)
  • 供需信息(22)
  • 写书近况(82)
  • 匠人文集(115)
  • 硬件技术(171)
  • 匠人公告(86)
  • 与非门专栏(545)
  • 匠人笔记(115)
  • 团队撰写(96)
  • 汽车电子(52)
  • 编程技巧(465)
  • 程序宝典(476)
  • 网络酷文(472)
  • 开发工具(19)
  • 资料宝藏(274)
  • 项目管理(11)
  • 藏经宝阁(42)
  • 趣味设计(5)
  • 社区热贴(2)
  • 比尔盖茨熊专栏(0) 
  • 百宝信息

    载入中...

    百宝流量

    (2006-07-01开始)



    匠人手记

    平凡单片机教学——第十一讲 单片机指令(五)
    程序匠人 发表于 2006-1-6 23:45:00  阅读全文 | 回复(3) | 引用通告 | 编辑

    平凡单片机教学
    第十一讲 单片机指令(五)
    三、逻辑运算类指令:
    1.对累加器A的逻辑操作:

    CLR A ;将A中的值清0,单周期单字节指令,与MOV A,#00H效果相同。

    CPL A ;将A中的值按位取反
    --------------------------------------------------------------------------------
    RL A ;将A中的值逻辑左移

    RLC A ;将A中的值加上进位位进行逻辑左移

    RR A ;将A中的值进行逻辑右移

    RRC A ;将A中的值加上进位位进行逻辑右移

    SWAP A ;将A中的值高、低4位交换。

    例:(A)=73H,则执行CPL A,这样进行:

    73H化为二进制为01110011,

    逐位取反即为 10001100,也就是8CH。

    RL A是将(A)中的值的第7位送到第0位,第0位送1位,依次类推。

    例:A中的值为68H,执行RL A。68H化为二进制为01101000,按上图进行移动。01101000化为11010000,即D0H。

    RLC A,是将(A)中的值带上进位位(C)进行移位。

    例:A中的值为68H,C中的值为1,则执行RLC A

    1 01101000后,结果是0 11010001,也就是C进位位的值变成了0,而(A)则变成了D1H。

    RR A和RRC A就不多谈了,请大家参考上面两个例子自行练习吧。

    SWAP A,是将A中的值的高、低4位进行交换。

    例:(A)=39H,则执行SWAP A之后,A中的值就是93H。怎么正好是这么前后交换呢?因为这是一个16进制数,每1个16进位数字代表4个二进位。注意,如果是这样的:(A)=39,后面没H,执行SWAP A之后,可不是(A)=93。要将它化成二进制再算:39化为二进制是10111,也就是0001,0111高4位是0001,低4位是0111,交换后是01110001,也就是71H,即113。

    练习,已知(A)=39H,执行下列指令后写出每步的结果

    CPL A

    RL A

    CLR C

    RRC A

    SETB C

    RLC A

    SWAP A

    通过前面的学习,我们已经掌握了相当一部份的指令,大家对这些枯燥的指令可能也有些厌烦了,下面让我们轻松一下,做个实验。

    实验五:

    ORG 0000H

    LJMP START

    ORG 30H

    START:

    MOV SP,#5FH

    MOV A,#80H

    LOOP:

    MOV P1,A

    RL A

    LCALL DELAY

    LJMP LOOP

    delay:

    mov r7,#255

    d1: mov r6,#255

    d2: nop

    nop

    nop

    nop

    djnz r6,d2

    djnz r7,d1

    ret

    END

    先让我们将程序写入片中,装进实验板,看一看现象。

    看到的是一个暗点流动的现象,让我们来分析一下吧。

    前而的ORG 0000H、LJMP START、ORG 30H等我们稍后分析。从START开始,MOV SP,#5FH,这是初始化堆栈,在本程序中有无此句无关紧要,不过我们慢慢开始接触正规的编程,我也就慢慢给大家培养习惯吧。

    MOV A,#80H,将80H这个数送到A中去。干什么呢?不知道,往下看。

    MOV P1,A。将A中的值送到P1端口去。此时A中的值是80H,所以送出去的也就是80H,因此P1口的值是80H,也就是10000000B,通过前面的分析,我们应当知道,此时P1。7接的LED是不亮的,而其它的LED都是亮的,所以就形成了一个“暗点”。继续看,RL A,RL A是将A中的值进行左移,算一下,移之后的结果是什么?对了,是01H,也就是00000001B,这样,应当是接在P1。0上的LED不亮,而其它的都亮了,从现象上看“暗点”流到了后面。然后是调用延时程序,这个我们很熟悉了,让这个“暗点”“暗”一会儿。然后又调转到LOOP处(LJMP LOOP)。请大家计算一下,下面该哪个灯不亮了。。。。。对了,应当是接在P1。1上灯不亮了。这样依次循环,就形成了“暗点流动”这一现象。

    问题:

    1.如何实现亮点流动?

    2.如何改变流动的方向?

    答案:

    1.将A中的初始值改为7FH即可。

    2.将RL A改为RR A即可。

    看《匠人手记》,与匠人同行!北航出版,正在热卖!

    回复:平凡单片机教学——第十一讲 单片机指令(五
    woshishui(游客)发表评论于2006-8-6 15:41:00  个人主页 | 引用 | 返回 | 删除 | 回复

    woshishui(游客)请问一下单片机指令的前面几讲在那里啊?等待您的答复.谢谢!

    看《匠人手记》,与匠人同行!北航出版,正在热卖!

    回复:平凡单片机教学——第十一讲 单片机指令(五
    woshishui(游客)发表评论于2006-8-6 15:36:00  个人主页 | 引用 | 返回 | 删除 | 回复

    woshishui(游客)

    有一部分页面被挡住了,程序看不完全啊!!!

    看《匠人手记》,与匠人同行!北航出版,正在热卖!

    回复:平凡单片机教学——第十一讲 单片机指令(五
    阳光芳(游客)发表评论于2006-2-27 10:57:00  个人主页 | 引用 | 返回 | 删除 | 回复

    阳光芳(游客)

    这个例子好象不对:文中红字标出。我觉得应该是11010010。 能否解释,谢谢!

     

    RLC A,是将(A)中的值带上进位位(C)进行移位。

    例:A中的值为68HC中的值为1,则执行RLC A

    1 01101000后,结果是0 11010001,也就是C进位位的值变成了0,而(A)则变成了D1H

    看《匠人手记》,与匠人同行!北航出版,正在热卖!

    发表评论:
    载入中...

    芯片专题

    器件专题

    软件专题

    硬件专题

    综合专题

    项目专题

    原创专题

    器件检测
    LCD LED
    按键 触摸键
    E2PROM
    电池 电机
    电阻 电容 电感

    指令系统
    软件算法
    编程规范
    滤波算法
    串行通讯

    PCB设计
    I2C PWM
    红外遥控
    充电技术
    中断 ADC 

    匠人手记
    匠人夜话
    网络心路
    一周热点串烧
    从零开始玩PIC
    DIY旋转时钟

    广告5号位 [投放]


    学习板、开发板、编程器、下载器、仿真器(查看详情……)

    站内搜索


    站外搜索


    百度  google
    mp3  歌词 
    图片  FLASH 
    知道  文档
    新闻  词典 
    地图  mp3 
    软件  天网 
    雅虎  爱问 
    搜狗  讯雷 
    网讯  华军 
    天空 

    21IC器件搜索
    百宝箱分站
  • 《匠人的百宝箱》21IC站
  • 《匠人的百宝箱》21IC笔记团队
  • 《匠人的百宝箱》MCUBLOG站
  • 《匠人的百宝箱》MCUBLOG笔记团队
  • 《匠人的百宝箱》EDN站
  • 《匠人手记》EDN书友会
  • 《匠人的百宝箱》与非网站
  • 《匠人的百宝箱》新浪站
  • 《匠人的百宝箱》百度站
  • 《匠人的百宝箱》网易126站
  • 《匠人的百宝箱》网易163站
  • 《匠人的百宝箱》互动出版网站
  • 广告4号位 [投放]

     
     
     

    新鲜货色

    匠人手记

    近期动态

    载入中...

      《匠人手记》购书全攻略 
     书友近况:淘书手记答疑与讨论:什么是散转程序 
     《匠人手记》新书艳照
     EDN《匠人手记》签名售书优惠活动开始报名啦!
     欢迎加入《匠人手记》EDN书友会
     欢迎加入《匠人手记》书友会Q群
     《匠人手记》终稿目录
     《匠人手记》封面,请大家先睹为快
     上周六收到了北航寄来的《匠人手记》清样,让大家先睹为快

    匠人原创

    粉丝评论

    往日酷贴

    载入中...

    载入中...



     网络酷文:博客,改变的不仅仅是图书 
     网络酷文:C语言宏定义技巧C语言 条件编译详解

      21IC上海2008-04聚会报名进行中。。。 
     两分钟让你明白什么是ERP![转]
      神奇的Duff's Device 算法
      实用一线通讯电路及软件设计方法
      程序员的“七年之痒”
      史上最短但最精彩的武侠小说
      网络无厘头文学《缺钙水浒》(爆笑)

     你的博客还能持续多久(转贴)
     电动车无刷电机控制器软件设计要点(作者:谢渊斌)

    大千八卦

    友情连接

    新浪新闻:
    新浪财经:
    AK58新闻:
    新浪股票:
    新浪股票:
    证券之星:

     [更多酷站连接]

     

     

    [欢迎交换连接]

    [百宝箱之与非门分舵]

    [电脑圈圈的家当]

    [IC921的博客]

    [柔月阁]

    [八楼的呼吸]

    [hotpower 的水潭]

    [xwj的文君阁]

    [所长的BLOG]

    [阿摆手记]

    [电子伙伴]

    [unaided的笔记]

    [小飞的笔记]

    [单片机开发联盟]

    [网址之家]

    [好东西网址大全]

    [美萍中文精选]

    [数字电视之家]

    [SMARTCODE电子书斋]

    [软件开发之窗]

    [Armoric]

    [我爱研发网]

    [infernal的笔记]

    [雄鹰的空中加油站]

    [SunK]

    [逍遥电子]

    [ningpanda的博客]

    [C-Design]

    [一网见天下]

    [海边淘沙]

    [嵌入式365]

    [水牛的仓库]

    [股剩是怎样炼成的]

    [PIC论坛]

    [ICC AVR开发网]

    [中国高校自动化网]

     

     

     

    MCU博客-中国电子工程师博客网 

    大学生电子网 

     

     

     

     

     

    !!! 《匠人的百宝箱》 !!!