找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2449|回复: 2
收起左侧

流水灯右移

[复制链接]
ID:64817 发表于 2014-8-16 14:59 | 显示全部楼层 |阅读模式
高手大神,我是个初学者,,我看了视频后,能编写左移流水灯,但右移怎么也移动不了,老师们指点一二,谢
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:63656 发表于 2014-9-16 13:01 | 显示全部楼层
#include "reg52.h"
typedef unsigned int uint16;
typedef unsigned char uint8;

void delay(void)
        {
                uint16 i;
                for(i = 10000;i > 0;i--);
        }

void main(void)
        {
                uint8 d,k;
                P0 = 0xff;
               
                while(1)
                {         
                        d = 0x7f;//0111 1111
                        for(k = 0;k < 8;k++)
                        {
                                P0 = d;
                                delay();
                                d = (d>>1)|0x80;
                        }
                }
        }
回复

使用道具 举报

ID:73463 发表于 2015-3-10 16:19 | 显示全部楼层
void main()
{unsigned int i=0;
unsigned char cnt=0;
{ P0=~(0x80>>cnt);
cnt++;
if (cnt>=8)
{cnt=0;}
}
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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