久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 19974|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

學(xué)習(xí)單片機(jī)的13個(gè)經(jīng)典實(shí)例

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:17888 發(fā)表于 2017-6-3 18:32 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
學(xué)習(xí)單片機(jī),
//實(shí)例1:用單片機(jī)控制第一個(gè)燈亮


#include<reg51.h>  //包含51單片機(jī)寄存器定義的頭文件
void main(void)
  {
    P1=0xfe; //P1=1111 1110B,即P1.0輸出低電平
  }
//實(shí)例2:用單片機(jī)控制一個(gè)燈閃爍:認(rèn)識單片機(jī)的工作頻率


#include<reg51.h>    //包含單片機(jī)寄存器的頭文件
/                                       
函數(shù)功能:延時(shí)一段時(shí)間
                                         /
void delay(void)        //兩個(gè)void意思分別為無需返回值,沒有參數(shù)傳遞
{
  unsigned int i;       //定義無符號整數(shù),最大取值范圍65535
  for(i=0;i<20000;i++)  //20000次空循環(huán)
        ;               //什么也不做,等待一個(gè)機(jī)器周期
}
/                                                      
函數(shù)功能:主函數(shù) C語言規(guī)定必須有也只能有1個(gè)主函數(shù))
                                                        /
void main(void)
{
  while(1)      //無限循環(huán)
   {
          P1=0xfe;   //P1=1111 1110B, P1.0輸出低電平
          delay();   //延時(shí)一段時(shí)間
          P1=0xff;   //P1=1111 1111B, P1.0輸出高電平
          delay();  //延時(shí)一段時(shí)間
         }
}


//實(shí)例3:將 P1口狀態(tài)分別送入P0、P2、P3口:認(rèn)識I/O口的引腳功能
#include<reg51.h>   //包含單片機(jī)寄存器的頭文件
/                                                      
函數(shù)功能:主函數(shù) C語言規(guī)定必須有也只能有1個(gè)主函數(shù))
                                                        /

void main(void)
{
    while(1)                   //無限循環(huán)
          {         
                 P1=0xff;        // P1=1111 1111B,熄滅LED
            P0=P1;                // P1口狀態(tài)送入P0
                 P2=P1;                 // P1口狀態(tài)送入P2
       P3=P1;                 // P1口狀態(tài)送入P3
          }
}


//實(shí)例4:使用P3口流水點(diǎn)亮8LED
#include<reg51.h>   //包含單片機(jī)寄存器的頭文件
/                                       
函數(shù)功能:延時(shí)一段時(shí)間
                                         /

void delay(void)
   {
          unsigned char i,j;
           for(i=0;i<250;i++)
                 for(j=0;j<250;j++)                  
                   ;
          }
/                                                      
函數(shù)功能:主函數(shù)
                                                        /
void main(void)
{
   while(1)
          {
                   P3=0xfe;   //第一個(gè)燈亮
                         delay();   //調(diào)用延時(shí)函數(shù)
                         P3=0xfd;   //第二個(gè)燈亮
                         delay();   //調(diào)用延時(shí)函數(shù)
                        P3=0xfb;   //第三個(gè)燈亮
                         delay();   //調(diào)用延時(shí)函數(shù)
                        P3=0xf7;   //第四個(gè)燈亮
                         delay();   //調(diào)用延時(shí)函數(shù)
                        P3=0xef;   //第五個(gè)燈亮
                   delay();   //調(diào)用延時(shí)函數(shù)
                        P3=0xdf;   //第六個(gè)燈亮
                    delay();   //調(diào)用延時(shí)函數(shù)
                        P3=0xbf;   //第七個(gè)燈亮
                   delay();   //調(diào)用延時(shí)函數(shù)
                        P3=0x7f;   //第八個(gè)燈亮
                   delay();   //調(diào)用延時(shí)函數(shù)  
         }

}

             //實(shí)例7:通過對P3口地址的操作流水點(diǎn)亮8LED
#include<reg51.h>   //包含單片機(jī)寄存器的頭文件
sfr x=0xb0;   //P3口在存儲器中的地址是b0H, 通過sfr可定義8051內(nèi)核單片機(jī)
          //的所有內(nèi)部8位特殊功能寄存器,對地址x的操作也就是對P1口的操作
/                                       
函數(shù)功能:延時(shí)一段時(shí)間
                                         /
void delay(void)
   {
          unsigned char i,j;
           for(i=0;i<250;i++)
                 for(j=0;j<250;j++)                 
                   ;   //利用循環(huán)等待若干機(jī)器周期,從而延時(shí)一段時(shí)間
          }
/                                         
函數(shù)功能:主函數(shù)
                                          /
void main(void)
{
    while(1)
          {
                    x=0xfe;   //第一個(gè)燈亮
                         delay();  //調(diào)用延時(shí)函數(shù)
                          x=0xfd;  //第二個(gè)燈亮
                         delay();  //調(diào)用延時(shí)函數(shù)
                         x=0xfb;  //第三個(gè)燈亮
                         delay();  //調(diào)用延時(shí)函數(shù)
                         x=0xf7;  //第四個(gè)燈亮
                         delay();  //調(diào)用延時(shí)函數(shù)
                        x=0xef;   //第五個(gè)燈亮
                   delay();  //調(diào)用延時(shí)函數(shù)
                        x=0xdf;   //第六個(gè)燈亮
                    delay();  //調(diào)用延時(shí)函數(shù)
                        x=0xbf;   //第七個(gè)燈亮
                   delay();  //調(diào)用延時(shí)函數(shù)
                        x=0x7f;   //第八個(gè)燈亮
                   delay();  //調(diào)用延時(shí)函數(shù)   
        }

}

        //實(shí)例8:用不同數(shù)據(jù)類型控制燈閃爍時(shí)間
#include<reg51.h>   //包含單片機(jī)寄存器的頭文件
/                                                      
函數(shù)功能:用整形數(shù)據(jù)延時(shí)一段時(shí)間
                                                      /
void int_delay(void) //延時(shí)一段較長的時(shí)間
{
  unsigned int m;    //定義無符號整形變量,雙字節(jié)數(shù)據(jù),值域?yàn)?/font>0~65535
  for(m=0;m<36000;m++)
                         ;          //空操作      
}
/                                                      
函數(shù)功能:用字符型數(shù)據(jù)延時(shí)一段時(shí)間
                                                      /
void char_delay(void) //延時(shí)一段較短的時(shí)間
{
   unsigned char i,j;   //定義無符號字符型變量,單字節(jié)數(shù)據(jù),值域0~255
        for(i=0;i<200;i++)
          for(j=0;j<180;j++)
                           ;        //空操作
}
/                                                      
函數(shù)功能:主函數(shù)
                                                      /
void main(void)  
{
  unsigned char i;
  while(1)
        {
          for(i=0;i<3;i++)
                 {
             P1=0xfe;     //P1.0口的燈點(diǎn)亮
                  int_delay(); //延時(shí)一段較長的時(shí)間
                  P1=0xff;     //熄滅
                  int_delay(); //延時(shí)一段較長的時(shí)間
                 }
     for(i=0;i<3;i++)
                 {
             P1=0xef;     //P1.4口的燈點(diǎn)亮
                  char_delay(); //延時(shí)一段較長的時(shí)間
                  P1=0xff;     //熄滅
                  char_delay(); //延時(shí)一段較長的時(shí)間
                 }         

          }

}



//實(shí)例9:用P0口、P1 口分別顯示加法和減法運(yùn)算結(jié)果
#include<reg51.h>
void main(void)   
{  
  unsigned char m,n;
  m=43;     //即十進(jìn)制數(shù)2x16+11=43
  n=60;     //即十進(jìn)制數(shù)3x16+12=60
  P1=m+n;  //P1=103=0110 0111B,結(jié)果P1.3、P1.4P1.7 口的燈被點(diǎn)亮
  P0=n-m;  //P0=17=0001 0001B,結(jié)果P0.0、P0.4的燈被熄滅
}




//實(shí)例10:用P0、P1口顯示乘法運(yùn)算結(jié)果
#include<reg51.h> //包含單片機(jī)寄存器的頭文件
void main(void)  
{
  unsigned char m,n;
  unsigned int s;
  m=64;
  n=71;
  s=m n;       //s=64 71=4544,需要16位二進(jìn)制數(shù)表示,高8位送P1口,低8位送P0
               //由于4544=17 256+192=H3 16 16 16+H2 16 16+H1 16+H0
                                        //兩邊同除以256,可得17+192/256=H3 16+H2+H1 16+H0/256
                                        //因此,高816進(jìn)制數(shù)H3 16+H2必然等于17,即4544除以256的商
                                        //816進(jìn)制數(shù)H1 16+H0必然等于192,即4544除以256的余數(shù)

  P1=s/256;     //8位送P1口 ,P1=17=11H=0001 0001B, P1.0P1.4口滅,其余亮
  P0=s%256;     //8位送P0, P3=192=c0H=1100 0000B,P3.1,P3.6,P3.7口滅,其余亮
}


//實(shí)例11:用P1P0口顯示除法運(yùn)算結(jié)果
#include<reg51.h>   //包含單片機(jī)寄存器的頭文件
void main(void)  
{
  P1=36/5;          //求整數(shù)
  P0=((36%5) 10)/5; //求小數(shù)
  while(1)         
    ;              //無限循環(huán)防止程序“跑飛”
}




//實(shí)例12:用自增運(yùn)算控制P08LED流水花樣
#include<reg51.h>   //包含單片機(jī)寄存器的頭文件
/                                                      
函數(shù)功能:延時(shí)一段時(shí)間
                                                      /
void delay(void)
{
   unsigned int i;   
        for(i=0;i<20000;i++)
            ;
}
/                                                      
函數(shù)功能:主函數(shù)
                                                      /
void main(void)  
{
  unsigned char i;
  for(i=0;i<255;i++)  //注意i的值不能超過255
   {
          P0=i;    //i的值送P0
          delay(); //調(diào)用延時(shí)函數(shù)
        }
}



//實(shí)例13:用P0口顯示邏輯""運(yùn)算結(jié)果
#include<reg51.h>   //包含單片機(jī)寄存器的頭文件
void main(void)  
{
  P0=(4>0)&&(9>0xab);//將邏輯運(yùn)算結(jié)果送P0
  while(1)
    ;    //設(shè)置無限循環(huán),防止程序“跑飛”

評分

參與人數(shù) 2黑幣 +10 收起 理由
羅景衡 + 5 共享資料的黑幣獎(jiǎng)勵(lì)!
259654 + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美男人亚洲天堂 | 国产精品自产拍 | 欧美日韩综合 | 日韩av中文 | 在线播放第一页 | 亚洲国产在 | 中文字幕在线观看一区 | 拍拍无遮挡人做人爱视频免费观看 | 一区二区三区欧美 | 欧美成人a∨高清免费观看 91伊人 | av中文网| 久热免费| 一区二区三区免费 | av大全在线观看 | 成人免费av | 国产在线精品一区二区三区 | 国产人成精品一区二区三 | 成人欧美一区二区三区黑人孕妇 | 99免费在线视频 | 国产精品久久性 | 国产免费色 | 中文二区 | 中国一级特黄真人毛片免费观看 | 91一区二区| 欧美三区 | 91精品久久久久久久久99蜜臂 | 91av在线免费 | 精品国产一区二区国模嫣然 | 一本色道精品久久一区二区三区 | 精品久久久久久久久久久 | 欧美aⅴ | 男女羞羞视频在线免费观看 | 一区二区三区国产好的精 | 爱爱视频日本 | 久草综合在线视频 | 国产精品久久久久久影院8一贰佰 | 色婷婷精品国产一区二区三区 | 一区二区三区影院 | 国精品一区 | 精品不卡| 免费啪啪|