zoukankan      html  css  js  c++  java
  • 流水灯

    #include<reg52.h>
    sbit  led1=P1^0;  //将P1口的第一位赋值给sbit 型的变量led1
    void main(){
        while(1){   //使表达式始终为真
            led1=0;  //将P1口的第一位置零 ,即电路连通,点亮第一个发光二级管
                    }
    }
    流水灯就是使二极管一会亮,一会暗从而产生闪烁的效果
    二极管高电平时灭,低电平时亮,程序如下
    #include<reg52.h>
    sbit  led1=P1^0;  //将P1口的第一位赋值给sbit 型的变量led1
    void main(){
    unsigned int a;
        a=5000;             //数据随便定义
        while(1){         //使表达式始终为真
            led1=0;       //将P1口的第一位置零 ,即电路连通,点亮第一个发光二级管
            while(a--);   //做延迟使用
            a=5000;
            led1=1;       //将P1口的第一位置1 ,即电路断开,熄灭第一个发光二级管
            while(a--);   //做延迟
            a=5000;
                    }
    }
    第一个二极管就闪烁了
    为了方便调用,我们可以写一个延时的函数
    如下:
    void delay(){
        unsigned int  a;
        a=10000;
            while(a--);    
    }
    或者
    void   delay(){
        unsigned  int  x,y;
        for(x=100;x>0;x--)
            for(y=100;y>0;y--)
            {};
    }
    我们也可以给延时函数加上参数,由我们自己来控制亮灭的时间
    void   delay(unsigned  int  x, unsigned  int  y){
        for(x=100;x>0;x--)
            for(y=100;y>0;y--)
            {};
    }
    第一个的亮灭我们已经搞定,接下来的也很easy了,只要调用函数,多写几个,流水灯就出来了
    我的流水灯如下
    #include<reg52.h>
    #define uint unsigned int             //宏定义
    #define uchar unsigned char       //宏定义
    sbit led1=P1^0;
    sbit led2=P1^1;
    sbit led3=P1^2;
    sbit led4=P1^3;
    sbit led5=P1^4;
    sbit led6=P1^5;
    sbit led7=P1^6;
    sbit led8=P1^7;
    void delay();
    void main (){
            
          while(1) {
              led1=0;
              delay();
              led1=1;
              led2=0;
              delay();
              led2=1;
              led3=0;
              delay();
              led3=1;
              led4=0;
              delay();
              led4=1;
              led5=0;
              delay();
              led5=1;
              led6=0;
              delay();
              led6=1;
              led7=0;
              delay();
              led7=1;
              led8=0;
              delay();
              led8=1;

                  }
        
    }
    void  delay(){
        uint x,y;
        for(x=100;x>0;x--)
            for(y=100;y>0;y--)    
                {};    

    }
    看上去很长,其实很简单,都是一些重复性的工作
    当然对于做流水灯,我们也可以调用c 库里的函数_crol_()
    语法:
    #include <intrins.h>

    unsigned char _crol_ (
      unsigned char c,        /* character to rotate left */
      unsigned char b);       /* bit positions to rotate */


    _crol_(char  a,2)
    即将一个字符型变量循环左移2位
    char  a,b;
    a=cxA5;   //10100101
    b=_crol_(a,3);  //左移三位 ,多出的三位补到右边
    b=0X2D ;   //00101101
    由此函数可得流水灯如下

    #include<reg52.h>
    #include<intrins.h>
    #define uint unsigned int             //宏定义
    #define uchar unsigned char       //宏定义
    void delay();
    void main(){
        unsigned char a;
        a=0xFE;
        P1=a;
        delay();
        P1=_crol_(P1,1);
        delay();
        P1=_crol_(P1,1);
        delay();
        P1=_crol_(P1,1);
        delay();
        P1=_crol_(P1,1);
        delay();
        P1=_crol_(P1,1);
        delay();
        P1=_crol_(P1,1);
        delay();
        P1=_crol_(P1,1);
        delay();
    }
    void  delay(){
        uint x,y;
        for(x=100;x>0;x--)
            for(y=100;y>0;y--)    
                {};    

    }
    流水灯完成
    带参数的延时函数
    void delay(unsigned int time){
            unsigned int   j,i;
            for(j=time;j>0;j--)
                for(i=115;i>0;i--);
            }
    当time为1时,延时1毫秒。当time为500时延时500毫秒。当time为1000时,延时1秒

  • 相关阅读:
    java-信息安全(十)-签名002-数字签名算法DSA
    java-信息安全(九)-https002-基于DH,非对称加密,对称加密等理解
    java-信息安全(八)-密钥交换/协商机制、迪菲-赫尔曼(DH)密钥交换
    java-信息安全(七)-https001-基于非对称加密,对称加密等理解
    java-信息安全(六)-签名001-基于RSA理解数字签名示例
    java-信息安全(四)-非对称加密算法001-RSA
    java-信息安全(五)-数据签名、数字证书
    java-信息安全(三)-PBE加密算法
    java-信息安全(二)-对称加密算法工作模式ECB,CBC,CRT、DES,3DES,AES,Blowfish,RC2,RC4
    信息安全(一)-编码算法【base64编码、base58编码】、哈希算法【MD、sha、RipeMD-XX、hamc】
  • 原文地址:https://www.cnblogs.com/tuteng/p/2943312.html
Copyright © 2011-2022 走看看