zoukankan      html  css  js  c++  java
  • LED类代码

     
    /*
     led.c文件
    标题: 点亮一个了LED灯
    电路:开发板中P2口已接到LED灯的阴极
    
    */
    
    
    #include <reg52.h>
    #include "led1.h"
    
    void led1(){
        //设置P2.0口为低电平,连接到该口的LED灯点亮
        //0xfe ====   1111 1110
        P2 = 0xfe;
    }
    
    
    //led1.h的文件
    
    #ifndef _LED1_H_
    #define _LED1_H_
    
    void led1();
    
    #endif
    /*
         .c文件
    标题: 闪烁的LED灯
    电路:开发板中P2口已接到LED灯的阴极
    */
    
    
    #include <reg52.h>
    #include "led2.h"
    #include "sys.h"
    
    void led2(){
        int i;
        while(1){
            //设置P2.0口为低电平,连接到该口的LED灯点亮
            //0xfe ====   1111 1110
            P2 = 0xfe;
            for(i=0;i<10000;i++);//延时一段时间
            P2 = 0xff;
            for(i=0;i<10000;i++);//延时一段时间
        }
        
        
    }
    
    //      .h文件
    
    #ifndef _LED2_H_
    #define _LED2_H_
    
    void led2();
    
    #endif
    /*
    .c文件
    标题: 流水灯
    电路:开发板中P2口已接到LED灯的阴极
    */
    
    
    #include "led3.h"
    
    static unsigned char coded[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
    static void fun1();
    static void fun2();
    static void fun3();
    
    void led3(){
            fun3();
    }
    
    //使用数组的方式
    void fun1(){
        
        int i;
        while(1){
            for(i=0;i<8;i++){
                P2 = coded[i];
                delay();
            }
            for(i=6;i>=0;i--){
                P2 = coded[i];
                delay();
            }
        }
    }
    
    
    //使用指针的方式
    void fun2(){
        int i;
        while(1){
            for(i=0;i<8;i++){
                P2 = *(coded+i);
                delay();
            }
            for(i=7;i>=0;i--){
                P2 = *(coded+i);
                delay();
            }
        }
    }
    
    
    //使用位移运算
    void fun3(){
        unsigned char i;
        unsigned char state = 0xfe;
        while(1){
            state = 0xfe;
            P2 = state;
            delay();
            for(i=0;i<7;i++){
                state = (state<<1)|0x01;
                P2 = state;
                delay();
            }
            for(i=0;i<7;i++){
                state = (state >> 1)|0x80;
                P2 = state;
                delay();
            }
        }
    }
    
    //   .h文件
    #ifndef _LED3_H_
    #define _LED3_H_
    #include <reg52.h>
    #include "sys.h"
    
    void led3();
    #endif
  • 相关阅读:
    element的导航栏修改其选中时颜色的问题
    如何设置element的时间选择器,当日后面的时间无法选中
    Mybatis3配置详解
    mybatis-generator mybatis逆向生成
    Oracle中Thin和OCI的区别
    Jetbrains系列之Phpstorm使用sftp远程开发线上项目
    Thinkphp6.0文档部分摘抄
    linux + 宝塔 + thinkphp5.0 搭建后端api各种问题集合
    Oracle用户,角色和权限
    CentOS7.6 安装 Oracle19c
  • 原文地址:https://www.cnblogs.com/kinson/p/6838062.html
Copyright © 2011-2022 走看看