找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2324|回复: 6
打印 上一主题 下一主题
收起左侧

大神指导为什么不右移。

[复制链接]
跳转到指定楼层
楼主
ID:64817 发表于 2014-8-14 15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   高手大神,我是个初学者,,我看了视频后,能编写左移流水灯,但右移怎么也移动不了,老师们指点一二,谢了


   main()
     {
            signed char e;
             e=0;              
          while(e<0)e=7 ;        
        {
        P2=~(1>>e--);
        yc50ms (1) ;
         }
        }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:2318 发表于 2014-8-15 12:18 来自手机 | 只看该作者
你把左移的程序发上来我对比一下看看
回复

使用道具 举报

板凳
ID:64817 发表于 2014-8-15 15:19 | 只看该作者
hkccd 发表于 2014-8-15 12:18
你把左移的程序发上来我对比一下看看

main()
{char e;

   if(sw2==0)
   {        
        
         if(sw2==0)         //判断sw2是否按下,按下指行下属括号内容。
      {          
         yc50ms (1);  // 延时抵消按键抖动的时间。
             if(sw2==0)         //再次判断sw2是否按下,按下指行下属括号内容
             {
                   do                  
                         {
                            while(sw2==0);        //判断sw2是否弹起,==0没有弹起做空循环,
                                yc50ms (1);          //  while(sw2==0); 为        假时指行延时 ,延时抵消按键抖动的时间。
                          }  
                 while(sw2==0);             //do_ while再次判断sw2是否弹起为,弹起为假跳出循环 .执行下语句,(sw2==0)为真返回do循环。       
                 }                                 
              do           
             {
                    P2=~(1<<e++);
                    yc50ms (1) ;P2=0Xff;
             }
              while(e<8); e=0;
       }
         }        
   if(sw7==0)
   {          
      
         if(sw7==0)         //判断sw7是否按下,按下指行下属括号内容。
              {          
                 yc50ms (1);  // 延时抵消按键抖动的时间。
                     if(sw7==0)         //再次判断sw2是否按下,按下指行下属括号内容
                     {
                           do                  
                                 {
                                    while(sw7==0);        //判断sw2是否弹起,==0没有弹起做空循环,
                                        yc50ms (1);                 //  while(sw7==0); 为        假时指行延时 ,延时抵消按键抖动的时间。
                                 }  
                            while(sw7==0);             //do_ while再次判断sw2是否弹起为,弹起为假跳出循环 .执行下语句,(sw7==0)为真返回do循环。       
                      }                
                         while(e<0)e=7 ;        
                        {       
                              P2=~(1>>e--);
                              yc50ms (1) ;
                        }
            
            }
         }           
}
回复

使用道具 举报

地板
ID:58502 发表于 2014-8-16 00:55 | 只看该作者
移位指令<<  和  >>需要在文件头加入#include <intrins.h>才能使用,你加了吗

评分

参与人数 1威望 +35 黑币 +45 收起 理由
admin + 35 + 45 帮助他人解决技术问题的积分奖励

查看全部评分

回复

使用道具 举报

5#
ID:64817 发表于 2014-8-16 12:26 | 只看该作者
liaolinhui 发表于 2014-8-16 00:55
移位指令>需要在文件头加入#include 才能使用,你加了吗

没有加,但会左移,,一会我按你说的加一下,试试,,先谢了
回复

使用道具 举报

6#
ID:58502 发表于 2014-8-16 19:02 | 只看该作者
abeimao 发表于 2014-8-16 12:26
没有加,但会左移,,一会我按你说的加一下,试试,,先谢了

O(∩_∩)O哈哈~其实我也不太清楚要不要加,我也刚学没多久,<< 和 >>好像不用,_crol_这些类的移位指令才要把

评分

参与人数 1威望 +15 黑币 +20 收起 理由
admin + 15 + 20 很给力!

查看全部评分

回复

使用道具 举报

7#
ID:64817 发表于 2014-8-28 21:15 | 只看该作者
又经过几天学习,找出自己以前出现的错误为什么流水灯不右移。  
{
        P2=~(1>>e--);//错误的,首先右移的第一位是0X80,也就是最右边小灯亮取反之前。这写为  P2=~(0X80>>1) ;e++;if(e==8)e=0;错误原因过于简单照搬左移程序。

yc50ms (1) ;
         }

评分

参与人数 1威望 +30 黑币 +20 收起 理由
admin + 30 + 20 很给力!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表