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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

04 開關(guān)按鍵控制類單片機(jī)系統(tǒng)(proteus仿真+keil5)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:628491 發(fā)表于 2019-12-16 10:02 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機(jī)仿真實習(xí)任務(wù):
04 開關(guān)按鍵控制類單片機(jī)系統(tǒng)


  1. /**************************
  2. * 說明: 按鍵被按下時led燈滅
  3. **************************/
  4. #include <reg52.h>
  5. #define uint unsigned int
  6. #define uchar unsigned char
  7. //定義按鍵端口
  8. sbit key1 = P2^0;
  9. sbit key2 = P2^1;
  10. sbit key3 = P2^2;
  11. sbit key4 = P2^3;
  12. sbit key5 = P2^4;
  13. sbit key6 = P2^5;
  14. sbit key7 = P2^6;
  15. sbit key8 = P2^7;


  16. #define led P1        //對整個P2端口進(jìn)行操作

  17. /*        延時函數(shù)                */
  18. void delay(unsigned int del)         //10ms * del
  19. {
  20.         unsigned int i,j;
  21.         for(i=0; i<del; i++)
  22.         for(j=0; j<1827; j++);      

  23. }

  24. void  Led_Pipeline_1() //先從右到左逐個亮滅;再從左到右逐個亮滅;
  25. {
  26.         unsigned  char i;       
  27.         delay(10);
  28.         led=0xfe;        //初始狀態(tài)將LED0點亮

  29.         for(i=0;i<8;i++)//        1111 1110
  30.         {
  31.                 P1=~(0x01<<i);         //將0000 0001左移i位,然后將結(jié)果取反賦值到P2口
  32.                 delay(20);         //大約延時200ms
  33.         }
  34.         led=0xFF; //熄滅所有LED
  35.         delay(20);
  36.         for(i=0;i<8;i++)
  37.         {
  38.                 P1=~(0x80>>i);         //將1右移i位,然后將結(jié)果取反賦值到P2口
  39.                 delay(20);
  40.         }       
  41.         led=0xFF; //熄滅所有LED
  42. }
  43. void Led_Pipeline_2() //兩側(cè)向中間,再中間向兩側(cè)亮滅
  44. {
  45.         unsigned  char i,High,Low;
  46.         delay(20);
  47.         led=0x7E;        //初始狀態(tài)將兩側(cè)點亮
  48.         High=led&0xF0;        //高四位
  49.         Low=led&0x0F;          //低四位
  50.         delay(30);
  51.         for(i=0;i<3;i++)
  52.         {
  53.                 High=~(~High>>1);         //將0x8右移1位
  54.                 Low=~(~Low<<1);           //將0x1左移1位
  55.                
  56.                 led=(High&0xF0)|(Low&0x0F);//保證高位、低位不受到移位影響
  57.                 delay(30);
  58.         }       
  59.         led=0xFF; //熄滅所有LED
  60.         delay(20);
  61.         led=0xE7;//初始狀態(tài)將中間兩顆LED點亮
  62.         delay(30);
  63.         for(i=0;i<3;i++)
  64.         {
  65.                 High=~(~High<<1);         //將0x8右移i位
  66.                 Low=~(~Low>>1);         //將0x1左移i位
  67.                
  68.                 led=(High&0xF0)|(Low&0x0F);//保證高位、低位不受到移位影響
  69.                 delay(30);
  70.         }       
  71.         led=0xFF; //熄滅所有LED
  72. }

  73. void Led_Pipeline_3() //先右再左逐個亮起,不熄滅;再從左到右逐個熄滅;
  74. {
  75.         unsigned  char i;       
  76.         delay(20);
  77.         led=0xfe;        //初始狀態(tài)將LED0點亮
  78.         delay(10);
  79.         for(i=0;i<8;i++)
  80.         {
  81.                 P1=0xFE<<i;         //將1111 1110左移i位,然后將結(jié)果賦值到P2口
  82.                 delay(10);         //大約延時100ms
  83.         }
  84.         led=0xFF; //熄滅所有LED
  85.         for(i=0;i<8;i++)
  86.         {
  87.                 P1=~(0xFF>>i);         //將1111 1111右移i位,然后將結(jié)果取反賦值到P2口
  88.                 delay(10);
  89.         }       
  90.         led=0xFF; //熄滅所有LED
  91. }

  92. void Led_Pipeline_4() //先左再右逐個亮起,不熄滅;再從右到左逐個熄滅;
  93. {
  94.         unsigned  char i;       
  95.         delay(20);
  96.         led=0x7F;       
  97.         delay(10);
  98.         for(i=0;i<8;i++)
  99.         {
  100.                 P1=0x7F>>i;         
  101.                 delay(10);
  102.         }
  103.         led=0xFF;
  104.         for(i=0;i<8;i++)
  105.         {
  106.                 P1=~(0xFF<<i);
  107.                 delay(10);
  108.         }       
  109.         led=0xFF; //熄滅所有LED
  110. }





  111. //程序入口
  112. void main()
  113. {
  114.   while(1)
  115.   {

  116.           if(key1 == 0)
  117.                 {
  118.             Led_Pipeline_1();
  119.           }
  120.           else if(key2 == 0)
  121.                 {
  122.             Led_Pipeline_2();
  123.           }
  124.                 else if(key3 == 0)
  125.                 {
  126.             Led_Pipeline_3();
  127.           }
  128.                 else if(key4 == 0)
  129.                 {
  130.             Led_Pipeline_4();
  131.           }
  132.                 else if(key5 == 0)
  133.                 {
  134.             led = 0x00;          //燈亮
  135.           }
  136.                 else if(key6 == 0)
  137.                 {
  138.             led = 0x55;          //燈亮
  139.           }
  140.                 else if(key7 == 0)
  141.                 {
  142.             led = 0xF0;          //燈亮
  143.           }
  144.                 else if(key8 == 0)
  145.                 {
  146.             led = 0xFF;          //燈亮
  147.           }

  148.   }
  149. }
復(fù)制代碼




04 Single-chip microcomputer system for switch button control.rar

118.19 KB, 下載次數(shù): 15, 下載積分: 黑幣 -5

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表