找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 10279|回复: 45
打印 上一主题 下一主题
收起左侧

谁能给我给个流水灯程序

  [复制链接]
跳转到指定楼层
#
ID:150178 发表于 2016-11-25 17:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
谁有啊给我发个呗
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

45#
ID:197464 发表于 2017-5-6 20:17 | 只看该作者
#include<reg52.h>                                                      //包含特殊功能寄存器定义的头文件
                                                                                          


sbit ADDR0 = P1^0;                                                          //位地址声明,注意:sbit必须小写,P必须大写

sbit ADDR1 = P1^1;

sbit ADDR2 = P1^2;

sbit ADDR3 = P1^3;

sbit ENLED = P1^4;



int main(void)

{
                                                         
        unsigned char cnt1 = 0;                                              //定义一个字符型变量cnt1,并初始赋值0

        unsigned char cnt2 = 0;                                          //定义一个字符型变量cnt2,并初始赋值0

        unsigned int i = 0;                                                 //定义无符号整型变量i,并初始赋值0



        ENLED = 0;                                                                   // 使能3-8译码器

        ADDR3 = 1;

        ADDR2 = 1;                                        // 开启8盏小灯总开关

        ADDR1 = 1;

        ADDR0 = 0;



        while(1)                                   //主循环,程序无限循环执行该循环体语句

        {

                P0 = ~(0x01 << cnt1);                       // P0等于1左移cnt位,控制8个LED灯,P0等于1时二进制是0b00000001,然后取反变成0b11111110,8个小灯以此类推

                for (i=0; i<30000; i++);                           //软件延时
                                                                                           //移位计数变量自加1
                cnt1++;

            
                if(cnt1 >= 8)                                                  //移位计数超过7次后,再重新从0开始
            {

               for (cnt2=0; cnt2<=7; ++cnt2)       // 实现从左向右移动
                                                                                         
                        {

                                 P0 = ~(0x80 >> cnt2);                   //P0等于0x80右移cnt位,控制8个LED灯,P0等于80时二进制是0b10000000,然后取反变成0b01111111,8个小灯以此类推

                                 for (i=0; i<30000; i++);           //软件延时
                                                                                          
                                                                                          
                                 if(cnt2 >= 7)                                   //移位计数超过6次后,再重新从0开始

                                  {

                                        cnt1 = 0;                                   //移位计数cnt1等于0时,开始循环

                                  }

                         }

                  }

                cnt2 = 0;                                                          //移位计数cnt2等于0时,重新开始程序循环

        }



        return 0;                                                          //返回住函数

}
回复

举报

44#
ID:197445 发表于 2017-5-6 19:24 | 只看该作者

#include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器
#include<intrins.h>                //因为要用到左右移函数,所以加入这个头文件

typedef unsigned int u16;          //对数据类型进行声明定义
typedef unsigned char u8;

#define led P2           //将P2口定义为led 后面就可以使用led代替P2口

/*******************************************************************************
* 函 数 名         : delay
* 函数功能                   : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
        while(i--);       
}

/*******************************************************************************
* 函 数 名       : main
* 函数功能                 : 主函数
* 输    入       : 无
* 输    出             : 无
*******************************************************************************/
void main()
{
        u8 i;
        led=0xfe;
        delay(50000); //大约延时450ms       
        while(1)
        {       
/*                for(i=0;i<8;i++)
                {
                        P2=~(0x01<<i);         //将1右移i位,然后将结果取反赋值到P2口
                        delay(50000); //大约延时450ms
                }
*/               
                for(i=0;i<7;i++)         //将led左移一位
                {
                        led=_crol_(led,1);
                        delay(50000); //大约延时450ms       
                }
                for(i=0;i<7;i++)        //将led右移一位
                {
                        led=_cror_(led,1);
                        delay(50000); //大约延时450ms       
                }       
        }               
}
回复

举报

43#
ID:197393 发表于 2017-5-6 16:59 | 只看该作者

/*---------------------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,
                  //头文件包含特殊功能寄存器的定义
/*-------------------------IO口定义----------------------------*/
sbit P20 = P2^0;//这是为了关闭开发板上的数码管实际应用去掉
sbit P21 = P2^1;//这是为了关闭开发板上的数码管实际应用去掉
sbit CS88 = P2^2;//这是为了关闭开发板上的点阵实际应用去掉

sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,
sbit LED1=P1^1;//LED是自己任意定义且容易记忆的符号
sbit LED2=P1^2;
sbit LED3=P1^3;
sbit LED4=P1^4;
sbit LED5=P1^5;
sbit LED6=P1^6;
sbit LED7=P1^7;
/*------------------------------------------------
                    主函数
------------------------------------------------*/
void main (void)
{
        P1=0x00;//这是为了关闭开发板上的数码管实际应用去掉
        P20=0; //这是为了关闭开发板上的数码管实际应用去掉
        P21=0; //这是为了关闭开发板上的数码管实际应用去掉
        CS88=0; //这是为了关闭开发板上的点阵实际应用去掉
        P1=0xFF;//P1口置1

                  //此方法使用bit位对单个端口赋值
LED0=0;            //将P1.0口赋值 0,对外输出低电平
LED1=1;
LED2=0;
LED3=1;
LED4=0;
LED5=1;
LED6=0;
LED7=1;
while (1)         //主循环
  {
                  //主循环中添加其他需要一直工作的程序
  }
}
回复

举报

42#
ID:197362 发表于 2017-5-6 16:07 | 只看该作者
用FPGA做的
回复

举报

41#
ID:197136 发表于 2017-5-6 15:27 | 只看该作者
这个网上很多吧
回复

举报

40#
ID:197324 发表于 2017-5-6 15:16 | 只看该作者
这个网上一大把
回复

举报

39#
ID:153108 发表于 2017-5-6 13:54 | 只看该作者
网上好多的
回复

举报

38#
ID:162242 发表于 2017-5-6 13:09 | 只看该作者
#include <reg52.h>11
回复

举报

37#
ID:162242 发表于 2017-5-6 13:06 | 只看该作者
#include <reg52.h>
回复

举报

36#
ID:197179 发表于 2017-5-6 09:03 | 只看该作者
#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intvoid delay(uint z);main(){ uchar aa; while(1){ aa=0xfe;P1=aa;delay(100);
回复

举报

35#
ID:196174 发表于 2017-5-6 00:01 | 只看该作者
这个在别的帖子里有文件可以直接下载
回复

举报

34#
ID:197119 发表于 2017-5-5 22:54 | 只看该作者
#在这里快速回复##include <reg52.h>
回复

举报

33#
ID:184914 发表于 2017-5-5 22:52 | 只看该作者
#include <reg52.h>   #include<intrins.h> #define uchar unsigned char #define uint unsigned int uchar b=0x01; void delay(uchar  x) {     uchar a;     while(x--)      {              for(a=0;a<120;a++);       } }  void main() {   while(1)    {         P0=b;      delay(50);       b=_crol_(b,1);      } }
回复

举报

32#
ID:110456 发表于 2017-5-5 22:51 | 只看该作者
#include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int  void DelayMS(uint x) {          uchar i;         while(x--)         {                  for(i=120;i>0;i--);         } }  void main() {          P0 = 0xFE;         while(1)         {                  P0 = _crol_(P0,1);    // _crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回                  DelayMS(150);         } }
回复

举报

31#
ID:165787 发表于 2017-2-21 18:25 | 只看该作者
#include<reg52.h>
int a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//上至下
int b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//下至上
int c[]={0x7e,0xbd,0xdb,0xe7};//边至中
int d[]={0xe7,0xdb,0xbd,0x7e};//中至边
void delay(int);
void main()
{
        int i,j;
        while(1){
        for(i=1;i<4;i++)
        {
                P1=0xaa;
                delay(400);
                P1=0x55;
                delay(400);
        }
        for(j=0;j<3;j++)
         {
                        for(i=0;i<8;i++)
                        {
                                P1=a[i];
                                delay(20);
                                //P1=0xff;
                                //delay(20);
                        }
                        for(i=0;i<8;i++)
                        {
                                P1=b[i];
                                delay(20);
                                //P1=0xff;
                                //delay(20);
                        }
   }
         for(i=0;i<3;i++)
         {
                 for(j=0;j<4;j++)
                 {
                         P1=c[j];
                         delay(100);
                        // P1=0xff;
                        // delay(100);
     }
   }
         for(i=0;i<3;i++)
         {
                 for(j=0;j<4;j++)
                 {
                         P1=d[j];
                         delay(100);
                         //P1=0xff;
                         //delay(100);
     }
   }
         for(i=1;i<4;i++)
         {
                 P1=0x00;
                 delay(100);
                 P1=0xff;
                 delay(100);
   }
}
}
void delay(int z)
{
        int i,j;
        for(i=100;i>0;i--)
                for(j=z;j>0;j--);
}
回复

举报

30#
ID:165787 发表于 2017-2-21 18:24 | 只看该作者
#include<reg52.h>
int a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//上至下
int b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//下至上
int c[]={0x7e,0xbd,0xdb,0xe7};//边至中
int d[]={0xe7,0xdb,0xbd,0x7e};//中至边
void delay(int);
void main()
{
        int i,j;
        while(1){
        for(i=1;i<4;i++)
        {
                P1=0xaa;
                delay(400);
                P1=0x55;
                delay(400);
        }
        for(j=0;j<3;j++)
         {
                        for(i=0;i<8;i++)
                        {
                                P1=a[i];
                                delay(20);
                                //P1=0xff;
                                //delay(20);
                        }
                        for(i=0;i<8;i++)
                        {
                                P1=b[i];
                                delay(20);
                                //P1=0xff;
                                //delay(20);
                        }
   }
         for(i=0;i<3;i++)
         {
                 for(j=0;j<4;j++)
                 {
                         P1=c[j];
                         delay(100);
                        // P1=0xff;
                        // delay(100);
     }
   }
         for(i=0;i<3;i++)
         {
                 for(j=0;j<4;j++)
                 {
                         P1=d[j];
                         delay(100);
                         //P1=0xff;
                         //delay(100);
     }
   }
         for(i=1;i<4;i++)
         {
                 P1=0x00;
                 delay(100);
                 P1=0xff;
                 delay(100);
   }
}
}
void delay(int z)
{
        int i,j;
        for(i=100;i>0;i--)
                for(j=z;j>0;j--);
}
回复

举报

29#
ID:165787 发表于 2017-2-21 18:16 | 只看该作者
#include<reg52.h>
int a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//上至下
int b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//下至上
int c[]={0x7e,0xbd,0xdb,0xe7};//边至中
int d[]={0xe7,0xdb,0xbd,0x7e};//中至边
void delay(int);
void main()
{
        int i,j;
        while(1){
        for(i=1;i<4;i++)
        {
                P1=0xaa;
                delay(400);
                P1=0x55;
                delay(400);
        }
        for(j=0;j<3;j++)
         {
                        for(i=0;i<8;i++)
                        {
                                P1=a[i];
                                delay(20);
                                //P1=0xff;
                                //delay(20);
                        }
                        for(i=0;i<8;i++)
                        {
                                P1=b[i];
                                delay(20);
                                //P1=0xff;
                                //delay(20);
                        }
   }
         for(i=0;i<3;i++)
         {
                 for(j=0;j<4;j++)
                 {
                         P1=c[j];
                         delay(100);
                        // P1=0xff;
                        // delay(100);
     }
   }
         for(i=0;i<3;i++)
         {
                 for(j=0;j<4;j++)
                 {
                         P1=d[j];
                         delay(100);
                         //P1=0xff;
                         //delay(100);
     }
   }
         for(i=1;i<4;i++)
         {
                 P1=0x00;
                 delay(100);
                 P1=0xff;
                 delay(100);
   }
}
}
void delay(int z)
{
        int i,j;
        for(i=100;i>0;i--)
                for(j=z;j>0;j--);
}
回复

举报

28#
ID:165595 发表于 2017-2-21 18:01 | 只看该作者
这个网上一大片哦! 一般教程都是从点灯开始的
回复

举报

27#
ID:129201 发表于 2017-2-21 14:44 | 只看该作者
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay1ms(uint);
void main()
{
   while(1)
{
    uchar a;
    a=0xfe;
    P0=a;
    a=_crol_(a,1);
    delay1ms(500);
  }
}
void delay1ms(uint m)
{
  uint i,j;
  for(i=0;i<m;i++)
  foe(j=0;j<110;j++);
}
   
回复

举报

26#
ID:155120 发表于 2017-2-19 17:00 | 只看该作者
百度一下,一大片。朋友
回复

举报

25#
ID:165292 发表于 2017-2-18 20:05 | 只看该作者
百度,就有啊,在这里等回复太慢了
回复

举报

24#
ID:44573 发表于 2017-2-18 08:19 | 只看该作者
#include<reg52.h>
int a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//上至下
int b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//下至上
int c[]={0x7e,0xbd,0xdb,0xe7};//边至中
int d[]={0xe7,0xdb,0xbd,0x7e};//中至边
void delay(int);
void main()
{
        int i,j;
        while(1){
        for(i=1;i<4;i++)
        {
                P1=0xaa;
                delay(400);
                P1=0x55;
                delay(400);
        }
        for(j=0;j<3;j++)
         {
                        for(i=0;i<8;i++)
                        {
                                P1=a[i];
                                delay(20);
                                //P1=0xff;
                                //delay(20);
                        }
                        for(i=0;i<8;i++)
                        {
                                P1=b[i];
                                delay(20);
                                //P1=0xff;
                                //delay(20);
                        }
   }
         for(i=0;i<3;i++)
         {
                 for(j=0;j<4;j++)
                 {
                         P1=c[j];
                         delay(100);
                        // P1=0xff;
                        // delay(100);
     }
   }
         for(i=0;i<3;i++)
         {
                 for(j=0;j<4;j++)
                 {
                         P1=d[j];
                         delay(100);
                         //P1=0xff;
                         //delay(100);
     }
   }
         for(i=1;i<4;i++)
         {
                 P1=0x00;
                 delay(100);
                 P1=0xff;
                 delay(100);
   }
}
}
void delay(int z)
{
        int i,j;
        for(i=100;i>0;i--)
                for(j=z;j>0;j--);
}
回复

举报

23#
ID:165180 发表于 2017-2-17 22:00 | 只看该作者
这个很多啊,网上随便收收
回复

举报

22#
ID:150178 发表于 2017-2-17 07:49 来自触屏版 | 只看该作者
qi_dianzikeji 发表于 2016-12-9 21:59
#include #include #define uint unsigned int #define uchar unsigned char uchar t1,t2,s; void delayms( ...

谢谢,很有帮助
回复

举报

21#
ID:150178 发表于 2017-2-17 07:49 来自触屏版 | 只看该作者
1131014564 发表于 2016-12-9 20:28
#include
#include
#define uint unsigned int

谢谢啦正在学51
回复

举报

20#
ID:160452 发表于 2017-1-6 15:59 | 只看该作者
#include <reg51.h> #include<intrins.h> #define uchar unsigned char uchar j,temp; void delay(unsigned int ms) { uchar t; while(ms--) for(t=0;t<123;t++); } void main() { P1=0xff; delay(500); temp=0xfe; //有点怪,led接在P2.3~P2.6 for(j=0;j<4;j++) { P1=temp; delay(500); temp=_crol_(temp,1); } P1=0xff; while(1); }
回复

举报

19#
ID:160258 发表于 2017-1-6 14:58 | 只看该作者
仿真程序的实例中就有 你自己仔细找找
回复

举报

18#
ID:140489 发表于 2017-1-6 14:28 | 只看该作者
多种流水灯
#include<reg52.h>  
#include<intrins.h>  
#define uint unsigned int  
#define uchar unsigned char  
void delays(uint xms)  
{  
    uint i,j;  
    for(i=xms;i>0;i--)  
       for(j=110;j>0;j--);  
}  
void main()  
{  
     uint i,j,n; uchar a,b,c,d;   
     for(i=0;i<1;i++)       //                                                               所有灯闪1下  
     {  
         P0=P1=P2=P3=0x00;delays(1000);  
         P0=P1=P2=P3=0xff;delays(1000);  
     }                        
                       P3=P2=0xff;                                                        //两边一起向下流水  
                       for(j=0;j<=8;j++)  
                       {  
                           P1=0xff<<j;P0=0xff<<j;delays(40);  
                       }  
                       for(j=0;j<=8;j++)  
                       {  
                           P3=0xff<<j; P2=0xff>>j;delays(40);  
                       }  
                       P0=P1=P2=P3=0x00;delays(500);  
                       for(j=0;j<8;j++)  
                       {P3=0xff<<(7-j);P2=0xff>>(7-j);delays(40);  
                       }  
                      for(j=0;j<8;j++)  
                       {  
                           P0=0xff<<(7-j);P1=0xff<<(7-j);delays(40);  
                       }                                 
                                    P3=P2=0xff;           //两边 杂乱 闪烁  
                                    for(j=0;j<=8;j++)  
                                    {P1=0xff<<j; P0=0xff<<j; delays(40);  
                                    }  
                                    for(j=0;j<=8;j++)  
                                    {P3=0xff>>j;P2=0xff<<j; delays(40);  
                                    }  
                                    P0=P1=P2=P3=0x00;delays(500);  
                                    for(j=0;j<8;j++)  
                                    {P1=0xff>>(7-j);P0=0xff>>(7-j);delays(40);  
                                    }  
                                    for(j=0;j<8;j++)  
                                    {P2=0xff>>(7-j);P3=0xff<<(7-j);delays(40);  
                                    }                                   
        P0=P1=P2=P3=0xff;    //一边向下流水  
        for(j=0;j<=8;j++)  
        { P1=0xff<<j;delays(30);  
        }        
        for(j=0;j<=8;j++)  
        {  
              P3=0xff<<j;delays(30);  
        }  
        for(j=0;j<=8;j++)  
        {  
              P2=0xff<<j;delays(30);  
        }  
        for(j=0;j<=8;j++)  
        {  
              P0=0xff>>j;delays(30);  
        }   
        P0=P1=P2=P3=0x00;  
        delays(500)  ;  
        for(j=0;j<8;j++)  
        {   
              P0=0xff>>(7-j);delays(30);  
        }  
        for(j=0;j<8;j++)  
        {   
              P2=0xff<<(7-j);delays(30);  
        }  
        for(j=0;j<8;j++)  
        {   
              P3=0xff<<(7-j);delays(30);  
        }  
        for(j=0;j<8;j++)  
        {   
              P1=0xff<<(7-j);delays(30);  
        }  
        P0=P1=P2=P3=0xff;  
        for(j=0;j<=8;j++)  
        {  
              P0=0xff<<j; delays(30);  
        }        
        for(j=0;j<=8;j++)  
        {  
              P2=0xff>>j; delays(30);  
        }  
        for(j=0;j<=8;j++)  
        {  
              P3=0xff>>j;delays(30);  
        }  
        for(j=0;j<=8;j++)  
        {  
              P1=0xff>>j;delays(30);  
        }   
        P0=P1=P2=P3=0x00;  
        delays(500)  ;  
        for(j=0;j<8;j++)  
        {   
              P1=0xff>>(7-j);delays(30);  
        }  
        for(j=0;j<8;j++)  
        {   
              P3=0xff>>(7-j);delays(30);  
        }  
        for(j=0;j<8;j++)  
        {   
              P2=0xff>>(7-j);delays(30);  
        }  
        for(j=0;j<8;j++)  
        {   
              P0=0xff<<(7-j);delays(30);  
        }  //2   
                                     P0=P2=P3=0xff ;  
                       for(i=0;i<=8;i++)  
         {   P1=0xff<<i;delays(50);  
         } delays(800);  
         for(i=0;i<8;i++)  
         {   P1=0xff>>(7-i);delays(50);  
         }  P0=P1=P2=0xff;  
              for(i=0;i<=8;i++)  
              {  P3=0xff<<i;delays(50);  
              }   delays(800);  
              for(i=0;i<8;i++)  
              {   P3=0xff>>(7-i);delays(50);  
              }P0=P1=P3=0xff;   
         for(i=0;i<=8;i++)  
         {  P2=0xff<<i;delays(50);  
                                       }   delays(800);  
         for(i=0;i<8;i++)  
                                       {   P2=0xff>>(7-i);delays(50);  
                                       } P1=P2=P3=0xff;  
              for(i=0;i<=8;i++)  
              {  P0=0xff>>i;delays(50);  
              }      delays(800);  
              for(i=0;i<8;i++)  
              {  P0=0xff<<(7-i);delays(50);  
              }   
        P2=P3=0xff;for(i=0;i<=8;i++)  
                   {  
         P0=0xff<<i;P1=0xff<<i;delays(50);  
    }delays(800);  
    for(i=0;i<8;i++)  
    {  
         P0=0xff>>(7-i);P1=0xff>>(7-i);delays(50);      
    }P0=P1=0xff;  
         for(i=0;i<=8;i++)  
         {  
             P3=0xff<<i;P2=0xff>>i;delays(50);  
         }delays(800);  
         for(i=0;i<8;i++)  
         {  
             P3=0xff>>(7-i);P2=0xff<<(7-i);delays(50);  
         }  
         for(i=0;i<3;i++)  
         {  
             P1=P3=P2=0xcc;P0=0x33;delays(500);P1=P3=P2=0x33;P0=0xcc;delays(500);  
         }  
                          P1=P3=P2=0xcc;   P0=0x33;           //首先逆时针  
                                                        for(i=0;i<120;i++)  
                                                        {      
                                                               delays(100);P0=_cror_(P0,1);P1=_crol_(P1,1);P3=_crol_(P3,1);P2=_crol_(P2,1);  
                                                        }  
                                                        delays(1500) ;  
                                                        for(i=0;i<120;i++)  
                                                        {      
                                                               delays(100); P0=_crol_(P0,1);P1=_cror_(P1,1);P3=_cror_(P3,1);P2=_cror_(P2,1);  
                                                         } delays(1000);  
    P1=P3=P2=0x0f;   P0=0xf0;           //首先逆时针  
    for(i=0;i<80;i++)  
     {      
        delays(120);P0=_cror_(P0,1);P1=_crol_(P1,1);P3=_crol_(P3,1);P2=_crol_(P2,1);  
     }  
     delays(1500) ;  
      for(i=0;i<80;i++)  
     {      
        delays(120); P0=_crol_(P0,1);P1=_cror_(P1,1);P3=_cror_(P3,1);P2=_cror_(P2,1);  
     }   
                P1=P3=P0=0x77;P2=0xee;  
                for(i=0;i<50;i++)    //四口来回转  
                {      
                        delays(100);P0=_crol_(P0,1);P1=_crol_(P1,1);P3=_crol_(P3,1);P2=_cror_(P2,1);  
                }      
  P0=P3=0xff;P1=P2=0xfe;  
                        for(i=0;i<8;i++)  
         {      delays(30);  
                P1=_crol_(P1,1);P2=_crol_(P2,1);   
         }P1=P2=0xff;P3=0xfe;P0=0x7f;  
         for(i=0;i<8;i++)  
         {      delays(30);  
                P3=_crol_(P3,1);P0=_cror_(P0,1);  
         }P0=0xfe;P3=0x7f;a=0x7f;  b=0xfe;  
      for(j=1;j<8;j++)  
      {  c=0xff<<j;d=0xff>>j;  
         P1=P2=0xfe;  
                        for(i=0;i<=7;i++)  
         {      delays(30);  
                P1=_crol_(P1,1);P2=_crol_(P2,1);  
         }P1=P2=0xff;                 
                                                      for(i=0;i<7;i++)  
                                                      {      
                P0=a&c;P3=b&d;delays(30);  
                                                             a=_cror_(a,1);b=_crol_(b,1);                                                                  
                                                      }  
       } P0=P3=0x00;b=0xfe;  
     for(j=1;j<8;j++)  
     {  d=0xff>>j;  
           for(i=0;i<7;i++)  
           {  
              P1=b&d;P2=b&d;delays(30);b=_crol_(b,1);  
           }            
     }  
  n=2;     while(n)  
          {  
             P1=P2=P3=0x7f;P0=0xfe;  
             for(i=0;i<7;i++)  
             {   delays(100);P1=_cror_(P1,1);P2=_cror_(P2,1);P3=_cror_(P3,1);P0=_crol_(P0,1);  
             } delays(100);  
             c=0xfe;d=0x7f;a=0x7f;b=0xfe;   
            for(j=0;j<9;j++)  
            {                 
               for(i=0;i<=8;i++)  
               {   
                  P1=P2=P3=c&a;P0=b&d;delays(100);  
   a=_cror_(a,1);b=_crol_(b,1);                     
               } c=_cror_(c,1);d=_crol_(d,1); a=c;b=d;  
            }n--;  
          }  
                                     P3=P2=0xff;        //两边一起向下亮  
                                     for(j=0;j<=8;j++)  
                                     {  
                                           P1=0xff<<j;P0=0xff<<j;delays(40);  
                                     }  
                                     for(j=0;j<=8;j++)  
                                     {  
                                           P3=0xff<<j; P2=0xff>>j;delays(40);  
                                     }  
while(1)                                                       //一心调频率接近的跳动  
{  
    P0=P1=P2=P3=0x00;delays(800);  
    P0=P1=P2=P3=0xff;delays(800);  
}   
}  
回复

举报

17#
ID:155240 发表于 2016-12-16 13:19 | 只看该作者
这个简单
回复

举报

16#
ID:155215 发表于 2016-12-16 11:12 | 只看该作者
我可以
回复

举报

15#
ID:155213 发表于 2016-12-16 11:08 | 只看该作者
网上一搜一大把
回复

举报

14#
ID:154486 发表于 2016-12-15 20:40 | 只看该作者
这么普遍的程序,你没有书吗哼╭(╯^╰)╮
回复

举报

13#
ID:153846 发表于 2016-12-14 22:43 | 只看该作者
开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。  程序A:  ;用最直接的方式实现流水灯   ORG 0000H   START:MOV P1,#01111111B      最下面的LED点亮   LCALL DELAY;延时1秒   MOV P1,#10111111B            最下面第二个的LED点亮   LCALL DELAY;延时1秒   MOV P1,#11011111B            最下面第三个的LED点亮 (以下省略)  LCALL DELAY  MOV P1,#11101111B   LCALL DELAY  MOV P1,#11110111B   LCALL DELAY  MOV P1,#11111011B   LCALL DELAY  MOV P1,#11111101B   LCALL DELAY  MOV P1,#11111110B   LCALL DELAY   MOV P1,#11111111B              完成第一次循环点亮,延时约0.25秒   AJMP START                    反复循环 ;延时子程序,12M晶振延时约250毫秒  DELAY: MOV R4,#2 L3: MOV R2 ,#250 L1: MOV R3 ,#250 L2: DJNZ R3 ,L2  DJNZ R2 ,L1 DJNZ R4 ,L3   RET  END 程序B:  ;用移位方式实现流水灯    org 00h    程序上电从00h开始              require.async(['wkcommon:widget/ui/lib/sio/sio.js'], function(sio) { var url = 'https://cpro.baidustatic.com/cpro/ui/c.js'; sio.callByBrowser( url, function () { BAIDU_CLB_fillSlotAsync('u2398768','cpro_u2398768'); } ); });             void function(e,t){for(var n=t.getElementsByTagName("img"),a=+new Date,i=[],o=function(){this.removeEventListener&&this.removeEventListener("load",o,!1),i.push({img:this,time:+new Date})},s=0;s< n.length;s++)!function(){var e=n[s];e.addEventListener?!e.complete&&e.addEventListener("load",o,!1):e.attachEvent&&e.attachEvent("onreadystatechange",function(){"complete"==e.readyState&&o.call(e,o)})}();alog("speed.set",{fsItems:i,fs:a})}(window,document);     ajmp main  跳转到主程序 org 0030h    主程序起始地址  main:  mov a,#0feh  给A赋值成11111110  loop:   mov p1,a  将A送到P1口,发光二极管低电平点亮  lcall delay  调用延时子程序 rl a    累加器A循环左移一位 ajmp loop 重新送P1显示  delay:  mov r3,#20  最外层循环二十次  d1:  mov r4,#80  次外层循环八十次  d2:  mov r5,#250  最内层循环250次 djnz r5,$  总共延时2us*250*80*20=0.8S  djnz r4,d2 djnz r3,d1  ret end
回复

举报

12#
ID:154526 发表于 2016-12-13 21:49 | 只看该作者
//主函数,C语言的入口函数:       
void main(void)
{
        P2=0XFE;
        while(1){                                //无限循环
                P2=(P2<<1)|(P2>>7);        //P2口值左循环移1位,也可利用函数库"intrins.h"中的_crol_(),
                delay(50);                        //调用延时子函数,改变参数大小,调整变化速度
        }
}

//延时子函数
void delay(unsigned char tmp)//双重循环减,如改用INT型,将会达到更长的延时时间
{
        unsigned char j;
        while(tmp--){
                j=255;
                while(j--);
        }
}
回复

举报

11#
ID:153881 发表于 2016-12-11 15:54 | 只看该作者
int i;
for(i=0;i<8;i++)
     PORTA=1<<i;
for(i=7;i>=2;i--)
     PORTA=1<<i;     
回复

举报

10#
ID:153790 发表于 2016-12-11 11:06 | 只看该作者
网上挺多的啊,
回复

举报

9#
ID:153755 发表于 2016-12-10 23:16 | 只看该作者
论坛有的亲。多学习视频
回复

举报

8#
ID:153755 发表于 2016-12-10 23:14 | 只看该作者
论坛太多教程。请多看教程和视频
回复

举报

7#
ID:153393 发表于 2016-12-9 22:15 | 只看该作者
#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intvoid delay(uint z);main(){ uchar aa; while(1){ aa=0xfe;P1=aa;delay(100);while(1){aa=_crol_(aa,1);P1=aa;delay(100);}}}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}
回复

举报

6#
ID:150555 发表于 2016-12-9 22:11 | 只看该作者
#include<reg52.h>
int a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//上至下
int b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//下至上
int c[]={0x7e,0xbd,0xdb,0xe7};//边至中
int d[]={0xe7,0xdb,0xbd,0x7e};//中至边
void delay(int);
void main()
{
        int i,j;
        while(1){
        for(i=1;i<4;i++)
        {
                P1=0xaa;
                delay(400);
                P1=0x55;
                delay(400);
        }
        for(j=0;j<3;j++)
         {
                        for(i=0;i<8;i++)
                        {
                                P1=a[i];
                                delay(20);
                                //P1=0xff;
                                //delay(20);
                        }
                        for(i=0;i<8;i++)
                        {
                                P1=b[i];
                                delay(20);
                                //P1=0xff;
                                //delay(20);
                        }
   }
         for(i=0;i<3;i++)
         {
                 for(j=0;j<4;j++)
                 {
                         P1=c[j];
                         delay(100);
                        // P1=0xff;
                        // delay(100);
     }
   }
         for(i=0;i<3;i++)
         {
                 for(j=0;j<4;j++)
                 {
                         P1=d[j];
                         delay(100);
                         //P1=0xff;
                         //delay(100);
     }
   }
         for(i=1;i<4;i++)
         {
                 P1=0x00;
                 delay(100);
                 P1=0xff;
                 delay(100);
   }
}
}
void delay(int z)
{
        int i,j;
        for(i=100;i>0;i--)
                for(j=z;j>0;j--);
}
回复

举报

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

本版积分规则

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

Powered by 单片机教程网

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