普中 51單片機 實驗代碼【不斷更新】


先點亮一個LED小燈

#include "reg52.h"
sbit led = P2^0;
void main(){
    while(1){
        led = 0;
    }
}

 

 

點亮一個LED    帶有 延時函數   x是幾,就延時幾秒

#include <reg52.h>
#define uint unsigned int
sbit led = P2^0;
void sleep(uint);
void main(){
    led = 0;
    sleep(1);
    led = 1;
    sleep(1);
    P2 =   0xf0; //11110000    后四個全亮 然后滅
    sleep(1);
    P2 = 0xff;   //若采用二進制 11111111 會出錯
    sleep(1);
}
void sleep(uint x){
    uint i,j;
    for(i = x * 1000;i>0;i--)
    for(j = 110;j>0;j--);
}

 

 

 

流水燈

#include <reg52.h>
#include <intrins.h>  //包含_crol_ 函數的頭文件

#define uint unsigned int
#define uchar unsigned char

void sleep(uint);

uchar aa; //賦值用

void main(){
    aa = 0xfe;//11111110
    while(1){
        P2 = aa;
        sleep(500);//延時500ms
        aa = _crol_(aa,1);   //左移 _crol__   右移 _cror_

    }
}

void sleep(uint x){
    uint i,j;
    for(i = x * 1;i>0;i--)
    for(j = 110;j>0;j--);
}

 

 

 

循環 流水燈 ————>  左移到頭然后右移,右移到頭繼續左移

#include <reg52.h>
#include <intrins.h>  //包含_crol_   _cror_ 函數的頭文件

#define uint unsigned int
#define uchar unsigned char

void sleep(uint);

uchar aa; //賦值用

void main(){
    uint i = 0;
    aa = 0xfe;//11111110
    while(1){
         if(i < 7){
              P2 = aa;
             sleep(500);//延時500ms
             aa = _crol_(aa,1);
             i++;
         }else{
             P2 = aa;
             sleep(500);//延時500ms
             aa = _cror_(aa,1);
              i++;
            if(i == 14){
                i = 0;
            }
         }
    }
}

void sleep(uint x){
    uint i,j;
    for(i = x * 1;i>0;i--)
    for(j = 110;j>0;j--);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM