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

標題: 要求P1、P2同時啟動,這個程序怎么寫? [打印本頁]

作者: tmxk0574    時間: 2016-10-19 15:31
標題: 要求P1、P2同時啟動,這個程序怎么寫?
單片機的P1口接8個LED燈,即LED1、LED2、.....LED8,亮、滅程序如下(為簡化起見,只寫了3個)。
如果P2口也接8個LED燈,即LED11、LED12、.....LED18,并且要求P1、P2同時啟動,即LED1和LED11要同時亮。
這個程序怎么寫?敬請行家幫助,謝謝!

*******************
#include <REG51.h>  
sbit LED1=P1^7;
sbit LED2=P1^6;   
sbit LED2=P1^5;   
void Delay(unsigned int a)  
{
     unsigned int i;
     while(--a !=0)
   {
       for(i=0;i<600;i++);//延時約1毫秒
   }
}

void main(void)
{
     while (1)
   {
       LED1=0;       //1個循環用時5秒
       Delay(1000);   
       LED1=1;
       Delay(500);
       LED2=0;
       Delay(500);
       LED2=1;
       Delay(500);
       LED3=0;
       Delay(2000);
       LED3=1;
       Delay(500);
   }
}
*****************


要求P2的LED燈亮、滅狀態如下:
       LED11=0;          //1個循環用時5秒
       Delay(500);   
       LED11=1;
       Delay(1000);
       LED12=0;
       Delay(1000);
       LED12=1;
       Delay(500);
       LED13=0;
       Delay(1000);
       LED13=1;
       Delay(1000);


作者: sz15207554653    時間: 2016-10-19 16:19
你的是流水燈,而且很繁瑣,下面是同時亮和滅
while(1)
{
      P1 = 0xff;
      P2 = 0xff;
      Delay(1000);
      
      P1 = 0x00;
      P2 =0x00;
      Delay(1000);
}
作者: 741852963123    時間: 2016-10-19 16:27
樓上是對的
作者: 劉海龍    時間: 2016-10-19 16:41
  1. /*********************************************************************************************
  2. 編寫:劉海龍
  3. 程序名:測試
  4. 硬件支持:

  5. /*********************************************************************************************/
  6. #include <REG51.h>  
  7. sbit LED1=P1^7;
  8. sbit LED2=P1^6;   
  9. sbit LED3=P1^5;
  10. sbit LED11=P2^7;
  11. sbit LED12=P2^6;   
  12. sbit LED13=P2^5;  
  13. void Delay(unsigned int a)  
  14. {
  15.      unsigned int i;
  16.      while(--a !=0)
  17.    {
  18.        for(i=0;i<600;i++);//延時約1毫秒
  19.    }
  20. }

  21. void main(void)
  22. {
  23.      while (1)
  24.    {
  25.        LED1=0;LED11=0;       //1個循環用時5秒
  26.        Delay(500);   
  27.        LED11=1;
  28.        Delay(500);
  29.        LED1=1;
  30.        Delay(500);
  31.        LED2=0;LED12=0;
  32.        Delay(500);
  33.        LED2=1;
  34.        Delay(500);
  35.        LED3=0;LED12=1;
  36.        Delay(500);
  37.            LED13=0;
  38.            Delay(1000);
  39.            LED13=1;
  40.            Delay(500);
  41.            LED3=1;
  42.    }
  43. }

  44. /************************************END*********************************************************/
復制代碼

作者: 劉海龍    時間: 2016-10-19 16:42
測試.rar (451 Bytes, 下載次數: 6)
作者: 劉海龍    時間: 2016-10-19 16:45
我的思路:以500ms為最小時間單位,在時間軸上每過500ms查看是否有指令,沒有則延時500沒事繼續向下查看,程序見附件
作者: tmxk0574    時間: 2016-10-20 22:50
先在這里謝謝各位,我想對劉先生的程序驗證一下,因為我是新手,看不出來對與錯,驗證后再來感謝!
作者: tmxk0574    時間: 2016-10-21 12:55
本帖最后由 tmxk0574 于 2016-10-21 13:03 編輯

試了一下,好象不對,燈的亮滅與我的要求完全不一樣。下面是LED燈亮滅的時序圖
   希望各位行家再幫我改一改,非常感謝!





作者: 劉海龍    時間: 2016-10-21 22:06
少了最后一條關500ms,重新改了見附件

測試2.rar

450 Bytes, 下載次數: 4


作者: tmxk0574    時間: 2017-2-27 17:11
衷心感謝幫助我的朋友們,使我弄懂了這個問題,也感謝《51黑電子論壇》,給我這個學習的平臺。愿朋友們快樂健康,愿《51黑電子論壇》發展、興旺!
作者: zl2168    時間: 2017-2-27 22:04
P1、P2同時啟動點亮LED1和LED11,沒意義。P1、P2同時啟動是1us,LED亮燈差別給人的感覺至少是數十ms。
作者: xyxsuper    時間: 2017-2-28 08:53
不錯000000
作者: fzcx1990    時間: 2017-2-28 11:02
同時點亮只需對P1、P2進行操作,如果有特別的需要,可進行位操作P1.x、P2.x
作者: WZUOZ    時間: 2017-3-11 18:26
菜鳥路過
作者: xymiss    時間: 2017-10-5 23:07
還是好人多呀。
作者: wulin    時間: 2017-10-6 07:57
P2=P1=0xfe;
Delay(500);
P2=P1=0xff;
Delay(1000);
P2=P1=0xfd;
Delay(500);
P2=P1=0xff;
Delay(1000);
P2=P1=0xfb;
Delay(500);
P2=P1=0xff;
Delay(1000);
..............
作者: 春風十里吹    時間: 2019-2-25 03:45

還是好人多呀!學的也多!




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1