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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 19883|回復(fù): 0
收起左側(cè)

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

[復(fù)制鏈接]
ID:17888 發(fā)表于 2017-6-3 18:32 | 顯示全部樓層 |閱讀模式
學(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)識(shí)單片機(jī)的工作頻率


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


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

void main(void)
{
    while(1)                   //無(wú)限循環(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:通過(guò)對(duì)P3口地址的操作流水點(diǎn)亮8LED
#include<reg51.h>   //包含單片機(jī)寄存器的頭文件
sfr x=0xb0;   //P3口在存儲(chǔ)器中的地址是b0H, 通過(guò)sfr可定義8051內(nèi)核單片機(jī)
          //的所有內(nèi)部8位特殊功能寄存器,對(duì)地址x的操作也就是對(duì)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í)一段較長(zhǎng)的時(shí)間
{
  unsigned int m;    //定義無(wú)符號(hào)整形變量,雙字節(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;   //定義無(wú)符號(hào)字符型變量,單字節(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í)一段較長(zhǎng)的時(shí)間
                  P1=0xff;     //熄滅
                  int_delay(); //延時(shí)一段較長(zhǎng)的時(shí)間
                 }
     for(i=0;i<3;i++)
                 {
             P1=0xef;     //P1.4口的燈點(diǎn)亮
                  char_delay(); //延時(shí)一段較長(zhǎng)的時(shí)間
                  P1=0xff;     //熄滅
                  char_delay(); //延時(shí)一段較長(zhǎng)的時(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.3P1.4P1.7 口的燈被點(diǎn)亮
  P0=n-m;  //P0=17=0001 0001B,結(jié)果P0.0P0.4的燈被熄滅
}




//實(shí)例10:用P0P1口顯示乘法運(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)         
    ;              //無(wú)限循環(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的值不能超過(guò)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è)置無(wú)限循環(huán),防止程序“跑飛”

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91成人在线视频 | 男女羞羞视频在线看 | 天天艹| 精品久久久久一区二区国产 | 精品国产精品一区二区夜夜嗨 | 国产一区二区三区免费观看在线 | 精品综合久久久 | 国产午夜精品久久久 | 综合久久久| 国产中文字幕亚洲 | 欧产日产国产精品视频 | 欧美成人精品一区二区男人看 | 三级视频久久 | 中文字幕一区二区三区在线观看 | 国产福利在线 | 日韩成人在线观看 | 国产精品乱码一区二区三区 | 99精品一区二区三区 | 看一级毛片 | 青娱乐国产 | 国产精品呻吟久久av凹凸 | 婷婷成人在线 | 亚洲iv一区二区三区 | 久久精品国产一区二区电影 | 亚洲一区视频在线 | 黄网址在线观看 | 国产成人小视频 | 一本一道久久a久久精品综合蜜臀 | 国产精品久久av | 日韩1区2区 | 国产精品美女久久久久久免费 | 欧美黄在线观看 | 国产精彩视频在线观看 | 日韩一区二区福利视频 | 久久专区| 日韩精品在线看 | 欧美日韩高清在线观看 | 日韩视频专区 | 福利影院在线看 | 国产日韩欧美 | 亚洲视频在线观看 |