乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      51單片機50個例程代碼

       靜幻堂 2019-03-01
      51單片機50個例程代碼
      51單片機50個例程代碼

      程序里有中斷,串口等驅(qū)動,直接復制即可使用

      1-IO輸出-點亮1個LED燈方法1

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:點亮P1口的一個LED燈

      該程序是單片機學習中最簡單最基礎(chǔ)的,

      通過程序了解如何控制端口的高低電平

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,

      //頭文件包含特殊功能寄存器的定義

      sbit LED=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,

      //LED是自己任意定義且容易記憶的符號

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      //此方法使用bit位對單個端口賦值

      LED=1; //將P1.0口賦值 1,對外輸出高電平

      LED=0; //將P1.0口賦值 0,對外輸出低電平

      while (1) //主循環(huán)

      {

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      2-IO輸出-點亮1個LED燈方法2

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:點亮P1口的一個LED燈

      該程序是單片機學習中最簡單最基礎(chǔ)的,

      通過程序了解如何控制端口的高低電平

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,

      //頭文件包含特殊功能寄存器的定義

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      //此方法使用1個字節(jié)對單個端口賦值

      P1 = 0xFF; //P1口全部為高電平,對應(yīng)的LED燈全滅掉,

      //ff換算成二進制是 1111 1111

      P1 = 0xfe; //P1口的最低位點亮,可以更改數(shù)值是其他的燈點亮

      //0xfe是16進制,0x開頭表示16進制數(shù),

      //fe換算成二進制是 1111 1110

      while (1) //主循環(huán)

      {

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      3-IO輸出-點亮多個LED燈方法1

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:點亮P1口的多個LED燈

      該程序是單片機學習中最簡單最基礎(chǔ)的,

      通過程序了解如何控制端口的高低電平

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,

      //頭文件包含特殊功能寄存器的定義

      sbit LED0=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,

      sbit LED1=P1^1;//LED是自己任意定義且容易記憶的符號

      sbit LED2=P1^2;

      sbit LED3=P1^3;

      sbit LED4=P1^4;

      sbit LED5=P1^5;

      sbit LED6=P1^6;

      sbit LED7=P1^7;

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      //此方法使用bit位對單個端口賦值

      LED0=0; //將P1.0口賦值 0,對外輸出低電平

      LED1=1;

      LED2=0;

      LED3=1;

      LED4=0;

      LED5=1;

      LED6=0;

      LED7=1;

      while (1) //主循環(huán)

      {

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      4-IO輸出-點亮多個LED燈方法2

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:點亮P1口的多個LED燈

      該程序是單片機學習中最簡單最基礎(chǔ)的,

      通過程序了解如何控制端口的高低電平

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,

      //頭文件包含特殊功能寄存器的定義

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      //此方法使用bit位對單個端口賦值

      P1=0x55; //換成二進制是0101 0101

      while (1) //主循環(huán)

      {

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      5-閃爍1個LED

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:點亮P1口的1個LED燈閃爍

      該程序是單片機學習中最簡單最基礎(chǔ)的,

      通過程序了解如何控制端口的高低電平

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,

      //頭文件包含特殊功能寄存器的定義

      sbit LED0=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,

      //LED是自己任意定義且容易記憶的符號

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      //此方法使用bit位對單個端口賦值

      while (1) //主循環(huán)

      {

      LED0=0; //將P1.0口賦值 0,對外輸出低電平

      Delay(10000); //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;

      //用于改變閃爍頻率

      LED0=1; //將P1.0口賦值 1,對外輸出高電平

      Delay(10000);

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      6-不同頻率閃爍1個LED燈

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:點亮P1口的1個LED燈閃爍

      該程序是單片機學習中最簡單最基礎(chǔ)的,

      通過程序了解如何控制端口的高低電平

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,

      //頭文件包含特殊功能寄存器的定義

      sbit LED0=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,

      //LED是自己任意定義且容易記憶的符號

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      //此方法使用bit位對單個端口賦值

      unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

      while (1) //主循環(huán)

      {

      for(i=0;i<10;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行10次

      {

      LED0=0; //將P1.0口賦值 0,對外輸出低電平

      Delay(5000); //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;

      //用于改變閃爍頻率

      LED0=1; //將P1.0口賦值 1,對外輸出高電平

      Delay(5000);

      }

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

      {

      LED0=0; //將P1.0口賦值 0,對外輸出低電平

      Delay(60000); //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;

      //用于改變閃爍頻率

      LED0=1; //將P1.0口賦值 1,對外輸出高電平

      Delay(60000);

      }

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      7-不同頻率閃爍多個LED燈

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:點亮P1口的多個LED燈閃爍

      該程序是單片機學習中最簡單最基礎(chǔ)的,

      通過程序了解如何控制端口的高低電平

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

      sbit LED0=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,LED是自己任意定義且容易記憶的符號

      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 Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      //此方法使用bit位對單個端口賦值

      unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

      while (1) //主循環(huán)

      {

      for(i=0;i<10;i++) //加入 for循環(huán),表明for循環(huán)大括號中

      //的程序循環(huán)執(zhí)行10次

      {

      LED0=0; //將P1.0口賦值 0,對外輸出低電平

      LED2=1;

      LED4=0;

      Delay(5000); //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;

      //用于改變閃爍頻率

      LED0=1; //將P1.0口賦值 1,對外輸出高電平

      LED2=0;

      LED4=1;

      Delay(5000);

      }

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

      {

      LED0=0; //將P1.0口賦值 0,對外輸出低電平

      LED2=1;

      LED4=0;

      Delay(60000); //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;

      //用于改變閃爍頻率

      LED0=1; //將P1.0口賦值 1,對外輸出高電平

      LED2=0;

      LED4=1;

      Delay(60000);

      }

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      8-8位LED左移

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:左移,直至LED全部點亮,左移符號 <<

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

      Delay(50000);

      P1=0xfe; //賦初始值

      for(i=0;i<8;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次

      {

      Delay(50000);

      P1<<=1;

      }

      while (1) //主循環(huán)

      {

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      9-8位LED右移

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:右移,直至LED全部點亮,右移符號 >>

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

      Delay(50000);

      P1=0x7f; //賦初始值

      for(i=0;i<8;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次

      {

      Delay(50000);

      P1>>=1;

      }

      while (1) //主循環(huán)

      {

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      10-LED循環(huán)左移

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:循環(huán)左移,始終一個led點亮,并循環(huán)執(zhí)行流水動作,左移符號 << 邏輯或符號 |

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

      Delay(50000);

      P1=0xfe; //賦初始值

      while (1) //主循環(huán)

      {

      for(i=0;i<8;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次

      {

      Delay(50000);

      P1<<=1;

      P1=P1|0x01; //左移后,最右端自動賦值0,所以需要該語句賦值1

      }

      P1=0xfe; //重新賦初始值

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      11-LED循環(huán)右移

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:循環(huán)右移,始終一個led點亮,并循環(huán)執(zhí)行流水動作,右移符號 >> 邏輯或符號 |

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

      Delay(50000);

      P1=0x7f; //賦初始值

      while (1) , //主循環(huán)

      {

      for(i=0;i<8;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次

      {

      Delay(50000);

      P1>>=1;

      P1=P1|0x80; //右移后,最左端自動賦值0,所以需要該語句賦值1

      }

      P1=0x7f; //重新賦初始值

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      12-查表顯示LED燈

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:通過查表獲得1個字節(jié)的值然后賦值給P1端口,ROM允許情況可以設(shè)置更多表格

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

      /*------------------------------------------------

      查表表格

      ------------------------------------------------*/

      unsigned char code table[]={0x7f,0xbf,0xdf,0xef,

      0xf7,0xfb,0xfd,0xfe,

      0xff,0xff,0x00,0x00,

      0x55,0x55,0xaa,0xaa

      };

      //rom允許情況可以無限添加

      /*------------------------------------------------

      函數(shù)聲明

      ------------------------------------------------*/

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

      while (1) //主循環(huán)

      {

      for(i=0;i<16;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)

      //執(zhí)行16次,表明表格中有16個元素

      {

      P1=table[i];

      Delay(30000);

      }

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      13-雙燈左移右移閃爍

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:2個led燈先左移,然后右移,然后同時閃爍

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,

      //頭文件包含特殊功能寄存器的定義

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      unsigned char i; //定義一個無符號字符型局部變量 i

      //取值范圍 0~255

      unsigned char temp;//定義臨時變量用于轉(zhuǎn)換

      while (1) //主循環(huán)

      {

      temp=0xfc;

      P1=temp;

      for(i=0;i<7;i++) //加入 for循環(huán),表明for循環(huán)大括號

      //中的程序循環(huán)執(zhí)行7次

      {

      Delay(50000); //調(diào)用延時程序;更改延時數(shù)字可

      //以更改延時長度;用于改變閃爍頻率

      temp<<=1;

      temp=temp|0x01; //也可以直接把temp換成P1

      P1=temp; //之所以加入temp做中間變量,轉(zhuǎn)換

      //完成后直接賦值到端口,防止直接

      //操作端口造成的短暫閃爍

      }

      temp=0x3f;

      P1=temp;

      for(i=0;i<7;i++) //加入 for循環(huán),表明for循環(huán)大括號

      //中的程序循環(huán)執(zhí)行7次

      {

      Delay(50000); //調(diào)用延時程序;更改延時數(shù)字可以

      //更改延時長度;用于改變閃爍頻率

      temp>>=1;

      temp|=0x80; //等效于 temp=temp|0x80

      P1=temp;

      }

      for(i=0;i<3;i++) //加入 for循環(huán),表明for循環(huán)大括號

      //中的程序循環(huán)執(zhí)行3次

      {

      P1=0xff;

      Delay(50000);

      P1=0x00;

      Delay(50000);

      } //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      14-花樣燈

      /*-----------------------------------------------

      名稱:IO口高低電平控制

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:花樣燈一般有兩種方法實現(xiàn):

      1、程序循環(huán)執(zhí)行

      2、查表法

      這里我們兩種都使用一下

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

      /*------------------------------------------------

      花樣表格

      ------------------------------------------------*/

      unsigned char code seg[]={0x7f,0xbf,0xdf,0xef,

      0xf7,0xfb,0xfd,0xfe,

      0xff,0xff,0x00,0x00,

      0x55,0x55,0xaa,0xaa

      };//rom允許情況可以無限添加

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      main()

      {

      unsigned char i; //定義一個無符號字符型

      //局部變量 i 取值范圍 0~255

      while(1)

      {

      P1=0xFE; //第1個LED亮

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

      {

      Delay(20000);

      P1 <<=1;

      }

      P1=0x7F; //第8個LED亮

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

      {

      Delay(20000);

      P1 >>=1;

      }

      P1=0xFE; //第1個LED亮

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

      {

      Delay(20000);

      P1 <<=1;

      P1 |=0x01;

      }

      P1=0x7F; //第8個LED亮

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

      {

      Delay(20000);

      P1 >>=1;

      P1 |=0x80;

      }

      //下面通過查表方法獲得花樣參數(shù)

      for(i=0;i<16;i++)//查表可以簡單的顯示各種花樣 實用性更強

      {

      Delay(20000);

      P1=seg[i];

      }

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      15-PWM調(diào)光

      /*-----------------------------------------------

      名稱:PWM調(diào)光

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:通過PWM(脈寬調(diào)制)調(diào)節(jié)LED的亮度

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

      sbit LED0=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,LED是自己任意定義且容易記憶的符號

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      unsigned int CYCLE=600,PWM_LOW=0;//定義周期并賦值

      while (1) //主循環(huán)

      {

      LED0=1;

      Delay(60000); //特意加延時,可以看到熄滅的過程

      for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){ //PWM_LOW表示低

      //電平時間,這個循環(huán)中低電平時長從1累加到CYCLE(周期)的值,即600次

      LED0=0; //點亮LED

      Delay(PWM_LOW);//延時長度,600次循環(huán)中從1加至599

      LED0=1; //熄滅LED

      Delay(CYCLE-PWM_LOW);//延時長度,600次循環(huán)中從599減至1

      }

      LED0=0;

      for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){ //與逐漸變亮相反的過程

      LED0=0;

      Delay(PWM_LOW);

      LED0=1;

      Delay(CYCLE-PWM_LOW);

      }

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      16-共陽數(shù)碼管靜態(tài)顯示

      /*-----------------------------------------------

      名稱:單個共陽數(shù)碼管靜態(tài)顯示

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:通過賦值給P1,讓數(shù)碼管顯示特定的字符或者數(shù)字

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,

      //頭文件包含特殊功能寄存器的定義

      void main (void)

      {

      P1=0xc0; //二進制 為 1100 0000 參考數(shù)碼管排列,

      //可以得出0對應(yīng)的段點亮,1對應(yīng)的段熄滅,結(jié)果顯示數(shù)字"0"

      while(1)

      {

      }

      }

      17-1個共陽數(shù)碼管顯示變化數(shù)字

      /*-----------------------------------------------

      名稱:單個共陽數(shù)碼管動態(tài)顯示變化數(shù)字

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:通過循環(huán)賦值給P1,讓數(shù)碼管顯示特定的字符或者數(shù)字

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

      unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x77,0x7c,0x39,0x5e,0x79,0x71,};

      // 顯示數(shù)值表0-9

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

      while (1) //主循環(huán)

      {

      for(i=0;i<16;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行10次

      {

      P1=dofly_table[i]; //循環(huán)調(diào)用表中的數(shù)值

      Delay(60000); //延時,方便觀看數(shù)字變化

      }

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }/*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      18-單個數(shù)碼管模擬水流

      /*-----------------------------------------------

      名稱:單個共陽數(shù)碼管模擬水流

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:通過循環(huán)賦值給P1,讓數(shù)碼管顯示特定流動樣式

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,

      //頭文件包含特殊功能寄存器的定義

      void Delay(unsigned int t); //函數(shù)聲明

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

      while (1) //主循環(huán)

      {

      P1=0xfe;

      for(i=0;i<6;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行6次

      {

      Delay(10000);

      P1<<=1;

      P1|=0x01;

      }

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      /*------------------------------------------------

      延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

      unsigned int 是定義無符號整形變量,其值的范圍是

      0~65535

      ------------------------------------------------*/

      void Delay(unsigned int t)

      {

      while(--t);

      }

      19-按鍵控制單個數(shù)碼管顯示

      /*-----------------------------------------------

      名稱:單個共陽數(shù)碼管動態(tài)顯示變化數(shù)字

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:通過循環(huán)檢測P1口按鍵輸入值,然后用數(shù)碼管輸出,

      沒有按鍵按下時原值不變

      ------------------------------------------------*/

      #include<reg52.h> //包含頭文件,一般情況不需要改動,

      //頭文件包含特殊功能寄存器的定義

      unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,

      0x92,0x82,0xf8,0x80,0x90,};

      // 顯示數(shù)值表0-9

      /*------------------------------------------------

      主函數(shù)

      ------------------------------------------------*/

      void main (void)

      {

      while (1) //主循環(huán)

      {

      switch(P3) //P3口作為獨立按鍵輸入端,檢測端口電平并做如下判斷

      {

      case 0xfe:P1=dofly_table[1];break;//0xfe = 1111 1110,

      //說明連接在P3.0端口的按鍵被按下,顯示對應(yīng)的數(shù)字然后跳出循環(huán)

      case 0xfd:P1=dofly_table[2];break;//調(diào)用表中的第三個

      //元素 0xa4 下標 0 才表示數(shù)組中的第一個元素

      case 0xfb:P1=dofly_table[3];break;

      case 0xf7:P1=dofly_table[4];break;

      case 0xef:P1=dofly_table[5];break;

      case 0xdf:P1=dofly_table[6];break;

      case 0xbf:P1=dofly_table[7];break;

      case 0x7f:P1=dofly_table[8];break;

      default:break; //如果都沒按下,直接跳出

      }

      //主循環(huán)中添加其他需要一直工作的程序

      }

      }

      20-單個數(shù)碼管指示邏輯電平

      /*-----------------------------------------------

      名稱:單個共陽數(shù)碼管指示邏輯電平

      論壇:www.doflye.net

      編寫:shifang

      日期:2009.5

      修改:無

      內(nèi)容:通過循環(huán)檢測P3.2口電平輸入值,然后用數(shù)碼管輸出"H" or "L",

      表示該端口現(xiàn)在連接的是高電平還是低電平

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多