欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4051|回復: 0
打印 上一主題 下一主題
收起左側

單片機流水燈三種不同方法源程序(位運算+庫函數+字符型數組)

[復制鏈接]
跳轉到指定樓層
樓主
ID:416551 發表于 2018-10-28 08:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
流水燈程序(位運算):
  1. #include <REGX51.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. unsigned char i;
  5. unsigned char temp;
  6. void Delayms(unsigned int ms)
  7. {
  8.    unsigned int i,j;
  9.    for(i=0;i<ms;i++)
  10.    for(j=0;j<120;j++);
  11. }
  12. void main(void)
  13. {
  14.    while(1)
  15.    {
  16.       temp = 0x01;           //0x01=0000 0001
  17.           for(i=1;i<8;i++)
  18.           {
  19.                   P2=~temp;           //P2=1111 1110  對temp取反,保證每次循環只亮一個燈
  20.                   temp=temp<<1;                //按位左移,高位丟棄,低位補0
  21.                   Delayms(200);
  22.           }
  23.           for(i=1;i<8;i++)
  24.           {
  25.                   P2=~temp;        
  26.                   temp=temp>>1;  //按位右移,高位補0,低位丟棄
  27.                   Delayms(200);
  28.           }
  29.    }
  30. }
復制代碼


流水燈代碼(庫函數):
  1. #include <REGX51.H>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. void Delayms(uint ms)
  6. {
  7.    uchar t;
  8.    while(ms--)
  9.    {
  10.       for(t=0;t<120;t++);
  11.    }
  12. }

  13. void main()
  14. {
  15.    uchar i,j;
  16.    P2 = 0xfe;
  17.    while(1)
  18.    {
  19.       for(i=0;i<7;i++)
  20.           {
  21.                  P2 = _crol_(P2,1);         //P1端口向左循環移動一位
  22.                  Delayms(300);
  23.           }
  24.           for(j=0;j<7;j++)
  25.           {
  26.             P2 = _cror_(P2,1);        //P1端口向右循環移動一位
  27.                 Delayms(300);
  28.           }
  29.    }
  30. }
復制代碼


流水燈(字符型數組):

  1. #include <REGX51.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code Pattern_P2[] =
  5. {
  6.    0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f
  7. };
  8. void Delayms(uint ms)
  9. {
  10.    uchar t;
  11.    while(ms--)
  12.    {
  13.       for(t=0;t<120;t++);
  14.    }
  15. }
  16. int main()
  17. {
  18.    uchar i;
  19.    while(1)
  20.    {
  21.       for(i=0;i<8;i++)
  22.           {
  23.              P2=Pattern_P2[i];
  24.                  Delayms(200);
  25.           }
  26.           for(i=8;i--;i>0)
  27.           {
  28.              P2=Pattern_P2[i];
  29.                  Delayms(200);
  30.           }
  31.    }
  32. }
復制代碼


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表