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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

51系列-C語言程序詳解

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年04月19日   【字體:

 1.單個(gè)LED燈,單個(gè)按鍵

//C語言的頭文件    //這是第一種注釋方式;

#include

#include <> //預(yù)處理命令

 void main(void)                //主函數(shù)名,必須有一個(gè)主函數(shù),void為數(shù)據(jù)類型

 {

 unsigned int a;           //定義變量,a為int類型,無符號(hào)整型。語句必須分號(hào)結(jié)尾

  

  do{                            //do-while 組成的循環(huán)過程,過程的開始

 for (a=0; a<500; a++);  //這是一個(gè)條件循環(huán),判斷a的值是否小于500,真循環(huán)-耗時(shí),假轉(zhuǎn)下句

P1_0 = 0;         //位賦值語句,設(shè) P1.0 口為低電平—置0,點(diǎn)亮 LED

for (a=0; a<500; a++);        //這又是一個(gè)判斷循環(huán)

P1_0 = 1;             //設(shè) P1.0 口為高電平,熄滅 LED

   }

 while(1);            //do-while 組成循環(huán)過程的末尾,需要對do的過程進(jìn)行一次判斷

}

 

程序說明:

While(條件語句) 與 for(條件語句) 單獨(dú)使用所表達(dá)的循環(huán),是在句首先執(zhí)行判斷,為真循環(huán),為假轉(zhuǎn)下一句執(zhí)行。其中語句的括號(hào)內(nèi)為判斷條件語句。

Do-while合用,是需要對do的過程再進(jìn)行一次判斷。While(條件語句)為真循環(huán),為假跳轉(zhuǎn)。while(1)表示高電平為真循環(huán)do,否則,低電平跳轉(zhuǎn)。由于P1.0 口為高電平結(jié)尾,因此,又回到do再循環(huán),無限反復(fù)。

 

2.多個(gè)LED燈,單個(gè)按鍵

#include

#include <> //預(yù)處理命令

 void main(void)                //主函數(shù)名,必須有一個(gè)主函數(shù),void為數(shù)據(jù)類型

 {

 unsigned int a;           //定義變量,a為int類型,無符號(hào)整型。語句必須分號(hào)結(jié)尾

    do{                            //do-while 組成的循環(huán)過程,過程的開始

 for (a=0; a<500; a++);  //這是一個(gè)條件循環(huán),判斷a的值是否小于500,真循環(huán)-耗時(shí),假轉(zhuǎn)下句

P1_0 = 0;         //位賦值語句,設(shè) P1.0 口為低電平—置0,點(diǎn)亮 LED

P1_1 = 0;

P1_2 = 0;

P1_3 = 0;

for (a=0; a<500; a++);        //這又是一個(gè)判斷循環(huán)

P1_0 = 1;             //設(shè) P1.0 口為高電平,熄滅 LED

P1_1 = 1;

P1_2 = 1;

P1_3 = 1;

   }

 while(1);            //do-while 組成循環(huán)過程的末尾,需要對do的過程進(jìn)行一次判斷

}

 

程序說明:

每個(gè)口用位賦值指令來開關(guān)P1口的各個(gè)LED。可以用字節(jié)賦值指令一次性的開關(guān)8位P1口LED。

P1=0;     //P1口8位置低電平,點(diǎn)亮8個(gè)LED

P1=1;      // P1口8位置低電平,關(guān)閉8個(gè)LED

 

#include

#include <> //預(yù)處理命令

 void main(void)                //主函數(shù)名,必須有一個(gè)主函數(shù),void為數(shù)據(jù)類型

 {

 unsigned int a;           //定義變量,a為int類型,無符號(hào)整型。語句必須分號(hào)結(jié)尾

    do{                            //do-while 組成的循環(huán)過程,過程的開始

 for (a=0; a<500; a++);  //這是一個(gè)條件循環(huán),判斷a的值是否小于500,真循環(huán)-耗時(shí),假轉(zhuǎn)下句

P1 = 0;         //字節(jié)賦值語句,設(shè) P1 口為低電平—置0,點(diǎn)亮 8個(gè)LED

for (a=0; a<500; a++);        //這又是一個(gè)判斷循環(huán)

P = 1;             //設(shè) P1 口為高電平,熄滅 LED

   }

 while(1);            //do-while 組成循環(huán)過程的末尾,需要對do的過程進(jìn)行一次判斷

}

 

 

l  LED循環(huán)問題(跑馬燈):

每個(gè)口用位賦值指令來開關(guān)P1口的各個(gè)LED,用位指令賦值順序開關(guān),實(shí)現(xiàn)跑馬燈。

 

#include

#include <> //預(yù)處理命令

 void main(void)                //主函數(shù)名,必須有一個(gè)主函數(shù),void為數(shù)據(jù)類型

 {

 unsigned int a;           //定義變量,a為int類型,無符號(hào)整型。語句必須分號(hào)結(jié)尾

    do{                            //do-while 組成的循環(huán)過程,過程的開始

 for (a=0; a<500; a++);  //這是一個(gè)條件循環(huán),判斷a的值是否小于500,真循環(huán)-耗時(shí),假轉(zhuǎn)下句

P1_0 = 0;         //位賦值語句,設(shè) P1.0 口為低電平—置0,點(diǎn)亮 LED

P1_1 = 1;

P1_2 = 1;

P1_3 = 1;

for (a=0; a<500; a++);        //這又是一個(gè)判斷循環(huán)

P1_0 = 1;             //設(shè) P1.0 口為高電平,熄滅 LED

P1_1 = 0;

P1_2 = 1;

P1_3 = 1;

 

for (a=0; a<500; a++);        //這又是一個(gè)判斷循環(huán)

P1_0 = 1; 

P1_1 = 1;

P1_2 = 0;

P1_3 = 1;

 

for (a=0; a<500; a++);        //這又是一個(gè)判斷循環(huán)

P1_0 = 1;

P1_1 = 1;

P1_2 = 1;

P1_3 = 0;

 

for (a=0; a<500; a++);        //這又是一個(gè)判斷循環(huán)

P1_0 = 1;             //設(shè) P1.0 口為高電平,熄滅 LED

P1_1 = 1;

P1_2 = 1;

P1_3 = 1;

 

   }

 while(1);            //do-while 組成循環(huán)過程的末尾,需要對do的過程進(jìn)行一次判斷

}

 

用循環(huán)語句實(shí)現(xiàn)跑馬燈,需要使用數(shù)組—表data。每個(gè)字節(jié)--8位來表達(dá)P1口各個(gè)位的電平高低,也就是亮與滅。

 

#include

#include <> //預(yù)處理命令

 void main(void)                //主函數(shù)名,必須有一個(gè)主函數(shù),void為數(shù)據(jù)類型

 {

 unsigned int a;           //定義變量,a為int類型,無符號(hào)整型。語句必須分號(hào)結(jié)尾

    do{                            //do-while 組成的循環(huán)過程,過程的開始

 for (a=0; a<500; a++);  //這是一個(gè)條件循環(huán),判斷a的值是否小于500,真循環(huán)-耗時(shí),假轉(zhuǎn)下句

P1 = 0;         //字節(jié)賦值語句,設(shè) P1 口為低電平—置0,點(diǎn)亮 8個(gè)LED

for (a=0; a<500; a++);        //這又是一個(gè)判斷循環(huán)

P = 1;             //設(shè) P1 口為高電平,熄滅 LED

   }

 while(1);            //do-while 組成循環(huán)過程的末尾,需要對do的過程進(jìn)行一次判斷

}

3.  鍵盤與數(shù)碼管
 

//鍵盤掃描法--數(shù)碼管顯示鍵值。行P1.0~3  列P1.4~7

#include

unsigned char code tabyin[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

        0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};//0到F的16個(gè)鍵值

unsigned char code tabyang[ ]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,

0x88,0x83,0xc6,0xa1,0x86,0x8e};//0到F的16個(gè)鍵值

//延時(shí)函數(shù)

void Delayt(unsigned char t)

{

unsigned char i;

for(t=0;i<=t;t++)

    for(i=0;i<255;i++);

}

//鍵值判斷函數(shù)

bit pkey(void)

{

P1=0xf0;

if(P1!=0xf0)

    {

    Delayt(25);

      if(P1!=0xf0)

      return 1;

      else

      return 0;

    }

else

      return 0;

}

 

//主函數(shù)

void main(void)

{

unsigned char key,j,k,s;

while(1)

  {

    if(pkey()==1)

    {

      P1=0xfe;

    k=0xfe;

      for(j=0;j<4;j++)

       { 

                  s=P1&0xf0;

        switch(s)

         {

            case 0xe0: key=4*j+0; break;

             case 0xd0: key=4*j+1; break;

              case 0xb0: key=4*j+2; break;

               case 0x70: key=4*j+3; break;

            default: break;

         }

       k=(k<<1)|0x01;

       P1=k;

      }

    }

  P2=0x00;

   P3=0xff;

      P3=tabyang[key];

       Delayt(200);

        P2=tabyin[key];

         Delayt(250);

 

  }

}

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 玖玖视频 | 精品www| 亚洲在线视频 | 国产欧美久久一区二区三区 | 婷婷综合五月天 | 国产精品精品视频一区二区三区 | 国产欧美一区二区久久性色99 | 91免费福利视频 | 黑人巨大精品欧美黑白配亚洲 | 91精品国产一区二区三区香蕉 | 国产精品久久久久久婷婷天堂 | 一区二区三区在线观看视频 | 亚洲精品视频免费看 | 一区二区在线免费观看视频 | 涩涩视频在线观看 | 国产成人啪免费观看软件 | 欧美一级全黄 | 日本视频免费观看 | 日日人人| 97色在线观看免费视频 | 久久高清| 午夜精品视频在线观看 | 国产7777| 久操伊人| 中文字幕国产视频 | 日本特黄a级高清免费大片 特黄色一级毛片 | 日韩精品在线免费 | 久久久精品视频免费看 | 人成在线视频 | 成人午夜影院 | 波多野结衣中文视频 | 亚洲区一区二 | 一区二区视频免费观看 | 丝袜久久 | 精品国产乱码久久久久久图片 | 影音先锋中文字幕在线观看 | 日韩免费网站 | 欧美日韩亚洲视频 | 欧美第一区 | 理论片午午伦夜理片影院 | 国产人成精品一区二区三 |