美文网首页
51单片机day1

51单片机day1

作者: 暖熊熊 | 来源:发表于2017-12-21 12:00 被阅读0次

    用位操作和总线操作两种方法完成以下题目

    1.熟练建立KEIL工程

    2.点亮第一个发光管

    总线操作
    #include <reg52.h>
    #include <intrins.h>
    void main()
    {
        P1=0xFE;    //让P1口的最低位为0
    }
    
    位操作
    #include <reg52.h>
    #include <intrins.h>
    sbit led = P1^0;
    void main()
    {
        led=0;  //让led为0,第一个发光二极管亮
    }
    

    3.点亮最后一个发光管

    总线操作
    #include <reg52.h>
    #include <intrins.h>
    void main()
    {
        P1=0x7F;    //让P1口的最高位为0
    }
    
    位操作
    #include <reg52.h>
    #include <intrins.h>
    sbit led = P1^7;
    void main()
    {
        led=0;  //让led为0,最后一个发光二极管亮
    }
    

    4.点亮1、3、5、7

    总线操作
    #include <reg52.h>
    #include <intrins.h>
    void main()
    {
        P1=0xAA;    //1010 1010
    }
    
    位操作
    #include <reg52.h>
    #include <intrins.h>
    sbit led1 = P1^7;
    void main()
    {
        led=0;  //让led为0,最后一个发光二极管亮
    }
    

    5.点亮二、四、五、六

    总线操作
    #include <reg52.h>
    #include <intrins.h>
    void main()
    {
        P1=0xC5;    //1100 0101
    }
    
    位操作
    #include <reg52.h>
    #include <intrins.h>
    sbit led1 = P1^0;
    sbit led3 = P1^2;
    sbit led5 = P1^4;
    sbit led7 = P1^6;
    void main()
    {
        led1=0; 
        led3=0; 
        led4=0; 
        led7=0; 
    }
    

    6.尝试让第一个发光管闪烁

    总线操作
    #include <reg52.h>
    #include <intrins.h>
    #define uint unsigned int
    uint i,j;
    void main()
    {
        while(1){
            P1=0xFE;
            for(i=200;i>0;i--)
                for(j=110;j>0;j--);
            P1=0xFF;
            for(i=1000;i>0;i--)
                for(j=110;j>0;j--);
        }
    }
    
    位操作
    #include <reg52.h>
    #include <intrins.h>
    #define uint unsigned int
    sbit led1 = P1^0;
    uint i,j;
    void main()
    {
        while(1){
            led1=0;
            for(i=1000;i>0;i--)
                for(j=110;j>0;j--);
            led1=1;
            for(i=1000;i>0;i--)
                for(j=110;j>0;j--);
        }
    }
    

    7.尝试设计出流水灯程序

    电路图
    总线操作
    #include <reg52.h>
    #include <intrins.h>
    #define uint unsigned int
    #define uchar unsigned char
    
    void delayms(uint xms);
    
    void main()
    {
        uchar data1 = 0xFE;
        while(1)
        {
            data1 = _crol_(data1,1);
            P1=data1;
            
            delayms(1000);
        }
    }
    
    void delayms(uint xms)
    { 
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
    }
    
    位操作
    #include <reg52.h>
    #include <intrins.h>
    #define uint unsigned int
    
    sbit led0 = P1^0;
    sbit led1 = P1^1;
    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 delayms(uint xms);
    
    void main()
    {
        while(1)
        {
            led7=1;
            led0=0;
            delayms(1000);
            led0=1; 
            led1=0;
            delayms(1000);
            led1=1; 
            led2=0;
            delayms(1000);
            led2=1; 
            led3=0;
            delayms(1000);
            led3=1; 
            led4=0;
            delayms(1000);
            led4=1; 
            led5=0;
            delayms(1000);
            led5=1; 
            led6=0;
            delayms(1000);
            led6=1; 
            led7=0;
            delayms(1000);
        }
    }
    
    void delayms(uint xms)
    { 
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
    }
    

    相关文章

      网友评论

          本文标题:51单片机day1

          本文链接:https://www.haomeiwen.com/subject/gnwowxtx.html